From 3e8b924674a6da24fce800c76e7f4e6bce2a3982 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Mon, 9 Feb 2026 15:49:18 -0500 Subject: [PATCH 01/31] remove macro in atm_land_ice_flux_exchange --- full/atm_land_ice_flux_exchange.F90 | 652 ++++++++-------------------- 1 file changed, 173 insertions(+), 479 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 52107891..bf080d70 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -19,6 +19,7 @@ !*********************************************************************** !> \file !> \brief Performs flux calculations and exchange grid operations for atmosphere, land and ice + module atm_land_ice_flux_exchange_mod !! Components @@ -88,6 +89,20 @@ module atm_land_ice_flux_exchange_mod atm_stock_integrate, & send_ice_mask_sic +#ifndef _USE_LEGACY_LAND_ +#define FMS_DATA_OVERRIDE_ fms_data_override_ug +#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug +#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug +#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug +#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_field +#else +#define FMS_DATA_OVERRIDE_ fms_data_override +#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid +#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move +#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ +#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field +#endif + !----------------------------------------------------------------------- character(len=128) :: version = '$Id$' character(len=128) :: tag = '$Name$' @@ -971,38 +986,21 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time) call fms_coupler_type_data_override('ICE', Ice%ocean_fields, Time) call fms_coupler_type_send_data(Ice%ocean_fields, Time) -#ifndef _USE_LEGACY_LAND_ - call fms_data_override_ug ('LND', 't_surf', Land%t_surf, Time) - call fms_data_override_ug ('LND', 't_ca', Land%t_ca, Time) - call fms_data_override_ug ('LND', 'rough_mom', Land%rough_mom, Time) - call fms_data_override_ug ('LND', 'rough_heat', Land%rough_heat, Time) - call fms_data_override_ug ('LND', 'albedo', Land%albedo, Time) -#else - call fms_data_override ('LND', 't_surf', Land%t_surf, Time) - call fms_data_override ('LND', 't_ca', Land%t_ca, Time) - call fms_data_override ('LND', 'rough_mom', Land%rough_mom, Time) - call fms_data_override ('LND', 'rough_heat', Land%rough_heat, Time) - call fms_data_override ('LND', 'albedo', Land%albedo, Time) -#endif + call FMS_DATA_OVERRIDE_ ('LND', 't_surf', Land%t_surf, Time) + call FMS_DATA_OVERRIDE_ ('LND', 't_ca', Land%t_ca, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'rough_mom', Land%rough_mom, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'rough_heat', Land%rough_heat, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo', Land%albedo, Time) ! tracer data override do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) -#ifndef _USE_LEGACY_LAND_ - call fms_data_override_ug('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) enddo - call fms_data_override_ug ('LND', 'albedo_vis_dir', Land%albedo_vis_dir,Time) - call fms_data_override_ug ('LND', 'albedo_nir_dir', Land%albedo_nir_dir,Time) - call fms_data_override_ug ('LND', 'albedo_vis_dif', Land%albedo_vis_dif,Time) - call fms_data_override_ug ('LND', 'albedo_nir_dif', Land%albedo_nir_dif,Time) -#else - call fms_data_override('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) - enddo - call fms_data_override ('LND', 'albedo_vis_dir', Land%albedo_vis_dir,Time) - call fms_data_override ('LND', 'albedo_nir_dir', Land%albedo_nir_dir,Time) - call fms_data_override ('LND', 'albedo_vis_dif', Land%albedo_vis_dif,Time) - call fms_data_override ('LND', 'albedo_nir_dif', Land%albedo_nir_dif,Time) -#endif + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dir', Land%albedo_vis_dir,Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir,Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif,Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif,Time) !---- put atmosphere quantities onto exchange grid ---- @@ -1117,31 +1115,28 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! [4.3] put land quantities onto exchange grid ---- call fms_xgrid_some(xmap_sfc, ex_land, 'LND') -#ifndef _USE_LEGACY_LAND_ - #ifdef use_AM3_physics if (do_forecast) then - call fms_xgrid_put_to_xgrid_ug (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) ex_t_ca(:) = ex_t_surf_miz(:) end if #endif - call fms_xgrid_put_to_xgrid_ug (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%albedo, 'LND', ex_albedo, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo, 'LND', ex_albedo, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) ex_rough_scale = ex_rough_mom - call fms_xgrid_put_to_xgrid_ug(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) do n_gex=1,n_gex_lnd2atm - call fms_xgrid_put_to_xgrid_ug (Land%gex_lnd2atm(:,:,n_gex),'LND', & - ex_gex_lnd2atm(:,n_gex),xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc) end do do tr = 1,n_exch_tr @@ -1153,42 +1148,6 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! fluxes will be 0 endif enddo -#else - -#ifdef use_AM3_physics - if (do_forecast) then - call fms_xgrid_put_to_xgrid (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) - ex_t_ca(:) = ex_t_surf_miz(:) - end if -#endif - call fms_xgrid_put_to_xgrid (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%albedo, 'LND', ex_albedo, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) - ex_rough_scale = ex_rough_mom - call fms_xgrid_put_to_xgrid(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) - - do n_gex=1,n_gex_lnd2atm - call fms_xgrid_put_to_xgrid (Land%gex_lnd2atm(:,:,n_gex),'LND', & - ex_gex_lnd2atm(:,n_gex),xmap_sfc) - end do - - do tr = 1,n_exch_tr - n = tr_table(tr)%lnd - if(n /= NO_TRACER ) then - call fms_xgrid_put_to_xgrid ( Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) - else - ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore - ! fluxes will be 0 - endif - enddo -#endif ex_land_frac = 0.0 call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) @@ -1402,73 +1361,38 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! [5.2.1] override tracer flux. Note that "sea" and "diag_land" are repeatedly used ! as temporary storage for the values we are overriding fluxes and derivative with, ! over ocean and land respectively -#ifndef _USE_LEGACY_LAND_ - call fms_data_override_ug ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc ) - ! [5.2.2] override derivative of flux wrt surface concentration - call fms_data_override_ug ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc ) - ! [5.2.3] override derivative of flux wrt atmospheric concentration - call fms_data_override_ug ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) - enddo - - ! [5.3] override flux and derivatives for sensible heat flux - ! [5.3.1] override flux - call fms_data_override_ug ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_flux_t, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) - ! [5.3.2] override derivative of flux wrt near-surface temperature - call fms_data_override_ug ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) - ! [5.3.3] override derivative of flux wrt atmospheric temperature - call fms_data_override_ug ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) - if (used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) -#else - call fms_data_override ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) + if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used ) if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc ) ! [5.2.2] override derivative of flux wrt surface concentration - call fms_data_override ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) + if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used ) if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc ) ! [5.2.3] override derivative of flux wrt atmospheric concentration - call fms_data_override ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) + if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used ) if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) enddo ! [5.3] override flux and derivatives for sensible heat flux ! [5.3.1] override flux - call fms_data_override ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_flux_t, xmap_sfc ) + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) + if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_t, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) ! [5.3.2] override derivative of flux wrt near-surface temperature - call fms_data_override ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) + if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) ! [5.3.3] override derivative of flux wrt atmospheric temperature - call fms_data_override ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) - if (used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) + if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) -#endif ! NB: names of the override fields are constructed using tracer name and certain ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: @@ -1849,13 +1773,12 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar used = fms_diag_send_data(id_huss,Land_Ice_Atmos_Boundary%q_ref,Time) endif if(id_q_ref_land > 0 .or.id_hussLut_land > 0) then -!duplicate send_tile_data. We may remove id_q_ref_land in the future. + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) #ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_ref, xmap_sfc) + !duplicate send_tile_data. We may remove id_q_ref_land in the future. call send_tile_data (id_q_ref_land, diag_land) call send_tile_data (id_hussLut_land, diag_land) #else - call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_ref, xmap_sfc) used = fms_diag_send_tile_averaged_data(id_q_ref_land, diag_land, & Land%tile_size, Time, mask=Land%mask) #endif @@ -1870,12 +1793,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar end if if(id_tr_ref_land(tr) > 0) then -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) - !duplicate send_tile_data. We may remove id_q_ref_land in the future. + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) +#ifndef _USE_LEGACY_LAND_ call send_tile_data (id_tr_ref_land(tr), diag_land) #else - call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) used = fms_diag_send_tile_averaged_data(id_tr_ref_land(tr), diag_land, & Land%tile_size, Time, mask=Land%mask) #endif @@ -1910,11 +1831,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ref, 'ATM', ex_t_ref, xmap_sfc) ! cjg if ( id_rh_ref_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land,'LND', ex_ref, xmap_sfc) #ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug (diag_land,'LND', ex_ref, xmap_sfc) call send_tile_data (id_rh_ref_land, diag_land) #else - call fms_xgrid_get_from_xgrid (diag_land,'LND', ex_ref, xmap_sfc) used = fms_diag_send_tile_averaged_data ( id_rh_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif @@ -1936,32 +1856,28 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! ------- reference temp ----------- #ifdef use_AM3_physics if ( id_t_ref > 0 .or. id_t_ref_land > 0 .or. id_tasLut_land > 0 ) then - where (ex_avail) & - ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h + where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h if (id_t_ref_land > 0.or.id_tasLut_land > 0) then -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug(diag_land, 'LND', ex_ref, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_ref, xmap_sfc) +#ifndef _USE_LEGACY_LAND_ if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) #else - call fms_xgrid_get_from_xgrid(diag_land, 'LND', ex_ref, xmap_sfc) if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif endif - if ( id_t_ref > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) endif endif #else - where (ex_avail) & - ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h if (id_t_ref_land > 0 .or. id_tasLut_land > 0 .or. id_tasl_g > 0) then + where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h ! t_ref diagnostic at land points only + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) #ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_ref, xmap_sfc) if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) if (id_tasl_g > 0) then @@ -1969,11 +1885,11 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar diag_land, Time, Land%tile_size, Land%mask, Land ) endif #else - call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_ref, xmap_sfc) if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif endif + ! t_ref diagnostic at all atmos points call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) if ( id_t_ref > 0 ) used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) @@ -1987,11 +1903,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar where (ex_avail) & ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m if ( id_u_ref_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) #ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug ( diag_land, 'LND', ex_ref, xmap_sfc ) call send_tile_data ( id_u_ref_land, diag_land ) #else - call fms_xgrid_get_from_xgrid ( diag_land, 'LND', ex_ref, xmap_sfc ) used = fms_diag_send_tile_averaged_data ( id_u_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif @@ -2008,11 +1923,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar where (ex_avail) & ex_ref = ex_v_surf + (ex_v_atm-ex_v_surf) * ex_del_m if ( id_v_ref_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) #ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug ( diag_land, 'LND', ex_ref, xmap_sfc ) call send_tile_data ( id_v_ref_land, diag_land ) #else - call fms_xgrid_get_from_xgrid ( diag_land, 'LND', ex_ref, xmap_sfc ) used = fms_diag_send_tile_averaged_data ( id_v_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif @@ -2425,30 +2339,28 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun enddo ! l = 1, my_nblocks !----------------------------------------------------------------------- !---- output fields on the land grid ------- - -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) #ifdef SCM if (do_specified_land .and. do_specified_flux) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) else - call fms_xgrid_get_from_xgrid_ug (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) endif #else - call fms_xgrid_get_from_xgrid_ug (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) #endif - call fms_xgrid_get_from_xgrid_ug (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) !!$ if(do_area_weighted_flux) then !!$ ! evap goes here??? !!$ do k = 1, size(Land_boundary%lprec, dim=3) @@ -2460,184 +2372,82 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun !!$ endif if(associated(Land_boundary%drag_q)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) - call fms_data_override_ug('LND', 'drag_q', Land_boundary%drag_q, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'drag_q', Land_boundary%drag_q, Time ) endif if(associated(Land_boundary%lwdn_flux)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) - call fms_data_override_ug('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) endif if(associated(Land_boundary%cd_m)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) - call fms_data_override_ug('LND', 'cd_m', Land_boundary%cd_m, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'cd_m', Land_boundary%cd_m, Time ) endif if(associated(Land_boundary%cd_t)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) - call fms_data_override_ug('LND', 'cd_t', Land_boundary%cd_t, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'cd_t', Land_boundary%cd_t, Time ) endif if(associated(Land_boundary%bstar)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) - call fms_data_override_ug('LND', 'bstar', Land_boundary%bstar, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'bstar', Land_boundary%bstar, Time ) endif if(associated(Land_boundary%ustar)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) - call fms_data_override_ug('LND', 'ustar', Land_boundary%ustar, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'ustar', Land_boundary%ustar, Time ) endif if(associated(Land_boundary%wind)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) - call fms_data_override_ug('LND', 'wind', Land_boundary%wind, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'wind', Land_boundary%wind, Time ) endif if(associated(Land_boundary%z_bot)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) - call fms_data_override_ug('LND', 'z_bot', Land_boundary%z_bot, Time ) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'z_bot', Land_boundary%z_bot, Time ) endif if (associated(Land_boundary%con_atm)) then - call fms_xgrid_get_from_xgrid_ug (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) end if if (associated(Land_boundary%gex_atm2lnd)) then do n_gex=1,n_gex_atm2lnd - call fms_xgrid_get_from_xgrid_ug (Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) !add data_override here end do end if -#else - call fms_xgrid_get_from_xgrid (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) -#ifdef SCM - if (do_specified_land .and. do_specified_flux) then - call fms_xgrid_get_from_xgrid (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) - else - call fms_xgrid_get_from_xgrid (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) - endif -#else - call fms_xgrid_get_from_xgrid (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) -#endif - call fms_xgrid_get_from_xgrid (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) - - call fms_xgrid_get_from_xgrid (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) - - if (associated(Land_boundary%gex_atm2lnd)) then - do n_gex=1,n_gex_atm2lnd - call fms_xgrid_get_from_xgrid (Land_boundary%gex_atm2lnd(:,:,n_gex), 'LND', ex_gex_atm2lnd(:,n_gex), xmap_sfc) - end do - end if -!!$ if(do_area_weighted_flux) then -!!$ ! evap goes here??? -!!$ do k = 1, size(Land_boundary%lprec, dim=3) -!!$ ! Note: we divide by AREA_ATM_MODEL, which should be the same as -!!$ ! AREA_LND_MODEL (but the latter may not be defined) -!!$ call divide_by_area(data=Land_boundary%lprec(:,:,k), area=AREA_ATM_MODEL) -!!$ call divide_by_area(data=Land_boundary%fprec(:,:,k), area=AREA_ATM_MODEL) -!!$ enddo -!!$ endif - - if(associated(Land_boundary%drag_q)) then - call fms_xgrid_get_from_xgrid (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) - call fms_data_override('LND', 'drag_q', Land_boundary%drag_q, Time ) - endif - if(associated(Land_boundary%lwdn_flux)) then - call fms_xgrid_get_from_xgrid (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) - call fms_data_override('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) - endif - if(associated(Land_boundary%cd_m)) then - call fms_xgrid_get_from_xgrid (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) - call fms_data_override('LND', 'cd_m', Land_boundary%cd_m, Time ) - endif - if(associated(Land_boundary%cd_t)) then - call fms_xgrid_get_from_xgrid (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) - call fms_data_override('LND', 'cd_t', Land_boundary%cd_t, Time ) - endif - if(associated(Land_boundary%bstar)) then - call fms_xgrid_get_from_xgrid (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) - call fms_data_override('LND', 'bstar', Land_boundary%bstar, Time ) - endif - if(associated(Land_boundary%ustar)) then - call fms_xgrid_get_from_xgrid (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) - call fms_data_override('LND', 'ustar', Land_boundary%ustar, Time ) - endif - if(associated(Land_boundary%wind)) then - call fms_xgrid_get_from_xgrid (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) - call fms_data_override('LND', 'wind', Land_boundary%wind, Time ) - endif - if(associated(Land_boundary%z_bot)) then - call fms_xgrid_get_from_xgrid (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) - call fms_data_override('LND', 'z_bot', Land_boundary%z_bot, Time ) - endif -#endif Land_boundary%tr_flux = 0.0 Land_boundary%dfdtr = 0.0 do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then - -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug (Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call fms_xgrid_get_from_xgrid_ug (Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) -#else - call fms_xgrid_get_from_xgrid (Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) -#endif + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) #ifdef SCM if (do_specified_land .and. do_specified_flux .and. tr.eq.isphum) then -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_get_from_xgrid_ug (Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) -#else - call fms_xgrid_get_from_xgrid (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) -#endif + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) endif #endif - endif + endif enddo ! current time is Time: is that ok? not available in land_data_type !Balaji: data_override calls moved here from coupler_main -#ifndef _USE_LEGACY_LAND_ - call fms_data_override_ug('LND', 't_flux', Land_boundary%t_flux, Time ) - call fms_data_override_ug('LND', 'lw_flux', Land_boundary%lw_flux, Time ) - call fms_data_override_ug('LND', 'sw_flux', Land_boundary%sw_flux, Time ) - call fms_data_override_ug('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) - call fms_data_override_ug('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) - call fms_data_override_ug('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) - call fms_data_override_ug('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) - - call fms_data_override_ug('LND', 'lprec', Land_boundary%lprec, Time ) - call fms_data_override_ug('LND', 'fprec', Land_boundary%fprec, Time ) - call fms_data_override_ug('LND', 'dhdt', Land_boundary%dhdt, Time ) - call fms_data_override_ug('LND', 'drdt', Land_boundary%drdt, Time ) - call fms_data_override_ug('LND', 'p_surf', Land_boundary%p_surf, Time ) - do tr = 1,n_lnd_tr - call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) - call fms_data_override_ug('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) - call fms_data_override_ug('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) -#else - call fms_data_override('LND', 't_flux', Land_boundary%t_flux, Time ) - call fms_data_override('LND', 'lw_flux', Land_boundary%lw_flux, Time ) - call fms_data_override('LND', 'sw_flux', Land_boundary%sw_flux, Time ) - call fms_data_override('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) - call fms_data_override('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) - call fms_data_override('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) - call fms_data_override('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) - - call fms_data_override('LND', 'lprec', Land_boundary%lprec, Time ) - call fms_data_override('LND', 'fprec', Land_boundary%fprec, Time ) - call fms_data_override('LND', 'dhdt', Land_boundary%dhdt, Time ) - call fms_data_override('LND', 'drdt', Land_boundary%drdt, Time ) - call fms_data_override('LND', 'p_surf', Land_boundary%p_surf, Time ) + call FMS_DATA_OVERRIDE_('LND', 't_flux', Land_boundary%t_flux, Time ) + call FMS_DATA_OVERRIDE_('LND', 'lw_flux', Land_boundary%lw_flux, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux', Land_boundary%sw_flux, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) + + call FMS_DATA_OVERRIDE_('LND', 'lprec', Land_boundary%lprec, Time ) + call FMS_DATA_OVERRIDE_('LND', 'fprec', Land_boundary%fprec, Time ) + call FMS_DATA_OVERRIDE_('LND', 'dhdt', Land_boundary%dhdt, Time ) + call FMS_DATA_OVERRIDE_('LND', 'drdt', Land_boundary%drdt, Time ) + call FMS_DATA_OVERRIDE_('LND', 'p_surf', Land_boundary%p_surf, Time ) do tr = 1,n_lnd_tr call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) - call fms_data_override('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,:,tr), Time) - call fms_data_override('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) -#endif + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) enddo !----------------------------------------------------------------------- @@ -2744,8 +2554,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun ! compute stock changes ! Atm -> Lnd (precip) -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_stock_move_ug( & + call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & @@ -2756,7 +2565,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Lnd) ') ! Atm -> Lnd (heat) - call fms_xgrid_stock_move_ug( & + call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & & stock_ug_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & @@ -2766,29 +2575,6 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Lnd) ') -#else - call fms_xgrid_stock_move( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & - & stock_data3d = (Land_boundary%lprec + Land_boundary%fprec), & - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Lnd) ') - - ! Atm -> Lnd (heat) - call fms_xgrid_stock_move( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & - & stock_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & - Land_boundary%fprec*HLF), & - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Lnd) ') -#endif ! Atm -> Ice (precip) call fms_xgrid_stock_move( & @@ -2852,11 +2638,8 @@ subroutine generate_sfc_xgrid( Land, Ice ) call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) call fms_xgrid_set_frac_area (Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_set_frac_area_ug (Land%tile_size, 'LND', xmap_sfc) -#else - call fms_xgrid_set_frac_area (Land%tile_size, 'LND', xmap_sfc) -#endif + call FMS_XGRID_SET_FRAC_AREA_ (Land%tile_size, 'LND', xmap_sfc) + n_xgrid_sfc = max(fms_xgrid_count(xmap_sfc),1) if(n_xgrid_sfc .GE. nblocks) then my_nblocks = nblocks @@ -2934,7 +2717,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou character(32) :: tr_name, tr_units ! tracer name integer :: n, i, m, ier - integer :: is, ie, l + integer :: is, ie, OBl !Balaji call fms_mpp_clock_begin(cplClock) @@ -2942,20 +2725,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou !----------------------------------------------------------------------- !Balaji: data_override calls moved here from coupler_main call fms_data_override ( 'ICE', 't_surf', Ice%t_surf, Time) -#ifndef _USE_LEGACY_LAND_ - call fms_data_override_ug ( 'LND', 't_ca', Land%t_ca, Time) - call fms_data_override_ug ( 'LND', 't_surf', Land%t_surf, Time) -#else - call fms_data_override ( 'LND', 't_ca', Land%t_ca, Time) - call fms_data_override ( 'LND', 't_surf', Land%t_surf, Time) -#endif + call FMS_DATA_OVERRIDE_ ( 'LND', 't_ca', Land%t_ca, Time) + call FMS_DATA_OVERRIDE_ ( 'LND', 't_surf', Land%t_surf, Time) do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) -#ifndef _USE_LEGACY_LAND_ - call fms_data_override_ug('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) -#else - call fms_data_override('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) -#endif + call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) enddo !----- compute surface temperature change ----- @@ -2964,13 +2738,10 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf_new, xmap_sfc) ex_t_ca_new = ex_t_surf_new ! since it is the same thing over oceans -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_put_to_xgrid_ug (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) - call fms_xgrid_put_to_xgrid_ug (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) -#else - call fms_xgrid_put_to_xgrid (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) - call fms_xgrid_put_to_xgrid (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) -#endif + + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) + ! call escomp(ex_t_ca_new, ex_q_surf_new) ! ex_q_surf_new = d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) ! call put_to_xgrid (Land%q_ca, 'LND', ex_q_surf_new, xmap_sfc) @@ -3022,11 +2793,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_put_to_xgrid_ug ( Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) -#else - call fms_xgrid_put_to_xgrid ( Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) -#endif + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) endif enddo @@ -3102,7 +2869,6 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou used = fms_diag_send_data ( id_ts, diag_atm, Time ) endif call fms_sum_diag_integral_field ('t_surf', diag_atm) -#ifndef use_AM3_physics if ( id_ts_g > 0 ) used = send_global_diag ( id_ts_g, diag_atm, Time ) #endif !------- new surface temperature only over open ocean ----------- @@ -3143,7 +2909,6 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endwhere used = fms_diag_send_data ( id_tslsi, diag_atm, Time, rmask=frac_atm ) endif -#endif ! + slm, Mar 27 2002 @@ -3231,22 +2996,22 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou #ifndef _USE_LEGACY_LAND_ if ( id_t_flux_land > 0 ) then - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_flux_t, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_t, xmap_sfc) call send_tile_data ( id_t_flux_land, diag_land ) endif !------- tracer fluxes for land do tr=1,n_exch_tr if ( id_tr_flux_land(tr) > 0 .or. id_tr_mol_flux_land(tr) > 0 ) then call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) if (id_tr_flux_land(tr) > 0 ) & - call send_tile_data (id_tr_flux_land(tr), diag_land ) + call send_tile_data (id_tr_flux_land(tr), diag_land ) if (id_tr_mol_flux_land(tr) > 0) then if (fms_mpp_lowercase(trim(tr_name))=='co2') then call send_tile_data (id_tr_mol_flux_land(tr), diag_land*1000./WTMCO2) elseif (fms_mpp_lowercase(trim(tr_units)).eq.'vmr') then !flux is in vmr * kg/m2/s. Divide by MW_air - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', & + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', & ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & /(1e-3*WTMAIR*WTMH2O) , & xmap_sfc) @@ -3259,11 +3024,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou !-------- tracer deposition velocity do tr=1,n_exch_tr if ( id_tr_con_atm_land(tr) > 0 ) then - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) call send_tile_data (id_tr_con_atm_land(tr), diag_land ) endif if ( id_tr_con_ref_land(tr) > 0 ) then - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc ) + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc ) call send_tile_data (id_tr_con_ref_land(tr), diag_land ) endif enddo @@ -3280,18 +3045,18 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou if( id_hfls_g > 0 ) used = send_global_diag ( id_hfls_g, HLV*evap_atm, Time) #endif -#ifndef _USE_LEGACY_LAND_ if( id_q_flux_land > 0 ) then - call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) +#ifndef _USE_LEGACY_LAND_ call send_tile_data (id_q_flux_land, diag_land) #else if( id_q_flux_land > 0 ) then - call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) used = fms_diag_send_tile_averaged_data(id_q_flux_land, diag_land, & Land%tile_size, Time, mask=Land%mask) #endif endif call fms_sum_diag_integral_field ('evap', evap_atm*86400.) + #ifndef use_AM3_physics if (id_evspsbl_g > 0) used = send_global_diag ( id_evspsbl_g, evap_atm, Time ) #endif @@ -3300,12 +3065,14 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call send_tile_data (id_q_flux_land, diag_land) ! need this to avoid diag issues with tiling changes in update_land_slow call dump_tile_diag_fields(Time) - call fms_xgrid_get_from_xgrid_ug(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) +#endif + + call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) ! compute stock changes ! Lnd -> Atm (evap) - call fms_xgrid_stock_move_ug( & + call FMS_XGRID_STOCK_MOVE_( & & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & & stock_ug_data3d = data_lnd, & @@ -3316,7 +3083,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') ! Lnd -> Atm (heat lost through evap) - call fms_xgrid_stock_move_ug( & + call FMS_XGRID_STOCK_MOVE_( & & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & & FROM = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & & stock_ug_data3d = data_lnd * HLV, & @@ -3325,33 +3092,6 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & delta_t=Dt_atm, & & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Lnd->ATm) ') -#else - call fms_xgrid_get_from_xgrid(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) - - ! compute stock changes - - ! Lnd -> Atm (evap) - call fms_xgrid_stock_move( & - & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & - & stock_data3d = data_lnd, & - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') - - ! Lnd -> Atm (heat lost through evap) - call fms_xgrid_stock_move( & - & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & FROM = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & - & stock_data3d = data_lnd * HLV, & - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Lnd->ATm) ') -#endif call fms_xgrid_get_from_xgrid(data_ice, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) @@ -3559,12 +3299,8 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) elsewhere rmask = 0.0 endwhere - -#ifndef _USE_LEGACY_LAND_ - call fms_xgrid_put_to_xgrid_ug(rmask, id, ex_mask, xmap) -#else - call fms_xgrid_put_to_xgrid (rmask, id, ex_mask, xmap) -#endif + + call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_ug @@ -3788,126 +3524,84 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) ! register_tiled_diag_field #ifndef _USE_LEGACY_LAND_ call set_default_diag_filter('land') +#endif id_t_ref_land = & - register_tiled_diag_field ( 'flux_land', 't_ref', Land_axes, Time, & + REGISTER__DIAG_FIELD_ ( 'flux_land', 't_ref', Land_axes, Time, & 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & range=trange, missing_value = -100.0) id_q_ref_land = & - register_tiled_diag_field ( 'flux_land', 'q_ref', Land_axes, Time, & + REGISTER_DIAG_FIELD_ ( 'flux_land', 'q_ref', Land_axes, Time, & 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & missing_value=-1.0) id_rh_ref_land= & - register_tiled_diag_field ( 'flux_land', 'rh_ref', Land_axes, Time, & + REGISTER_DIAG_FIELD_ ( 'flux_land', 'rh_ref', Land_axes, Time, & 'relative humidity at '//trim(label_zh)//' over land', 'percent', & missing_value=-999.0) id_u_ref_land = & - register_tiled_diag_field ( 'flux_land', 'u_ref', Land_axes, Time, & + REGISTER_DIAG_FIELD_ ( 'flux_land', 'u_ref', Land_axes, Time, & 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & range=vrange, missing_value=-999.0 ) id_v_ref_land = & - register_tiled_diag_field ( 'flux_land', 'v_ref', Land_axes, Time, & + REGISTER_DIAG_FIELD_ ( 'flux_land', 'v_ref', Land_axes, Time, & 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & range=vrange, missing_value = -999.0 ) id_q_flux_land = & - register_tiled_diag_field( 'flux_land', 'evap', Land_axes, Time, & + REGISTER_DIAG_FIELD_( 'flux_land', 'evap', Land_axes, Time, & 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) id_t_flux_land = & - register_tiled_diag_field( 'flux_land', 'shflx', Land_axes, Time, & + REGISTER_DIAG_FIELD_( 'flux_land', 'shflx', Land_axes, Time, & 'sensible heat flux', 'W/m2', missing_value=-1.0 ) id_tasLut_land = & - register_tiled_diag_field( 'cmor_land', 'tasLut', Land_axes, Time, & + REGISTER_DIAG_FIELD_( 'cmor_land', 'tasLut', Land_axes, Time, & 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & units='K', standard_name='air_temperature', missing_value=-1.0 ) id_hussLut_land = & - register_tiled_diag_field( 'cmor_land', 'hussLut', Land_axes, Time, & + REGISTER_DIAG_FIELD_( 'cmor_land', 'hussLut', Land_axes, Time, & 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & standard_name='specific_humidity', missing_value=-1.0 ) + allocate(id_tr_flux_land(n_exch_tr)) allocate(id_tr_mol_flux_land(n_exch_tr)) allocate(id_tr_con_atm_land(n_exch_tr)) allocate(id_tr_con_ref_land(n_exch_tr)) allocate(id_tr_ref_land(n_exch_tr)) +#ifdef _USE_LEGACY_LAND_ + id_tr_con_atm_land(:) = -1 + id_tr_con_ref_land(:) = -1 + id_tr_ref_land(:)= -1 +#endif + do tr = 1, n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) - id_tr_con_atm_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_tot_con_atm', & - Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) - id_tr_con_ref_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_tot_con_ref', & - Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) - - id_tr_flux_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_flux', & + id_tr_flux_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_flux', & Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) if ( fms_mpp_lowercase(trim(name))=='co2') then - id_tr_mol_flux_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_mol_flux', & + id_tr_mol_flux_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_mol_flux', & Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) else - id_tr_mol_flux_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_mol_flux', & + id_tr_mol_flux_land(tr) = register_diag_field( 'flux_land', trim(name)//'_mol_flux', & Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) endif + +#ifndef _USE_LEGACY_LAND_ + id_tr_con_atm_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_tot_con_atm', & + Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) + id_tr_con_ref_land(tr) = register_diag_field( 'flux_land', trim(name)//'_tot_con_ref', & + Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) + ! we skip sphum because it is already available as flux_land/q_ref if ( tr .ne. isphum ) then - id_tr_ref_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_ref', & + id_tr_ref_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_ref', & Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', & trim(units),missing_value=-1.0) else id_tr_ref_land(tr) = -1 end if enddo -#else - id_t_ref_land = & - fms_diag_register_diag_field ( 'flux_land', 't_ref', Land_axes, Time, & - 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & - range=trange, missing_value = -100.0) - id_q_ref_land = & - fms_diag_register_diag_field ( 'flux_land', 'q_ref', Land_axes, Time, & - 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & - missing_value=-1.0) - id_rh_ref_land= & - fms_diag_register_diag_field ( 'flux_land', 'rh_ref', Land_axes, Time, & - 'relative humidity at '//trim(label_zh)//' over land', 'percent', & - missing_value=-999.0) - id_u_ref_land = & - fms_diag_register_diag_field ( 'flux_land', 'u_ref', Land_axes, Time, & - 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & - range=vrange, missing_value=-999.0 ) - id_v_ref_land = & - fms_diag_register_diag_field ( 'flux_land', 'v_ref', Land_axes, Time, & - 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & - range=vrange, missing_value = -999.0 ) - id_q_flux_land = & - fms_diag_register_diag_field( 'flux_land', 'evap', Land_axes, Time, & - 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) - id_t_flux_land = & - fms_diag_register_diag_field( 'flux_land', 'shflx', Land_axes, Time, & - 'sensible heat flux', 'W/m2', missing_value=-1.0 ) - id_tasLut_land = & - fms_diag_register_diag_field( 'cmor_land', 'tasLut', Land_axes, Time, & - 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & - units='K', standard_name='air_temperature', missing_value=-1.0 ) - id_hussLut_land = & - fms_diag_register_diag_field( 'cmor_land', 'hussLut', Land_axes, Time, & - 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & - standard_name='specific_humidity', missing_value=-1.0 ) - allocate(id_tr_flux_land(n_exch_tr)) - allocate(id_tr_mol_flux_land(n_exch_tr)) - allocate(id_tr_con_atm_land(n_exch_tr)); id_tr_con_atm_land(:)=-1 - allocate(id_tr_con_ref_land(n_exch_tr)); id_tr_con_ref_land(:)=-1 - allocate(id_tr_ref_land(n_exch_tr)); id_tr_ref_land(:)=-1 - - do tr = 1, n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) - id_tr_flux_land(tr) = fms_diag_register_diag_field( 'flux_land', trim(name)//'_flux', Land_axes, Time, & - 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) - if ( fms_mpp_lowercase(trim(name))=='co2') then - id_tr_mol_flux_land(tr) = fms_diag_register_diag_field( 'flux_land', trim(name)//'_mol_flux', Land_axes, & - Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) - else - id_tr_mol_flux_land(tr) = fms_diag_register_diag_field( 'flux_land', trim(name)//'_mol_flux', Land_axes, & - Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) - endif - enddo #endif + endif id_q_ref = & From 001ae3fd50b3dd1ad9df22102b9b3c6d6672c67e Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 10 Feb 2026 09:11:20 -0500 Subject: [PATCH 02/31] fixes --- full/atm_land_ice_flux_exchange.F90 | 36 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index bf080d70..b146dd1a 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -2717,7 +2717,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou character(32) :: tr_name, tr_units ! tracer name integer :: n, i, m, ier - integer :: is, ie, OBl + integer :: is, ie, OBl, l !Balaji call fms_mpp_clock_begin(cplClock) @@ -2870,7 +2870,6 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif call fms_sum_diag_integral_field ('t_surf', diag_atm) if ( id_ts_g > 0 ) used = send_global_diag ( id_ts_g, diag_atm, Time ) -#endif !------- new surface temperature only over open ocean ----------- if ( id_tos > 0 ) then ex_icetemp = 0.0 @@ -2888,7 +2887,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endwhere used = fms_diag_send_data ( id_tos, diag_atm, Time, rmask=frac_atm ) endif - +#endif + !------- new surface temperature only over land and sea-ice ----------- if ( id_tslsi > 0 ) then ex_land_frac = 0.0 @@ -3050,7 +3050,6 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou #ifndef _USE_LEGACY_LAND_ call send_tile_data (id_q_flux_land, diag_land) #else - if( id_q_flux_land > 0 ) then used = fms_diag_send_tile_averaged_data(id_q_flux_land, diag_land, & Land%tile_size, Time, mask=Land%mask) #endif @@ -3526,37 +3525,37 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) call set_default_diag_filter('land') #endif id_t_ref_land = & - REGISTER__DIAG_FIELD_ ( 'flux_land', 't_ref', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 't_ref', Land_axes, Time, & 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & range=trange, missing_value = -100.0) id_q_ref_land = & - REGISTER_DIAG_FIELD_ ( 'flux_land', 'q_ref', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'q_ref', Land_axes, Time, & 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & missing_value=-1.0) id_rh_ref_land= & - REGISTER_DIAG_FIELD_ ( 'flux_land', 'rh_ref', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'rh_ref', Land_axes, Time, & 'relative humidity at '//trim(label_zh)//' over land', 'percent', & missing_value=-999.0) id_u_ref_land = & - REGISTER_DIAG_FIELD_ ( 'flux_land', 'u_ref', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'u_ref', Land_axes, Time, & 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & range=vrange, missing_value=-999.0 ) id_v_ref_land = & - REGISTER_DIAG_FIELD_ ( 'flux_land', 'v_ref', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'v_ref', Land_axes, Time, & 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & range=vrange, missing_value = -999.0 ) id_q_flux_land = & - REGISTER_DIAG_FIELD_( 'flux_land', 'evap', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'evap', Land_axes, Time, & 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) id_t_flux_land = & - REGISTER_DIAG_FIELD_( 'flux_land', 'shflx', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'shflx', Land_axes, Time, & 'sensible heat flux', 'W/m2', missing_value=-1.0 ) id_tasLut_land = & - REGISTER_DIAG_FIELD_( 'cmor_land', 'tasLut', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'tasLut', Land_axes, Time, & 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & units='K', standard_name='air_temperature', missing_value=-1.0 ) id_hussLut_land = & - REGISTER_DIAG_FIELD_( 'cmor_land', 'hussLut', Land_axes, Time, & + FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'hussLut', Land_axes, Time, & 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & standard_name='specific_humidity', missing_value=-1.0 ) @@ -3575,10 +3574,10 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) do tr = 1, n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) - id_tr_flux_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_flux', & + id_tr_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_flux', & Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) if ( fms_mpp_lowercase(trim(name))=='co2') then - id_tr_mol_flux_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_mol_flux', & + id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) else id_tr_mol_flux_land(tr) = register_diag_field( 'flux_land', trim(name)//'_mol_flux', & @@ -3586,22 +3585,21 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) endif #ifndef _USE_LEGACY_LAND_ - id_tr_con_atm_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_tot_con_atm', & + id_tr_con_atm_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_tot_con_atm', & Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) id_tr_con_ref_land(tr) = register_diag_field( 'flux_land', trim(name)//'_tot_con_ref', & Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) ! we skip sphum because it is already available as flux_land/q_ref if ( tr .ne. isphum ) then - id_tr_ref_land(tr) = REGISTER_DIAG_FIELD_( 'flux_land', trim(name)//'_ref', & + id_tr_ref_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_ref', & Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', & trim(units),missing_value=-1.0) else id_tr_ref_land(tr) = -1 end if - enddo #endif - + enddo endif id_q_ref = & From 84f589d025e5a7f18e4add888e5e2d480bb3aa7a Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 10 Feb 2026 12:11:21 -0500 Subject: [PATCH 03/31] fix --- full/atm_land_ice_flux_exchange.F90 | 20 +++++-- t/null_model_build.sh | 82 ++++------------------------- 2 files changed, 25 insertions(+), 77 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index b146dd1a..cc3d4f28 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -94,13 +94,13 @@ module atm_land_ice_flux_exchange_mod #define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug #define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug #define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug -#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_field +#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field #else #define FMS_DATA_OVERRIDE_ fms_data_override #define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid #define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move #define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ -#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field +#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field #endif !----------------------------------------------------------------------- @@ -1142,7 +1142,11 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then - call fms_xgrid_put_to_xgrid_ug ( Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) +#ifndef _USE_LEGACY_LAND_ + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) +#else + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) +#endif else ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore ! fluxes will be 0 @@ -2729,7 +2733,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call FMS_DATA_OVERRIDE_ ( 'LND', 't_surf', Land%t_surf, Time) do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) +#ifndef _USE_LEGACY_LAND_ call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) +#else + call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) +#endif enddo !----- compute surface temperature change ----- @@ -2793,7 +2801,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then +#ifndef _USE_LEGACY_LAND_ call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) +#else + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) +#endif endif enddo @@ -3580,7 +3592,7 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) else - id_tr_mol_flux_land(tr) = register_diag_field( 'flux_land', trim(name)//'_mol_flux', & + id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) endif diff --git a/t/null_model_build.sh b/t/null_model_build.sh index 328f84da..ef858f96 100755 --- a/t/null_model_build.sh +++ b/t/null_model_build.sh @@ -1,15 +1,17 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # # Script to build a GFDL null model, using all null components, and run # a simple test on CI systems, like Travis CI or gitlab CI. # Determine the where this script lives, and set some variables that contain # other useful directories. -script_root=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P) +script_root=$PWD # Create a new build directory, to keep from polluting the test # dirctory for a time when there are more tests. -bld_dir=$(mktemp --directory $script_root/null.XXXXXX) +bld_dir="$script_root/build" +mkdir -p $bld_dir + cd $bld_dir # Add a directory for the source(s) @@ -33,7 +35,6 @@ fi # ocean_null git clone https://github.com/NOAA-GFDL/ocean_null.git $src_dir/ocean_null -cd $bld_dir # atmos_null git clone https://github.com/NOAA-GFDL/atmos_null.git $src_dir/atmos_null @@ -44,10 +45,10 @@ git clone https://github.com/NOAA-GFDL/land_null $src_dir/land_null # ice_null - need ice_param as well, and depends on ocean_null. git clone https://github.com/NOAA-GFDL/ice_param.git $src_dir/ice_param git clone https://github.com/NOAA-GFDL/ice_null.git $src_dir/ice_null -cd $bld_dir + # coupler - simply create symlink, this simplifies using the build system. -ln -s $(readlink -f ../../) $src_dir/coupler +ln -s `readlink -f ../../` $src_dir/coupler # Create the main Makefile sed -e 's//\t/' >$bld_dir/Makefile < Date: Tue, 10 Feb 2026 12:23:14 -0500 Subject: [PATCH 04/31] fix --- full/atm_land_ice_flux_exchange.F90 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index cc3d4f28..7a337dfc 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -3086,7 +3086,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call FMS_XGRID_STOCK_MOVE_( & & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & +#ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = data_lnd, & +#else + & stock_data3d = data_lnd, & +#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & @@ -3097,7 +3101,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call FMS_XGRID_STOCK_MOVE_( & & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & & FROM = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & +#ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = data_lnd * HLV, & +#else + & stock_data3d = data_lnd * HLV, & +#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & From fd9472dd23222ae7a863c4e3d19b2b84b24d89b1 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 10 Feb 2026 12:36:35 -0500 Subject: [PATCH 05/31] fix --- full/atm_land_ice_flux_exchange.F90 | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 7a337dfc..19d8a4cd 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -94,12 +94,14 @@ module atm_land_ice_flux_exchange_mod #define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug #define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug #define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug +#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid_ug #define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field #else #define FMS_DATA_OVERRIDE_ fms_data_override #define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid #define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move -#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ +#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area +#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid #define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field #endif @@ -995,7 +997,11 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! tracer data override do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) +#ifndef _USE_LEGACY_LAND_ call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) +#else + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) +#endif enddo call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dir', Land%albedo_vis_dir,Time) call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir,Time) @@ -2423,8 +2429,13 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then +#ifndef _USE_LEGACY_LAND_ call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) +#else + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) +#endif #ifdef SCM if (do_specified_land .and. do_specified_flux .and. tr.eq.isphum) then call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) @@ -2450,8 +2461,13 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call FMS_DATA_OVERRIDE_('LND', 'p_surf', Land_boundary%p_surf, Time ) do tr = 1,n_lnd_tr call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) +#ifndef _USE_LEGACY_LAND_ call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) +#else + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) +#endif enddo !----------------------------------------------------------------------- @@ -2561,7 +2577,11 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & +#ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & +#else + & stock_data3d = (Land_boundary%lprec + Land_boundary%fprec), & +#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & @@ -2572,8 +2592,13 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & +#ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & Land_boundary%fprec*HLF), & +#else + & stock_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & + Land_boundary%fprec*HLF), & +#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & From 8bb493455b2083a354432589a840d76d2bf4db9f Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 10 Feb 2026 14:01:15 -0500 Subject: [PATCH 06/31] fix --- full/atm_land_ice_flux_exchange.F90 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 19d8a4cd..72399d20 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -2413,9 +2413,6 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'z_bot', Land_boundary%z_bot, Time ) endif - if (associated(Land_boundary%con_atm)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) - end if if (associated(Land_boundary%gex_atm2lnd)) then do n_gex=1,n_gex_atm2lnd @@ -2424,6 +2421,12 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun end do end if +#ifndef _USE_LEGACY_LAND_ + if (associated(Land_boundary%con_atm)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) + end if +#endif + Land_boundary%tr_flux = 0.0 Land_boundary%dfdtr = 0.0 do tr = 1,n_exch_tr @@ -2746,7 +2749,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou character(32) :: tr_name, tr_units ! tracer name integer :: n, i, m, ier - integer :: is, ie, OBl, l + integer :: is, ie, l !Balaji call fms_mpp_clock_begin(cplClock) @@ -2924,7 +2927,6 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endwhere used = fms_diag_send_data ( id_tos, diag_atm, Time, rmask=frac_atm ) endif -#endif !------- new surface temperature only over land and sea-ice ----------- if ( id_tslsi > 0 ) then @@ -2946,7 +2948,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endwhere used = fms_diag_send_data ( id_tslsi, diag_atm, Time, rmask=frac_atm ) endif - +#endif ! + slm, Mar 27 2002 ! ------ new canopy temperature -------- From a9f23f6504a1b0372021a432a879ab43c9564461 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 10 Feb 2026 14:32:07 -0500 Subject: [PATCH 07/31] add undef --- full/atm_land_ice_flux_exchange.F90 | 45 +++++++++++++++++++---------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 72399d20..d6d7d11d 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -20,6 +20,29 @@ !> \file !> \brief Performs flux calculations and exchange grid operations for atmosphere, land and ice +#undef FMS_DATA_OVERRIDE_ +#undef FMS_XGRID_PUT_TO_XGRID_ +#undef FMS_XGRID_STOCK_MOVE_ +#undef FMS_XGRID_SET_FRAC_AREA_ +#undef FMS_XGRID_GET_FROM_XGRID_ +#undef FMS_DIAG_REGISTER_FIELD_ + +#ifndef _USE_LEGACY_LAND_ +#define FMS_DATA_OVERRIDE_ fms_data_override_ug +#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug +#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug +#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug +#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid_ug +#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field +#else +#define FMS_DATA_OVERRIDE_ fms_data_override +#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid +#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move +#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area +#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid +#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field +#endif + module atm_land_ice_flux_exchange_mod !! Components @@ -89,21 +112,6 @@ module atm_land_ice_flux_exchange_mod atm_stock_integrate, & send_ice_mask_sic -#ifndef _USE_LEGACY_LAND_ -#define FMS_DATA_OVERRIDE_ fms_data_override_ug -#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug -#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug -#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug -#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid_ug -#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field -#else -#define FMS_DATA_OVERRIDE_ fms_data_override -#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid -#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move -#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area -#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid -#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field -#endif !----------------------------------------------------------------------- character(len=128) :: version = '$Id$' @@ -4092,3 +4100,10 @@ end subroutine atm_stock_integrate !######################################################################### end module atm_land_ice_flux_exchange_mod + +#undef FMS_DATA_OVERRIDE_ +#undef FMS_XGRID_PUT_TO_XGRID_ +#undef FMS_XGRID_STOCK_MOVE_ +#undef FMS_XGRID_SET_FRAC_AREA_ +#undef FMS_XGRID_GET_FROM_XGRID_ +#undef FMS_DIAG_REGISTER_FIELD_ From 18068acecb6ac5e5ee33d60a4603f9d37ea48774 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 10 Feb 2026 14:34:50 -0500 Subject: [PATCH 08/31] trailing whitespace --- full/atm_land_ice_flux_exchange.F90 | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index d6d7d11d..bad829dd 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -22,10 +22,10 @@ #undef FMS_DATA_OVERRIDE_ #undef FMS_XGRID_PUT_TO_XGRID_ -#undef FMS_XGRID_STOCK_MOVE_ -#undef FMS_XGRID_SET_FRAC_AREA_ -#undef FMS_XGRID_GET_FROM_XGRID_ -#undef FMS_DIAG_REGISTER_FIELD_ +#undef FMS_XGRID_STOCK_MOVE_ +#undef FMS_XGRID_SET_FRAC_AREA_ +#undef FMS_XGRID_GET_FROM_XGRID_ +#undef FMS_DIAG_REGISTER_FIELD_ #ifndef _USE_LEGACY_LAND_ #define FMS_DATA_OVERRIDE_ fms_data_override_ug @@ -42,7 +42,7 @@ #define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid #define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field #endif - + module atm_land_ice_flux_exchange_mod !! Components @@ -112,7 +112,7 @@ module atm_land_ice_flux_exchange_mod atm_stock_integrate, & send_ice_mask_sic - + !----------------------------------------------------------------------- character(len=128) :: version = '$Id$' character(len=128) :: tag = '$Name$' @@ -1812,7 +1812,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar if(id_tr_ref_land(tr) > 0) then call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) -#ifndef _USE_LEGACY_LAND_ +#ifndef _USE_LEGACY_LAND_ call send_tile_data (id_tr_ref_land(tr), diag_land) #else used = fms_diag_send_tile_averaged_data(id_tr_ref_land(tr), diag_land, & @@ -1877,7 +1877,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h if (id_t_ref_land > 0.or.id_tasLut_land > 0) then call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_ref, xmap_sfc) -#ifndef _USE_LEGACY_LAND_ +#ifndef _USE_LEGACY_LAND_ if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) #else @@ -1907,7 +1907,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar Land%tile_size, Time, mask = Land%mask ) #endif endif - + ! t_ref diagnostic at all atmos points call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) if ( id_t_ref > 0 ) used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) @@ -2935,7 +2935,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endwhere used = fms_diag_send_data ( id_tos, diag_atm, Time, rmask=frac_atm ) endif - + !------- new surface temperature only over land and sea-ice ----------- if ( id_tslsi > 0 ) then ex_land_frac = 0.0 @@ -3112,7 +3112,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ! need this to avoid diag issues with tiling changes in update_land_slow call dump_tile_diag_fields(Time) #endif - + call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) ! compute stock changes @@ -3353,7 +3353,7 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) elsewhere rmask = 0.0 endwhere - + call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_ug @@ -3625,7 +3625,7 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) id_tr_con_ref_land(:) = -1 id_tr_ref_land(:)= -1 #endif - + do tr = 1, n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) @@ -4103,7 +4103,7 @@ end module atm_land_ice_flux_exchange_mod #undef FMS_DATA_OVERRIDE_ #undef FMS_XGRID_PUT_TO_XGRID_ -#undef FMS_XGRID_STOCK_MOVE_ -#undef FMS_XGRID_SET_FRAC_AREA_ -#undef FMS_XGRID_GET_FROM_XGRID_ -#undef FMS_DIAG_REGISTER_FIELD_ +#undef FMS_XGRID_STOCK_MOVE_ +#undef FMS_XGRID_SET_FRAC_AREA_ +#undef FMS_XGRID_GET_FROM_XGRID_ +#undef FMS_DIAG_REGISTER_FIELD_ From 379569e1d75e02289b1008fc39a54cdd808212bc Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 10 Feb 2026 14:35:26 -0500 Subject: [PATCH 09/31] restore ci script --- t/null_model_build.sh | 82 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 9 deletions(-) diff --git a/t/null_model_build.sh b/t/null_model_build.sh index ef858f96..328f84da 100755 --- a/t/null_model_build.sh +++ b/t/null_model_build.sh @@ -1,17 +1,15 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # # Script to build a GFDL null model, using all null components, and run # a simple test on CI systems, like Travis CI or gitlab CI. # Determine the where this script lives, and set some variables that contain # other useful directories. -script_root=$PWD +script_root=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P) # Create a new build directory, to keep from polluting the test # dirctory for a time when there are more tests. -bld_dir="$script_root/build" -mkdir -p $bld_dir - +bld_dir=$(mktemp --directory $script_root/null.XXXXXX) cd $bld_dir # Add a directory for the source(s) @@ -35,6 +33,7 @@ fi # ocean_null git clone https://github.com/NOAA-GFDL/ocean_null.git $src_dir/ocean_null +cd $bld_dir # atmos_null git clone https://github.com/NOAA-GFDL/atmos_null.git $src_dir/atmos_null @@ -45,10 +44,10 @@ git clone https://github.com/NOAA-GFDL/land_null $src_dir/land_null # ice_null - need ice_param as well, and depends on ocean_null. git clone https://github.com/NOAA-GFDL/ice_param.git $src_dir/ice_param git clone https://github.com/NOAA-GFDL/ice_null.git $src_dir/ice_null - +cd $bld_dir # coupler - simply create symlink, this simplifies using the build system. -ln -s `readlink -f ../../` $src_dir/coupler +ln -s $(readlink -f ../../) $src_dir/coupler # Create the main Makefile sed -e 's//\t/' >$bld_dir/Makefile < Date: Wed, 11 Feb 2026 14:15:25 -0500 Subject: [PATCH 10/31] documenting --- full/atm_land_ice_flux_exchange.F90 | 239 +++++++++++++++++++--------- 1 file changed, 167 insertions(+), 72 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index bad829dd..ff39c7b7 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -45,102 +45,197 @@ module atm_land_ice_flux_exchange_mod -!! Components - use ocean_model_mod, only: ocean_model_init_sfc, ocean_model_flux_init, ocean_model_data_get - use atmos_model_mod, only: atmos_data_type, land_ice_atmos_boundary_type - use ocean_model_mod, only: ocean_public_type, ice_ocean_boundary_type - use ocean_model_mod, only: ocean_state_type - use ice_model_mod, only: ice_data_type, land_ice_boundary_type, ocean_ice_boundary_type - use ice_model_mod, only: atmos_ice_boundary_type, Ice_stock_pe - use ice_model_mod, only: update_ice_atm_deposition_flux - use land_model_mod, only: land_data_type, atmos_land_boundary_type - use surface_flux_mod, only: surface_flux, surface_flux_init - use land_model_mod, only: Lnd_stock_pe - use ocean_model_mod, only: Ocean_stock_pe - use atmos_model_mod, only: Atm_stock_pe - use atmos_ocean_fluxes_mod, only: atmos_ocean_fluxes_init - use atmos_ocean_fluxes_calc_mod, only: atmos_ocean_fluxes_calc - use atmos_ocean_dep_fluxes_calc_mod, only: atmos_ocean_dep_fluxes_calc - -!! Conditional Imports + ! atmos_drivers + use atmos_model_mod, only: & + atm_stock_pe, & ! subroutine to compute the total stock in the atmospheric model + atmos_data_type, & ! derived type containing fields needed for flux exchange between components + land_ice_atmos_boundary_type ! derived type containing quantities going from land and ice to atmos + + ! FMSCoupler/full + use atmos_ocean_dep_fluxes_calc_mod, only: & + atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes + + ! FMSCoupler/full + use atmos_ocean_fluxes_calc_mod, only: & + atmos_ocean_fluxes_calc ! subroutine to computes gas fluxes for atmosphere and ocean + + ! FMS/coupler + use atmos_ocean_fluxes_mod, only: & + atmos_ocean_fluxes_init ! subroutine initializes gas fluxes in coupler derived types + + ! am5_phys + use atmos_tracer_driver_mod, only: & + atmos_tracer_flux_init ! subroutine to initialize atmos_tracer_driver_mod + + ! MOM6/SIS2 + use ice_model_mod, only: & + atmos_ice_boundary_type, & ! derived type for flux exchange between atmosphere and sea ice + ice_data_type, & ! derived type holding ice model data + ice_stock_pe, & ! subroutine to compute stocks of heat, water, etc for conservation checks + land_ice_boundary_type, & ! derived type for flux exchange between land and sea ice + ocean_ice_boundary_type, & ! derived type for flux exchange between ocean and sea ice + update_ice_atm_deposition_flux ! updates fluxes of type "air_sea_deposition" + + ! Land_lad2 + use land_model_mod, only: & + atmos_land_boundary_type, & ! derived type to pass information from atmosphere to land + land_data_type, & ! derived type to pass information from land to atmosphere + lnd_stock_pe ! subroutine to compute stocks of conservative land quantities + + ! If not _USE_LEGACY_LAND_, use land_lad2/land_tile_diag_mod instead of FMS/diag_manager #ifndef _USE_LEGACY_LAND_ - use land_model_mod, only: set_default_diag_filter, register_tiled_diag_field - use land_model_mod, only: send_tile_data, dump_tile_diag_fields + use land_model_mod, only: & + dump_tile_diag_fields, & ! subroutine for workaround with Intel compilers and OpenMP + register_tiled_diag_field, & ! subroutine to register diag field within the land model + send_tile_data, & ! subroutine to save data in buffer within the land model for the registered field + set_default_diag_filter ! subroutine to set default tile diagnostic selector #endif - -#ifdef use_AM3_physics - use atmos_tracer_driver_mod, only: atmos_tracer_flux_init -#else - use atmos_tracer_driver_mod, only: atmos_tracer_flux_init, & - atmos_tracer_has_surf_setl_flux, get_atmos_tracer_surf_setl_flux - use atmos_tracer_driver_mod, only: atmos_tracer_driver_gather_data_down - use atmos_cmip_diag_mod, only: register_cmip_diag_field_2d - use atmos_global_diag_mod, only: register_global_diag_field, & - get_global_diag_field_id, & - send_global_diag + + ! MOM6 + use ocean_model_mod, only: & + ice_ocean_boundary_type, & !derived type containing the forcings + ocean_model_init_sfc, & ! subroutine to extracts surface properties from the ocean's internal state + ocean_model_data_get, & ! interface procedure to extract scalar fields from ocean surface or ocean_public type + ocean_model_flux_init, & ! subroutine to initializes the properties from air-sea fluxes + ocean_public_type, & ! derived type used in FMScoupler to communicate with other model components + ocean_state_type, & ! derived type containing the state of the ocean + Ocean_stock_pe ! subroutine to computes integrated stocks of heat, water, etc. for conservation checks + + ! FMSCoupler/shared + use surface_flux_mod, only: & + surface_flux, & ! subroutine to compute fluxes on exchange grids + surface_flux_init ! subroutine to initialize surface_flux_mod + + ! am5_phys +#ifndef use_AM3_physics + use atmos_cmip_diag_mod, only: & + register_cmip_diag_field_2d !function to register CMIP diagnostic data + use atmos_global_diag_mod, only: & + get_global_diag_field_id, & ! function to retrieve internally-tracked id of the global diag field + register_global_diag_field, & ! function that calls FMS/register_diag_field for globally averaged data + send_global_diag ! function that calls FMS/diag_manager/send_data for global fields + use atmos_tracer_driver_mod, only & + atmos_tracer_has_surf_setl_flux, & + !function returns True of tracer sedimentation flux > 0 at bottom of the atmosphere + get_atmos_tracer_surf_setl_flux, & + !subroutine to retrieve tracer sedimentation flux at bottom of the atmosphere + atmos_tracer_driver_gather_data_down #ifndef _USE_LEGACY_LAND_ - use land_model_mod, only: send_global_land_diag + use land_model_mod, only: & + send_global_land_diag ! function to save land model field on unstructured grid for global integral #endif #endif - -#ifdef SCM ! option to override various surface boundary conditions for SCM - use scm_forc_mod, only: do_specified_flux, scm_surface_flux, & - do_specified_tskin, TSKIN, & - do_specified_albedo, ALBEDO_OBS, & - do_specified_rough_leng, ROUGH_MOM, ROUGH_HEAT, & - do_specified_land +#ifdef SCM + use scm_forc_mod, only: & + ALBEDO_OBS, & + do_specified_albedo, & + do_specified_land, & + do_specified_rough_leng, & + do_specified_tskin, & + do_specified_flux, & + ROUGH_MOM, & + ROUGH_HEAT, & + scm_surface_flux, & + TSKIN #endif -!! FMS use FMS -use FMSconstants, only: rdgas, rvgas, cp_air, stefan, WTMAIR, HLV, HLF, Radius, & - PI, CP_OCEAN, WTMCO2, WTMC, EPSLN, GRAV, WTMH2O +use FMSconstants, only: & + cp_air, & ! RDGAS/KAPPA , specific heat capacity of dry air at constant pressure [J/kg/deg] + CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] + EPSLN, & ! 1.0e-40, a small number to prevent divide by zero exceptions + GRAV, & ! 9.80, acceleration due to gravity [m/s^2] + HLF, & ! 3.34e5, latent heat of fusion [J/kg] + HLV, & ! 2.500e6, latent heat of evaporation [J/kg] + PI, & ! 3.14159265358979323846 + Radius, & ! 6371.0e+3, radius of the Earth [m] + rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] + rvgas, & ! 461.50, gas constant for water vapor + stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] + WTMC, & ! 12.00000, molecular weight of carbon [AMU] + WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [AMU] + WTMAIR, & ! 2.896440e+01, molecular weight of air [AMU] + WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [AMU] implicit none - include 'netcdf.inc' private - public :: atm_land_ice_flux_exchange_init, & - sfc_boundary_layer, & - generate_sfc_xgrid, & - flux_down_from_atmos, & - flux_up_to_atmos, & - flux_atmos_to_ocean, & - flux_ex_arrays_dealloc,& - atm_stock_integrate, & - send_ice_mask_sic - + public :: & + atm_land_ice_flux_exchange_init, & + atm_stock_integrate, & + flux_atmos_to_ocean, & + flux_down_from_atmos, & + flux_ex_arrays_dealloc,& + flux_up_to_atmos, & + generate_sfc_xgrid, & + send_ice_mask_sic, & + sfc_boundary_layer - !----------------------------------------------------------------------- character(len=128) :: version = '$Id$' character(len=128) :: tag = '$Name$' - !----------------------------------------------------------------------- - !---- exchange grid maps ----- type(FmsXgridXmap_type), save :: xmap_sfc + integer :: n_xgrid_sfc=0 - integer :: n_xgrid_sfc=0 - - !----------------------------------------------------------------------- !-------- namelist (for diagnostics) ------ character(len=4), parameter :: mod_name = 'flux' - integer :: id_drag_moist, id_drag_heat, id_drag_mom, & - id_rough_moist, id_rough_heat, id_rough_mom, & - id_land_mask, id_ice_mask, & - id_u_star, id_b_star, id_q_star, id_u_flux, id_v_flux, & - id_t_surf, id_t_ocean, id_t_flux, id_r_flux, id_q_flux, id_slp, & - id_t_atm, id_u_atm, id_v_atm, id_wind, & - id_thv_atm, id_thv_surf, & - id_t_ref, id_rh_ref, id_u_ref, id_v_ref, id_wind_ref, & - id_del_h, id_del_m, id_del_q, id_rough_scale, & - id_t_ca, id_q_surf, id_q_atm, id_z_atm, id_p_atm, id_gust, & - id_t_ref_land, id_rh_ref_land, id_u_ref_land, id_v_ref_land, & - id_q_ref, id_q_ref_land, id_q_flux_land, id_rh_ref_cmip, & - id_hussLut_land, id_tasLut_land, id_t_flux_land + integer :: & + id_drag_moist, & + id_drag_heat, & + id_drag_mom, & + id_rough_moist, & + id_rough_heat, & + id_rough_mom, & + id_land_mask, & + id_ice_mask, & + id_u_star, & + id_b_star, & + id_q_star, & + id_u_flux, & + id_v_flux, & + id_t_surf, & + id_t_ocean, & + id_t_flux, & + id_r_flux, & + id_q_flux, & + id_slp, & + id_t_atm, & + id_u_atm, & + id_v_atm, & + id_wind, & + id_thv_atm, & + id_thv_surf, & + id_t_ref, & + id_rh_ref, & + id_u_ref, & + id_v_ref, & + id_wind_ref, & + id_del_h, & + id_del_m, & + id_del_q, & + id_rough_scale, & + id_t_ca, & + id_q_surf, & + id_q_atm, & + id_z_atm, & + id_p_atm, & + id_gust, & + id_t_ref_land, & + id_rh_ref_land, & + id_u_ref_land, & + id_v_ref_land, & + id_q_ref, & + id_q_ref_land, & + id_q_flux_land, & + id_rh_ref_cmip, & + id_hussLut_land, & + id_tasLut_land, & + id_t_flux_land + integer :: id_co2_atm_dvmr, id_co2_surf_dvmr ! 2017/08/15 jgj added integer :: id_co2_bot, id_co2_flux_pcair_atm, id_o2_flux_pcair_atm From e90329141f3010210428f81795ac91ec4d8c6cd5 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Wed, 11 Feb 2026 14:58:50 -0500 Subject: [PATCH 11/31] diag field id doc --- full/atm_land_ice_flux_exchange.F90 | 100 ++++++++++++++-------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index ff39c7b7..e6f4af99 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -183,58 +183,56 @@ module atm_land_ice_flux_exchange_mod character(len=4), parameter :: mod_name = 'flux' + ! id for the diagnostic field integer :: & - id_drag_moist, & - id_drag_heat, & - id_drag_mom, & - id_rough_moist, & - id_rough_heat, & - id_rough_mom, & - id_land_mask, & - id_ice_mask, & - id_u_star, & - id_b_star, & - id_q_star, & - id_u_flux, & - id_v_flux, & - id_t_surf, & - id_t_ocean, & - id_t_flux, & - id_r_flux, & - id_q_flux, & - id_slp, & - id_t_atm, & - id_u_atm, & - id_v_atm, & - id_wind, & - id_thv_atm, & - id_thv_surf, & - id_t_ref, & - id_rh_ref, & - id_u_ref, & - id_v_ref, & - id_wind_ref, & - id_del_h, & - id_del_m, & - id_del_q, & - id_rough_scale, & - id_t_ca, & - id_q_surf, & - id_q_atm, & - id_z_atm, & - id_p_atm, & - id_gust, & - id_t_ref_land, & - id_rh_ref_land, & - id_u_ref_land, & - id_v_ref_land, & - id_q_ref, & - id_q_ref_land, & - id_q_flux_land, & - id_rh_ref_cmip, & - id_hussLut_land, & - id_tasLut_land, & - id_t_flux_land + id_b_star, & ! bouyancy scale + id_del_h, & ! ref height interp factor for heat + id_del_m, & ! ref height for interp factor for momentum + id_del_q, & ! ref height interp factor for moisture + id_drag_heat, & ! drag coefficient for heat + id_drag_moist, & ! drag coefficient for moisture + id_drag_mom, & ! drag coefficient for momentum + id_gust, & ! gust scale + id_hussLut_land, & ! near-surface specific humidity on land use tile + id_ice_mask, & ! fractional amount of land + id_land_mask, & ! fractional amount of sea ice + id_p_atm, & ! pressure at bottom level + id_q_flux, & ! evaporation rate + id_q_flux_land, & ! evaporation rate over land + id_q_ref, & !specific humidity at {label_zh} + id_q_ref_land, & ! specific humidity at {label_zh} over land + id_q_star, & ! moisture scale + id_r_flux, & ! net (down-up) longwave flux + id_rh_ref, & ! relative humidity at {label_zh} + id_rh_ref_cmip, & ! relative humidity at {label_zh} + id_rh_ref_land, & ! relative humidity at {label_zh} over land + id_rough_heat, & !surface roughness for heat + id_rough_moist, & ! surface roughness for moisture + id_rough_mom, & ! surface roughness for momentum + id_rough_scale, & ! topographic scaling fractor for momentum drag + id_slp, & ! sea level pressure + id_t_atm, & ! temperature at bottom level + id_t_ca, & ! canopy air temperature + id_t_flux, & !sensible heat flux + id_t_ocean, & ! surface temperature from ocean output + id_t_ref, & ! temperature at {label_zh} + id_t_ref_land, & !temperature at {label_zh} over land + id_t_surf, & ! surface temperature + id_tasLut_land, & ! near-surface air temperature {label_zh} above displacement height on land-use tile + id_thv_atm, & ! surface air virtual potential temperature + id_thv_surf, & ! surface virtual potential temperature + id_u_atm, & ! u wind component at bottom level + id_u_flux, & ! zonal wind stress + id_u_ref, & ! zonal wind component at {label_zm} + id_u_ref_land, & ! zonal wind component at {label_zm} over land + id_u_star, & ! friction velocity + id_v_atm, & ! v wind component at bottom level + id_v_flux, & ! meridional wind stress + id_v_ref, & ! meridional wind component at {label_zm} + id_v_ref_land, & ! meridional wind component at {label_zm} over land + id_wind, & ! wind speed for flux calculations + id_wind_ref, & ! absolute value of wind at {label_zm} + id_z_atm ! height of bottom level integer :: id_co2_atm_dvmr, id_co2_surf_dvmr ! 2017/08/15 jgj added From fe2ef8eb07042beb853517cff57dd563b47ccb50 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Thu, 12 Feb 2026 16:03:02 -0500 Subject: [PATCH 12/31] in progress --- full/atm_land_ice_flux_exchange.F90 | 227 ++++++++++++++++------------ 1 file changed, 130 insertions(+), 97 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index e6f4af99..d11d8526 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -183,7 +183,7 @@ module atm_land_ice_flux_exchange_mod character(len=4), parameter :: mod_name = 'flux' - ! id for the diagnostic field + ! returned ids from registering diagnostic field with diag_manager integer :: & id_b_star, & ! bouyancy scale id_del_h, & ! ref height interp factor for heat @@ -199,13 +199,13 @@ module atm_land_ice_flux_exchange_mod id_p_atm, & ! pressure at bottom level id_q_flux, & ! evaporation rate id_q_flux_land, & ! evaporation rate over land - id_q_ref, & !specific humidity at {label_zh} - id_q_ref_land, & ! specific humidity at {label_zh} over land + id_q_ref, & !specific humidity at z_ref_heat + id_q_ref_land, & ! specific humidity at z_ref_heat over land id_q_star, & ! moisture scale id_r_flux, & ! net (down-up) longwave flux - id_rh_ref, & ! relative humidity at {label_zh} - id_rh_ref_cmip, & ! relative humidity at {label_zh} - id_rh_ref_land, & ! relative humidity at {label_zh} over land + id_rh_ref, & ! relative humidity at z_ref_heat + id_rh_ref_cmip, & ! relative humidity at z_ref_heat + id_rh_ref_land, & ! relative humidity at z_ref_heat over land id_rough_heat, & !surface roughness for heat id_rough_moist, & ! surface roughness for moisture id_rough_mom, & ! surface roughness for momentum @@ -215,113 +215,146 @@ module atm_land_ice_flux_exchange_mod id_t_ca, & ! canopy air temperature id_t_flux, & !sensible heat flux id_t_ocean, & ! surface temperature from ocean output - id_t_ref, & ! temperature at {label_zh} - id_t_ref_land, & !temperature at {label_zh} over land + id_t_ref, & ! temperature at z_ref_heat + id_t_ref_land, & !temperature at z_ref_heat over land id_t_surf, & ! surface temperature - id_tasLut_land, & ! near-surface air temperature {label_zh} above displacement height on land-use tile + id_tasLut_land, & ! near-surface air temperature z_ref_heat above displacement height on land-use tile id_thv_atm, & ! surface air virtual potential temperature id_thv_surf, & ! surface virtual potential temperature id_u_atm, & ! u wind component at bottom level id_u_flux, & ! zonal wind stress - id_u_ref, & ! zonal wind component at {label_zm} - id_u_ref_land, & ! zonal wind component at {label_zm} over land + id_u_ref, & ! zonal wind component at z_ref_mom + id_u_ref_land, & ! zonal wind component at z_ref_mom over land id_u_star, & ! friction velocity id_v_atm, & ! v wind component at bottom level id_v_flux, & ! meridional wind stress - id_v_ref, & ! meridional wind component at {label_zm} - id_v_ref_land, & ! meridional wind component at {label_zm} over land + id_v_ref, & ! meridional wind component at z_ref_mom + id_v_ref_land, & ! meridional wind component at z_ref_mom over land id_wind, & ! wind speed for flux calculations - id_wind_ref, & ! absolute value of wind at {label_zm} - id_z_atm ! height of bottom level - - integer :: id_co2_atm_dvmr, id_co2_surf_dvmr -! 2017/08/15 jgj added - integer :: id_co2_bot, id_co2_flux_pcair_atm, id_o2_flux_pcair_atm - - integer, allocatable :: id_tr_atm(:), id_tr_surf(:), id_tr_flux(:), & - id_tr_mol_flux(:), id_tr_ref(:), id_tr_ref_land(:) - integer, allocatable :: id_tr_mol_flux0(:) !f1p - integer, allocatable :: id_tr_flux_land(:), id_tr_mol_flux_land(:) - integer, allocatable :: id_tr_con_atm_land(:), & !< deposition velocity at bottom level (land) - id_tr_con_ref_land(:) !< deposition velocity at reference height (land) - integer, allocatable :: id_tr_con_atm(:), & !< deposition velocity at bottom level (atm) - id_tr_con_ref(:) !< deposition velocity at ref height (atm) + id_wind_ref, & ! absolute value of wind at z_ref_mom + id_z_atm, & ! height of bottom level + id_co2_atm_dvmr, & ! co2 dry volume mixing ratio at bottom level + id_co2_surf_dvmr & ! c02 dry volume mixing ratio at surface + ! 2017/08/15 jgj added + id_co2_bot, & ! concentration of co2 to be passed to land/photosynthesis + id_co2_flux_pcair_atm, & ! concentration of co2 to be passed to ocean NEED HELP + id_o2_flux_pcair_atm ! concentration of o2 to be passed to to ocean NEED HELP + + ! arrays for holding ids returned from registering diag_fields with diag_manager for tracers + integer, allocatable :: & + id_tr_atm(:), & ! value of tracer at bottom level NEED HELP + id_tr_surf(:), & ! value of tracer at surface NEED HELP + id_tr_flux(:), & ! tracer flux + id_tr_mol_flux(:), & ! flux of co2 concentration in [mol/m2*s] + id_tr_ref(:), & ! value of tracer at z_ref_heat + id_tr_ref_land(:), & ! tracer flux at z_ref_heat over land NEED HELP + !f1p + id_tr_mol_flux0(:), & ! gross flux of tracer concentration over land in [mol/m2*s] + id_tr_flux_land(:), & ! flux of tracer concentration over land in [kg/m2*s] + id_tr_mol_flux_land(:), & ! flux of tracer concentration over land in [mol/m2*s] + ! used with _USE_LEGACY_LAND_ + id_tr_con_atm(:), & ! deposition velocity at bottom level (atm) + id_tr_con_atm_land(:), & ! deposition velocity at bottom level over land + id_tr_con_ref(:), & ! deposition velocity at reference height (atm) + id_tr_con_ref_land(:) ! deposition velocity at reference height over land ! id's for cmip specific fields - integer :: id_tas, id_uas, id_vas, id_ts, id_psl, & - id_sfcWind, id_tauu, id_tauv, & - id_hurs, id_huss, id_evspsbl, id_hfls, id_hfss, & - id_rhs, id_sftlf, id_tos, id_sic, id_tslsi, & - id_height2m, id_height10m - + integer :: & + id_evspsbl, & ! water evaporation flux + id_height10m, & ! near surface height + id_height2m, & ! near surface height + id_hfls, & ! surface upward latent heat flux + id_hfss, & ! surface upward sensible heat flux + id_hurs, & ! near-surface relative humidty + id_huss, & ! near-surface specific humidity + id_psl, & ! air pressure at sea level + id_rhs, & ! near-surface relative humidty + id_sfcWind, & ! near-surface wind speed + id_sftlf, & ! fraction of the grid cell occupied by land + id_sic, & ! sea ice area fraction + id_tas, & ! near-surface air temperature + id_tauu, & ! surface downward eastward wind stress + id_tauv, & ! surface downward northward wind stress + id_tos, & ! sea surface temperature + id_ts, & ! surface temperature + id_tslsi, & ! surface temperature on land or sea ice + id_uas, & ! eastward near-surface wind + id_vas !northward near-surface wind + ! globally averaged diagnostics - integer :: id_evspsbl_g, id_ts_g, id_tas_g, id_tasl_g, id_hfss_g, id_hfls_g, id_rls_g - - logical :: first_static = .true. - logical :: do_init = .true. - integer :: remap_method = 1 - - real, parameter :: bound_tol = 1e-7 + integer :: & + id_evspsbl_g, & ! global integral of water evaporation flux + id_hfls_g, & ! global integral of surface upward latent heat flux + id_hfss_g, & ! global integral of surface upward sensible heat flux + id_rls_g, & ! global integral of near-surface relative humidty + id_tas_g, & ! global integral of near-surface air temperature + id_tasl_g, & ! global integral of near-surface air temperature on land only + id_ts_g ! global integral of surface temperature + + logical :: first_static = .true. ! If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer + logical :: do_init = .true. ! true if atm_land_ice_flux_exchnge_init has been called + integer :: remap_method = 1 ! first or second order conservative remapping onto exchange grid + + real, parameter :: bound_tol = 1e-7 ! NOT USED DELETE - real, parameter :: d622 = rdgas/rvgas - real, parameter :: d378 = 1.0-d622 - real, parameter :: d608 = d378/d622 - real, parameter :: tfreeze = 273.15 - real, allocatable, dimension(:,:) :: frac_precip + real, parameter :: d622 = rdgas/rvgas ! NOT USED DELETE + real, parameter :: d378 = 1.0-d622 ! NOT USED DELETE + real, parameter :: d608 = d378/d622 ! CHANGE TO 1.0-d622/(rdgas/rvgas) + real, parameter :: tfreeze = 273.15 ! freezing point of water at 1 atm [K] + real, allocatable, dimension(:,:) :: frac_precip ! NEED HELP !--- the following is from flux_exchange_nml - real :: z_ref_heat = 2. !< Reference height (meters) for temperature and relative humidity diagnostics - !! (t_ref, rh_ref, del_h, del_q) - real :: z_ref_mom = 10. !< Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) - logical :: do_area_weighted_flux = .FALSE. - logical :: do_forecast = .false. - integer :: nblocks = 1 - logical :: partition_fprec_from_lprec = .FALSE. !< option for ATM override experiments where liquid+frozen - !! precip are combined. This option will convert liquid precip to snow - !! when t_ref is less than tfreeze parameter - logical :: scale_precip_2d = .false. - - integer :: my_nblocks = 1 - integer, allocatable :: block_start(:), block_end(:) - - ! ---- allocatable module storage -------------------------------------------- + real :: z_ref_heat = 2. + ! Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q + real :: z_ref_mom = 10. + ! Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m + + logical :: do_area_weighted_flux = .FALSE. ! NOT USED DELETE + logical :: do_forecast = .false. ! NEED HELP + integer :: nblocks = 1 !OpenMP number of threads + logical :: partition_fprec_from_lprec = .FALSE. + ! If true, convert liquid precip to snow when t_ref < tfreeze + ! Used for atm override experiments where liquid and frozen precip are combined + logical :: scale_precip_2d = .false. ! If true, scale mass of liqud preciptation + + integer :: my_nblocks = 1 ! Initializing OpenMP parameter + integer, allocatable :: & + block_start(:), & ! starting do loop indices for OpenMP thread + block_end(:) ! ending do loop indices for OpenMP thread + real, allocatable, dimension(:) :: & - ! NOTE: T canopy is only differet from t_surf over vegetated land - ex_t_surf, & !< surface temperature for radiation calc, degK - ex_t_surf_miz,& !< miz - ex_t_ca, & !< near-surface (canopy) air temperature, degK - ex_p_surf, & !< surface pressure - ex_slp, & !< surface pressure - - ex_flux_t, & !< sens heat flux - ex_flux_lw, & !< longwave radiation flux - - ex_dhdt_surf, & !< d(sens.heat.flux)/d(T canopy) - ex_dedt_surf, & !< d(water.vap.flux)/d(T canopy) - ex_dqsatdt_surf, & !< d(water.vap.flux)/d(q canopy) - ex_e_q_n, & - ex_drdt_surf, & !< d(LW flux)/d(T surf) - ex_dhdt_atm, & !< d(sens.heat.flux)/d(T atm) - ex_flux_u, & !< u stress on atmosphere - ex_flux_v, & !< v stress on atmosphere - ex_dtaudu_atm,& !< d(stress)/d(u) - ex_dtaudv_atm,& !< d(stress)/d(v) - ex_seawater, & - ex_albedo_fix,& - ex_albedo_vis_dir_fix,& - ex_albedo_nir_dir_fix,& - ex_albedo_vis_dif_fix,& - ex_albedo_nir_dif_fix,& - ex_old_albedo,& !< old value of albedo for downward flux calculations - ex_drag_q, & !< q drag.coeff. - ex_cd_t, & - ex_cd_m, & - ex_b_star, & - ex_u_star, & - ex_wind, & - ex_z_atm, & - ex_con_atm - + ! NOTE: T canopy is only differet from t_surf over vegetated land + ex_albedo_fix, & ! NEED HELP + ex_albedo_nir_dif_fix, & ! NEED HELP + ex_albedo_nir_dir_fix, & ! NEED HELP + ex_albedo_vis_dif_fix, & ! NEED HELP + ex_albedo_vis_dir_fix, & ! NEED HELP + ex_b_star, & !< + ex_cd_m, & !< + ex_cd_t, & !< + ex_con_atm, & !< + ex_dedt_surf, & ! d(water.vap.flux)/d(T canopy) + ex_dhdt_atm, & ! d(sens.heat.flux)/d(T atm) + ex_dhdt_surf, & ! d(sens.heat.flux)/d(T canopy) + ex_dqsatdt_surf, & ! d(water.vap.flux)/d(q canopy) + ex_drdt_surf, & ! d(LW flux)/d(T surf) + ex_dtaudu_atm, & ! d(stress)/d(u) + ex_dtaudv_atm, & ! d(stress)/d(v) + ex_e_q_n, & ! + ex_flux_lw, & ! longwave radiation flux + ex_flux_t, & ! sens heat flux + ex_flux_u, & ! u stress on atmosphere + ex_flux_v, & ! v stress on atmosphere + ex_old_albedo, & ! old value of albedo for downward flux calculations + ex_p_surf, & ! surface pressure + ex_seawater, & ! + ex_slp, & ! surface pressure + ex_t_ca, & ! near-surface (canopy) air temperature, degK + ex_t_surf, & ! surface temperature for radiation calc, degK + ex_t_surf_miz, & !< miz + ex_u_star, & ! + ex_wind, & ! + ex_z_atm #ifdef SCM real, allocatable, dimension(:) :: & From 191b07c522c69bdc2b683e6c3735db2ef31cb7f9 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Fri, 13 Feb 2026 12:05:32 -0500 Subject: [PATCH 13/31] in progress --- full/atm_land_ice_flux_exchange.F90 | 1076 ++++++++++++++------------- 1 file changed, 550 insertions(+), 526 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index d11d8526..7e1f6845 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -154,10 +154,10 @@ module atm_land_ice_flux_exchange_mod rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] rvgas, & ! 461.50, gas constant for water vapor stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] - WTMC, & ! 12.00000, molecular weight of carbon [AMU] - WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [AMU] - WTMAIR, & ! 2.896440e+01, molecular weight of air [AMU] - WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [AMU] + WTMC, & ! 12.00000, molecular weight of carbon [amu] + WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [amu] + WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] + WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [amu] implicit none private @@ -177,7 +177,7 @@ module atm_land_ice_flux_exchange_mod character(len=128) :: tag = '$Name$' type(FmsXgridXmap_type), save :: xmap_sfc - integer :: n_xgrid_sfc=0 + integer :: n_xgrid_sfc=0 !< number of exchange grid points !-------- namelist (for diagnostics) ------ @@ -196,7 +196,7 @@ module atm_land_ice_flux_exchange_mod id_hussLut_land, & ! near-surface specific humidity on land use tile id_ice_mask, & ! fractional amount of land id_land_mask, & ! fractional amount of sea ice - id_p_atm, & ! pressure at bottom level + id_p_atm, & ! pressure at lowest atmospheric level id_q_flux, & ! evaporation rate id_q_flux_land, & ! evaporation rate over land id_q_ref, & !specific humidity at z_ref_heat @@ -211,7 +211,7 @@ module atm_land_ice_flux_exchange_mod id_rough_mom, & ! surface roughness for momentum id_rough_scale, & ! topographic scaling fractor for momentum drag id_slp, & ! sea level pressure - id_t_atm, & ! temperature at bottom level + id_t_atm, & ! temperature at lowest atmospheric level id_t_ca, & ! canopy air temperature id_t_flux, & !sensible heat flux id_t_ocean, & ! surface temperature from ocean output @@ -221,19 +221,19 @@ module atm_land_ice_flux_exchange_mod id_tasLut_land, & ! near-surface air temperature z_ref_heat above displacement height on land-use tile id_thv_atm, & ! surface air virtual potential temperature id_thv_surf, & ! surface virtual potential temperature - id_u_atm, & ! u wind component at bottom level + id_u_atm, & ! u wind component at lowest atmospheric level id_u_flux, & ! zonal wind stress id_u_ref, & ! zonal wind component at z_ref_mom id_u_ref_land, & ! zonal wind component at z_ref_mom over land id_u_star, & ! friction velocity - id_v_atm, & ! v wind component at bottom level + id_v_atm, & ! v wind component at lowest atmospheric level id_v_flux, & ! meridional wind stress id_v_ref, & ! meridional wind component at z_ref_mom id_v_ref_land, & ! meridional wind component at z_ref_mom over land id_wind, & ! wind speed for flux calculations id_wind_ref, & ! absolute value of wind at z_ref_mom - id_z_atm, & ! height of bottom level - id_co2_atm_dvmr, & ! co2 dry volume mixing ratio at bottom level + id_z_atm, & ! height of lowest atmospheric level + id_co2_atm_dvmr, & ! co2 dry volume mixing ratio at lowest atmospheric level id_co2_surf_dvmr & ! c02 dry volume mixing ratio at surface ! 2017/08/15 jgj added id_co2_bot, & ! concentration of co2 to be passed to land/photosynthesis @@ -242,7 +242,7 @@ module atm_land_ice_flux_exchange_mod ! arrays for holding ids returned from registering diag_fields with diag_manager for tracers integer, allocatable :: & - id_tr_atm(:), & ! value of tracer at bottom level NEED HELP + id_tr_atm(:), & ! value of tracer at lowest atmospheric level NEED HELP id_tr_surf(:), & ! value of tracer at surface NEED HELP id_tr_flux(:), & ! tracer flux id_tr_mol_flux(:), & ! flux of co2 concentration in [mol/m2*s] @@ -253,8 +253,8 @@ module atm_land_ice_flux_exchange_mod id_tr_flux_land(:), & ! flux of tracer concentration over land in [kg/m2*s] id_tr_mol_flux_land(:), & ! flux of tracer concentration over land in [mol/m2*s] ! used with _USE_LEGACY_LAND_ - id_tr_con_atm(:), & ! deposition velocity at bottom level (atm) - id_tr_con_atm_land(:), & ! deposition velocity at bottom level over land + id_tr_con_atm(:), & ! deposition velocity at lowest atmospheric level (atm) + id_tr_con_atm_land(:), & ! deposition velocity at lowest atmospheric level over land id_tr_con_ref(:), & ! deposition velocity at reference height (atm) id_tr_con_ref_land(:) ! deposition velocity at reference height over land @@ -329,10 +329,10 @@ module atm_land_ice_flux_exchange_mod ex_albedo_nir_dir_fix, & ! NEED HELP ex_albedo_vis_dif_fix, & ! NEED HELP ex_albedo_vis_dir_fix, & ! NEED HELP - ex_b_star, & !< - ex_cd_m, & !< - ex_cd_t, & !< - ex_con_atm, & !< + ex_b_star, & ! boyuancy scale on exchange grid + ex_cd_m, & ! drag coefficient for momentum on exchange grid + ex_cd_t, & !< drag coefficient for heat on exchange grid + ex_con_atm, & !< deposition velocity at lowest atmospheric level on exchange grid ex_dedt_surf, & ! d(water.vap.flux)/d(T canopy) ex_dhdt_atm, & ! d(sens.heat.flux)/d(T atm) ex_dhdt_surf, & ! d(sens.heat.flux)/d(T canopy) @@ -340,21 +340,21 @@ module atm_land_ice_flux_exchange_mod ex_drdt_surf, & ! d(LW flux)/d(T surf) ex_dtaudu_atm, & ! d(stress)/d(u) ex_dtaudv_atm, & ! d(stress)/d(v) - ex_e_q_n, & ! + ex_e_q_n, & ! dt/mass * dedet_surf * gamma ex_flux_lw, & ! longwave radiation flux ex_flux_t, & ! sens heat flux ex_flux_u, & ! u stress on atmosphere ex_flux_v, & ! v stress on atmosphere ex_old_albedo, & ! old value of albedo for downward flux calculations - ex_p_surf, & ! surface pressure - ex_seawater, & ! - ex_slp, & ! surface pressure - ex_t_ca, & ! near-surface (canopy) air temperature, degK - ex_t_surf, & ! surface temperature for radiation calc, degK - ex_t_surf_miz, & !< miz - ex_u_star, & ! - ex_wind, & ! - ex_z_atm + ex_p_surf, & ! surface pressure on exchange grid + ex_seawater, & ! mask array of seaice fractions + ex_slp, & ! surface pressure on exchange grid + ex_t_ca, & ! near-surface (canopy) air temperature on exchange grid [K] + ex_t_surf, & ! surface temperature for radiation calc on exchange grid [K] + ex_t_surf_miz, & !< miz NEED HELP + ex_u_star, & ! friction velocity on exchange grid + ex_wind, & ! wind speed on exchange grid + ex_z_atm ! height of lowest atmospheric level on exchange grid #ifdef SCM real, allocatable, dimension(:) :: & @@ -364,21 +364,20 @@ module atm_land_ice_flux_exchange_mod #endif real, allocatable, dimension(:,:) :: & - ex_tr_surf, & !< near-surface tracer fields - ex_flux_tr, & !< tracer fluxes + ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) - ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) - ex_e_tr_n, & !< coefficient in implicit scheme - ex_f_tr_delt_n !< coefficient in implicit scheme - - real, allocatable, dimension(:,:) :: ex_tr_con_ref, & !< deposition velocity at reference height - ex_tr_con_atm !< deposition velocity at atmospheric height + ex_e_tr_n, & !< coefficient in implicit scheme + ex_f_tr_delt_n, & !< coefficient in implicit scheme + ex_flux_tr, & !< tracer fluxes + ex_tr_con_ref, & !< deposition velocity at reference height + ex_tr_con_atm, & !< deposition velocity at atmospheric height + ex_tr_surf !< near-surface tracer fields logical, allocatable, dimension(:) :: & - ex_avail, & !< true where data on exchange grid are available - ex_land !< true if exchange grid cell is over land + ex_avail, & !< true where data on exchange grid are available + ex_land !< true if exchange grid cell is over land real, allocatable, dimension(:) :: & - ex_e_t_n, & + ex_e_t_n, & ex_f_t_delt_n integer :: n_atm_tr !< number of prognostic tracers in the atmos model @@ -389,103 +388,151 @@ module atm_land_ice_flux_exchange_mod integer :: n_gex_atm2lnd !< number of gex fields exchanged between land and atmosphere integer :: n_gex_lnd2atm !< number of gex fields exchanged between atmosphere and land - type :: tracer_ind_type - integer :: atm, ice, lnd !< indices of the tracer in the respective models + integer :: atm !< tracer index in atm model + integer :: ice !< tracer index in ice model + integer :: lnd !< tracer index in lnd model end type tracer_ind_type type(tracer_ind_type), allocatable :: tr_table(:) !< table of tracers passed through flux exchange + type :: tracer_exch_ind_type - integer :: exch = 0 !< exchange grid index - integer :: ice = 0 !< ice model index - integer :: lnd = 0 !< land model index + integer :: exch = 0 !< exchange grid index + integer :: ice = 0 !< ice model index + integer :: lnd = 0 !< land model index end type tracer_exch_ind_type - !map atm tracers to exchange, ice and land variables - type(tracer_exch_ind_type), allocatable :: tr_table_map(:) - integer :: isphum = NO_TRACER !< specific humidity index - integer :: ico2 = NO_TRACER !< co2 tracer index - integer :: inh3 = NO_TRACER !< nh3 tracer index - type(FmsCoupler1dBC_type), pointer :: ex_gas_fields_atm=>NULL() !< gas fields in atm - !< Place holder for various atmospheric fields. - type(FmsCoupler1dBC_type), pointer :: ex_gas_fields_ice=>NULL() ! gas fields on ice - type(FmsCoupler1dBC_type), pointer :: ex_gas_fluxes=>NULL() ! gas flux - !< Place holder of intermediate calculations, such as - !< piston velocities etc. + + type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< map atm tracers to exchange, ice and land variables + + integer :: isphum = NO_TRACER !< tracer index for specific humidity + integer :: ico2 = NO_TRACER !< tracer index for co2 + integer :: inh3 = NO_TRACER !< tracer index for nh3 + + type(fmscoupler1dbc_type), pointer :: ex_gas_fields_atm=>NULL() + !< gas fields in atm place holder for various atmospheric fields. + type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() + !< gas fields on ice + type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() + !< gas flux place holder of intermediate calculations, such as piston velocities etc. interface put_logical_to_real module procedure put_logical_to_real_sg module procedure put_logical_to_real_ug - end interface - - integer :: ni_atm, nj_atm !< to do atmos diagnostic from flux_ocean_to_ice - real, dimension(3) :: ccc !< for conservation checks - !Balaji, sets boundary_type%xtype - ! REGRID: grids are physically different, pass via exchange grid - ! REDIST: same physical grid, different decomposition, must move data around - ! DIRECT: same physical grid, same domain decomposition, can directly copy data - integer, parameter :: REGRID=1, REDIST=2, DIRECT=3 - integer :: cplClock, sfcClock, fluxAtmDnClock, regenClock, fluxAtmUpClock - - ! Exchange grid indices - integer :: X1_GRID_ATM, X1_GRID_ICE, X1_GRID_LND - real :: Dt_atm, Dt_cpl - integer :: nxc_ice=0, nyc_ice=0, nk_ice=0 - integer :: nxc_lnd=0, nyc_lnd=0 + end interface put_logical_to_real + + real, dimension(3) :: ccc !< for conservation checks !< NOT USED DELETE + + !balaji, sets boundary_type%xtype + integer, parameter :: & + regrid=1, & !< grids are physically different, pass via exchange grid + redist=2, & !< same physical grid, different decomposition, must move data around + redirect=3 !< same physical grid, same domain decomposition, can directly copy data + + integer :: & + cplClock, & + sfcClock, & !< FMS clock id to profile sfc_boundary_layer + fluxAtmDnClock, & !< FMS clock id to profile flux down from atmosphere + regenClock, & !< FMS clock to profile exchange grid generation + fluxAtmUpClock !< FMS clock to profile flux up to atmosphere + + integer :: & + X1_GRID_ATM, & !< 1, exchange grid index for xgrid_stock_move + X1_GRID_ICE, & !< 2, exchange grid index for xgrid_stock_move + X1_GRID_LND !< 3, !< exchange grid index for xgrid_stock_move + + real :: & + Dt_atm, & !< atmospheric timestep [s] + Dt_cpl !< coupled timestep [s] + + integer :: & + ni_atm, & !< number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice + nj_atm !< number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice + + integer :: & + nxc_ice=0, & !< number of x points in ice compute domain + nyc_ice=0, & !< number of y points in ice compute domain + nk_ice=0 !< number of vertical levels in ice + + integer :: & + nxc_lnd=0, & !< number of x points in land compute domain + nyc_lnd=0 !< number of y points in land compute domain contains !####################################################################### - !> \brief Initialization routine. - !! - !! Initializes the interpolation routines,diagnostics and boundary data + !> \brief Initialization routine !! - !! \throw FATAL, "grid_spec.nc incompatible with atmosphere resolution" - !! The atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere - !! resolution from atmosphere model. - !! \throw FATAL, "grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)" - !! The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model. - !! \throw FATAL, "grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)" - !! The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model. - !! \throw FATAL, "grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc)" - !! The latitude from file grid_spec.nc is different from the latitude from atmosphere model. + !! Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and + !! module level variables. The subroutine must be called before calling public subroutines + !! in this module. + subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & - Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, & - do_area_weighted_flux_in, & - do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, & - nblocks_in, cplClock_in, ex_gas_fields_atm_in, & - ex_gas_fields_ice_in, ex_gas_fluxes_in) - type(FmsTime_type), intent(in) :: Time !< The model's current time - type(atmos_data_type), intent(inout) :: Atm !< A derived data type to specify atmosphere boundary data - type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data - type(ice_data_type), intent(inout) :: Ice !< A derived data type to specify ice boundary data - type(atmos_ice_boundary_type), intent(inout) :: atmos_ice_boundary !< A derived data type to specify properties - !! and fluxes passed from atmosphere to ice - type(land_ice_atmos_boundary_type),intent(inout) :: land_ice_atmos_boundary !< A derived data type to specify - !! properties and fluxes passed from - !! exchange grid to the atmosphere, land - !! and ice - real, intent(in) :: Dt_atm_in !< Atmosphere time step in seconds - real, intent(in) :: Dt_cpl_in !< Coupled time step in seconds - real, intent(in) :: z_ref_heat_in, z_ref_mom_in - logical, intent(in) :: scale_precip_2d_in - logical, intent(in) :: do_area_weighted_flux_in - logical, intent(in) :: do_forecast_in, partition_fprec_from_lprec_in - integer, intent(in) :: nblocks_in - integer, intent(in) :: cplClock_in - type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in - - character(len=48), parameter :: module_name = 'flux_exchange_mod' - character(len=64), parameter :: sub_name = 'flux_exchange_init' - character(len=256), parameter :: note_header = '==>Note from ' // trim(module_name) // & - '(' // trim(sub_name) // '):' - integer :: i, n - integer :: outunit, logunit - integer :: is, ie, js, je, kd - character(32) :: tr_name - logical :: found - character(32) :: method - character(512) :: parameters - real :: value + Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, & + do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, & + nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in) + implicit none + type(FmsTime_type), intent(in) :: Time + !< model's current time + type(atmos_data_type), intent(inout) :: Atm + !< derived data type to specify atmosphere boundary data + type(land_data_type), intent(in) :: Land + !< derived data type to specify land boundary data + type(ice_data_type), intent(inout) :: Ice + !< derived data type to specify ice boundary data + type(atmos_ice_boundary_type), intent(inout) :: atmos_ice_boundary + !< derived type to specify properties and fluxes passed from atmosphere to ice + type(land_ice_atmos_boundary_type), intent(inout) :: land_ice_atmos_boundary + !< derived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice + real, intent(in) :: Dt_atm_in + !< atmosphere time step in seconds + real, intent(in) :: Dt_cpl_in + !< coupled time step in seconds + real, intent(in) :: z_ref_heat_in + !< reference height for temperature and relative humidity diagnostics [m] + real, intent(in) :: z_ref_mom_in + !< reference height for momentum diagnostics [m] + logical, intent(in) :: scale_precip_2d_in + !< if true, rescale Atm%lprec by a field from diag_table + logical, intent(in) :: do_area_weighted_flux_in + !< if true, divide flux by area + logical, intent(in) :: do_forecast_in + !< if true, put atm%surf_diff%sst_miz on the exchange grid if AM3_physics is used + logical, intent(in) :: partition_fprec_from_lprec_in + !! if true, will convert liquid precip to snow when t_ref < tfreeze + integer, intent(in) :: nblocks_in + !! divide the surface exchange grid to nblocks for OpenMP parallelizatio + integer, intent(in) :: cplClock_in + !! clock to measure processes, mainly used for development and debugging + type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in + !! gas fields in Atm. Contains atmospheric surface variables that are used to compute + !! atmosphere-ocean gas fluxes and flux-regulating parameters + type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_ice_in + !! gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used + !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters + type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in + !! gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between + !! the atmosphere and ocean. Values defined from the field table or computed during model run + + character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' + character(len=256), parameter :: & + note_header = '==>Note from '//trim(module_name)//'(atm_land_ice_flux_exchange_init):' + + integer :: & + i, & !< temporary index do loop + n !< temporary index for counting + integer :: & + outunit, & !< ! returned value from fms_mpp_stdout() + logunit !< returned value from fms_mpp_stdlog() + integer :: & + is, & !< starting x-index on compute domain + ie, & !< ending x-index on compute domain + js, & !< starting y-index on compute domain + je, & !< ending y-index on compute domain + kd !< number of levels in the z direction + character(32) :: tr_name !< dummy variable to hold name of tracers + logical :: found !< dummy variable to search through tracer index in ex_gas_fluxes + + !> Initialize module level variables Dt_atm = Dt_atm_in Dt_cpl = Dt_cpl_in z_ref_heat = z_ref_heat_in @@ -500,22 +547,25 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound ex_gas_fields_ice => ex_gas_fields_ice_in ex_gas_fluxes => ex_gas_fluxes_in - outunit = fms_mpp_stdout(); logunit = fms_mpp_stdlog() + !> get file unit for stdout and stdlog + outunit = fms_mpp_stdout() + logunit = fms_mpp_stdlog() allocate(block_start(nblocks), block_end(nblocks)) - !----- find out number of atmospheric prognostic tracers and index of specific - ! humidity in the tracer table - call fms_tracer_manager_get_number_tracers (MODEL_ATMOS, num_tracers=n_atm_tr_tot, & - num_prog=n_atm_tr) - call fms_tracer_manager_get_number_tracers (MODEL_LAND, num_tracers=n_lnd_tr_tot, & - num_prog=n_lnd_tr) + !> get the number ofatmospheric prognostic tracers and specific humidity tracer index from the tracer table + call fms_tracer_manager_get_number_tracers (MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) + + !> get the total number of land tracers and the number of prognostic tracers from the tracer table + call fms_tracer_manager_get_number_tracers (MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) ! assemble the table of tracer number translation by matching names of ! prognostic tracers in the atmosphere and surface models; skip all atmos. ! tracers that have no corresponding surface tracers. - allocate(tr_table(n_atm_tr)) - allocate(tr_table_map(n_atm_tr)) + + !> Populate tr_table and tr_table_map. Atm, land, and ice models will have its + !! own tracer index for the same tracer. + allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) n = 1 do i = 1,n_atm_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, i, tr_name ) @@ -529,27 +579,28 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound n = n + 1 endif enddo + + !> Set the number of tracers that will be exchanged between the models n_exch_tr = n - 1 - ! - ! Set up tracer table entries for ocean-atm gas fluxes where the names of tracers in the - ! atmosphere and ocean may not be equal - ! - !generic exchange - n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) + + !> Populate tracer table for ocean-atm gas fluxes where the tracer name in atm and ocean models may differ + + n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_atm2lnd + n_gex_lnd2atm = fms_gex_get_n_ex(MODEL_LAND,MODEL_ATMOS) if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_lnd2atm - do n = 1, ex_gas_fluxes%num_bcs !{ - if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then !{ + do n = 1, ex_gas_fluxes%num_bcs + if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then found = .false. - do i = 1, n_exch_tr !{ + do i = 1, n_exch_tr if (ex_gas_fluxes%bc(n)%atm_tr_index .eq. tr_table(i)%atm) then found = .true. exit endif - enddo !} i + enddo if (.not. found) then n_exch_tr = n_exch_tr + 1 tr_table(n_exch_tr)%atm = ex_gas_fluxes%bc(n)%atm_tr_index @@ -559,29 +610,30 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound tr_table_map(n_exch_tr)%ice = tr_table(n_exch_tr)%ice tr_table_map(n_exch_tr)%lnd = tr_table(n_exch_tr)%lnd endif - endif !} - enddo !} n + endif + enddo write(outunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr write(logunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr + do i = 1,n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) write(outunit,*)'Tracer field name :'//trim(tr_name) write(logunit,*)'Tracer field name :'//trim(tr_name) enddo - ! find out which tracer is specific humidity - + ! REMOVE ! +fix-me-slm+ specific humidity may not be present if we are running with ! dry atmosphere. Besides, model may use mixing ratio ('mix_rat') (?). However, ! some atmos code also assumes 'sphum' is present, so for now the following ! code may be good enough. + !> Get tracer index for specific humidity, co2, and nh3 do i = 1,n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) if(fms_mpp_lowercase(tr_name)=='sphum') then isphum = i endif - ! jgj: find out which exchange tracer is co2 + ! jgj: get tracer index for co2 REMOVE if(fms_mpp_lowercase(tr_name)=='co2') then ico2 = i write(outunit,*)'Exchange tracer index for '//trim(tr_name),' : ',ico2 @@ -592,53 +644,37 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif enddo - if (isphum==NO_TRACER) then - call fms_error_mesg('atm_land_ice_flux_exchange_mod',& - 'tracer "sphum" must be present in the atmosphere', FATAL ) - endif - - if (ico2==NO_TRACER) then - call fms_error_mesg('atm_land_ice_flux_exchange_mod',& - 'tracer "co2" not present in the atmosphere', NOTE ) - endif + if (isphum==NO_TRACER) call fms_error_mesg(module_name, 'tracer "sphum" must be present in the atmosphere', FATAL) + if (ico2==NO_TRACER) call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) - !--------- read gridspec file ------------------ - !only atmos pelists needs to do it here, ocean model will do it elsewhere - - - ! - ! check atmosphere and grid_spec.nc have same atmosphere lat/lon boundaries - ! call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) - if (scale_precip_2d) then - allocate(frac_precip(is:ie,js:je)) - frac_precip=0.0 - endif + if (scale_precip_2d) allocate(frac_precip(is:ie,js:je), source=0.0) call fms_xgrid_init(remap_method) + + call fms_xgrid_setup_xmap( & + xmap_sfc, & + ['ATM', 'OCN', 'LND'], & + [Atm%Domain, Ice%Domain, Land%Domain], & + "INPUT/grid_spec.nc", & + Atm%grid, & #ifndef _USE_LEGACY_LAND_ - call fms_xgrid_setup_xmap(xmap_sfc, (/ 'ATM', 'OCN', 'LND' /), & - (/ Atm%Domain, Ice%Domain, Land%Domain /), & - "INPUT/grid_spec.nc", Atm%grid, lnd_ug_domain=Land%ug_domain) -#else - call fms_xgrid_setup_xmap(xmap_sfc, (/ 'ATM', 'OCN', 'LND' /), & - (/ Atm%Domain, Ice%Domain, Land%Domain /), & - "INPUT/grid_spec.nc", Atm%grid) + lnd_ug_domain=Land%ug_domain, & #endif - ! exchange grid indices - X1_GRID_ATM = 1; X1_GRID_ICE = 2; X1_GRID_LND = 3; + ) + + !> Assign exchange grid type and Generate surface exchange grid + X1_GRID_ATM = 1 + X1_GRID_ICE = 2 + X1_GRID_LND = 3 call generate_sfc_xgrid( Land, Ice ) + if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' call surface_flux_init() - !----------------------------------------------------------------------- - - - !----------------------------------------------------------------------- - !----- initialize quantities for global integral package ----- - + !> Initialize fms_diag_integral for global integral quantities !! call diag_integral_field_init ('prec', 'f6.3') call fms_diag_integral_field_init ('evap', 'f6.3') #ifndef use_AM3_physics @@ -656,148 +692,92 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !Balaji - !allocate atmos_ice_boundary + !> Initialize atmos_ice_boundary call fms_mpp_domains_get_compute_domain( Ice%domain, is, ie, js, je ) kd = size(Ice%part_size,3) - allocate( atmos_ice_boundary%u_flux(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%v_flux(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%u_star(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%t_flux(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%q_flux(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%lw_flux(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%lprec(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%fprec(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%dhdt(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%dedt(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%drdt(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%coszen(is:ie,js:je,kd) ) - allocate( atmos_ice_boundary%p(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%u_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%v_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%u_star(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%t_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%q_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%lw_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%lprec(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%fprec(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%dedt(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%drdt(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%coszen(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0 ) ! initialize boundary values for override experiments (mjh) - atmos_ice_boundary%u_flux=0.0 - atmos_ice_boundary%v_flux=0.0 - atmos_ice_boundary%u_star=0.0 - atmos_ice_boundary%t_flux=0.0 - atmos_ice_boundary%q_flux=0.0 - atmos_ice_boundary%lw_flux=0.0 - atmos_ice_boundary%sw_flux_vis_dir=0.0 - atmos_ice_boundary%sw_flux_vis_dif=0.0 - atmos_ice_boundary%sw_flux_nir_dir=0.0 - atmos_ice_boundary%sw_flux_nir_dif=0.0 - atmos_ice_boundary%sw_down_vis_dir=0.0 - atmos_ice_boundary%sw_down_vis_dif=0.0 - atmos_ice_boundary%sw_down_nir_dir=0.0 - atmos_ice_boundary%sw_down_nir_dif=0.0 - atmos_ice_boundary%lprec=0.0 - atmos_ice_boundary%fprec=0.0 - atmos_ice_boundary%dhdt=0.0 - atmos_ice_boundary%dedt=0.0 - atmos_ice_boundary%drdt=0.0 - atmos_ice_boundary%coszen=0.0 - atmos_ice_boundary%p=0.0 - - ! allocate fields for extra fluxes - ! Copying initialized gas fluxes from exchange grid to atmosphere_ice boundary - - call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & + + !> Copy gas fluxes from exchange grid to atmosphere_ice boundary + call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & mod_name, Ice%axes, Time, suffix = '_atm_ice') - !--- Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two - !--- coupler_type_copy calls are moved from ice_ocean_flux_init to here. - if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) & - call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, (/is,is,ie,ie/), & - (/js,js,je,je/), (/1, kd/), suffix = '_ice') + ! Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two + ! coupler_type_copy calls are moved from ice_ocean_flux_init to here. + if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) then + call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, [is,is,ie,ie], [js,js,je,je], [1, kd], & + suffix = '_ice') + end if + call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) - - !allocate land_ice_atmos_boundary + + !> Initialize land_ice_atmos_boundary call fms_mpp_domains_get_compute_domain( Atm%domain, is, ie, js, je ) - allocate( land_ice_atmos_boundary%t(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%t_ocean(is:ie,js:je) )! Joseph: surf ocean temp - allocate( land_ice_atmos_boundary%u_ref(is:ie,js:je) ) ! bqx - allocate( land_ice_atmos_boundary%v_ref(is:ie,js:je) ) ! bqx - allocate( land_ice_atmos_boundary%t_ref(is:ie,js:je) ) ! cjg: PBL depth mods - allocate( land_ice_atmos_boundary%q_ref(is:ie,js:je) ) ! cjg: PBL depth mods - allocate( land_ice_atmos_boundary%albedo(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%land_frac(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%dt_t(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr) ) - allocate( land_ice_atmos_boundary%u_flux(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%v_flux(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%dtaudu(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%dtaudv(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%u_star(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%b_star(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%q_star(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%t(is:ie,js:je), source=273.0 ) + allocate( land_ice_atmos_boundary%t_ocean(is:ie,js:je), source=200.0 )! Joseph: surf ocean temp + allocate( land_ice_atmos_boundary%u_ref(is:ie,js:je), source=0.0 )! bqx + allocate( land_ice_atmos_boundary%v_ref(is:ie,js:je), source=0.0 ) ! bqx + allocate( land_ice_atmos_boundary%t_ref(is:ie,js:je), source=273.0 ) ! cjg: PBL depth mods + allocate( land_ice_atmos_boundary%q_ref(is:ie,js:je), source=0.0 ) ! cjg: PBL depth mods + allocate( land_ice_atmos_boundary%albedo(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%land_frac(is:ie,js:je, source=0.0) ) + allocate( land_ice_atmos_boundary%dt_t(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr), source=0.0 ) + allocate( land_ice_atmos_boundary%u_flux(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%v_flux(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%dtaudu(is:ie,js:je), source=0.0) + allocate( land_ice_atmos_boundary%dtaudv(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%u_star(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%b_star(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%q_star(is:ie,js:je), source=0.0 ) #ifndef use_AM3_physics - allocate( land_ice_atmos_boundary%shflx(is:ie,js:je) )!miz - allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je) )!miz + allocate( land_ice_atmos_boundary%shflx(is:ie,js:je), source=0.0 )!miz + allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je), source=0.0 )!miz #endif - allocate( land_ice_atmos_boundary%wind(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%thv_atm(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%thv_surf(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%rough_mom(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%rough_heat(is:ie,js:je) ) ! Kun - allocate( land_ice_atmos_boundary%frac_open_sea(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm) ) + allocate( land_ice_atmos_boundary%wind(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%thv_atm(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%thv_surf(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%rough_mom(is:ie,js:je), source=0.01 ) + allocate( land_ice_atmos_boundary%rough_heat(is:ie,js:je), surce=0.01 ) ! Kun + allocate( land_ice_atmos_boundary%frac_open_sea(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0 ) - ! initialize boundary values for override experiments (mjh) - land_ice_atmos_boundary%t=273.0 - land_ice_atmos_boundary%t_ocean=200.0 - land_ice_atmos_boundary%u_ref=0.0 ! bqx - land_ice_atmos_boundary%v_ref=0.0 ! bqx - land_ice_atmos_boundary%t_ref=273.0 ! cjg: PBL depth mods - land_ice_atmos_boundary%q_ref=0.0 ! cjg: PBL depth mods - land_ice_atmos_boundary%albedo=0.0 - land_ice_atmos_boundary%albedo_vis_dir=0.0 - land_ice_atmos_boundary%albedo_nir_dir=0.0 - land_ice_atmos_boundary%albedo_vis_dif=0.0 - land_ice_atmos_boundary%albedo_nir_dif=0.0 - land_ice_atmos_boundary%land_frac=0.0 - land_ice_atmos_boundary%dt_t=0.0 - land_ice_atmos_boundary%dt_tr=0.0 - land_ice_atmos_boundary%u_flux=0.0 - land_ice_atmos_boundary%v_flux=0.0 - land_ice_atmos_boundary%dtaudu=0.0 - land_ice_atmos_boundary%dtaudv=0.0 - land_ice_atmos_boundary%u_star=0.0 - land_ice_atmos_boundary%b_star=0.0 - land_ice_atmos_boundary%q_star=0.0 - land_ice_atmos_boundary%gex_lnd2atm=0.0 -#ifndef use_AM3_physics - land_ice_atmos_boundary%shflx=0.0 - land_ice_atmos_boundary%lhflx=0.0 -#endif - land_ice_atmos_boundary%wind=0.0 - land_ice_atmos_boundary%thv_atm=0.0 - land_ice_atmos_boundary%thv_surf=0.0 - land_ice_atmos_boundary%rough_mom=0.01 - land_ice_atmos_boundary%rough_heat=0.01 - land_ice_atmos_boundary%frac_open_sea=0.0 - - ! allocate fields for extra tracers - ! The first call is no longer necessary, the fluxes will be passed by the land module - ! The 2nd call is useful in the case of a ocean model only simulation - ! - call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & + !> Allocate fields for extra tracers + call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & mod_name, Atm%axes(1:2), Time, suffix = '_atm') - + + !> Set nxc_ice and nyc_ice if( Ice%pe) then call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) nk_ice = size(Ice%part_size,3) endif + !> Set nxc_land nyc_land if( Land%pe) then call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) endif @@ -813,231 +793,265 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound end subroutine atm_land_ice_flux_exchange_init !####################################################################### - !> \brief Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. - !! - !! - !! The following quantities in the land_ice_atmos_boundary_type are computed: + !> \brief Computes explicit fluxes and derivatives that will be used to compute an implicit flux correction. + !! The following quantities inland_ice_atmos_boundary_type are computed for exchange between land and ice to atmos: !! !!
-  !!         t_surf_atm = surface temperature (used for radiation)    (K)
-  !!         albedo_atm = surface albedo      (used for radiation)    (nondimensional)
-  !!      rough_mom_atm = surface roughness for momentum (m)
-  !!      land_frac_atm = fractional area of land beneath an atmospheric
-  !!                      grid box
-  !!         dtaudu_atm, dtaudv_atm = derivatives of wind stress w.r.t. the
-  !!                                  lowest level wind speed  (Pa/(m/s))
-  !!         flux_u_atm = zonal wind stress  (Pa)
-  !!         flux_v_atm = meridional wind stress (Pa)
-  !!         u_star_atm = friction velocity (m/s)
-  !!         b_star_atm = buoyancy scale    (m2/s)
+  !!   t_surf_atm: surface temperature used for radiation [K]
+  !!   albedo_atm: surface albedo used for radiation  [dimensionless]
+  !!   rough_mom_atm: surface roughness for momentum [m]
+  !!   land_frac_atm: fractional area of land beneath an atmospheric grid box
+  !!   dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)]
+  !!   flux_u_atm: zonal wind stress  [Pa]
+  !!   flux_v_atm: meridional wind stress [Pa]
+  !!   u_star_atm: friction velocity [m/s]
+  !!   b_star_atm: buoyancy scale  [m2/s]
   !! 
+ !! + !! Overrides field values, puts them on the exchange grid, !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude !! of surface stress divided by density of air at the surface, !! and `u_star*b_star` is the buoyancy flux at the surface. - !! - !! \throw FATAL, "must call atm_land_ice_flux_exchange_init first" - !! atm_land_ice_flux_exchange_init has not been called before calling sfc_boundary_layer. subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ) - real, intent(in) :: dt !< Time step - type(FmsTime_type), intent(in) :: Time !< Current time - type(atmos_data_type), intent(inout) :: Atm !< A derived data type to specify atmosphere boundary data - type(land_data_type), intent(inout) :: Land !< A derived data type to specify land boundary data - type(ice_data_type), intent(inout) :: Ice !< A derived data type to specify ice boundary data - type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary !< A derived data type to specify - !! properties and fluxes passed from - !! exchange grid to the atmosphere, - !! land and ice - ! ---- local vars ---------------------------------------------------------- + implicit none + real, intent(in) :: dt + !< timestep + type(FmsTime_type), intent(in) :: Time + !< current model time + type(atmos_data_type), intent(inout) :: Atm + !< derived type to specify atmosphere boundary data + type(land_data_type), intent(inout) :: Land + !< derived type to specify land boundary data + type(ice_data_type), intent(inout) :: Ice + !< derived data type to specify ice boundary data + type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary + !< derived data type to specify properties and fluxes passed between land and ice to atmos + real, dimension(n_xgrid_sfc) :: & - ex_albedo, & - ex_albedo_vis_dir, & - ex_albedo_nir_dir, & - ex_albedo_vis_dif, & - ex_albedo_nir_dif, & - ex_land_frac, & - ex_t_atm, & - ex_p_atm, & - ex_u_atm, ex_v_atm, & - ex_gust, & - ex_t_surf4, & - ex_u_surf, ex_v_surf, & - ex_rough_mom, ex_rough_heat, ex_rough_moist, & - ex_rough_scale,& - ex_q_star, & - ex_thv_atm, ex_thv_surf, & - ex_cd_q, & - ex_ref, ex_ref_u, ex_ref_v, ex_u10, & - ex_ref2, & - ex_t_ref, & - ex_qs_ref, & - ex_qs_ref_cmip, & - ex_del_m, & - ex_del_h, & - ex_del_q, & + ex_albedo, & + ex_albedo_vis_dir, & + ex_albedo_nir_dir, & + ex_albedo_vis_dif, & + ex_albedo_nir_dif, & + ex_land_frac, & + ex_t_atm, & + ex_p_atm, & + ex_u_atm, & + ex_v_atm, & + ex_gust, & + ex_t_surf4, & + ex_u_surf, & + ex_v_surf, & + ex_rough_mom, & + ex_rough_heat, & + ex_rough_moist, & + ex_rough_scale, & + ex_q_star, & + ex_thv_atm, & + ex_thv_surf, & + ex_cd_q, & + ex_ref, & + ex_ref_u, & + ex_ref_v, & + ex_u10, & + ex_ref2, & + ex_t_ref, & + ex_qs_ref, & + ex_qs_ref_cmip, & + ex_del_m, & + ex_del_h, & + ex_del_q, & ex_frac_open_sea real :: rho - real, dimension(n_xgrid_sfc,n_exch_tr) :: ex_tr_atm, & !< concentration of tracer at bottom level - ex_tr_ref !< concentration of tracer at reference height - ! jgj: added for co2_atm diagnostic - real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr + + real, dimension(n_xgrid_sfc,n_exch_tr) :: & + ex_tr_atm, & !< tracer concentration at lowest atmospheric level on exchange grid + ex_tr_ref !< tracer concentration at reference height on exchange grid + + real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic + real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm + #ifndef _USE_LEGACY_LAND_ - real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2)) :: diag_land - real, dimension(size(Land%t_ca, 1)) :: diag_land_ug, tile_size_ug - real, dimension(nxc_lnd,nyc_lnd) :: diag_land_sg, tile_size_sg - logical, dimension(size(Land%t_ca, 1)) :: mask_ug - logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg + real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2)) :: diag_land + real, dimension(size(Land%t_ca, 1)) :: diag_land_ug, tile_size_ug + real, dimension(nxc_lnd, nyc_lnd) :: diag_land_sg, tile_size_sg + logical, dimension(size(Land%t_ca, 1)) :: mask_ug + logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg integer :: k #else - real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land + real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land #endif - real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea - real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: tmp_open_sea - real :: zrefm, zrefh + + real, dimension(size(Ice%t_surf,1), size(Ice%t_surf,2), size(Ice%t_surf,3)) :: sea + real, dimension(size(Ice%albedo,1), size(Ice%albedo,2), size(Ice%albedo,3)) :: tmp_open_sea + + real :: & + zrefm, & + zrefh + logical :: used - character(32) :: tr_name, tr_units ! tracer name - integer :: tr, n, m ! tracer indices - integer :: i - integer :: is,ie,l,j - integer :: isc,iec,jsc,jec - integer :: n_gex + character(32) :: & + tr_name, & + tr_units ! tracer name + + integer :: & + tr, & + n, & + m ! tracer indices + + integer :: & + is, & + ie, & + l, & + j, & + i + integer :: & + isc, & + iec, & + jsc, & + jec - real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm + integer :: n_gex + + real, dimension(n_xgrid_sfc, n_gex_lnd2atm) :: ex_gex_lnd2atm ! [1] check that the module was initialized if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & 'must call atm_land_ice_flux_exchange_init first', FATAL) + !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(sfcClock) - ! [2] allocate storage for variables that are also used in flux_up_to_atmos + + ! [2] allocate module arrays for variables that are also used in flux_up_to_atmos allocate ( & - ex_t_surf (n_xgrid_sfc), & + ex_t_surf(n_xgrid_sfc), & ex_t_surf_miz(n_xgrid_sfc), & - ex_p_surf (n_xgrid_sfc), & - ex_slp (n_xgrid_sfc), & - ex_t_ca (n_xgrid_sfc), & + ex_p_surf(n_xgrid_sfc), & + ex_slp(n_xgrid_sfc), & + ex_t_ca(n_xgrid_sfc), & ex_dhdt_surf(n_xgrid_sfc), & ex_dedt_surf(n_xgrid_sfc), & ex_dqsatdt_surf(n_xgrid_sfc), & ex_drdt_surf(n_xgrid_sfc), & - ex_dhdt_atm (n_xgrid_sfc), & - ex_flux_t (n_xgrid_sfc), & - ex_flux_lw (n_xgrid_sfc), & - ex_drag_q (n_xgrid_sfc), & - ex_avail (n_xgrid_sfc), & + ex_dhdt_atm(n_xgrid_sfc), & + ex_flux_t(n_xgrid_sfc), & + ex_flux_lw(n_xgrid_sfc), & + ex_drag_q(n_xgrid_sfc), & + ex_avail(n_xgrid_sfc), & ex_f_t_delt_n(n_xgrid_sfc), & - - ex_tr_surf (n_xgrid_sfc, n_exch_tr), & - ex_dfdtr_surf (n_xgrid_sfc, n_exch_tr), & - ex_dfdtr_atm (n_xgrid_sfc, n_exch_tr), & - ex_flux_tr (n_xgrid_sfc, n_exch_tr), & - ex_f_tr_delt_n (n_xgrid_sfc, n_exch_tr), & - ex_e_tr_n (n_xgrid_sfc, n_exch_tr), & + ex_tr_surf(n_xgrid_sfc, n_exch_tr), & + ex_dfdtr_surf(n_xgrid_sfc, n_exch_tr), & + ex_dfdtr_atm(n_xgrid_sfc, n_exch_tr), & + ex_flux_tr(n_xgrid_sfc, n_exch_tr), & + ex_f_tr_delt_n(n_xgrid_sfc, n_exch_tr), & + ex_e_tr_n(n_xgrid_sfc, n_exch_tr), & ex_con_atm(n_xgrid_sfc), & - ex_tr_con_ref(n_xgrid_sfc, n_exch_tr), & ex_tr_con_atm(n_xgrid_sfc, n_exch_tr), & - ! MOD these were moved from local ! so they can be passed to flux down - ex_flux_u(n_xgrid_sfc), & - ex_flux_v(n_xgrid_sfc), & - ex_dtaudu_atm(n_xgrid_sfc),& - ex_dtaudv_atm(n_xgrid_sfc),& - ex_seawater(n_xgrid_sfc), & - + !{ + ex_flux_u(n_xgrid_sfc), & + ex_flux_v(n_xgrid_sfc), & + ex_dtaudu_atm(n_xgrid_sfc), & + ex_dtaudv_atm(n_xgrid_sfc), & + ex_seawater(n_xgrid_sfc), & + !} ! values added for LM3 - ex_cd_t (n_xgrid_sfc), & - ex_cd_m (n_xgrid_sfc), & - ex_b_star (n_xgrid_sfc), & - ex_u_star (n_xgrid_sfc), & - ex_wind (n_xgrid_sfc), & - ex_z_atm (n_xgrid_sfc), & - - ex_e_t_n (n_xgrid_sfc), & - ex_e_q_n (n_xgrid_sfc), & - ex_land (n_xgrid_sfc) ) + !{ + ex_cd_t(n_xgrid_sfc), & + ex_cd_m(n_xgrid_sfc), & + ex_b_star(n_xgrid_sfc), & + ex_u_star(n_xgrid_sfc), & + ex_wind(n_xgrid_sfc), & + ex_z_atm(n_xgrid_sfc), & + ex_e_t_n(n_xgrid_sfc), & + ex_e_q_n(n_xgrid_sfc), & + ex_land(n_xgrid_sfc) & + !} + ) #ifdef SCM allocate ( & ex_dhdt_surf_forland(n_xgrid_sfc), & ex_dedt_surf_forland(n_xgrid_sfc), & - ex_dedq_surf_forland(n_xgrid_sfc) ) + ex_dedq_surf_forland(n_xgrid_sfc) & + ) #endif ex_p_surf = 1.0 - ! Actual allocation of exchange fields for ocean_ice boundary - do n = 1, ex_gas_fields_ice%num_bcs !{ - do m = 1, ex_gas_fields_ice%bc(n)%num_fields !{ - if (associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then !{ + + + !> Allocate fms/coupler type for gas field exchange between ocean and ice + do n = 1, ex_gas_fields_ice%num_bcs + do m = 1, ex_gas_fields_ice%bc(n)%num_fields + if (associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.' ) - endif !} - allocate ( ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc) ) - ex_gas_fields_ice%bc(n)%field(m)%values = 0.0 - enddo !} m - enddo !} n + endif + allocate ( ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0 ) + enddo + enddo - do n = 1, ex_gas_fields_atm%num_bcs !{ - do m = 1, ex_gas_fields_atm%bc(n)%num_fields !{ - if (associated(ex_gas_fields_atm%bc(n)%field(m)%values)) then !{ + !> Allocate fms/coupler type for gas field exchange with atmosphere + do n = 1, ex_gas_fields_atm%num_bcs + do m = 1, ex_gas_fields_atm%bc(n)%num_fields + if (associated(ex_gas_fields_atm%bc(n)%field(m)%values)) then call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.' ) - endif !} - allocate ( ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc) ) - ex_gas_fields_atm%bc(n)%field(m)%values = 0.0 - enddo !} m - enddo !} n + endif + allocate ( ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0 ) + enddo + enddo - do n = 1, ex_gas_fluxes%num_bcs !{ - do m = 1, ex_gas_fluxes%bc(n)%num_fields !{ - if (associated(ex_gas_fluxes%bc(n)%field(m)%values)) then !{ + !> Allocate additional gas flux fields for intermediate calculations + do n = 1, ex_gas_fluxes%num_bcs + do m = 1, ex_gas_fluxes%bc(n)%num_fields + if (associated(ex_gas_fluxes%bc(n)%field(m)%values)) then call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.' ) - endif !} - allocate ( ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc) ) - ex_gas_fluxes%bc(n)%field(m)%values = 0.0 - enddo !} m - enddo !} n - - ! - ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers + endif + allocate ( ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0 ) + enddo + enddo + + ! REMOVE + ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers ! For ocean only model - ! call atmos_get_fields_for_flux(Atm) - ! [3] initialize some values on exchange grid: this is actually a safeguard - ! against using undefined values + ! [3] Initialize fields on exchange grid !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & - !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, & - !$OMP ex_albedo_vis_dif,ex_albedo_nir_dif,ex_cd_t,ex_cd_m, & - !$OMP ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) & - !$OMP private(is,ie,n_gex) + !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, ex_albedo_vis_dif,ex_albedo_nir_dif,& + !$OMP ex_cd_t,ex_cd_m, ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) private(is,ie,n_gex) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - do i = is,ie - ex_t_surf(i) = 200. - ex_u_surf(i) = 0. - ex_v_surf(i) = 0. + is = block_start(l) + ie = block_end(l) + do i = is, ie + ex_t_surf(i) = 200. + ex_u_surf(i) = 0. + ex_v_surf(i) = 0. ex_albedo(i) = 0. ! bw ex_albedo_vis_dir(i) = 0. ex_albedo_nir_dir(i) = 0. ex_albedo_vis_dif(i) = 0. ex_albedo_nir_dif(i) = 0. - !---- do not use if relax time /= 0 ---- + ! do not use if relax time /= 0 ex_cd_t(i) = 0.0 ex_cd_m(i) = 0.0 ex_cd_q(i) = 0.0 - ex_frac_open_sea(i) =0. + ex_frac_open_sea(i) = 0. end do - do n_gex=1,n_gex_lnd2atm - do i = is,ie - ex_gex_lnd2atm(i,n_gex) = 0.0 - enddo + do n_gex = 1, n_gex_lnd2atm + do i = is, ie + ex_gex_lnd2atm(i,n_gex) = 0.0 + enddo enddo enddo - !----------------------------------------------------------------------- + + !> prepare fields for exchange + !! Override fields (accordingly to data_table) !Balaji: data_override stuff moved from coupler_main call fms_data_override ('ATM', 't_bot', Atm%t_bot , Time) call fms_data_override ('ATM', 'z_bot', Atm%z_bot , Time) @@ -1047,7 +1061,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_data_override ('ATM', 'p_surf', Atm%p_surf, Time) call fms_data_override ('ATM', 'slp', Atm%slp, Time) call fms_data_override ('ATM', 'gust', Atm%gust, Time) - ! + + !> Convert units ! jgj: 2008/07/18 ! FV atm advects tracers in moist mass mixing ratio: kg co2 /(kg air + kg water) ! cubed sphere advects moist mass mixing ratio also (per SJ) @@ -1055,25 +1070,22 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! and land (co2_bot) should be in dry vmr (mol/mol) units. ! ATM: co2_flux_pcair_atm : to override atm_btm layer to send to ocean ! ATM: co2_bot : to override atm_btm layer to send to land - ! data override for co2 to be passed to land/photosynthesis (co2_bot) ! land co2 data override is in dry_vmr units, so convert to wet_mmr for land model. ! co2mmr = (wco2/wair) * co2vmr; wet_mmr = dry_mmr * (1-Q) - ! - do tr = 1,n_atm_tr + ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units + do tr = 1, n_atm_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr, tr_name ) call fms_data_override('ATM', trim(tr_name)//'_bot', Atm%tr_bot(:,:,tr), Time, override=used) ! conversion for land co2 data override from dry vmr to moist mmr - if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then - ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units + if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then if ( id_co2_bot > 0 ) used = fms_diag_send_data ( id_co2_bot, Atm%tr_bot(:,:,tr), Time ) - isc = lbound(Atm%tr_bot,1); iec = ubound(Atm%tr_bot,1) jsc = lbound(Atm%tr_bot,2); jec = ubound(Atm%tr_bot,2) !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Atm,tr,isphum) do j = jsc, jec do i = isc, iec - Atm%tr_bot(i,j,tr) = Atm%tr_bot(i,j,tr) * (WTMCO2/WTMAIR) * & + Atm%tr_bot(i,j,tr) = Atm%tr_bot(i,j,tr) * (WTMCO2/WTMAIR) * & (1.0 - Atm%tr_bot(i,j,isphum)) enddo enddo @@ -1081,54 +1093,63 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo ! data override for co2 to be passed to ocean (co2_flux_pcair_atm) - ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux - ! from moist mmr to dry vmr. - do n = 1, atm%fields%num_bcs !{ - do m = 1, atm%fields%bc(n)%num_fields !{ - call fms_data_override('ATM', atm%fields%bc(n)%field(m)%name, & + ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux from moist mmr to dry vmr. + do n = 1, atm%fields%num_bcs + do m = 1, atm%fields%bc(n)%num_fields + + call fms_data_override('ATM', atm%fields%bc(n)%field(m)%name, & atm%fields%bc(n)%field(m)%values, Time, override = atm%fields%bc(n)%field(m)%override) + ex_gas_fields_atm%bc(n)%field(m)%override = atm%fields%bc(n)%field(m)%override - ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic - if ( atm%fields%bc(n)%field(m)%override .and. & + + ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic + if ( atm%fields%bc(n)%field(m)%override .and. & fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'co2_flux_pcair_atm') then if( id_co2_flux_pcair_atm > 0 ) & - used = fms_diag_send_data ( id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) + used = fms_diag_send_data ( id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) endif + ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic if ( atm%fields%bc(n)%field(m)%override .and. & fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'o2_flux_pcair_atm') then if( id_o2_flux_pcair_atm > 0 ) & - used = fms_diag_send_data ( id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) + used = fms_diag_send_data ( id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) endif - enddo !} m - enddo !} n - do n = 1, atm%fields%num_bcs !{ - if (atm%fields%bc(n)%use_atm_pressure) then !{ - if (.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then !{ + enddo + enddo + + do n = 1, atm%fields%num_bcs + if (atm%fields%bc(n)%use_atm_pressure) then + if (.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values = Atm%p_surf - endif !} - endif !} - enddo !} n - call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time) - call fms_data_override ('ICE', 'rough_mom', Ice%rough_mom, Time) - call fms_data_override ('ICE', 'rough_heat', Ice%rough_heat, Time) + endif + endif + enddo + + !> override ice fields + call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time) + call fms_data_override ('ICE', 'rough_mom', Ice%rough_mom, Time) + call fms_data_override ('ICE', 'rough_heat', Ice%rough_heat, Time) call fms_data_override ('ICE', 'rough_moist',Ice%rough_moist, Time) - call fms_data_override ('ICE', 'albedo', Ice%albedo, Time) + call fms_data_override ('ICE', 'albedo', Ice%albedo, Time) call fms_data_override ('ICE', 'albedo_vis_dir', Ice%albedo_vis_dir, Time) call fms_data_override ('ICE', 'albedo_nir_dir', Ice%albedo_nir_dir, Time) call fms_data_override ('ICE', 'albedo_vis_dif', Ice%albedo_vis_dif, Time) call fms_data_override ('ICE', 'albedo_nir_dif', Ice%albedo_nir_dif, Time) - call fms_data_override ('ICE', 'u_surf', Ice%u_surf, Time) - call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time) + call fms_data_override ('ICE', 'u_surf', Ice%u_surf, Time) + call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time) call fms_coupler_type_data_override('ICE', Ice%ocean_fields, Time) call fms_coupler_type_send_data(Ice%ocean_fields, Time) - call FMS_DATA_OVERRIDE_ ('LND', 't_surf', Land%t_surf, Time) - call FMS_DATA_OVERRIDE_ ('LND', 't_ca', Land%t_ca, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'rough_mom', Land%rough_mom, Time) + + + !> land data override + call FMS_DATA_OVERRIDE_ ('LND', 't_surf', Land%t_surf, Time) + call FMS_DATA_OVERRIDE_ ('LND', 't_ca', Land%t_ca, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'rough_mom', Land%rough_mom, Time) call FMS_DATA_OVERRIDE_ ('LND', 'rough_heat', Land%rough_heat, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo', Land%albedo, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo', Land%albedo, Time) - ! tracer data override + ! land tracer data override do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) #ifndef _USE_LEGACY_LAND_ @@ -1137,35 +1158,37 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) #endif enddo - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dir', Land%albedo_vis_dir,Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir,Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif,Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif,Time) - - !---- put atmosphere quantities onto exchange grid ---- + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dir', Land%albedo_vis_dir, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) + + !> put atmosphere quantities onto exchange grid ---- ! [4] put all the qantities we need onto exchange grid ! [4.1] put atmosphere quantities onto exchange grid #ifdef use_AM3_physics if (do_forecast) then call fms_xgrid_put_to_xgrid (Atm%Surf_diff%sst_miz , 'ATM', ex_t_surf_miz, & - xmap_sfc, remap_method=remap_method, complete=.false.) + xmap_sfc, remap_method=remap_method, complete=.false.) endif #endif - ! put atmosphere bottom layer tracer data onto exchange grid + + !> put tracer at the lowest atmospheric level onto the exchange grid do tr = 1,n_exch_tr call fms_xgrid_put_to_xgrid (Atm%tr_bot(:,:,tr_table(tr)%atm) , 'ATM', ex_tr_atm(:,tr), xmap_sfc, & remap_method=remap_method, complete=.false.) enddo - do n = 1, Atm%fields%num_bcs !{ - if(ex_gas_fields_atm%bc(n)%flux_type .ne. 'air_sea_deposition') then - do m = 1, Atm%fields%bc(n)%num_fields !{ - call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & - ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.) - enddo !} m - endif - enddo !} n + do n = 1, Atm%fields%num_bcs + if(ex_gas_fields_atm%bc(n)%flux_type .ne. 'air_sea_deposition') then + do m = 1, Atm%fields%bc(n)%num_fields !{ + call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & + ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.) + enddo + endif + enddo + !> put atmospheric fields onto the exchange grid call fms_xgrid_put_to_xgrid (Atm%t_bot , 'ATM', ex_t_atm , xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%z_bot , 'ATM', ex_z_atm , xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%p_bot , 'ATM', ex_p_atm , xmap_sfc, remap_method=remap_method, complete=.false.) @@ -1181,11 +1204,11 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! diagnostic, since surface_flux calculations distinguish between land and ! not-land anyway. - ! prefill surface values with atmospheric values before putting tracers + !> prefill surface values on the exchange grid with atmospheric values before putting tracers ! from ice or land, so that gradient is 0 if tracers are not filled ex_tr_surf = ex_tr_atm - ! [4.2] put ice quantities onto exchange grid + !>put ice quantities onto exchange grid ! (assume that ocean quantites are stored in no ice partition) ! (note: ex_avail is true at ice and ocean points) call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) @@ -1200,27 +1223,28 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_xgrid_put_to_xgrid (Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc) call fms_xgrid_put_to_xgrid (Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc) - tmp_open_sea = 0. + tmp_open_sea = 0. tmp_open_sea(:,:,1) = 1. call fms_xgrid_put_to_xgrid ( tmp_open_sea, 'OCN', ex_frac_open_sea, xmap_sfc) - do n = 1, ice%ocean_fields%num_bcs !{ - do m = 1, ice%ocean_fields%bc(n)%num_fields !{ - call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', & + do n = 1, ice%ocean_fields%num_bcs + do m = 1, ice%ocean_fields%bc(n)%num_fields + call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', & ex_gas_fields_ice%bc(n)%field(m)%values, xmap_sfc) - enddo !} m - enddo !} n - - !Generate a wet mask array on the xgrid which is: - ! 1: where there is any open water in the OCN grid cell - ! 0: where there is no open water in the OCN grid cell, i.e., totally ice covered or land + enddo + enddo + + !Generate a wet mask array on the xgrid where + ! 1 if there is any open water in the OCN grid cell + ! 0 if there is no open water in the OCN grid cell, i.e., totally ice covered or land !This is a dynamic wet mask and particularly is not the same as a static land mask because seaice fractions change ! as the model runs. !One way to create such a mask is if 'OCN' puts an array on the xgrid which is ! 1 on every OCN grid cell with the 3rd index equal to 1 (ice category 1 corresponds to open water in the grid cell) ! 0 otherwise !This wet mask will be used to limit the air-sea flux exchange to areas that are not totally covered by seaice. - sea = 0.0; sea(:,:,1) = 1.0; + sea = 0.0 + sea(:,:,1) = 1.0 ex_seawater = 0.0 call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) From 775511aa4c4f5c2068dc5b2c3d38c7fd44c48893 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Wed, 18 Feb 2026 15:54:23 -0500 Subject: [PATCH 14/31] save --- full/atm_land_ice_flux_exchange.F90 | 828 +++++++++++++--------------- 1 file changed, 373 insertions(+), 455 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 7e1f6845..50840acc 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -827,52 +827,54 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !< derived data type to specify ice boundary data type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary !< derived data type to specify properties and fluxes passed between land and ice to atmos - + + !> quantities on exchange grid real, dimension(n_xgrid_sfc) :: & - ex_albedo, & - ex_albedo_vis_dir, & - ex_albedo_nir_dir, & - ex_albedo_vis_dif, & - ex_albedo_nir_dif, & - ex_land_frac, & - ex_t_atm, & - ex_p_atm, & - ex_u_atm, & - ex_v_atm, & - ex_gust, & - ex_t_surf4, & - ex_u_surf, & - ex_v_surf, & - ex_rough_mom, & - ex_rough_heat, & - ex_rough_moist, & - ex_rough_scale, & - ex_q_star, & - ex_thv_atm, & - ex_thv_surf, & - ex_cd_q, & - ex_ref, & - ex_ref_u, & - ex_ref_v, & - ex_u10, & - ex_ref2, & + ex_albedo, & ! albedo + ex_albedo_vis_dir, & ! albedo for light with wavelength in visible region of the solar spectrum + ex_albedo_nir_dir, & ! albedo for light with wavelength in near-ir region of the solar spectrum + ex_albedo_vis_dif, & ! difference in albedo for light with wavelength in visible region of the solar spectrum + ex_albedo_nir_dif, & ! difference in albedo for light with wavelength in near-ir region of the solar spectrum + ex_land_frac, & ! fractional area of land in grid cell + ex_t_atm, & ! air temperature at the lowest atmospheric level + ex_p_atm, & ! pressure at the lowest atmospheric level + ex_u_atm, & ! u wind component at the lowest atmospheric level + ex_v_atm, & ! v wind component at the lowest atmospheric level + ex_gust, & ! gust scale + ex_t_surf4, & ! (surface temperature) ** 4 + ex_u_surf, & ! u wind component at Earth's surface + ex_v_surf, & ! v wind component at Earth's surface + ex_rough_mom, & ! momentum roughness length + ex_rough_heat, & ! heat roughness length + ex_rough_moist, & ! moisture roughness length + ex_rough_scale, & ! scale factor for topographic roughness calculation + ex_q_star, & ! turbulent moisture scale + ex_thv_atm, & ! surface area theta_v + ex_thv_surf, & ! surface theta_v + ex_cd_q, & ! moisture exchange coefficient + ex_ref, &! specific humidity at z_ref_heat + ex_ref_u, & ! zonal wind component at z_ref_mom + ex_ref_v, & ! meridional wind component at z_ref_mom + ex_u10, & !< zonal wind speed at 10m above the surface + ex_ref2, & ! ex_t_ref, & ex_qs_ref, & - ex_qs_ref_cmip, & - ex_del_m, & - ex_del_h, & - ex_del_q, & - ex_frac_open_sea + ex_qs_ref_cmip, & ! + ex_del_m, & ! reference height for interpolation factor for momentum + ex_del_h, & ! reference height interpolation factor for heat + ex_del_q, & ! reference height interpation factor for moisture + ex_frac_open_sea ! open-water mask, not used? - real :: rho + real :: rho real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_atm, & !< tracer concentration at lowest atmospheric level on exchange grid - ex_tr_ref !< tracer concentration at reference height on exchange grid + ex_tr_atm, & !< amount of tracer [mol?] at lowest atmospheric level on exchange grid + ex_tr_ref !< amount of tracer [mol?] at reference height on exchange grid real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic - real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm + !> temporary array to hold data + real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm #ifndef _USE_LEGACY_LAND_ real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2)) :: diag_land @@ -882,51 +884,41 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg integer :: k #else + !> temporary array to hold data real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land #endif + !> temporary array to hold data real, dimension(size(Ice%t_surf,1), size(Ice%t_surf,2), size(Ice%t_surf,3)) :: sea real, dimension(size(Ice%albedo,1), size(Ice%albedo,2), size(Ice%albedo,3)) :: tmp_open_sea real :: & - zrefm, & - zrefh + zrefm, & ! reference height for computing surface fluxes from Monin-Obukhov similarity theory + zrefh ! reference height for computing surface fluxes from Monin-Obukhov similarity theory - logical :: used + logical :: used !< returned value from data_override. if true, data was overwritten + character(32) :: & - tr_name, & - tr_units ! tracer name + tr_name, & !< tracer name as stored in tracer_manager (from tracer_table) + tr_units ! tracer unit as stored in tracer_manager - integer :: & - tr, & - n, & - m ! tracer indices - - integer :: & - is, & - ie, & - l, & - j, & - i - integer :: & - isc, & - iec, & - jsc, & - jec + integer :: tr, n, m ! tracer indices - integer :: n_gex + integer :: is, ie, isc, iec, jsc, jec !< domain indices + integer :: l, j, i, n_gex !< counters + !> array holding generic, non-tracer fields on exchange grid real, dimension(n_xgrid_sfc, n_gex_lnd2atm) :: ex_gex_lnd2atm - - ! [1] check that the module was initialized + + !> check if module was initialized if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & 'must call atm_land_ice_flux_exchange_init first', FATAL) - !Balaji + !Balaji, start clocks for profiling call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(sfcClock) - ! [2] allocate module arrays for variables that are also used in flux_up_to_atmos + !> allocate module level arrays to hold data on the exchange grid (deallocated in flux_up_to_atmos) allocate ( & ex_t_surf(n_xgrid_sfc), & ex_t_surf_miz(n_xgrid_sfc), & @@ -952,14 +944,11 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_con_atm(n_xgrid_sfc), & ex_tr_con_ref(n_xgrid_sfc, n_exch_tr), & ex_tr_con_atm(n_xgrid_sfc, n_exch_tr), & - ! MOD these were moved from local ! so they can be passed to flux down - !{ ex_flux_u(n_xgrid_sfc), & ex_flux_v(n_xgrid_sfc), & ex_dtaudu_atm(n_xgrid_sfc), & ex_dtaudv_atm(n_xgrid_sfc), & ex_seawater(n_xgrid_sfc), & - !} ! values added for LM3 !{ ex_cd_t(n_xgrid_sfc), & @@ -982,6 +971,38 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ) #endif + !> Initialize allocated arrays + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & + !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, ex_albedo_vis_dif,ex_albedo_nir_dif,& + !$OMP ex_cd_t,ex_cd_m, ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) private(is,ie,n_gex) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + ex_t_surf(i) = 200. + ex_u_surf(i) = 0. + ex_v_surf(i) = 0. + ex_albedo(i) = 0. ! bw + ex_albedo_vis_dir(i) = 0. + ex_albedo_nir_dir(i) = 0. + ex_albedo_vis_dif(i) = 0. + ex_albedo_nir_dif(i) = 0. + + ! do not use if relax time /= 0 + ex_cd_t(i) = 0.0 + ex_cd_m(i) = 0.0 + ex_cd_q(i) = 0.0 + ex_frac_open_sea(i) = 0. + end do + do n_gex = 1, n_gex_lnd2atm + do i = is, ie + ex_gex_lnd2atm(i,n_gex) = 0.0 + enddo + enddo + enddo + + + !> initialize surface pressure on exchange grid ex_p_surf = 1.0 @@ -1013,42 +1034,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar endif allocate ( ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0 ) enddo - enddo - - ! REMOVE - ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers - ! For ocean only model - ! call atmos_get_fields_for_flux(Atm) - - ! [3] Initialize fields on exchange grid - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & - !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, ex_albedo_vis_dif,ex_albedo_nir_dif,& - !$OMP ex_cd_t,ex_cd_m, ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) private(is,ie,n_gex) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - ex_t_surf(i) = 200. - ex_u_surf(i) = 0. - ex_v_surf(i) = 0. - ex_albedo(i) = 0. ! bw - ex_albedo_vis_dir(i) = 0. - ex_albedo_nir_dir(i) = 0. - ex_albedo_vis_dif(i) = 0. - ex_albedo_nir_dif(i) = 0. - - ! do not use if relax time /= 0 - ex_cd_t(i) = 0.0 - ex_cd_m(i) = 0.0 - ex_cd_q(i) = 0.0 - ex_frac_open_sea(i) = 0. - end do - do n_gex = 1, n_gex_lnd2atm - do i = is, ie - ex_gex_lnd2atm(i,n_gex) = 0.0 - enddo - enddo - enddo + enddo !> prepare fields for exchange !! Override fields (accordingly to data_table) @@ -1163,7 +1149,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time) call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) - !> put atmosphere quantities onto exchange grid ---- + !> put atmosphere quantities onto exchange grid ! [4] put all the qantities we need onto exchange grid ! [4.1] put atmosphere quantities onto exchange grid @@ -1208,7 +1194,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! from ice or land, so that gradient is 0 if tracers are not filled ex_tr_surf = ex_tr_atm - !>put ice quantities onto exchange grid + !> put ice quantities onto exchange grid ! (assume that ocean quantites are stored in no ice partition) ! (note: ex_avail is true at ice and ocean points) call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) @@ -1234,28 +1220,20 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo enddo - !Generate a wet mask array on the xgrid where - ! 1 if there is any open water in the OCN grid cell - ! 0 if there is no open water in the OCN grid cell, i.e., totally ice covered or land - !This is a dynamic wet mask and particularly is not the same as a static land mask because seaice fractions change - ! as the model runs. - !One way to create such a mask is if 'OCN' puts an array on the xgrid which is - ! 1 on every OCN grid cell with the 3rd index equal to 1 (ice category 1 corresponds to open water in the grid cell) - ! 0 otherwise - !This wet mask will be used to limit the air-sea flux exchange to areas that are not totally covered by seaice. + ! The wet mask is dynamic and is not the same as static land mask since seaice fractions change during model run + ! This wet mask will be used to limit the air-sea flux exchange to areas that are not totally covered by seaice. + + !> Initialize open-water mask where each OCN grid cells is open water (value of 1.0) sea = 0.0 sea(:,:,1) = 1.0 + + !> Generate ex_seawater (dynamic wet mask) that will be used to limit the air-sea flux exchange to areas + !! that are not totally covered by seaice. Note, xmap_sfc between land and ice is dynamic and changes + !! as seaice fraction changes during the model run [link to coupler_main]. Below call takes the updated + !! xmap_sfc and mark all open-water cells to be 1.0 ex_seawater = 0.0 call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) - !Question: Why is the above ex_seawater a dynamic mask array? - ! From its construction it looks like a static array of 1s and 0s ! - !Answer: The xmap_sfc is dynamic and changes as the model steps because it contains updated information about - ! seaice fractions. The updated array "ex_seawater" after the above "put" call will be 1 where there - ! is open water even if those grid cells where previously closed by seaice. - ! Particularly if we restrict xgrid calculations where ex_seawater==1 - ! only cells with (partially or totally) open water contribute and totally covered cells won't contribute. - !Not related to the above comments, it seems that the above ex_frac_open_sea could be replaced by ex_seawater !for code cleaning. !The following test does not print out anything for a fully coupled model. This asserts that @@ -1274,28 +1252,30 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! print*,'ex_seawater !1 or 0 ' ,ex_seawater(i) ! enddo !enddo + ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean - ! [4.3] put land quantities onto exchange grid ---- + !> assign ex_land holding exchange grid cells that are over land call fms_xgrid_some(xmap_sfc, ex_land, 'LND') #ifdef use_AM3_physics if (do_forecast) then - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) ex_t_ca(:) = ex_t_surf_miz(:) end if #endif - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo, 'LND', ex_albedo, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo, 'LND', ex_albedo, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) + ex_rough_scale = ex_rough_mom call FMS_XGRID_PUT_TO_XGRID_(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) @@ -1303,6 +1283,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call FMS_XGRID_PUT_TO_XGRID_ (Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc) end do + !> put land tracers on exchange grid do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then @@ -1312,13 +1293,12 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) #endif else - ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore - ! fluxes will be 0 + ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore fluxes will be 0 endif enddo ex_land_frac = 0.0 - call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) + call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) #ifdef SCM if (do_specified_land) then @@ -1348,60 +1328,46 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar end if #endif - ! [5] compute explicit fluxes and tendencies at all available points --- + ! [5] compute explicit fluxes and tendencies on exchange grid call fms_xgrid_some(xmap_sfc, ex_avail) - !$OMP parallel do default(none) shared(my_nblocks,ex_t_atm,ex_tr_atm,ex_u_atm,ex_v_atm, & - !$OMP ex_p_atm,ex_z_atm,ex_p_surf,ex_t_surf,ex_t_ca, & - !$OMP ex_tr_surf,ex_u_surf,ex_v_surf,ex_rough_mom, & - !$OMP ex_rough_heat,ex_rough_moist,ex_rough_scale, & - !$OMP ex_gust,ex_flux_t,ex_flux_tr,ex_flux_lw, & - !$OMP ex_flux_u,ex_flux_v,ex_cd_m,ex_cd_t,ex_cd_q, & - !$OMP ex_wind,ex_u_star,ex_b_star,ex_q_star, & - !$OMP ex_thv_atm,ex_thv_surf, & - !$OMP ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf, & - !$OMP ex_drdt_surf,ex_dhdt_atm,ex_dfdtr_atm, & - !$OMP ex_dtaudu_atm, ex_dtaudv_atm,dt,ex_land, & - !$OMP ex_seawater,ex_avail,block_start,block_end,isphum) & - !$OMP private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, & + !$OMP ex_p_atm, ex_z_atm, ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf, ex_u_surf, ex_v_surf, ex_rough_mom, & + !$OMP ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, ex_flux_t, ex_flux_tr, ex_flux_lw, & + !$OMP ex_flux_u, ex_flux_v, ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & + !$OMP ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf, ex_drdt_surf, ex_dhdt_atm, & + !$OMP ex_dfdtr_atm, ex_dtaudu_atm, ex_dtaudv_atm, dt, ex_land, ex_seawater, ex_avail, block_start, & + !$OMP block_end,isphum) private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) call surface_flux (& - ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie),ex_v_atm(is:ie),ex_p_atm(is:ie),ex_z_atm(is:ie),& - ex_p_surf(is:ie),ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), & - ex_u_surf(is:ie), ex_v_surf(is:ie), & - ex_rough_mom(is:ie), ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_rough_scale(is:ie), & - ex_gust(is:ie), & - ex_flux_t(is:ie), ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), & - ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), & - ex_wind(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & - ex_thv_atm(is:ie), ex_thv_surf(is:ie), & - ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), & - ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), & - dt, & - ex_land(is:ie), ex_seawater(is:ie) .gt. 0.0, ex_avail(is:ie) ) + ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), & + ex_z_atm(is:ie), ex_p_surf(is:ie), ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), & + ex_u_surf(is:ie), ex_v_surf(is:ie), ex_rough_mom(is:ie), ex_rough_heat(is:ie), & + ex_rough_moist(is:ie), ex_rough_scale(is:ie), ex_gust(is:ie), ex_flux_t(is:ie), & + ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), & + ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), ex_wind(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), & + ex_q_star(is:ie), ex_thv_atm(is:ie), ex_thv_surf(is:ie), ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), & + ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), & + ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), dt, ex_land(is:ie), & + (ex_seawater(is:ie) .gt. 0.0), ex_avail(is:ie) & + ) enddo #ifdef SCM ! Option to override surface fluxes for SCM if (do_specified_flux) then - call scm_surface_flux ( & - ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm, ex_p_atm, ex_z_atm, & - ex_p_surf,ex_t_surf, ex_t_ca, ex_tr_surf(:,isphum), & - ex_u_surf, ex_v_surf, & - ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, & - ex_gust, & - ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, & - ex_cd_m, ex_cd_t, ex_cd_q, & - ex_wind, ex_u_star, ex_b_star, ex_q_star, & - ex_thv_atm, ex_thv_surf, & - ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf(:,isphum), ex_drdt_surf, & - ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, & - dt, & - ex_land, ex_seawater .gt. 0.0, ex_avail, & - ex_dhdt_surf_forland, ex_dedt_surf_forland, ex_dedq_surf_forland ) - + ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm, ex_p_atm, ex_z_atm, & + ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf(:,isphum), ex_u_surf, ex_v_surf, & + ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, & + ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, & + ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & + ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf(:,isphum), ex_drdt_surf, & + ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, dt, & + (ex_land, ex_seawater .gt. 0.0, ex_avail), ex_dhdt_surf_forland, ex_dedt_surf_forland, & + ex_dedq_surf_forland & + ) endif #endif @@ -1409,15 +1375,13 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! call mpp_clock_end(fluxClock) zrefm = 10.0 zrefh = z_ref_heat - ! ---- optimize calculation ---- !$OMP parallel do default(shared) private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & - ex_rough_heat(is:ie), ex_rough_moist(is:ie), & - ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & - ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie) ) + is = block_start(l) + ie = block_end(l) + call fms_monin_obukhov_mo_profile(zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & + ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & + ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) do i = is,ie ex_u10(i) = 0. if(ex_avail(i)) then @@ -1426,265 +1390,260 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_u10(i) = sqrt(ex_ref_u(i)**2 + ex_ref_v(i)**2) endif enddo - do n = 1, ex_gas_fields_atm%num_bcs !{ - if (atm%fields%bc(n)%use_10m_wind_speed) then !{ - if (.not. ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override) then !{ + do n = 1, ex_gas_fields_atm%num_bcs + if (atm%fields%bc(n)%use_10m_wind_speed) then + if (.not. ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override) then do i = is,ie ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i) = ex_u10(i) enddo - endif !} - endif !} - enddo !} n - + endif + endif + enddo + !f1p: calculate atmospheric conductance to send to the land model do i=is,ie ex_con_atm(i) = ex_wind(i)*ex_cd_q(i) end do - - ! fill derivatives for all tracers - ! F = C0*u*rho*delta_q, C0*u*rho is the same for all tracers, copy from sphum + + !> Compute tracer flux where tracer flux = (C0*u*rho)*delta_q + !! slm: ex_dfdtr_surf(:,isphum) is set to zero over the ocean in call to surface_flux + !! and [so it is not appropriate to use for other tracers] <- why? + !! However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative + !! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux + !! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but + !! then this whole section will have to be changed. + !! HELP do tr = 1,n_exch_tr if (tr==isphum) cycle do i = is,ie - ! slm: ex_dfdtr_surf(:,isphum) is manipulated in surface_flux: it is set to - ! zero over the ocean, so it is not appropriate to use for other tracers. - ! However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative - ! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux - ! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but - ! then this whole section will have to be changed. - ex_dfdtr_atm (i,tr) = ex_dfdtr_atm (i,isphum) - ex_dfdtr_surf (i,tr) = -ex_dfdtr_atm (i,isphum) - ex_flux_tr (i,tr) = ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) + ex_dfdtr_atm(i, tr) = ex_dfdtr_atm(i, isphum) + ex_dfdtr_surf(i, tr) = -ex_dfdtr_atm(i, isphum) + ex_flux_tr(i,tr) = ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) enddo enddo - enddo ! end of block loop - + enddo + ! Combine explicit ocean flux and implicit land flux of extra flux fields. - - ! Calculate ocean explicit flux here + + !> compute fluxes in ocean gas fields (ex_gas_fluxes) resulting from exchange between atmosphere and ocean surface + !! and exchange between top of ice and ocean surface call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) - - do n = 1, ex_gas_fluxes%num_bcs !{ - if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then !{ - m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch - if (id_tr_mol_flux0(m) .gt. 0) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:),& - xmap_sfc) - used = fms_diag_send_data ( id_tr_mol_flux0(m), diag_atm, Time ) - end if - end if - end do - - + + do n = 1, ex_gas_fluxes%num_bcs + if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then + m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch + if (id_tr_mol_flux0(m) .gt. 0) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:), xmap_sfc) + used = fms_diag_send_data( id_tr_mol_flux0(m), diag_atm, Time) + end if + end if + end do + + ! The following statement is a concise version of what's following and worth ! looking into in the future. ! ex_flux_tr(:,itracer) = ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) ! where(ex_seawater.gt.0) ex_flux_tr(:,itracer) = F_ocn !$OMP parallel do default(shared) private(is,ie,m,tr_units,tr_name) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - do n = 1, ex_gas_fluxes%num_bcs !{ - if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then !{ + is = block_start(l) + ie = block_end(l) + do n = 1, ex_gas_fluxes%num_bcs + if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, tr_name, & - units=tr_units) - do i = is,ie !{ + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, & + tr_name, units=tr_units) + do i = is,ie if (ex_land(i)) cycle ! over land, don't do anything ! on ocean or ice cells, flux is explicit therefore we zero derivatives. - ex_dfdtr_atm(i,m) = 0.0 + !{ + ex_dfdtr_atm(i,m) = 0.0 ex_dfdtr_surf(i,m) = 0.0 - if (ex_seawater(i)>0.0) then + !} + if (ex_seawater(i)>0.0) then if (fms_mpp_lowercase(trim(tr_units)).eq."vmr") then - ! in mol/m2/s but from land model it should be in vmr * kg/m2/s - ! This was converting to dry vmr (as opposed to ambient vmr) - ! ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & - ! * WTMAIR*1.0e-3 & - ! / (1.-ex_tr_atm(i,isphum)) - ! - ! vmr * kg/m2/s = mol(X)/[m2 s] [1/mol(air) * mol(air)] * WTM(air) - ! - ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & - * 1.0e-3*WTMAIR*WTMH2O/((1.-ex_tr_atm(i,isphum))*WTMH2O+ex_tr_atm(i,isphum)*WTMAIR) - - !end if + ! if units in ambient "vmr*kg/m2/s" (as in land model), convert to mol/m2/s + ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & + * 1.0e-3*WTMAIR*WTMH2O/((1.-ex_tr_atm(i,isphum))*WTMH2O + ex_tr_atm(i,isphum)*WTMAIR) else ! jgj: convert to kg co2/m2/sec for atm - ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) * & - ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03 + ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & + * ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03 end if else ex_flux_tr(i,m) = 0.0 ! pure ice exchange cell - endif !} - enddo !} i - endif !} - enddo !} n - enddo ! l + endif + enddo + endif + enddo + enddo - ! [5.2] override tracer fluxes and derivatives + !> override tracer fluxes and derivatives in each component do tr = 1,n_exch_tr if( tr_table(tr)%atm == NO_TRACER ) cycle ! it should never happen, though call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) - ! [5.2.1] override tracer flux. Note that "sea" and "diag_land" are repeatedly used - ! as temporary storage for the values we are overriding fluxes and derivative with, - ! over ocean and land respectively + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used ) if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc ) + ! [5.2.2] override derivative of flux wrt surface concentration call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used ) if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc ) + ! [5.2.3] override derivative of flux wrt atmospheric concentration call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used ) if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) enddo - ! [5.3] override flux and derivatives for sensible heat flux - ! [5.3.1] override flux + !> override flux and derivatives of sensible heat flux + !{ call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_t, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) - ! [5.3.2] override derivative of flux wrt near-surface temperature + !} + + !> override derivative of flux wrt near-surface temperature + !{ call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) - ! [5.3.3] override derivative of flux wrt atmospheric temperature + !} + + !> override derivative of flux wrt atmospheric temperature + !{ call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) + !} - ! NB: names of the override fields are constructed using tracer name and certain - ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: - ! "ex_flux_sphum", "ex_dfdsphum_surf", and "ex_dfdsphum_atm". - ! - ! For sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm"; - ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and - ! W/(m2 degK) respectively - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_avail, & - !$OMP ex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf ) & - !$OMP private(is,ie) + !> Note, the units of sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm"; + ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and W/(m2 degK) respectively + + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_avail, & + !$OMP ex_drag_q, ex_wind, ex_cd_q, ex_t_surf4, ex_t_surf ) private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - do i = is, ie - if(ex_avail(i)) ex_drag_q(i) = ex_wind(i)*ex_cd_q(i) - ! [6] get mean quantities on atmosphere grid - ! [6.1] compute t surf for radiation - ex_t_surf4(i) = ex_t_surf(i) ** 4 + is = block_start(l) + ie = block_end(l) + do i = is, ie + if(ex_avail(i)) ex_drag_q(i) = ex_wind(i)*ex_cd_q(i) !! get mean quantities on atmosphere grid + ex_t_surf4(i) = ex_t_surf(i) ** 4 !! compute t surf for radiation enddo enddo - ! [6.2] put relevant quantities onto atmospheric boundary - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ocean, 'ATM', & - ex_t_surf , xmap_sfc, complete=.false.) !joseph - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4 , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%frac_open_sea,'ATM',ex_frac_open_sea, xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & - ex_albedo_vis_dir , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', & - ex_albedo_nir_dir , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dif, 'ATM', & - ex_albedo_vis_dif , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & - ex_albedo_nir_dif , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%rough_mom, 'ATM', ex_rough_mom, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%rough_heat,'ATM', & - ex_rough_heat, xmap_sfc, complete=.false.) !kgao - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac, xmap_sfc, complete=.false.) - - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%u_flux, 'ATM', ex_flux_u, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%v_flux, 'ATM', ex_flux_v, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dtaudu, 'ATM', ex_dtaudu_atm, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dtaudv, 'ATM', ex_dtaudv_atm, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%u_star, 'ATM', ex_u_star , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%b_star, 'ATM', ex_b_star , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_star, 'ATM', ex_q_star , xmap_sfc, complete=.true.) - - do n_gex=1,n_gex_lnd2atm - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), 'ATM', ex_gex_lnd2atm(:,n_gex), & - xmap_sfc, complete=.false.) + !> Update fields on Land_Ice_Atmos_Boundary + !{ joseph + call fms_xgrid_get_from_xgrid(Land_Icee_Boundary%t_ocean, 'ATM', ex_t_surf , xmap_sfc, complete=.false.) + !} + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%frac_open_sea,'ATM', ex_frac_open_sea, xmap_sfc) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dir, & + 'ATM', ex_albedo_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dir, & + 'ATM', ex_albedo_nir_dir, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dif, & + 'ATM', ex_albedo_vis_dif, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & + ex_albedo_nir_dif, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_mom, 'ATM', ex_rough_mom, xmap_sfc, complete=.false.) + !{ kgao + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_heat,'ATM', ex_rough_heat, xmap_sfc, complete=.false.) + !} + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_flux, 'ATM', ex_flux_u, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_flux, 'ATM', ex_flux_v, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudu, 'ATM', ex_dtaudu_atm, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudv, 'ATM', ex_dtaudv_atm, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_star, 'ATM', ex_u_star, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%b_star, 'ATM', ex_b_star, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%q_star, 'ATM', ex_q_star, xmap_sfc, complete=.true.) + + !> update "generic", non-tracer field exchange between land and atmosphere + do n_gex=1, n_gex_lnd2atm + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), & + 'ATM', ex_gex_lnd2atm(:, n_gex), xmap_sfc, complete=.false.) end do - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u , xmap_sfc, complete=.false.) !bqx - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v , xmap_sfc, complete=.true.) !bqx + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u, xmap_sfc, complete=.false.) !bqx + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v, xmap_sfc, complete=.true.) !bqx -! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same) #ifndef use_AM3_physics - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t , xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc, complete=.true.) + ! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc, complete=.true.) #endif - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind , xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%thv_atm, 'ATM', ex_thv_atm , xmap_sfc) - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%thv_surf, 'ATM', ex_thv_surf , xmap_sfc) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind , xmap_sfc) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_atm, 'ATM', ex_thv_atm, xmap_sfc) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_surf, 'ATM', ex_thv_surf, xmap_sfc) #ifdef use_AM3_physics if (do_forecast) then - call fms_xgrid_get_from_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) end if #endif - call fms_mpp_domains_get_compute_domain( Atm%domain, isc, iec, jsc, jec ) - !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary ) & - !$OMP private(is,ie) + call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec) + !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary ) private(is,ie) do j = jsc, jec do i = isc, iec Land_Ice_Atmos_Boundary%t(i,j) = Land_Ice_Atmos_Boundary%t(i,j) ** 0.25 enddo enddo - !Balaji: fms_data_override calls moved here from coupler_main - call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) - call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) - call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) - call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) - call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) - call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) + !> if the following fields are defined in the data_table, ignore all that had been + !! computed and override those values + call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) + call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) + + call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) + call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) + call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) + call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) call fms_data_override('ATM', 'land_frac', Land_Ice_Atmos_Boundary%land_frac, Time) - call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) + call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) do tr=1,n_atm_tr call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr, tr_name) call fms_data_override('ATM', 'dt_'//trim(tr_name), Land_Ice_Atmos_Boundary%dt_tr(:,:,tr), Time) enddo - call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) - call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) - call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) - call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) - call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) - call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) - ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) + call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) + call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) + call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) + call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) + call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) + call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) + ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) - ! [6.3] save atmos albedo fix and old albedo (for downward SW flux calculations) - ! on exchange grid - ! allocate ( ex_old_albedo(n_xgrid_sfc) ) - ! ex_old_albedo = ex_albedo - - !! STILL NEEDED ???? - !! IS THIS CORRECT ?? - allocate ( ex_albedo_fix(n_xgrid_sfc) ) - allocate ( ex_albedo_vis_dir_fix(n_xgrid_sfc) ) - allocate ( ex_albedo_nir_dir_fix(n_xgrid_sfc) ) - allocate ( ex_albedo_vis_dif_fix(n_xgrid_sfc) ) - allocate ( ex_albedo_nir_dif_fix(n_xgrid_sfc) ) - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & - !$OMP ex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix ) & - !$OMP private(is,ie) + !> save atmos albedo fix and old albedo (for downward SW flux calculations) on exchange grid + !! STILL NEEDED ???? IS THIS CORRECT ?? + allocate(ex_albedo_fix(n_xgrid_sfc)) + allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) + allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) + allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc)) + allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc)) + + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, & + !$OMP ex_albedo_vis_dir_fix, ex_albedo_nir_dir_fix, ex_albedo_vis_dif_fix, ex_albedo_nir_dif_fix ) private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie ex_albedo_fix(i) = 0. ex_albedo_vis_dir_fix(i) = 0. @@ -1694,9 +1653,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo enddo - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo_fix, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & + call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & ex_albedo_vis_dir_fix, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', & ex_albedo_nir_dir_fix, xmap_sfc, complete=.false.) @@ -1704,15 +1662,13 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_albedo_vis_dif_fix, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & ex_albedo_nir_dif_fix, xmap_sfc, complete=.true.) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & - !$OMP ex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir, & - !$OMP ex_albedo_nir_dir,ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dif_fix,ex_albedo_vis_dif, & - !$OMP ex_albedo_nir_dif_fix,ex_albedo_nir_dif) & - !$OMP private(is,ie) + !$OMP ex_albedo, ex_albedo_vis_dir_fix, ex_albedo_vis_dir, ex_albedo_nir_dir,ex_albedo_nir_dir_fix, & + !$OMP ex_albedo_vis_dif_fix, ex_albedo_vis_dif, ex_albedo_nir_dif_fix, ex_albedo_nir_dif) private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie ex_albedo_fix(i) = (1.0-ex_albedo(i)) / (1.0-ex_albedo_fix(i)) ex_albedo_vis_dir_fix(i) = (1.0-ex_albedo_vis_dir(i)) / (1.0-ex_albedo_vis_dir_fix(i)) @@ -1735,93 +1691,75 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !======================================================================= ! [7] diagnostics section - !------- save static fields first time only ------ + !> save static fields + !! if first_static == true, send to diag_manager once if (first_static) then - - !------- land fraction ------ if ( id_land_mask > 0 ) then - used = fms_diag_send_data ( id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time ) + used = fms_diag_send_data(id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time) !> land fraction endif if ( id_sftlf > 0 ) then - used = fms_diag_send_data ( id_sftlf, Land_Ice_Atmos_Boundary%land_frac, Time ) + used = fms_diag_send_data(id_sftlf, Land_Ice_Atmos_Boundary%land_frac, Time) endif - ! near-surface heights - if ( id_height2m > 0) used = fms_diag_send_data ( id_height2m, z_ref_heat, Time ) - if ( id_height10m > 0) used = fms_diag_send_data ( id_height10m, z_ref_mom, Time ) - + if(id_height2m > 0) used = fms_diag_send_data(id_height2m, z_ref_heat, Time) !> near-surface height + if(id_height10m > 0) used = fms_diag_send_data(id_height10m, z_ref_mom, Time) !> near-surface height first_static = .false. endif - !------- Atm fields ----------- - do n = 1, Atm%fields%num_bcs !{ - do m = 1, Atm%fields%bc(n)%num_fields !{ - if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then !{ + !> send_data for atm fields + do n = 1, Atm%fields%num_bcs + do m = 1, Atm%fields%bc(n)%num_fields + if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then if (atm%fields%bc(n)%use_10m_wind_speed .and. m .eq. fms_coupler_ind_u10 .and. & - .not. Atm%fields%bc(n)%field(m)%override) then !{ - call fms_xgrid_get_from_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & + .not. Atm%fields%bc(n)%field(m)%override) then + call fms_xgrid_get_from_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc) - endif !} - if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then !{ + endif + if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then used = fms_diag_send_data(Atm%fields%bc(n)%field(m)%id_diag, Atm%fields%bc(n)%field(m)%values, Time ) - endif !} - endif !} - enddo !} m - enddo !} n + endif + endif + enddo + enddo - !------- drag coeff moisture ----------- + ! send data to diag_manger buffer for outputting data to netcdf file at the end of model run + !{ if ( id_wind > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_wind, xmap_sfc) used = fms_diag_send_data ( id_wind, diag_atm, Time ) endif - !------- drag coeff moisture ----------- + if ( id_drag_moist > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_q, xmap_sfc) used = fms_diag_send_data ( id_drag_moist, diag_atm, Time ) endif - - !------- drag coeff heat ----------- + if ( id_drag_heat > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_t, xmap_sfc) used = fms_diag_send_data ( id_drag_heat, diag_atm, Time ) endif - - !------- drag coeff momemtum ----------- + if ( id_drag_mom > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_m, xmap_sfc) used = fms_diag_send_data ( id_drag_mom, diag_atm, Time ) endif - - !------- roughness moisture ----------- + if ( id_rough_moist > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_moist, xmap_sfc) used = fms_diag_send_data ( id_rough_moist, diag_atm, Time ) endif - - !------- roughness heat ----------- + if ( id_rough_heat > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_heat, xmap_sfc) used = fms_diag_send_data ( id_rough_heat, diag_atm, Time ) endif - - !------- roughness momemtum ----------- + used = fms_diag_send_data ( id_rough_mom, Land_Ice_Atmos_Boundary%rough_mom, Time ) - - !------- friction velocity ----------- used = fms_diag_send_data ( id_u_star, Land_Ice_Atmos_Boundary%u_star, Time ) - - !------- bouyancy ----------- used = fms_diag_send_data ( id_b_star, Land_Ice_Atmos_Boundary%b_star, Time ) - - !------- moisture scale ----------- used = fms_diag_send_data ( id_q_star, Land_Ice_Atmos_Boundary%q_star, Time ) - - !------- surf and atm virtual potential temperature ----------- used = fms_diag_send_data ( id_thv_atm, Land_Ice_Atmos_Boundary%thv_atm, Time ) used = fms_diag_send_data ( id_thv_surf, Land_Ice_Atmos_Boundary%thv_surf, Time ) - - !----------------------------------------------------------------------- - !------ diagnostics for fields at bottom atmospheric level ------ - + if ( id_t_atm > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_atm, xmap_sfc) used = fms_diag_send_data ( id_t_atm, diag_atm, Time ) @@ -1852,22 +1790,24 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar endif enddo - ! - slm, Mar 25, 2002 if ( id_p_atm > 0 ) then + ! - slm, Mar 25, 2002 call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_p_atm, xmap_sfc) used = fms_diag_send_data ( id_p_atm, diag_atm, Time ) endif + if ( id_z_atm > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_z_atm, xmap_sfc) used = fms_diag_send_data ( id_z_atm, diag_atm, Time ) endif + if ( id_gust > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_gust, xmap_sfc) used = fms_diag_send_data ( id_gust, diag_atm, Time ) endif - ! - bw, Sep 17, 2007 if ( id_slp > 0 .or. id_psl > 0 ) then + ! - bw, Sep 17, 2007 call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_slp, xmap_sfc) if ( id_slp > 0 ) used = fms_diag_send_data ( id_slp, diag_atm, Time ) if ( id_psl > 0 ) used = fms_diag_send_data ( id_psl, diag_atm, Time ) @@ -1876,49 +1816,31 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar if ( id_t_ocean > 0 ) then used = fms_diag_send_data ( id_t_ocean, Land_Ice_Atmos_Boundary%t_ocean, Time ) endif - !----------------------------------------------------------------------- - !--------- diagnostics for fields at reference level --------- - !cjg - ! if ( id_t_ref > 0 .or. id_rh_ref > 0 .or. & - ! id_u_ref > 0 .or. id_v_ref > 0 .or. id_wind_ref > 0 .or. & - ! id_q_ref > 0 .or. id_q_ref_land > 0 .or. & - ! id_t_ref_land > 0 .or. id_rh_ref_land > 0 .or. & - ! id_rh_ref_cmip >0 .or. & - ! id_u_ref_land > 0 .or. id_v_ref_land > 0 ) then + !} + zrefm = z_ref_mom zrefh = z_ref_heat - ! ---- optimize calculation ---- - !cjg if ( id_t_ref <= 0 ) zrefh = zrefm !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm, & - !$OMP ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star, & - !$OMP ex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q, & - !$OMP ex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land, & - !$OMP ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & - !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, & - !$OMP ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum, & - !$OMP ex_flux_tr,ex_t_atm,ex_p_surf) & - !$OMP private(is,ie,rho) + !$OMP ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_u_star, ex_b_star, ex_q_star, ex_del_m, ex_del_h, ex_del_q, & + !$OMP ex_tr_ref, n_exch_tr, id_tr_ref, id_tr_ref_land, ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & + !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum, & + !$OMP ex_flux_tr,ex_t_atm,ex_p_surf) private(is,ie,rho) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & - ex_rough_heat(is:ie), ex_rough_moist(is:ie), & - ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & - ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie) ) - - ! ------- reference relative humidity ----------- - !cjg if ( id_rh_ref > 0 .or. id_rh_ref_land > 0 .or. & - !cjg id_rh_ref_cmip > 0 .or. & - !cjg id_q_ref > 0 .or. id_q_ref_land >0 ) then + is = block_start(l) + ie = block_end(l) + call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & + ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & + ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) + do i = is,ie ex_ref(i) = 1.0e-06 ex_tr_ref(i,:) = 1.e-20 if (ex_avail(i) .and. ex_rough_moist(i) > 0.) then - ex_ref(i) = ex_tr_surf(i,isphum) + (ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum)) * ex_del_q(i) - rho = ex_p_surf(i)/(rdgas * ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) - do tr=1,n_exch_tr + ex_ref(i) = ex_tr_surf(i,isphum) + (ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum)) * ex_del_q(i) + rho = ex_p_surf(i)/(rdgas * ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) + do tr=1, n_exch_tr if (id_tr_ref(tr).gt.0 & .or. id_tr_ref_land(tr).gt.0 & .or. id_tr_con_ref(tr).gt.0 & @@ -1933,6 +1855,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar end if enddo enddo + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_ref, 'ATM', ex_ref, xmap_sfc) ! cjg if(id_q_ref > 0) then used = fms_diag_send_data(id_q_ref,Land_Ice_Atmos_Boundary%q_ref,Time) @@ -1972,26 +1895,22 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar end do !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail, & - !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, & - !$OMP ex_ref,ex_qs_ref_cmip,ex_ref2 ) & - !$OMP private(is,ie) + !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2 ) private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is,ie ex_t_ref(i) = 200. if ( ex_avail(i) .and. ex_rough_heat(i) > 0. ) & ex_t_ref(i) = ex_t_ca(i) + (ex_t_atm(i)-ex_t_ca(i)) * ex_del_h(i) enddo - call fms_sat_vapor_pres_compute_qs (ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref(is:ie), q = ex_ref(is:ie)) - call fms_sat_vapor_pres_compute_qs (ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref_cmip(is:ie), & + call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref(is:ie), q = ex_ref(is:ie)) + call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref_cmip(is:ie), & q = ex_ref(is:ie), es_over_liq_and_ice = .true.) do i = is,ie if(ex_avail(i)) then - ! remove cap on relative humidity -- this mod requested by cjg, ljd - !RSH ex_ref = MIN(100.,100.*ex_ref/ex_qs_ref) - ex_ref2(i) = 100.*ex_ref(i)/ex_qs_ref_cmip(i) - ex_ref(i) = 100.*ex_ref(i)/ex_qs_ref(i) + ex_ref2(i) = 100.*ex_ref(i)/ex_qs_ref_cmip(i) + ex_ref(i) = 100.*ex_ref(i)/ex_qs_ref(i) endif enddo enddo @@ -2016,8 +1935,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar if(id_rh_ref_cmip > 0 .or. id_hurs > 0 .or. id_rhs > 0) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref2, xmap_sfc) if (id_rh_ref_cmip > 0) used = fms_diag_send_data ( id_rh_ref_cmip, diag_atm, Time ) - if (id_hurs > 0) used = fms_diag_send_data ( id_hurs, diag_atm, Time ) - if (id_rhs > 0) used = fms_diag_send_data ( id_rhs, diag_atm, Time ) + if (id_hurs > 0) used = fms_diag_send_data ( id_hurs, diag_atm, Time ) + if (id_rhs > 0) used = fms_diag_send_data ( id_rhs, diag_atm, Time ) endif !cjg endif @@ -2068,8 +1987,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! ------- reference u comp ----------- if ( id_u_ref > 0 .or. id_u_ref_land > 0 .or. id_uas > 0) then - where (ex_avail) & - ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m + where (ex_avail) ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m if ( id_u_ref_land > 0 ) then call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) #ifndef _USE_LEGACY_LAND_ From ac702b0f508c6d44f36b0df0e9aa782cb5d311fe Mon Sep 17 00:00:00 2001 From: mlee03 Date: Thu, 19 Feb 2026 15:49:07 -0500 Subject: [PATCH 15/31] save --- full/atm_land_ice_flux_exchange.F90 | 636 ++++++++++++---------------- 1 file changed, 272 insertions(+), 364 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 50840acc..16db5786 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -244,7 +244,7 @@ module atm_land_ice_flux_exchange_mod integer, allocatable :: & id_tr_atm(:), & ! value of tracer at lowest atmospheric level NEED HELP id_tr_surf(:), & ! value of tracer at surface NEED HELP - id_tr_flux(:), & ! tracer flux + id_tr_flux(:), & ! tracer fluxes id_tr_mol_flux(:), & ! flux of co2 concentration in [mol/m2*s] id_tr_ref(:), & ! value of tracer at z_ref_heat id_tr_ref_land(:), & ! tracer flux at z_ref_heat over land NEED HELP @@ -793,8 +793,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound end subroutine atm_land_ice_flux_exchange_init !####################################################################### - !> \brief Computes explicit fluxes and derivatives that will be used to compute an implicit flux correction. - !! The following quantities inland_ice_atmos_boundary_type are computed for exchange between land and ice to atmos: + !> \brief Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. !! !!
   !!   t_surf_atm: surface temperature used for radiation [K]
@@ -808,7 +807,9 @@ end subroutine atm_land_ice_flux_exchange_init
   !!   b_star_atm: buoyancy scale  [m2/s]
   !! 
!! - !! Overrides field values, puts them on the exchange grid, + !! Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data + !! between one component grid to another component grid. Computed fluxes can also be overwritten + !! with calls to data_override. Note, data_override will not override data if the tracers !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude !! of surface stress divided by density of air at the surface, !! and `u_star*b_star` is the buoyancy flux at the surface. @@ -971,7 +972,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ) #endif - !> Initialize allocated arrays + !> Initialize allocated arrays (does this need to be done in an OpenMP block? Can it be set during + !! allocation?) !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, ex_albedo_vis_dif,ex_albedo_nir_dif,& !$OMP ex_cd_t,ex_cd_m, ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) private(is,ie,n_gex) @@ -989,10 +991,12 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_albedo_nir_dif(i) = 0. ! do not use if relax time /= 0 + !{ ex_cd_t(i) = 0.0 ex_cd_m(i) = 0.0 ex_cd_q(i) = 0.0 ex_frac_open_sea(i) = 0. + !} end do do n_gex = 1, n_gex_lnd2atm do i = is, ie @@ -1009,10 +1013,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !> Allocate fms/coupler type for gas field exchange between ocean and ice do n = 1, ex_gas_fields_ice%num_bcs do m = 1, ex_gas_fields_ice%bc(n)%num_fields - if (associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then - call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.' ) + if(associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then + call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.') endif - allocate ( ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0 ) + allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) enddo enddo @@ -1020,9 +1024,9 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar do n = 1, ex_gas_fields_atm%num_bcs do m = 1, ex_gas_fields_atm%bc(n)%num_fields if (associated(ex_gas_fields_atm%bc(n)%field(m)%values)) then - call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.' ) + call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.') endif - allocate ( ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0 ) + allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) enddo enddo @@ -1030,15 +1034,14 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar do n = 1, ex_gas_fluxes%num_bcs do m = 1, ex_gas_fluxes%bc(n)%num_fields if (associated(ex_gas_fluxes%bc(n)%field(m)%values)) then - call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.' ) + call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.') endif - allocate ( ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0 ) + allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) enddo enddo - !> prepare fields for exchange - !! Override fields (accordingly to data_table) - !Balaji: data_override stuff moved from coupler_main + !> override atm fields only if the field is specified in data_table + !{ call fms_data_override ('ATM', 't_bot', Atm%t_bot , Time) call fms_data_override ('ATM', 'z_bot', Atm%z_bot , Time) call fms_data_override ('ATM', 'p_bot', Atm%p_bot , Time) @@ -1047,39 +1050,30 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_data_override ('ATM', 'p_surf', Atm%p_surf, Time) call fms_data_override ('ATM', 'slp', Atm%slp, Time) call fms_data_override ('ATM', 'gust', Atm%gust, Time) - - !> Convert units - ! jgj: 2008/07/18 - ! FV atm advects tracers in moist mass mixing ratio: kg co2 /(kg air + kg water) - ! cubed sphere advects moist mass mixing ratio also (per SJ) - ! data table co2 overrides for ocean (co2_flux_pcair_atm) - ! and land (co2_bot) should be in dry vmr (mol/mol) units. - ! ATM: co2_flux_pcair_atm : to override atm_btm layer to send to ocean - ! ATM: co2_bot : to override atm_btm layer to send to land - ! data override for co2 to be passed to land/photosynthesis (co2_bot) - ! land co2 data override is in dry_vmr units, so convert to wet_mmr for land model. - ! co2mmr = (wco2/wair) * co2vmr; wet_mmr = dry_mmr * (1-Q) - ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units + do tr = 1, n_atm_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr, tr_name ) call fms_data_override('ATM', trim(tr_name)//'_bot', Atm%tr_bot(:,:,tr), Time, override=used) - ! conversion for land co2 data override from dry vmr to moist mmr - if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then - if ( id_co2_bot > 0 ) used = fms_diag_send_data ( id_co2_bot, Atm%tr_bot(:,:,tr), Time ) + if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then + ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units for atmosphere-land exchange + if(id_co2_bot > 0) used = fms_diag_send_data(id_co2_bot, Atm%tr_bot(:,:,tr), Time) + isc = lbound(Atm%tr_bot,1); iec = ubound(Atm%tr_bot,1) jsc = lbound(Atm%tr_bot,2); jec = ubound(Atm%tr_bot,2) !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Atm,tr,isphum) do j = jsc, jec do i = isc, iec + ! After overriding co2 tracer data, convert units from + ! volume mixing ratio [mol of co2]/[mol of air] to mass mixing ratio [kg of co2]/[kg of air] + ! and convert from dry mass mixing ratio to wet mas mixing ratio via + ! co2mmr = (wco2/wair) * co2vmr and wet_mmr = dry_mmr * (1-Q) where Q is specific humidity Atm%tr_bot(i,j,tr) = Atm%tr_bot(i,j,tr) * (WTMCO2/WTMAIR) * & (1.0 - Atm%tr_bot(i,j,isphum)) enddo enddo end if enddo - - ! data override for co2 to be passed to ocean (co2_flux_pcair_atm) - ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux from moist mmr to dry vmr. + do n = 1, atm%fields%num_bcs do m = 1, atm%fields%bc(n)%num_fields @@ -1088,18 +1082,20 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_gas_fields_atm%bc(n)%field(m)%override = atm%fields%bc(n)%field(m)%override - ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic - if ( atm%fields%bc(n)%field(m)%override .and. & + ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before + ! atmosphere-ocean exchange + if(atm%fields%bc(n)%field(m)%override .and. & fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'co2_flux_pcair_atm') then - if( id_co2_flux_pcair_atm > 0 ) & - used = fms_diag_send_data ( id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) + if(id_co2_flux_pcair_atm > 0) & + used = fms_diag_send_data(id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) endif - ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic - if ( atm%fields%bc(n)%field(m)%override .and. & + ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before + ! atmosphere-ocean exchange + if(atm%fields%bc(n)%field(m)%override .and. & fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'o2_flux_pcair_atm') then - if( id_o2_flux_pcair_atm > 0 ) & - used = fms_diag_send_data ( id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) + if(id_o2_flux_pcair_atm > 0) & + used = fms_diag_send_data(id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) endif enddo enddo @@ -1111,8 +1107,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar endif endif enddo + !} - !> override ice fields + !> override ice fields where data is overwritten only if the field is specified in the data_table + !{ call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time) call fms_data_override ('ICE', 'rough_mom', Ice%rough_mom, Time) call fms_data_override ('ICE', 'rough_heat', Ice%rough_heat, Time) @@ -1126,16 +1124,15 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time) call fms_coupler_type_data_override('ICE', Ice%ocean_fields, Time) call fms_coupler_type_send_data(Ice%ocean_fields, Time) + !} - - !> land data override + !> override land fields where data is overwritten only if the field is specified in the data_table + !{ call FMS_DATA_OVERRIDE_ ('LND', 't_surf', Land%t_surf, Time) call FMS_DATA_OVERRIDE_ ('LND', 't_ca', Land%t_ca, Time) call FMS_DATA_OVERRIDE_ ('LND', 'rough_mom', Land%rough_mom, Time) call FMS_DATA_OVERRIDE_ ('LND', 'rough_heat', Land%rough_heat, Time) call FMS_DATA_OVERRIDE_ ('LND', 'albedo', Land%albedo, Time) - - ! land tracer data override do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) #ifndef _USE_LEGACY_LAND_ @@ -1148,33 +1145,31 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir, Time) call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time) call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) + !} - !> put atmosphere quantities onto exchange grid - - ! [4] put all the qantities we need onto exchange grid - ! [4.1] put atmosphere quantities onto exchange grid + !> map atmospheric fields onto the exchange grid + !{ #ifdef use_AM3_physics if (do_forecast) then - call fms_xgrid_put_to_xgrid (Atm%Surf_diff%sst_miz , 'ATM', ex_t_surf_miz, & + call fms_xgrid_put_to_xgrid (Atm%Surf_diff%sst_miz, 'ATM', ex_t_surf_miz, & xmap_sfc, remap_method=remap_method, complete=.false.) endif #endif - - !> put tracer at the lowest atmospheric level onto the exchange grid + do tr = 1,n_exch_tr - call fms_xgrid_put_to_xgrid (Atm%tr_bot(:,:,tr_table(tr)%atm) , 'ATM', ex_tr_atm(:,tr), xmap_sfc, & + call fms_xgrid_put_to_xgrid (Atm%tr_bot(:,:,tr_table(tr)%atm), 'ATM', ex_tr_atm(:,tr), xmap_sfc, & remap_method=remap_method, complete=.false.) enddo + do n = 1, Atm%fields%num_bcs if(ex_gas_fields_atm%bc(n)%flux_type .ne. 'air_sea_deposition') then do m = 1, Atm%fields%bc(n)%num_fields !{ - call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & + call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.) enddo endif enddo - !> put atmospheric fields onto the exchange grid call fms_xgrid_put_to_xgrid (Atm%t_bot , 'ATM', ex_t_atm , xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%z_bot , 'ATM', ex_z_atm , xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%p_bot , 'ATM', ex_p_atm , xmap_sfc, remap_method=remap_method, complete=.false.) @@ -1183,31 +1178,27 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_xgrid_put_to_xgrid (Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) - - ! slm, Mar 20 2002: changed order in whith the data transferred from ice and land - ! grids, to fill t_ca first with t_surf over ocean and then with t_ca from - ! land, where it is different from t_surf. It is mostly to simplify - ! diagnostic, since surface_flux calculations distinguish between land and - ! not-land anyway. + !} !> prefill surface values on the exchange grid with atmospheric values before putting tracers ! from ice or land, so that gradient is 0 if tracers are not filled ex_tr_surf = ex_tr_atm - - !> put ice quantities onto exchange grid + + !> map ice fields onto the exchange grid + !{ ! (assume that ocean quantites are stored in no ice partition) ! (note: ex_avail is true at ice and ocean points) - call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc) call fms_xgrid_put_to_xgrid (Ice%rough_moist, 'OCN', ex_rough_moist, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%albedo, 'OCN', ex_albedo, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo, 'OCN', ex_albedo, xmap_sfc) call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dir, 'OCN', ex_albedo_vis_dir, xmap_sfc) call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dir, 'OCN', ex_albedo_nir_dir, xmap_sfc) call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dif, 'OCN', ex_albedo_vis_dif, xmap_sfc) call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dif, 'OCN', ex_albedo_nir_dif, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc) tmp_open_sea = 0. tmp_open_sea(:,:,1) = 1. @@ -1219,45 +1210,29 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_gas_fields_ice%bc(n)%field(m)%values, xmap_sfc) enddo enddo + !} - ! The wet mask is dynamic and is not the same as static land mask since seaice fractions change during model run - ! This wet mask will be used to limit the air-sea flux exchange to areas that are not totally covered by seaice. - - !> Initialize open-water mask where each OCN grid cells is open water (value of 1.0) + !> Compute dynamic mask for seaice and static mask for land + !{ + ! Initialize open-water mask where each OCN grid cells is open water set to mask value of 1.0 sea = 0.0 sea(:,:,1) = 1.0 - - !> Generate ex_seawater (dynamic wet mask) that will be used to limit the air-sea flux exchange to areas - !! that are not totally covered by seaice. Note, xmap_sfc between land and ice is dynamic and changes - !! as seaice fraction changes during the model run [link to coupler_main]. Below call takes the updated - !! xmap_sfc and mark all open-water cells to be 1.0 + + ! Generate dynamic ex_seawater wet mask that will be used to limit the air-sea flux exchange to areas + ! that are not totally covered by seaice. Note, xmap_sfc between land and ice is dynamic and changes + ! as seaice fraction changes during the model run [link to coupler_main]. Below call takes the updated + ! xmap_sfc and mark all open-water cells to be 1.0 ex_seawater = 0.0 call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) - - !Not related to the above comments, it seems that the above ex_frac_open_sea could be replaced by ex_seawater - !for code cleaning. - !The following test does not print out anything for a fully coupled model. This asserts that - !1. The two arrays ex_frac_open_sea and ex_seawater are the same - ! Their difference is that ex_frac_open_sea is a local array, - ! but ex_seawater is a module array used outside this subroutine - !2. The xgrid array "ex_seawater" is either 0 or 1 and nothing else, just like the "OCN" grid array "sea" - !Test: - !do l = 1, my_nblocks - ! is=block_start(l) - ! ie=block_end(l) - ! do i = is, ie - ! if(ex_frac_open_sea(i) /= ex_seawater(i)) & - ! print*,'ex_frac_open_sea != ex_seawater ',ex_frac_open_sea(i),ex_seawater(i) - ! if(ex_seawater(i) /= 0.0 .or.ex_seawater(i) /= 1.0 )& - ! print*,'ex_seawater !1 or 0 ' ,ex_seawater(i) - ! enddo - !enddo ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean - !> assign ex_land holding exchange grid cells that are over land + !> map land mask onto the exchange grid call fms_xgrid_some(xmap_sfc, ex_land, 'LND') + !} + !> Map land fields on to the exchange grid + !{ #ifdef use_AM3_physics if (do_forecast) then call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) @@ -1282,8 +1257,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar do n_gex=1,n_gex_lnd2atm call FMS_XGRID_PUT_TO_XGRID_ (Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc) end do - - !> put land tracers on exchange grid + do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then @@ -1299,6 +1273,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_land_frac = 0.0 call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) + !} #ifdef SCM if (do_specified_land) then @@ -1328,7 +1303,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar end if #endif - ! [5] compute explicit fluxes and tendencies on exchange grid + !> compute explicit fluxes and tendencies on the exchange grid call fms_xgrid_some(xmap_sfc, ex_avail) !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, & !$OMP ex_p_atm, ex_z_atm, ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf, ex_u_surf, ex_v_surf, ex_rough_mom, & @@ -1371,8 +1346,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar endif #endif - - ! call mpp_clock_end(fluxClock) + !> compute the zonal and meriodonal winds at the boundary layer and at the reference heights on the + !! exchange grid zrefm = 10.0 zrefh = z_ref_heat !$OMP parallel do default(shared) private(is,ie) @@ -1412,7 +1387,6 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux !! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but !! then this whole section will have to be changed. - !! HELP do tr = 1,n_exch_tr if (tr==isphum) cycle do i = is,ie @@ -1425,24 +1399,23 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! Combine explicit ocean flux and implicit land flux of extra flux fields. - !> compute fluxes in ocean gas fields (ex_gas_fluxes) resulting from exchange between atmosphere and ocean surface - !! and exchange between top of ice and ocean surface + !> map ocean gas field fluxes from the exchange grid to the ocn grid, where the + !! flux is due to exchange between atmosphere and ocean surface and exchange between top of ice and ocean surface call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) - + + !> map intermediate fluxes from the exchange grid to the atmospheric grid do n = 1, ex_gas_fluxes%num_bcs if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch if (id_tr_mol_flux0(m) .gt. 0) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:), xmap_sfc) - used = fms_diag_send_data( id_tr_mol_flux0(m), diag_atm, Time) + used = fms_diag_send_data(id_tr_mol_flux0(m), diag_atm, Time) end if end if end do - - - ! The following statement is a concise version of what's following and worth - ! looking into in the future. + + !> convert units ! ex_flux_tr(:,itracer) = ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) ! where(ex_seawater.gt.0) ex_flux_tr(:,itracer) = F_ocn !$OMP parallel do default(shared) private(is,ie,m,tr_units,tr_name) @@ -1450,17 +1423,14 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar is = block_start(l) ie = block_end(l) do n = 1, ex_gas_fluxes%num_bcs - if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then + if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, & tr_name, units=tr_units) do i = is,ie - if (ex_land(i)) cycle ! over land, don't do anything - ! on ocean or ice cells, flux is explicit therefore we zero derivatives. - !{ - ex_dfdtr_atm(i,m) = 0.0 - ex_dfdtr_surf(i,m) = 0.0 - !} + if (ex_land(i)) cycle ! over land, don't do anything + ex_dfdtr_atm(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives + ex_dfdtr_surf(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives if (ex_seawater(i)>0.0) then if (fms_mpp_lowercase(trim(tr_units)).eq."vmr") then ! if units in ambient "vmr*kg/m2/s" (as in land model), convert to mol/m2/s @@ -1479,7 +1449,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo enddo - !> override tracer fluxes and derivatives in each component + !> override above computed fluxes with values from data_override if tracer exists in data_table do tr = 1,n_exch_tr if( tr_table(tr)%atm == NO_TRACER ) cycle ! it should never happen, though @@ -1506,32 +1476,23 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) enddo - !> override flux and derivatives of sensible heat flux - !{ + !> override flux and derivatives of sensible heat flux if field is specified in data_table call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_t, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) - !} - !> override derivative of flux wrt near-surface temperature - !{ + !> override derivative of flux wrt near-surface temperature if field is specified in data_table call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) - !} - !> override derivative of flux wrt atmospheric temperature - !{ + !> override derivative of flux wrt atmospheric temperature if field is specified in data_table call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) - !} !> Note, the units of sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm"; ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and W/(m2 degK) respectively @@ -1548,9 +1509,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo !> Update fields on Land_Ice_Atmos_Boundary - !{ joseph - call fms_xgrid_get_from_xgrid(Land_Icee_Boundary%t_ocean, 'ATM', ex_t_surf , xmap_sfc, complete=.false.) - !} + !{ + call fms_xgrid_get_from_xgrid(Land_Icee_Boundary%t_ocean, 'ATM', ex_t_surf , xmap_sfc, complete=.false.) !joseph call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.) call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%frac_open_sea,'ATM', ex_frac_open_sea, xmap_sfc) call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo, xmap_sfc, complete=.false.) @@ -1583,7 +1543,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u, xmap_sfc, complete=.false.) !bqx call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v, xmap_sfc, complete=.true.) !bqx - + #ifndef use_AM3_physics ! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same) call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t, xmap_sfc, complete=.false.) @@ -1606,9 +1566,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar Land_Ice_Atmos_Boundary%t(i,j) = Land_Ice_Atmos_Boundary%t(i,j) ** 0.25 enddo enddo - - !> if the following fields are defined in the data_table, ignore all that had been - !! computed and override those values + !} + + !> data_override updated Land_ice_atmos_boundary if the fields exist in data_table + !{ call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) @@ -1630,9 +1591,11 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) - - !> save atmos albedo fix and old albedo (for downward SW flux calculations) on exchange grid - !! STILL NEEDED ???? IS THIS CORRECT ?? + !} + + !> albedo fix + ! save atmos albedo fix and old albedo (for downward SW flux calculations) on exchange grid + ! STILL NEEDED ???? IS THIS CORRECT ?? allocate(ex_albedo_fix(n_xgrid_sfc)) allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) @@ -1687,12 +1650,12 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_albedo_nir_dif_fix = 1. endif #endif + !} + - !======================================================================= - ! [7] diagnostics section - - !> save static fields - !! if first_static == true, send to diag_manager once + !> send data to save in diag_manager buffer for outputting at the end of the simulation + !{ + ! save static fields, if first_static == true, send to diag_manager once if (first_static) then if ( id_land_mask > 0 ) then used = fms_diag_send_data(id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time) !> land fraction @@ -1705,7 +1668,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar first_static = .false. endif - !> send_data for atm fields + ! send_data for atm fields do n = 1, Atm%fields%num_bcs do m = 1, Atm%fields%bc(n)%num_fields if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then @@ -1721,8 +1684,6 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo enddo - ! send data to diag_manger buffer for outputting data to netcdf file at the end of model run - !{ if ( id_wind > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_wind, xmap_sfc) used = fms_diag_send_data ( id_wind, diag_atm, Time ) @@ -1816,12 +1777,12 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar if ( id_t_ocean > 0 ) then used = fms_diag_send_data ( id_t_ocean, Land_Ice_Atmos_Boundary%t_ocean, Time ) endif - !} zrefm = z_ref_mom zrefh = z_ref_heat + !> compute deposition velocity !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm, & !$OMP ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_u_star, ex_b_star, ex_q_star, ex_del_m, ex_del_h, ex_del_q, & !$OMP ex_tr_ref, n_exch_tr, id_tr_ref, id_tr_ref_land, ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & @@ -2071,10 +2032,10 @@ end subroutine sfc_boundary_layer !####################################################################### !> Returns fluxes and derivatives corrected for the implicit treatment of atmospheric - !! diffusive fluxes, as well as the increments in the temperature and specific humidity + !! diffusive fluxes, and the increments in the temperature and specific humidity !! of the lowest atmospheric layer due to all explicit processes as well as the diffusive !! fluxes through the top of this layer. - !! + !! !! !! The following elements from Atmos_boundary are used as input: !!
@@ -2107,46 +2068,58 @@ end subroutine sfc_boundary_layer
   !!        flux_v_ice = meridional wind stress (Pa)
   !!        coszen_ice = cosine of the zenith angle
   !! 
- subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary ) - type(FmsTime_type), intent(in) :: Time !< Current time - type(atmos_data_type), intent(inout) :: Atm !< A derived data type to specify atmosphere boundary data - type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data - type(ice_data_type), intent(in) :: Ice !< A derived data type to specify ice boundary data - type(land_ice_atmos_boundary_type),intent(in) :: Atmos_boundary !< A derived data type to specify properties and - !!fluxes passed from exchange grid to the atmosphere - !! land and ice - type(atmos_land_boundary_type), intent(inout):: Land_boundary !< A derived data type to specify properties and - !! fluxes passed from atmosphere to land - type(atmos_ice_boundary_type), intent(inout):: Ice_boundary !< A derived data type to specify properties and - !! fluxes passed from atmosphere to ice - - real, dimension(n_xgrid_sfc) :: ex_flux_sw, ex_flux_lwd, & - ex_flux_sw_dir, & - ex_flux_sw_dif, & - ex_flux_sw_down_vis_dir, ex_flux_sw_down_total_dir, & - ex_flux_sw_down_vis_dif, ex_flux_sw_down_total_dif, & + subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary ) + type(FmsTime_type), intent(in) :: Time + !< Current time + type(atmos_data_type), intent(inout) :: Atm + !< A derived data type to specify atmosphere boundary data + type(land_data_type), intent(in) :: Land + !< A derived data type to specify land boundary data + type(ice_data_type), intent(in) :: Ice + !< A derived data type to specify ice boundary data + type(land_ice_atmos_boundary_type), intent(in) :: Atmos_boundary + !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice + type(atmos_land_boundary_type), intent(inout):: Land_boundary + !< A derived data type to specify properties and fluxes passed from atmosphere to land + type(atmos_ice_boundary_type), intent(inout):: Ice_boundary + !< A derived data type to specify properties and fluxes passed from atmosphere to ice + + real, dimension(n_xgrid_sfc) :: & + ex_flux_sw, ex_flux_lwd, & + ex_flux_sw_dir, & + ex_flux_sw_dif, & + ex_flux_sw_down_vis_dir, & + ex_flux_sw_down_total_dir, & + ex_flux_sw_down_vis_dif, & + ex_flux_sw_down_total_dif, & ex_flux_sw_vis, & ex_flux_sw_vis_dir, & ex_flux_sw_vis_dif, & - ex_lprec, ex_fprec, & + ex_lprec, & + ex_fprec, & ex_tprec, & ! temperature of precipitation, currently equal to atm T - ex_u_star_smooth, & + ex_u_star_smooth, & #ifdef use_AM3_physics ex_coszen #else ex_coszen, & ex_setl_flux, & ! tracer sedimentation flux from the lowest atm layer (positive down) - ex_dsetl_dtr ! and its derivative w.r.t. the tracer concentration + ex_dsetl_dtr ! and its derivative w.r.t. the tracer concentration #endif real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - real, dimension(n_xgrid_sfc) :: ex_gamma , ex_dtmass, & - ex_delta_t, ex_delta_u, ex_delta_v, ex_dflux_t + real, dimension(n_xgrid_sfc) :: & + ex_gamma, & + ex_dtmass, & + ex_delta_t, & + ex_delta_u, & + ex_delta_v, & + ex_dflux_t real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd - + real, dimension(n_xgrid_sfc,n_exch_tr) :: & ex_delta_tr, & ! tracer tendencies ex_dflux_tr ! fracer flux change @@ -2161,13 +2134,12 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun integer :: tr, n, m ! tracer indices integer :: is, ie, l, i integer :: n_gex - - !Balaji + call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmDnClock) ov = .FALSE. - !----------------------------------------------------------------------- - !Balaji: fms_data_override calls moved here from coupler_main + + !> override flux fields if fields are specified in data_table call fms_data_override ('ATM', 'flux_sw', Atm%flux_sw, Time) call fms_data_override ('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) call fms_data_override ('ATM', 'flux_sw_dif', Atm%flux_sw_dif, Time) @@ -2181,9 +2153,12 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_data_override ('ATM', 'flux_lw', Atm%flux_lw, Time) call fms_data_override ('ATM', 'lprec', Atm%lprec, Time) + !> if scale_precip_2d = .true., scale liquid precipitation by frac_precip. + !! frac_precip should have been allocated in atm_land_ice_flux_exchange_init + !! with scale_precip_2d_in set to .true. if (scale_precip_2d) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) - call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) + call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) do j=js_atm,je_atm do i=is_atm, ie_atm Atm%lprec(i,j) = Atm%lprec(i,j)*frac_precip(i,j) @@ -2191,6 +2166,8 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun enddo endif + !> if partition_fprec_from_lpec = .true., allocate atm%fprec and atm%lprec fields + !! and initially set atm%fprec = atm%lprec if (partition_fprec_from_lprec .and. Atm%pe) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) do j=js_atm,je_atm @@ -2203,6 +2180,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun enddo endif + !> override atm fields if fields are specified in the data_table call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) call fms_data_override ('ATM', 'dtmass', Atm%Surf_Diff%dtmass, Time) @@ -2214,65 +2192,51 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) enddo - !---- put atmosphere quantities onto exchange grid ---- - + !> map atmosphere quantities onto exchange grid + !{ !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u, & - !$OMP ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v, & - !$OMP ex_gex_atm2lnd,n_gex_atm2lnd) & - !$OMP private(is,ie,n_gex) + !$OMP ex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u, ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v, & + !$OMP ex_gex_atm2lnd,n_gex_atm2lnd) private(is,ie,n_gex) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie - ex_flux_sw_dir(i) = 0.0 + ex_flux_sw_dir(i) = 0.0 ex_flux_sw_vis_dir(i) = 0.0 - ex_flux_sw_dif(i) = 0.0 + ex_flux_sw_dif(i) = 0.0 ex_flux_sw_vis_dif(i) = 0.0 - ex_flux_lwd(i) = 0.0 - ex_delta_u(i) = 0.0 - ex_delta_v(i) = 0.0 + ex_flux_lwd(i) = 0.0 + ex_delta_u(i) = 0.0 + ex_delta_v(i) = 0.0 enddo - do n_gex=1,n_gex_atm2lnd + do n_gex = 1, n_gex_atm2lnd do i = is, ie - ex_gex_atm2lnd(i,n_gex) = 0.0 + ex_gex_atm2lnd(i,n_gex) = 0.0 end do end do enddo - call fms_xgrid_put_to_xgrid (Atm%flux_sw_dir, 'ATM', ex_flux_sw_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%flux_sw_vis_dir, 'ATM', ex_flux_sw_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%flux_sw_dif, 'ATM', ex_flux_sw_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%flux_sw_vis_dif, 'ATM', ex_flux_sw_vis_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_vis_dir, 'ATM', ex_flux_sw_down_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc,complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc,complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc,complete=.false.) - - ! ccc = conservation_check(Atm%lprec, 'ATM', xmap_sfc) - ! if (fms_mpp_pe()== fms_mpp_root_pe()) print *,'LPREC', ccc - -!!$ if(do_area_weighted_flux) then -!!$ call put_to_xgrid (Atm%lprec * AREA_ATM_MODEL, 'ATM', ex_lprec, xmap_sfc) -!!$ call put_to_xgrid (Atm%fprec * AREA_ATM_MODEL, 'ATM', ex_fprec, xmap_sfc) -!!$ else - call fms_xgrid_put_to_xgrid (Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) -!!$ endif + call fms_xgrid_put_to_xgrid(Atm%flux_sw_dir, 'ATM', ex_flux_sw_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dir, 'ATM', ex_flux_sw_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_dif, 'ATM', ex_flux_sw_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dif, 'ATM', ex_flux_sw_vis_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dir, 'ATM', ex_flux_sw_down_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgri (Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) do n_gex=1,n_gex_atm2lnd call fms_xgrid_put_to_xgrid (Atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) end do - call fms_xgrid_put_to_xgrid (Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) - - call fms_xgrid_put_to_xgrid (Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) - - + call fms_xgrid_put_to_xgrid(Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) + call fms_xgrid_put_to_xgrid(Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) + ! MOD changed the following two lines to put Atmos%surf_diff%delta_u and v ! on exchange grid instead of the stresses themselves so that only the - ! implicit corrections are filtered through the atmospheric grid not the - ! stresses themselves + ! implicit corrections are filtered through the atmospheric grid not the stresses themselves call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_u, 'ATM', ex_delta_u, xmap_sfc, remap_method=remap_method, & complete=.false.) call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & @@ -2280,8 +2244,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun ! MOD update stresses using atmos delta's but derivatives on exchange grid !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u, & - !$OMP ex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v ) & - !$OMP private(is,ie) + !$OMP ex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v ) private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -2291,56 +2254,39 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun enddo enddo - !----------------------------------------------------------------------- - !---- adjust sw flux for albedo variations on exch grid ---- - !---- adjust 4 categories (vis/nir dir/dif) separately ---- + + !> adjust sw flux for albedo variations on exchange grid !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir,ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dir_fix,ex_flux_sw_dif, & - !$OMP ex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw, & - !$OMP ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix ) & - !$OMP private(is,ie) + !$OMP ex_flux_sw_vis_dir,ex_albedo_nir_dir_fix, ex_albedo_vis_dir_fix,ex_flux_sw_dif, & + !$OMP ex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw, ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix) & + !$OMP private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) - ex_flux_sw_vis_dir(i) ! temporarily nir/dir - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) * ex_albedo_nir_dir_fix(i) ! fix nir/dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) - ex_flux_sw_vis_dir(i) ! temporarily nir/dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) * ex_albedo_nir_dir_fix(i) ! fix nir/dir ex_flux_sw_vis_dir(i) = ex_flux_sw_vis_dir(i) * ex_albedo_vis_dir_fix(i) ! fix vis/dir - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) + ex_flux_sw_vis_dir(i) ! back to total dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) + ex_flux_sw_vis_dir(i) ! back to total dir - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) - ex_flux_sw_vis_dif(i) ! temporarily nir/dif - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) * ex_albedo_nir_dif_fix(i) ! fix nir/dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) - ex_flux_sw_vis_dif(i) ! temporarily nir/dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) * ex_albedo_nir_dif_fix(i) ! fix nir/dif ex_flux_sw_vis_dif(i) = ex_flux_sw_vis_dif(i) * ex_albedo_vis_dif_fix(i) ! fix vis/dif - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) + ex_flux_sw_vis_dif(i) ! back to total dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) + ex_flux_sw_vis_dif(i) ! back to total dif ex_flux_sw_vis(i) = ex_flux_sw_vis_dir(i) + ex_flux_sw_vis_dif(i) ! legacy, remove later - ex_flux_sw(i) = ex_flux_sw_dir(i) + ex_flux_sw_dif(i) ! legacy, remove later + ex_flux_sw(i) = ex_flux_sw_dir(i) + ex_flux_sw_dif(i) ! legacy, remove later enddo enddo -!!$ ex_flux_sw_dir = ex_flux_sw_dir - ex_flux_sw_vis_dir ! temporarily nir/dir -!!$ ex_flux_sw_dir = ex_flux_sw_dir * ex_albedo_nir_dir_fix ! fix nir/dir -!!$ ex_flux_sw_vis_dir = ex_flux_sw_vis_dir * ex_albedo_vis_dir_fix ! fix vis/dir -!!$ ex_flux_sw_dir = ex_flux_sw_dir + ex_flux_sw_vis_dir ! back to total dir -!!$ -!!$ ex_flux_sw_dif = ex_flux_sw_dif - ex_flux_sw_vis_dif ! temporarily nir/dif -!!$ ex_flux_sw_dif = ex_flux_sw_dif * ex_albedo_nir_dif_fix ! fix nir/dif -!!$ ex_flux_sw_vis_dif = ex_flux_sw_vis_dif * ex_albedo_vis_dif_fix ! fix vis/dif -!!$ ex_flux_sw_dif = ex_flux_sw_dif + ex_flux_sw_vis_dif ! back to total dif -!!$ -!!$ ex_flux_sw_vis = ex_flux_sw_vis_dir + ex_flux_sw_vis_dif ! legacy, remove later -!!$ ex_flux_sw = ex_flux_sw_dir + ex_flux_sw_dif ! legacy, remove later - - deallocate ( ex_albedo_fix ) - deallocate ( ex_albedo_vis_dir_fix ) - deallocate ( ex_albedo_nir_dir_fix ) - deallocate ( ex_albedo_vis_dif_fix ) - deallocate ( ex_albedo_nir_dif_fix ) - - !----------------------------------------------------------------------- - !----- adjust fluxes for implicit dependence on atmosphere ---- + deallocate(ex_albedo_fix) + deallocate(ex_albedo_vis_dir_fix) + deallocate(ex_albedo_nir_dir_fix) + deallocate(ex_albedo_vis_dif_fix) + deallocate(ex_albedo_nir_dif_fix) + + !> adjust fluxes for implicit dependence on atmosphere do tr = 1,n_exch_tr n = tr_table(tr)%atm call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_tr(:,:,n), 'ATM', ex_delta_tr(:,tr), xmap_sfc, complete=.false.) @@ -2352,10 +2298,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dflux_t, 'ATM', ex_dflux_t, xmap_sfc, complete=.true. ) #ifndef use_AM3_physics - ! Get sedimentation flux. Has to be here (instead of sfc_boundary_layer sub) - ! because of time stepping order: sedimentation fluxes are calculated in - ! update_atmos_model_down (in atmos_tracer_driver), but sfc_boundary_layer - ! is called before that. + !> Map sedimentation flux on the exchange do tr = 1,n_exch_tr if (atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm)) then call get_atmos_tracer_surf_setl_flux (tr_table(tr)%atm, setl_flux, dsetl_dtr) @@ -2363,7 +2306,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_xgrid_put_to_xgrid(dsetl_dtr, 'ATM', ex_dsetl_dtr, xmap_sfc) where (ex_avail) ! minus sign is because sedimentation is positive down - ex_flux_tr(:,tr) = ex_flux_tr(:,tr) - ex_setl_flux(:) + ex_flux_tr(:,tr) = ex_flux_tr(:,tr) - ex_setl_flux(:) ex_dfdtr_atm(:,tr) = ex_dfdtr_atm(:,tr) - ex_dsetl_dtr(:) end where endif @@ -2371,33 +2314,29 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun #endif cp_inv = 1.0/cp_air - + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd, & - !$OMP ex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm, & - !$OMP cp_inv,ex_e_t_n,ex_dhdt_surf,ex_f_t_delt_n,ex_delta_t, & - !$OMP ex_flux_t,ex_dflux_tr,isphum,ex_dfdtr_atm,ex_e_q_n, & - !$OMP ex_dedt_surf,n_exch_tr,ex_e_tr_n,ex_dfdtr_surf, & - !$OMP ex_f_tr_delt_n,ex_delta_tr,ex_flux_tr ) & - !$OMP private(is,ie) + !$OMP ex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm, cp_inv,ex_e_t_n,ex_dhdt_surf,ex_f_t_delt_n,& + !$OMP ex_delta_t, ex_flux_t,ex_dflux_tr,isphum,ex_dfdtr_atm,ex_e_q_n, ex_dedt_surf,n_exch_tr,& + !$OMP ex_e_tr_n,ex_dfdtr_surf, ex_f_tr_delt_n,ex_delta_tr,ex_flux_tr) private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie !----- compute net longwave flux (down-up) ----- ! (note: lw up already in ex_flux_lw) ex_flux_lw(i) = ex_flux_lwd(i) - ex_flux_lw(i) if (ex_avail(i) ) then - ! temperature - ex_gamma(i) = 1./ (1.0 - ex_dtmass(i)*(ex_dflux_t(i) + ex_dhdt_atm(i)*cp_inv)) - ex_e_t_n(i) = ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) + ex_gamma(i) = 1./ (1.0 - ex_dtmass(i)*(ex_dflux_t(i) + ex_dhdt_atm(i)*cp_inv)) + ex_e_t_n(i) = ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) ex_f_t_delt_n(i) = (ex_delta_t(i) + ex_dtmass(i) * ex_flux_t(i)*cp_inv) * ex_gamma(i) - ex_flux_t (i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) - ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) + ex_flux_t (i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) + ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) ! moisture - ! ex_gamma = 1./ (1.0 - ex_dtmass*(ex_dflux_q + ex_dedq_atm)) + ! ex_gamma = 1./ (1.0 - ex_dtmass*(ex_dflux_q + ex_dedq_atm)) ! here it looks like two derivatives with different units are added together, ! but in fact they are not: ex_dedt_surf and ex_dedq_surf defined in complimentary ! regions of exchange grid, so that if one of them is not zero the other is, and @@ -2408,23 +2347,22 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun ! ex_dedt_surf = ex_dedt_surf + ex_dedq_atm * ex_e_q_n ! ex_dedq_surf = ex_dedq_surf + ex_dedq_atm * ex_e_q_n ! moisture vs. surface temperture, assuming saturation - ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,isphum) + ex_dfdtr_atm(i,isphum))) - ex_e_q_n(i) = ex_dtmass(i) * ex_dedt_surf(i) * ex_gamma(i) + ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,isphum) + ex_dfdtr_atm(i,isphum))) + ex_e_q_n(i) = ex_dtmass(i) * ex_dedt_surf(i) * ex_gamma(i) ex_dedt_surf(i) = ex_dedt_surf(i) + ex_dfdtr_atm(i,isphum) * ex_e_q_n(i) do tr = 1,n_exch_tr - ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,tr) + ex_dfdtr_atm(i,tr))) - - ex_e_tr_n(i,tr) = ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) + ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,tr) + ex_dfdtr_atm(i,tr))) + ex_e_tr_n(i,tr) = ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) ex_f_tr_delt_n(i,tr) = (ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) - - ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) - ex_dfdtr_surf(i,tr) = ex_dfdtr_surf(i,tr) + ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) + ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) + ex_dfdtr_surf(i,tr) = ex_dfdtr_surf(i,tr) + ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) enddo endif - enddo ! i = is, ie - enddo ! l = 1, my_nblocks - !----------------------------------------------------------------------- - !---- output fields on the land grid ------- + enddo + enddo + + !> map field from the exchange grid to the land grid + !{ call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) @@ -2447,15 +2385,6 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) -!!$ if(do_area_weighted_flux) then -!!$ ! evap goes here??? -!!$ do k = 1, size(Land_boundary%lprec, dim=3) -!!$ ! Note: we divide by AREA_ATM_MODEL, which should be the same as -!!$ ! AREA_LND_MODEL (but the latter may not be defined) -!!$ call divide_by_area(data=Land_boundary%lprec(:,:,k), area=AREA_ATM_MODEL) -!!$ call divide_by_area(data=Land_boundary%fprec(:,:,k), area=AREA_ATM_MODEL) -!!$ enddo -!!$ endif if(associated(Land_boundary%drag_q)) then call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) @@ -2522,9 +2451,9 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun #endif endif enddo - - ! current time is Time: is that ok? not available in land_data_type - !Balaji: data_override calls moved here from coupler_main + !} + + !> Data_override land fields if the field is specified in the data_table call FMS_DATA_OVERRIDE_('LND', 't_flux', Land_boundary%t_flux, Time ) call FMS_DATA_OVERRIDE_('LND', 'lw_flux', Land_boundary%lw_flux, Time ) call FMS_DATA_OVERRIDE_('LND', 'sw_flux', Land_boundary%sw_flux, Time ) @@ -2549,28 +2478,23 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun #endif enddo - !----------------------------------------------------------------------- - !---- output fields on the ice grid ------- - + !> map data on the exchange grid onto the Ice grid + !{ call fms_xgrid_get_from_xgrid (Ice_boundary%t_flux, 'OCN', ex_flux_t, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%q_flux, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dir, 'OCN', ex_flux_sw_vis_dir, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dir, 'OCN', ex_flux_sw_dir,xmap_sfc) - ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_flux_nir_dir - Ice_boundary%sw_flux_vis_dir call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dif, 'OCN', ex_flux_sw_vis_dif, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dif, 'OCN', ex_flux_sw_dif,xmap_sfc) - ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_flux_nir_dif - Ice_boundary%sw_flux_vis_dif call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dir, 'OCN', ex_flux_sw_down_vis_dir, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dir, 'OCN', ex_flux_sw_down_total_dir, xmap_sfc) - ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_down_nir_dir = Ice_boundary%sw_down_nir_dir - Ice_boundary%sw_down_vis_dir call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dif, 'OCN', ex_flux_sw_down_vis_dif, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dif, 'OCN', ex_flux_sw_down_total_dif,xmap_sfc) - ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_down_nir_dif = Ice_boundary%sw_down_nir_dif - Ice_boundary%sw_down_vis_dif call fms_xgrid_get_from_xgrid (Ice_boundary%lw_flux, 'OCN', ex_flux_lw, xmap_sfc) @@ -2585,59 +2509,43 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_xgrid_get_from_xgrid (Ice_boundary%lprec, 'OCN', ex_lprec, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%fprec, 'OCN', ex_fprec, xmap_sfc) -!!$ if (do_area_weighted_flux) then -!!$ where (AREA_ATM_SPHERE /= 0) -!!$ Ice_boundary%lprec = Ice_boundary%lprec * AREA_ATM_MODEL/AREA_ATM_SPHERE -!!$ Ice_boundary%fprec = Ice_boundary%fprec * AREA_ATM_MODEL/AREA_ATM_SPHERE -!!$ end where -!!$ endif -!!$ if(do_area_weighted_flux) then -!!$ do k = 1, size(Ice_boundary%lprec, dim=3) -!!$ call divide_by_area(data=Ice_boundary%lprec(:,:,k), area=AREA_ATM_SPHERE) -!!$ call divide_by_area(data=Ice_boundary%fprec(:,:,k), area=AREA_ATM_SPHERE) -!!$ enddo -!!$ endif - + ! Extra fluxes - do n = 1, Ice_boundary%fluxes%num_bcs !{ + do n = 1, Ice_boundary%fluxes%num_bcs if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then do m = 1, Ice_boundary%fluxes%bc(n)%num_fields !{ call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - enddo !} m + enddo endif - enddo !} n - - !Balaji: data_override calls moved here from coupler_main + enddo + !} + + !> Override ice data if data field is specified in the data_table call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) call fms_data_override('ICE', 'v_flux', Ice_boundary%v_flux, Time) call fms_data_override('ICE', 't_flux', Ice_boundary%t_flux, Time) call fms_data_override('ICE', 'q_flux', Ice_boundary%q_flux, Time) call fms_data_override('ICE', 'lw_flux',Ice_boundary%lw_flux, Time) call fms_data_override('ICE', 'lw_flux_dn',Ice_boundary%lw_flux, Time, override=ov) - if (ov) then - Ice_boundary%lw_flux = Ice_boundary%lw_flux - stefan*Ice%t_surf**4 - endif + if (ov) Ice_boundary%lw_flux = Ice_boundary%lw_flux - stefan*Ice%t_surf**4 + call fms_data_override('ICE', 'sw_flux_nir_dir',Ice_boundary%sw_flux_nir_dir, Time) call fms_data_override('ICE', 'sw_flux_vis_dir',Ice_boundary%sw_flux_vis_dir, Time) call fms_data_override('ICE', 'sw_flux_nir_dif',Ice_boundary%sw_flux_nir_dif, Time, override=ov) call fms_data_override('ICE', 'sw_flux_vis_dif',Ice_boundary%sw_flux_vis_dif, Time) call fms_data_override('ICE', 'sw_flux_vis_dir_dn',Ice_boundary%sw_down_vis_dir, Time, override=ov) - if (ov) then - Ice_boundary%sw_flux_vis_dir = Ice_boundary%sw_down_vis_dir*(1.0-Ice%albedo_vis_dir) - endif + if (ov) Ice_boundary%sw_flux_vis_dir = Ice_boundary%sw_down_vis_dir*(1.0-Ice%albedo_vis_dir) + call fms_data_override('ICE', 'sw_flux_vis_dif_dn',Ice_boundary%sw_down_vis_dif, Time, override=ov) - if (ov) then - Ice_boundary%sw_flux_vis_dif = Ice_boundary%sw_down_vis_dif*(1.0-Ice%albedo_vis_dif) - endif + if (ov) Ice_boundary%sw_flux_vis_dif = Ice_boundary%sw_down_vis_dif*(1.0-Ice%albedo_vis_dif) + call fms_data_override('ICE', 'sw_flux_nir_dir_dn',Ice_boundary%sw_down_nir_dir, Time, override=ov) - if (ov) then - Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_down_nir_dir*(1.0-Ice%albedo_nir_dir) - endif + if (ov) Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_down_nir_dir*(1.0-Ice%albedo_nir_dir) + call fms_data_override('ICE', 'sw_flux_nir_dif_dn',Ice_boundary%sw_down_nir_dif, Time, override=ov) - if (ov) then - Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_down_nir_dif*(1.0-Ice%albedo_nir_dif) - endif + if (ov) Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_down_nir_dif*(1.0-Ice%albedo_nir_dif) + call fms_data_override('ICE', 'lprec', Ice_boundary%lprec, Time) call fms_data_override('ICE', 'fprec', Ice_boundary%fprec, Time) call fms_data_override('ICE', 'dhdt', Ice_boundary%dhdt, Time) @@ -2649,13 +2557,14 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) - - ! compute stock changes - + !} + + !> Compute stock changes + !{ ! Atm -> Lnd (precip) call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & #ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & #else @@ -2707,24 +2616,23 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') + !} + + deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) - deallocate ( ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) - - !======================================================================= - !-------------------- diagnostics section ------------------------------ - - !------- zonal wind stress ----------- + !> send data to diag_manager buffer to save data for output + !{ + ! zonal wind stress used = fms_diag_send_data ( id_u_flux, Atmos_boundary%u_flux, Time ) used = fms_diag_send_data ( id_tauu, -Atmos_boundary%u_flux, Time ) - !------- meridional wind stress ----------- + ! meridional wind stress used = fms_diag_send_data ( id_v_flux, Atmos_boundary%v_flux, Time ) used = fms_diag_send_data ( id_tauv, -Atmos_boundary%v_flux, Time ) + !} - !Balaji call fms_mpp_clock_end(fluxAtmDnClock) - call fms_mpp_clock_end(cplClock) - !======================================================================= + call fms_mpp_clock_end(cplClock) end subroutine flux_down_from_atmos From f897cda3a57495a990663732a8542bc143d5e692 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 24 Feb 2026 10:40:28 -0500 Subject: [PATCH 16/31] test --- docs/html/bc_s.png | Bin 0 -> 676 bytes docs/html/bdwn.png | Bin 0 -> 147 bytes docs/html/closed.png | Bin 0 -> 132 bytes docs/html/doc.png | Bin 0 -> 746 bytes docs/html/doxygen.css | 1793 +++++++++++++++++++++++++++ docs/html/doxygen.png | Bin 0 -> 3779 bytes docs/html/dynsections.js | 121 ++ docs/html/folderclosed.png | Bin 0 -> 616 bytes docs/html/folderopen.png | Bin 0 -> 597 bytes docs/html/index.html | 77 ++ docs/html/jquery.js | 35 + docs/html/menu.js | 51 + docs/html/menudata.js | 25 + docs/html/nav_f.png | Bin 0 -> 153 bytes docs/html/nav_g.png | Bin 0 -> 95 bytes docs/html/nav_h.png | Bin 0 -> 98 bytes docs/html/open.png | Bin 0 -> 123 bytes docs/html/search/close.png | Bin 0 -> 273 bytes docs/html/search/mag_sel.png | Bin 0 -> 563 bytes docs/html/search/nomatches.html | 12 + docs/html/search/search.css | 257 ++++ docs/html/search/search.js | 816 ++++++++++++ docs/html/search/search_l.png | Bin 0 -> 604 bytes docs/html/search/search_m.png | Bin 0 -> 158 bytes docs/html/search/search_r.png | Bin 0 -> 612 bytes docs/html/search/searchdata.js | 12 + docs/html/splitbar.png | Bin 0 -> 314 bytes docs/html/sync_off.png | Bin 0 -> 853 bytes docs/html/sync_on.png | Bin 0 -> 845 bytes docs/html/tab_a.png | Bin 0 -> 142 bytes docs/html/tab_b.png | Bin 0 -> 169 bytes docs/html/tab_h.png | Bin 0 -> 177 bytes docs/html/tab_s.png | Bin 0 -> 184 bytes docs/html/tabs.css | 1 + full/atm_land_ice_flux_exchange.F90 | 9 +- 35 files changed, 3205 insertions(+), 4 deletions(-) create mode 100644 docs/html/bc_s.png create mode 100644 docs/html/bdwn.png create mode 100644 docs/html/closed.png create mode 100644 docs/html/doc.png create mode 100644 docs/html/doxygen.css create mode 100644 docs/html/doxygen.png create mode 100644 docs/html/dynsections.js create mode 100644 docs/html/folderclosed.png create mode 100644 docs/html/folderopen.png create mode 100644 docs/html/index.html create mode 100644 docs/html/jquery.js create mode 100644 docs/html/menu.js create mode 100644 docs/html/menudata.js create mode 100644 docs/html/nav_f.png create mode 100644 docs/html/nav_g.png create mode 100644 docs/html/nav_h.png create mode 100644 docs/html/open.png create mode 100644 docs/html/search/close.png create mode 100644 docs/html/search/mag_sel.png create mode 100644 docs/html/search/nomatches.html create mode 100644 docs/html/search/search.css create mode 100644 docs/html/search/search.js create mode 100644 docs/html/search/search_l.png create mode 100644 docs/html/search/search_m.png create mode 100644 docs/html/search/search_r.png create mode 100644 docs/html/search/searchdata.js create mode 100644 docs/html/splitbar.png create mode 100644 docs/html/sync_off.png create mode 100644 docs/html/sync_on.png create mode 100644 docs/html/tab_a.png create mode 100644 docs/html/tab_b.png create mode 100644 docs/html/tab_h.png create mode 100644 docs/html/tab_s.png create mode 100644 docs/html/tabs.css diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/docs/html/doc.png b/docs/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css new file mode 100644 index 00000000..ded311bb --- /dev/null +++ b/docs/html/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.8.14 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 zcmV;!4m|ORP)tMIv#Q0*~7*`IBSO7_x;@a8#Zk6_PeKR_s92J&)(m+);m9Iz3blw)z#Gi zP!9lj4$%+*>Hz@HCmM9L9|8c+0u=!H$O3?R0Kgx|#WP<6fKfC8fM-CQZT|_r@`>VO zX^Hgb|9cJqpdJA5$MCEK`F_2@2Y@s>^+;pF`~jdI0Pvr|vl4`=C)EH@1IFe7pdJ8F zH(qGi004~QnF)Ggga~8v08kGAs2hKTATxr7pwfNk|4#_AaT>w8P6TV+R2kbS$v==} zAjf`s0g#V8lB+b3)5oEI*q+{Yt$MZDruD2^;$+(_%Qn+%v0X-bJO=;@kiJ^ygLBnC z?1OVv_%aex1M@jKU|Z~$eI?PoF4Vj>fDzyo zAiLfpXY*a^Sj-S5D0S3@#V$sRW)g)_1e#$%8xdM>Jm7?!h zu0P2X=xoN>^!4DoPRgph2(2va07yfpXF+WH7EOg1GY%Zn z7~1A<(z7Q$ktEXhW_?GMpHp9l_UL18F3KOsxu81pqoBiNbFSGsof-W z6~eloMoz=4?OOnl2J268x5rOY`dCk0us(uS#Ud4yqOr@?=Q57a}tit|BhY>}~frH1sP`ScHS_d)oqH^lYy zZ%VP`#10MlE~P?cE(%(#(AUSv_T{+;t@$U}El}(1ig`vZo`Rm;+5&(AYzJ^Ae=h2X z@Re%vHwZU>|f0NI&%$*4eJweC5OROQrpPMA@*w|o z()A==l}(@bv^&>H1Ob3C=<^|hob?0+xJ?QQ3-ueQC}zy&JQNib!OqSO@-=>XzxlSF zAZ^U*1l6EEmg3r};_HY>&Jo_{dOPEFTWPmt=U&F#+0(O59^UIlHbNX+eF8UzyDR*T z(=5X$VF3!gm@RooS-&iiUYGG^`hMR(07zr_xP`d!^BH?uD>Phl8Rdifx3Af^Zr`Ku ztL+~HkVeL#bJ)7;`=>;{KNRvjmc}1}c58Sr#Treq=4{xo!ATy|c>iRSp4`dzMMVd@ zL8?uwXDY}Wqgh4mH`|$BTXpUIu6A1-cSq%hJw;@^Zr8TP=GMh*p(m(tN7@!^D~sl$ zz^tf4II4|};+irE$Fnm4NTc5%p{PRA`%}Zk`CE5?#h3|xcyQsS#iONZ z6H(@^i9td!$z~bZiJLTax$o>r(p}3o@< zyD7%(>ZYvy=6$U3e!F{Z`uSaYy`xQyl?b{}eg|G3&fz*`QH@mDUn)1%#5u`0m$%D} z?;tZ0u(mWeMV0QtzjgN!lT*pNRj;6510Wwx?Yi_=tYw|J#7@(Xe7ifDzXuK;JB;QO z#bg~K$cgm$@{QiL_3yr}y&~wuv=P=#O&Tj=Sr)aCUlYmZMcw?)T?c%0rUe1cS+o!qs_ zQ6Gp)-{)V!;=q}llyK3|^WeLKyjf%y;xHku;9(vM!j|~<7w1c*Mk-;P{T&yG) z@C-8E?QPynNQ<8f01D`2qexcVEIOU?y}MG)TAE6&VT5`rK8s(4PE;uQ92LTXUQ<>^ ztyQ@=@kRdh@ebUG^Z6NWWIL;_IGJ2ST>$t!$m$qvtj0Qmw8moN6GUV^!QKNK zHBXCtUH8)RY9++gH_TUV4^=-j$t}dD3qsN7GclJ^Zc&(j6&a_!$jCf}%c5ey`pm~1)@{yI3 zTdWyB+*X{JFw#z;PwRr5evb2!ueWF;v`B0HoUu4-(~aL=z;OXUUEtG`_$)Oxw6FKg zEzY`CyKaSBK3xt#8gA|r_|Kehn_HYVBMpEwbn9-fI*!u*eTA1ef8Mkl1=!jV4oYwWYM}i`A>_F4nhmlCIC6WLa zY%;4&@AlnaG11ejl61Jev21|r*m+?Kru3;1tFDl}#!OzUp6c>go4{C|^erwpG*&h6bspUPJag}oOkN2912Y3I?(eRc@U9>z#HPBHC?nps7H5!zP``90!Q1n80jo+B3TWXp!8Pe zwuKuLLI6l3Gv@+QH*Y}2wPLPQ1^EZhT#+Ed8q8Wo z1pTmIBxv14-{l&QVKxAyQF#8Q@NeJwWdKk>?cpiJLkJr+aZ!Me+Cfp!?FWSRf^j2k z73BRR{WSKaMkJ>1Nbx5dan5hg^_}O{Tj6u%iV%#QGz0Q@j{R^Ik)Z*+(YvY2ziBG)?AmJa|JV%4UT$k`hcOg5r9R?5>?o~JzK zJCrj&{i#hG>N7!B4kNX(%igb%kDj0fOQThC-8mtfap82PNRXr1D>lbgg)dYTQ(kbx z`Ee5kXG~Bh+BHQBf|kJEy6(ga%WfhvdQNDuOfQoe377l#ht&DrMGeIsI5C<&ai zWG$|hop2@@q5YDa)_-A?B02W;#fH!%k`daQLEItaJJ8Yf1L%8x;kg?)k)00P-lH+w z)5$QNV6r2$YtnV(4o=0^3{kmaXn*Dm0F*fU(@o)yVVjk|ln8ea6BMy%vZAhW9|wvA z8RoDkVoMEz1d>|5(k0Nw>22ZT){V<3$^C-cN+|~hKt2)){+l-?3m@-$c?-dlzQ)q- zZ)j%n^gerV{|+t}9m1_&&Ly!9$rtG4XX|WQ8`xYzGC~U@nYh~g(z9)bdAl#xH)xd5a=@|qql z|FzEil{P5(@gy!4ek05i$>`E^G~{;pnf6ftpLh$h#W?^#4UkPfa;;?bsIe&kz!+40 zI|6`F2n020)-r`pFaZ38F!S-lJM-o&inOw|66=GMeP@xQU5ghQH{~5Uh~TMTd;I9` z>YhVB`e^EVj*S7JF39ZgNf}A-0DwOcTT63ydN$I3b?yBQtUI*_fae~kPvzoD$zjX3 zoqBe#>12im4WzZ=f^4+u=!lA|#r%1`WB0-6*3BL#at`47#ebPpR|D1b)3BjT34nYY z%Ds%d?5$|{LgOIaRO{{oC&RK`O91$fqwM0(C_TALcozu*fWHb%%q&p-q{_8*2Zsi^ zh1ZCnr^UYa;4vQEtHk{~zi>wwMC5o{S=$P0X681y`SXwFH?Ewn{x-MOZynmc)JT5v zuHLwh;tLfxRrr%|k370}GofLl7thg>ACWWY&msqaVu&ry+`7+Ss>NL^%T1|z{IGMA zW-SKl=V-^{(f!Kf^#3(|T2W47d(%JVCI4JgRrT1pNz>+ietmFToNv^`gzC@&O-)+i zPQ~RwK8%C_vf%;%e>NyTp~dM5;!C|N0Q^6|CEb7Bw=Vz~$1#FA;Z*?mKSC)Hl-20s t8QyHj(g6VK0RYbl8UjE)0O0w=e*@m04r>stuEhWV002ovPDHLkV1hl;dM*F} literal 0 HcmV?d00001 diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js new file mode 100644 index 00000000..3174bd7b --- /dev/null +++ b/docs/html/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (la9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 00000000..3f791c07 --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,77 @@ + + + + + + + +FMS Coupler: Main Page + + + + + + + + + +
+
+ + + + + + +
+
FMS Coupler +  2022.03 +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
FMS Coupler Documentation
+
+
+
+ + + + diff --git a/docs/html/jquery.js b/docs/html/jquery.js new file mode 100644 index 00000000..c9ed3d99 --- /dev/null +++ b/docs/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/menu.js b/docs/html/menu.js new file mode 100644 index 00000000..e88d4ba9 --- /dev/null +++ b/docs/html/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js new file mode 100644 index 00000000..03b9351f --- /dev/null +++ b/docs/html/menudata.js @@ -0,0 +1,25 @@ +/* +@ @licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2017 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}]} diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN literal 0 HcmV?d00001 diff --git a/docs/html/search/mag_sel.png b/docs/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 GIT binary patch literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn literal 0 HcmV?d00001 diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html new file mode 100644 index 00000000..b1ded27e --- /dev/null +++ b/docs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/docs/html/search/search.css b/docs/html/search/search.css new file mode 100644 index 00000000..9074198f --- /dev/null +++ b/docs/html/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/html/search/search.js b/docs/html/search/search.js new file mode 100644 index 00000000..fb226f73 --- /dev/null +++ b/docs/html/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/docs/html/search/search_r.png b/docs/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a GIT binary patch literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/docs/html/tabs.css b/docs/html/tabs.css new file mode 100644 index 00000000..8c46f341 --- /dev/null +++ b/docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 16db5786..8c56d01a 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -307,7 +307,7 @@ module atm_land_ice_flux_exchange_mod real :: z_ref_heat = 2. ! Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q real :: z_ref_mom = 10. - ! Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m + ! Reference height [m] for momentum diagnostics u_ref, v_ref, and del_m logical :: do_area_weighted_flux = .FALSE. ! NOT USED DELETE logical :: do_forecast = .false. ! NEED HELP @@ -2109,7 +2109,6 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - real, dimension(n_xgrid_sfc) :: & ex_gamma, & ex_dtmass, & @@ -2166,7 +2165,9 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo endif - !> if partition_fprec_from_lpec = .true., allocate atm%fprec and atm%lprec fields + !> if partition_fprec_from_lpec = .true., initialize frozen precition and + !! liquid precipitation in Atm + allocate atm%fprec and atm%lprec fields !! and initially set atm%fprec = atm%lprec if (partition_fprec_from_lprec .and. Atm%pe) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) @@ -2223,7 +2224,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgri (Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) From 59f3f38e42012e8f21e03004f3740ee4c7e107b4 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 24 Feb 2026 10:48:18 -0500 Subject: [PATCH 17/31] testing keep --- docs/html/index.html | 2 +- full/atm_land_ice_flux_exchange.F90 | 3506 ++++++++++++++------------- 2 files changed, 1812 insertions(+), 1696 deletions(-) diff --git a/docs/html/index.html b/docs/html/index.html index 3f791c07..9bdeb172 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -69,7 +69,7 @@
  • diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 8c56d01a..a8e38e3a 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -50,11 +50,11 @@ module atm_land_ice_flux_exchange_mod atm_stock_pe, & ! subroutine to compute the total stock in the atmospheric model atmos_data_type, & ! derived type containing fields needed for flux exchange between components land_ice_atmos_boundary_type ! derived type containing quantities going from land and ice to atmos - + ! FMSCoupler/full use atmos_ocean_dep_fluxes_calc_mod, only: & atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes - + ! FMSCoupler/full use atmos_ocean_fluxes_calc_mod, only: & atmos_ocean_fluxes_calc ! subroutine to computes gas fluxes for atmosphere and ocean @@ -141,47 +141,52 @@ module atm_land_ice_flux_exchange_mod TSKIN #endif -use FMS -use FMSconstants, only: & - cp_air, & ! RDGAS/KAPPA , specific heat capacity of dry air at constant pressure [J/kg/deg] - CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] - EPSLN, & ! 1.0e-40, a small number to prevent divide by zero exceptions - GRAV, & ! 9.80, acceleration due to gravity [m/s^2] - HLF, & ! 3.34e5, latent heat of fusion [J/kg] - HLV, & ! 2.500e6, latent heat of evaporation [J/kg] - PI, & ! 3.14159265358979323846 - Radius, & ! 6371.0e+3, radius of the Earth [m] - rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] - rvgas, & ! 461.50, gas constant for water vapor - stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] - WTMC, & ! 12.00000, molecular weight of carbon [amu] - WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [amu] - WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] - WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [amu] - + use FMS ! mainly for calls to diag_manager, data_override, and exchange + use FMSconstants, only: & + cp_air, & ! RDGAS/KAPPA , specific heat capacity of dry air at constant pressure [J/kg/deg] + CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] + EPSLN, & ! 1.0e-40, a small number to prevent divide by zero exceptions + GRAV, & ! 9.80, acceleration due to gravity [m/s^2] + HLF, & ! 3.34e5, latent heat of fusion [J/kg] + HLV, & ! 2.500e6, latent heat of evaporation [J/kg] + PI, & ! 3.14159265358979323846 + Radius, & ! 6371.0e+3, radius of the Earth [m] + rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] + rvgas, & ! 461.50, gas constant for water vapor + stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] + WTMC, & ! 12.00000, molecular weight of carbon [amu] + WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [amu] + WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] + WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [amu] + implicit none + include 'netcdf.inc' private public :: & atm_land_ice_flux_exchange_init, & - atm_stock_integrate, & - flux_atmos_to_ocean, & + sfc_boundary_layer, & + generate_sfc_xgrid, & flux_down_from_atmos, & - flux_ex_arrays_dealloc,& flux_up_to_atmos, & - generate_sfc_xgrid, & - send_ice_mask_sic, & - sfc_boundary_layer - - character(len=128) :: version = '$Id$' - character(len=128) :: tag = '$Name$' - - type(FmsXgridXmap_type), save :: xmap_sfc - integer :: n_xgrid_sfc=0 !< number of exchange grid points - - !-------- namelist (for diagnostics) ------ + flux_atmos_to_ocean, & + flux_ex_arrays_dealloc, & + atm_stock_integrate, & + send_ice_mask_sic - character(len=4), parameter :: mod_name = 'flux' + interface put_logical_to_real + module procedure put_logical_to_real_sg + module procedure put_logical_to_real_ug + end interface + + character(len=128) :: version = '$Id$' !< coupler version number + character(len=128) :: tag = '$Name$' !< coupler tag + + type(FmsXgridXmap_type), save :: xmap_sfc !< holds exchange grid between different components + + integer :: n_xgrid_sfc=0 !< total number of exchange grid cells + + character(len=4), parameter :: mod_name = 'flux' !< module name used to register diag_manager ! returned ids from registering diagnostic field with diag_manager integer :: & @@ -280,7 +285,7 @@ module atm_land_ice_flux_exchange_mod id_tslsi, & ! surface temperature on land or sea ice id_uas, & ! eastward near-surface wind id_vas !northward near-surface wind - + ! globally averaged diagnostics integer :: & id_evspsbl_g, & ! global integral of water evaporation flux @@ -291,23 +296,22 @@ module atm_land_ice_flux_exchange_mod id_tasl_g, & ! global integral of near-surface air temperature on land only id_ts_g ! global integral of surface temperature - logical :: first_static = .true. ! If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer + logical :: first_static = .true. + !< If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer logical :: do_init = .true. ! true if atm_land_ice_flux_exchnge_init has been called integer :: remap_method = 1 ! first or second order conservative remapping onto exchange grid - - real, parameter :: bound_tol = 1e-7 ! NOT USED DELETE - real, parameter :: d622 = rdgas/rvgas ! NOT USED DELETE - real, parameter :: d378 = 1.0-d622 ! NOT USED DELETE - real, parameter :: d608 = d378/d622 ! CHANGE TO 1.0-d622/(rdgas/rvgas) - real, parameter :: tfreeze = 273.15 ! freezing point of water at 1 atm [K] - real, allocatable, dimension(:,:) :: frac_precip ! NEED HELP + real, parameter :: d622 = rdgas/rvgas + real, parameter :: d378 = 1.0-d622 + real, parameter :: d608 = d378/d622 + real, parameter :: tfreeze = 273.15 !< freezing point of water at 1 atm [K] + real, allocatable, dimension(:,:) :: frac_precip !--- the following is from flux_exchange_nml real :: z_ref_heat = 2. ! Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q real :: z_ref_mom = 10. - ! Reference height [m] for momentum diagnostics u_ref, v_ref, and del_m + ! Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m logical :: do_area_weighted_flux = .FALSE. ! NOT USED DELETE logical :: do_forecast = .false. ! NEED HELP @@ -324,11 +328,11 @@ module atm_land_ice_flux_exchange_mod real, allocatable, dimension(:) :: & ! NOTE: T canopy is only differet from t_surf over vegetated land - ex_albedo_fix, & ! NEED HELP - ex_albedo_nir_dif_fix, & ! NEED HELP - ex_albedo_nir_dir_fix, & ! NEED HELP - ex_albedo_vis_dif_fix, & ! NEED HELP - ex_albedo_vis_dir_fix, & ! NEED HELP + ex_albedo_fix, & ! + ex_albedo_nir_dif_fix, & ! + ex_albedo_nir_dir_fix, & ! + ex_albedo_vis_dif_fix, & ! + ex_albedo_vis_dir_fix, & ! ex_b_star, & ! boyuancy scale on exchange grid ex_cd_m, & ! drag coefficient for momentum on exchange grid ex_cd_t, & !< drag coefficient for heat on exchange grid @@ -413,14 +417,9 @@ module atm_land_ice_flux_exchange_mod !< gas fields on ice type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() !< gas flux place holder of intermediate calculations, such as piston velocities etc. - - interface put_logical_to_real - module procedure put_logical_to_real_sg - module procedure put_logical_to_real_ug - end interface put_logical_to_real - - real, dimension(3) :: ccc !< for conservation checks !< NOT USED DELETE + !real, dimension(3) :: ccc !< for conservation checks + !balaji, sets boundary_type%xtype integer, parameter :: & regrid=1, & !< grids are physically different, pass via exchange grid @@ -435,12 +434,12 @@ module atm_land_ice_flux_exchange_mod fluxAtmUpClock !< FMS clock to profile flux up to atmosphere integer :: & - X1_GRID_ATM, & !< 1, exchange grid index for xgrid_stock_move - X1_GRID_ICE, & !< 2, exchange grid index for xgrid_stock_move - X1_GRID_LND !< 3, !< exchange grid index for xgrid_stock_move + X1_GRID_ATM, & !< =1, exchange grid index for xgrid_stock_move + X1_GRID_ICE, & !< =2, exchange grid index for xgrid_stock_move + X1_GRID_LND !< =3 exchange grid index for xgrid_stock_move real :: & - Dt_atm, & !< atmospheric timestep [s] + Dt_atm, & < atmospheric timestep [s] Dt_cpl !< coupled timestep [s] integer :: & @@ -459,16 +458,15 @@ module atm_land_ice_flux_exchange_mod contains !####################################################################### - !> \brief Initialization routine - !! - !! Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and - !! module level variables. The subroutine must be called before calling public subroutines - !! in this module. - + !> \brief module initialization routine. + !! Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and + !! boundary data, and module level variables. The subroutine must be called before calling public subroutines + !! in this module + subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & - Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, & - do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, & - nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in) + Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, & + partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, & + ex_gas_fields_ice_in, ex_gas_fluxes_in) implicit none type(FmsTime_type), intent(in) :: Time @@ -498,24 +496,24 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound logical, intent(in) :: do_forecast_in !< if true, put atm%surf_diff%sst_miz on the exchange grid if AM3_physics is used logical, intent(in) :: partition_fprec_from_lprec_in - !! if true, will convert liquid precip to snow when t_ref < tfreeze + !< if true, will convert liquid precip to snow when t_ref < tfreeze integer, intent(in) :: nblocks_in - !! divide the surface exchange grid to nblocks for OpenMP parallelizatio + !< divide the surface exchange grid to nblocks for OpenMP parallelizatio integer, intent(in) :: cplClock_in - !! clock to measure processes, mainly used for development and debugging + !< clock to measure processes, mainly used for development and debugging type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in - !! gas fields in Atm. Contains atmospheric surface variables that are used to compute + !< gas fields in Atm. Contains atmospheric surface variables that are used to compute !! atmosphere-ocean gas fluxes and flux-regulating parameters type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_ice_in - !! gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used + !< gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in - !! gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between + !< gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between !! the atmosphere and ocean. Values defined from the field table or computed during model run - + character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' character(len=256), parameter :: & - note_header = '==>Note from '//trim(module_name)//'(atm_land_ice_flux_exchange_init):' + note_header = '==>Note from ' // trim(module_name) // '(' // trim(sub_name) // '):' integer :: & i, & !< temporary index do loop @@ -532,7 +530,8 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound character(32) :: tr_name !< dummy variable to hold name of tracers logical :: found !< dummy variable to search through tracer index in ex_gas_fluxes - !> Initialize module level variables + !> INITIALIZE MODULE LEVEL VARIABLES + !{ Dt_atm = Dt_atm_in Dt_cpl = Dt_cpl_in z_ref_heat = z_ref_heat_in @@ -545,29 +544,30 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound cplClock = cplClock_in ex_gas_fields_atm => ex_gas_fields_atm_in ex_gas_fields_ice => ex_gas_fields_ice_in - ex_gas_fluxes => ex_gas_fluxes_in + ex_gas_fluxes => ex_gas_fluxes_in + !} - !> get file unit for stdout and stdlog + !> GET FILE UNIT FOR STDOUT AND STDLOG + !{ outunit = fms_mpp_stdout() logunit = fms_mpp_stdlog() + !} allocate(block_start(nblocks), block_end(nblocks)) - !> get the number ofatmospheric prognostic tracers and specific humidity tracer index from the tracer table - call fms_tracer_manager_get_number_tracers (MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) - - !> get the total number of land tracers and the number of prognostic tracers from the tracer table - call fms_tracer_manager_get_number_tracers (MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) - - ! assemble the table of tracer number translation by matching names of - ! prognostic tracers in the atmosphere and surface models; skip all atmos. - ! tracers that have no corresponding surface tracers. + !> FROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND + !! SPECIFIC HUMDITY FOR ATMOSPHERE AND LAND + !{ + call fms_tracer_manager_get_number_tracers(MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) + call fms_tracer_manager_get_number_tracers(MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) + !} - !> Populate tr_table and tr_table_map. Atm, land, and ice models will have its - !! own tracer index for the same tracer. + !> ASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND + !! SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS + !{ allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) n = 1 - do i = 1,n_atm_tr + do i=1, n_atm_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, i, tr_name ) tr_table(n)%atm = i tr_table(n)%ice = fms_tracer_manager_get_tracer_index ( MODEL_ICE, tr_name ) @@ -579,19 +579,22 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound n = n + 1 endif enddo - - !> Set the number of tracers that will be exchanged between the models n_exch_tr = n - 1 + !} - - !> Populate tracer table for ocean-atm gas fluxes where the tracer name in atm and ocean models may differ - - n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) - if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_atm2lnd - + !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND + !! HELP: WHAT IS GENERIC EXCHANGE? + !{ + n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) + if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_atm2lnd n_gex_lnd2atm = fms_gex_get_n_ex(MODEL_LAND,MODEL_ATMOS) - if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_lnd2atm - + if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_lnd2atm + !} + + + !> SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES + !! NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER + !{ do n = 1, ex_gas_fluxes%num_bcs if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then found = .false. @@ -614,26 +617,25 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound enddo write(outunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr write(logunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr - do i = 1,n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(i)%atm, tr_name) write(outunit,*)'Tracer field name :'//trim(tr_name) write(logunit,*)'Tracer field name :'//trim(tr_name) enddo - - ! REMOVE + !} + + !> GET THE TRACER INDEX OF SPECIFIC HUMIDITY + !{ ! +fix-me-slm+ specific humidity may not be present if we are running with ! dry atmosphere. Besides, model may use mixing ratio ('mix_rat') (?). However, ! some atmos code also assumes 'sphum' is present, so for now the following ! code may be good enough. - - !> Get tracer index for specific humidity, co2, and nh3 - do i = 1,n_exch_tr + do i=1, n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) if(fms_mpp_lowercase(tr_name)=='sphum') then isphum = i endif - ! jgj: get tracer index for co2 REMOVE + ! jgj: find out which exchange tracer is co2 if(fms_mpp_lowercase(tr_name)=='co2') then ico2 = i write(outunit,*)'Exchange tracer index for '//trim(tr_name),' : ',ico2 @@ -644,156 +646,176 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif enddo - if (isphum==NO_TRACER) call fms_error_mesg(module_name, 'tracer "sphum" must be present in the atmosphere', FATAL) - if (ico2==NO_TRACER) call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) + if (isphum==NO_TRACER) then + call fms_error_mesg(module_name, 'tracer "sphum" must be present in the atmosphere', FATAL) + endif + + if (ico2==NO_TRACER) then + call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) + endif + !} + !> INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) + if (scale_precip_2d) then + allocate(frac_precip(is:ie,js:je)) + frac_precip=0.0 + endif - if (scale_precip_2d) allocate(frac_precip(is:ie,js:je), source=0.0) - + !> SET UP THE EXCHANGE GRID + !{ call fms_xgrid_init(remap_method) - - call fms_xgrid_setup_xmap( & - xmap_sfc, & - ['ATM', 'OCN', 'LND'], & - [Atm%Domain, Ice%Domain, Land%Domain], & - "INPUT/grid_spec.nc", & - Atm%grid, & #ifndef _USE_LEGACY_LAND_ - lnd_ug_domain=Land%ug_domain, & + call fms_xgrid_setup_xmap(xmap_sfc, ['ATM', 'OCN', 'LND'], [Atm%Domain, Ice%Domain, Land%Domain], & + "INPUT/grid_spec.nc", Atm%grid, lnd_ug_domain=Land%ug_domain) +#else + call fms_xgrid_setup_xmap(xmap_sfc, ['ATM', 'OCN', 'LND'], [Atm%Domain, Ice%Domain, Land%Domain], & + "INPUT/grid_spec.nc", Atm%grid) #endif - ) - !> Assign exchange grid type and Generate surface exchange grid X1_GRID_ATM = 1 X1_GRID_ICE = 2 - X1_GRID_LND = 3 - call generate_sfc_xgrid( Land, Ice ) - + X1_GRID_LND = 3; + call generate_sfc_xgrid(Land, Ice) if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' - + !} + + !> INITIALIZE SURFACE_FLUX call surface_flux_init() - !> Initialize fms_diag_integral for global integral quantities + !----- initialize quantities for global integral package ----- + !! call diag_integral_field_init ('prec', 'f6.3') call fms_diag_integral_field_init ('evap', 'f6.3') #ifndef use_AM3_physics call fms_diag_integral_field_init ('t_surf', 'f10.3') !miz call fms_diag_integral_field_init ('t_ref', 'f10.3') !miz #endif - - !----------------------------------------------------------------------- - !----- initialize diagnostic fields ----- - !----- all fields will be output on the atmospheric grid ----- - + + !> INITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGER + ! all fields will be output on the atmospheric grid call diag_field_init ( Time, Atm%axes(1:2), Land%axes, Land%pe ) + + !> GET THE SIZE OF THE ATM GRID + !{ ni_atm = size(Atm%lon_bnd,1)-1 ! to dimension "diag_atm" nj_atm = size(Atm%lon_bnd,2)-1 ! in flux_ocean_to_ice + !} - !Balaji - - !> Initialize atmos_ice_boundary - call fms_mpp_domains_get_compute_domain( Ice%domain, is, ie, js, je ) + !> ALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZERO + !{ + call fms_mpp_domains_get_compute_domain(Ice%domain, is, ie, js, je) kd = size(Ice%part_size,3) - allocate( atmos_ice_boundary%u_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%v_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%u_star(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%t_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%q_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%lw_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%lprec(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%fprec(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%dedt(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%drdt(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%coszen(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0 ) - ! initialize boundary values for override experiments (mjh) - - !> Copy gas fluxes from exchange grid to atmosphere_ice boundary - call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & + allocate(atmos_ice_boundary%u_flux(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%v_flux(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%u_star(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%t_flux(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%q_flux(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%lw_flux(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%lprec(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%fprec(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%dedt(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%drdt(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%coszen(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0) + !} + + !> ALLOCATE FIELDS FOR EXTRA FLUXES + !{ + ! Copying initialized gas fluxes from exchange grid to atmosphere_ice boundary + call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & mod_name, Ice%axes, Time, suffix = '_atm_ice') ! Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two - ! coupler_type_copy calls are moved from ice_ocean_flux_init to here. - if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) then - call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, [is,is,ie,ie], [js,js,je,je], [1, kd], & - suffix = '_ice') - end if - + ! coupler_type_copy calls are moved from ice_ocean_flux_init to here. + if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) & + call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, & + [is,is,ie,ie], [js,js,je,je], [1, kd], suffix = '_ice') call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) - - !> Initialize land_ice_atmos_boundary - call fms_mpp_domains_get_compute_domain( Atm%domain, is, ie, js, je ) - allocate( land_ice_atmos_boundary%t(is:ie,js:je), source=273.0 ) - allocate( land_ice_atmos_boundary%t_ocean(is:ie,js:je), source=200.0 )! Joseph: surf ocean temp - allocate( land_ice_atmos_boundary%u_ref(is:ie,js:je), source=0.0 )! bqx - allocate( land_ice_atmos_boundary%v_ref(is:ie,js:je), source=0.0 ) ! bqx - allocate( land_ice_atmos_boundary%t_ref(is:ie,js:je), source=273.0 ) ! cjg: PBL depth mods - allocate( land_ice_atmos_boundary%q_ref(is:ie,js:je), source=0.0 ) ! cjg: PBL depth mods - allocate( land_ice_atmos_boundary%albedo(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%land_frac(is:ie,js:je, source=0.0) ) - allocate( land_ice_atmos_boundary%dt_t(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr), source=0.0 ) - allocate( land_ice_atmos_boundary%u_flux(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%v_flux(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%dtaudu(is:ie,js:je), source=0.0) - allocate( land_ice_atmos_boundary%dtaudv(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%u_star(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%b_star(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%q_star(is:ie,js:je), source=0.0 ) + !} + + !> ALLOCATE LAND_ICE_ATMOS_BOUNDARY + !{ + call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) + allocate(land_ice_atmos_boundary%t(is:ie,js:je), source=273.0) + allocate(land_ice_atmos_boundary%t_ocean(is:ie,js:je), source=200.0)! Joseph: surf ocean temp + allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je), source=0.0) ! bqx + allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je), source=0.0) ! bqx + allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je), source=273.0) ! cjg: PBL depth mods + allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je), source=0.0) ! cjg: PBL depth mods + allocate(land_ice_atmos_boundary%albedo(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr), source=0.0) + allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%u_star(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%b_star(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%q_star(is:ie,js:je), source=0.0) #ifndef use_AM3_physics - allocate( land_ice_atmos_boundary%shflx(is:ie,js:je), source=0.0 )!miz - allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je), source=0.0 )!miz + allocate(land_ice_atmos_boundary%shflx(is:ie,js:je), source=0.0)!miz + allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je), source=0.0)!miz #endif - allocate( land_ice_atmos_boundary%wind(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%thv_atm(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%thv_surf(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%rough_mom(is:ie,js:je), source=0.01 ) - allocate( land_ice_atmos_boundary%rough_heat(is:ie,js:je), surce=0.01 ) ! Kun - allocate( land_ice_atmos_boundary%frac_open_sea(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0 ) - + allocate(land_ice_atmos_boundary%wind(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je), source=0.01) + allocate(land_ice_atmos_boundary%rough_heat(is:ie,js:je), source=0.01) ! Kun + allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je), source=0.0) + allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0) + !} - !> Allocate fields for extra tracers + !> ALLOCATE FIELDS FOR EXTRA TRACERS + !{ + ! The first call is no longer necessary, the fluxes will be passed by the land module + ! The 2nd call is useful in the case of a ocean model only simulation + ! call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & mod_name, Atm%axes(1:2), Time, suffix = '_atm') - - !> Set nxc_ice and nyc_ice + !} + + !> GET DIMENSION OF THE DECOMPOSED ICE DOMAIN if( Ice%pe) then call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) nk_ice = size(Ice%part_size,3) endif - !> Set nxc_land nyc_land + !> GET DIMENSION OF THE DECOMPOSED LAND DOMAIN if( Land%pe) then call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) endif + + !> INITIALIZE CLOCKS FOR PROFILING + !{ !Balaji: clocks on atm%pe only sfcClock = fms_mpp_clock_id( 'SFC boundary layer', flags=fms_clock_flag_default, grain=CLOCK_SUBCOMPONENT ) fluxAtmDnClock = fms_mpp_clock_id( 'Flux DN from atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) regenClock = fms_mpp_clock_id( 'XGrid generation', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) fluxAtmUpClock = fms_mpp_clock_id( 'Flux UP to atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) - + !} + do_init = .false. end subroutine atm_land_ice_flux_exchange_init !####################################################################### - !> \brief Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. + !> \brief Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. !! !!
       !!   t_surf_atm: surface temperature used for radiation [K]
    @@ -811,9 +833,9 @@ end subroutine atm_land_ice_flux_exchange_init
       !! between one component grid to another component grid.  Computed fluxes can also be overwritten
       !! with calls to data_override.  Note, data_override will not override data if the tracers 
       !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude
    -  !!           of surface stress divided by density of air at the surface,
    -  !!           and `u_star*b_star` is the buoyancy flux at the surface.
    -  subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary )
    +  !! of surface stress divided by density of air at the surface,
    +  !! and `u_star*b_star` is the buoyancy flux at the surface.
    +  subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     
         implicit none
         real, intent(in) :: dt
    @@ -829,7 +851,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
         type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary
           !< derived data type to specify properties and fluxes passed between land and ice to atmos 
     
    -    !> quantities on exchange grid
    +    ! ---- local vars ----------------------------------------------------------
         real, dimension(n_xgrid_sfc) :: &
              ex_albedo, & ! albedo 
              ex_albedo_vis_dir, & ! albedo for light with wavelength in visible region of the solar spectrum
    @@ -866,60 +888,56 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
              ex_del_q, & ! reference height interpation factor for moisture
              ex_frac_open_sea ! open-water mask, not used?
     
    -    real :: rho 
    -
    +    real :: rho
         real, dimension(n_xgrid_sfc,n_exch_tr) :: &
    -         ex_tr_atm, & !< amount of tracer [mol?] at lowest atmospheric level on exchange grid
    -         ex_tr_ref !< amount of tracer [mol?] at reference height on exchange grid
    -    
    +         ex_tr_atm, & !< concentration of tracer at lowest atmospheric level
    +         ex_tr_ref !< concentration of tracer at reference height
    +   
         real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic
     
    -    !> temporary array to hold data
    -    real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm    
    +    real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm
    +      !< temporary array to hold data
     
     #ifndef _USE_LEGACY_LAND_
    -    real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2)) :: diag_land
    +    real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2)) :: diag_land
         real, dimension(size(Land%t_ca, 1)) :: diag_land_ug, tile_size_ug
    -    real, dimension(nxc_lnd, nyc_lnd) :: diag_land_sg, tile_size_sg
    +    real, dimension(nxc_lnd,nyc_lnd) :: diag_land_sg, tile_size_sg
         logical, dimension(size(Land%t_ca, 1)) :: mask_ug
         logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg
         integer :: k
     #else
    -    !> temporary array to hold data
    -    real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land
    +    real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land
     #endif
    -
    -    !> temporary array to hold data
    -    real, dimension(size(Ice%t_surf,1), size(Ice%t_surf,2), size(Ice%t_surf,3)) :: sea
    -    real, dimension(size(Ice%albedo,1), size(Ice%albedo,2), size(Ice%albedo,3)) :: tmp_open_sea
    +    real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea
    +    real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) ::  tmp_open_sea
     
         real :: &
              zrefm, & ! reference height for computing surface fluxes from Monin-Obukhov similarity theory
              zrefh ! reference height for computing surface fluxes from Monin-Obukhov similarity theory
    -
    -    logical :: used !< returned value from data_override.  if true, data was overwritten
         
    -    character(32) :: &
    -         tr_name, & !< tracer name as stored in tracer_manager (from tracer_table)
    -         tr_units ! tracer unit as stored in tracer_manager
    +    logical :: used !< returned value from data_override.  if true, data was overwritten
    +    character(32) :: tr_name, tr_units ! tracer name
     
         integer :: tr, n, m ! tracer indices
    -
         integer :: is, ie, isc, iec, jsc, jec !< domain indices
    -    integer :: l, j, i, n_gex !< counters
    -    
    -    !> array holding generic, non-tracer fields on exchange grid
    -    real, dimension(n_xgrid_sfc, n_gex_lnd2atm) ::  ex_gex_lnd2atm
    +    integer :: i, l, j, n_gex !< do loop indices
         
    -    !> check if module was initialized 
    +    real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm
    +      !< array holding generic, non-tracer fields on the exchange grid
    +
    +    ! [1] check that the module was initialized
         if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod',  &
              'must call atm_land_ice_flux_exchange_init first', FATAL)
     
    -    !Balaji, start clocks for profiling
    +    !> Initialize clocks for profiling
    +    !{
    +    !Balaji
         call fms_mpp_clock_begin(cplClock)
         call fms_mpp_clock_begin(sfcClock)
    -
    -    !> allocate module level arrays to hold data on the exchange grid (deallocated in flux_up_to_atmos)
    +    !}
    +    
    +    !> ALLOCATE ARRAY FOR EXCHANGE FIELDS.  WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS
    +    !{
         allocate ( &
              ex_t_surf(n_xgrid_sfc),  &
              ex_t_surf_miz(n_xgrid_sfc), &
    @@ -945,13 +963,13 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
              ex_con_atm(n_xgrid_sfc), &
              ex_tr_con_ref(n_xgrid_sfc, n_exch_tr), &
              ex_tr_con_atm(n_xgrid_sfc, n_exch_tr), &
    -         ex_flux_u(n_xgrid_sfc), & 
    +         ! MOD these were moved from local ! so they can be passed to flux down
    +         ex_flux_u(n_xgrid_sfc), &
              ex_flux_v(n_xgrid_sfc), &
              ex_dtaudu_atm(n_xgrid_sfc), &
              ex_dtaudv_atm(n_xgrid_sfc), &
              ex_seawater(n_xgrid_sfc), &
              ! values added for LM3
    -         !{
              ex_cd_t(n_xgrid_sfc), &
              ex_cd_m(n_xgrid_sfc), &
              ex_b_star(n_xgrid_sfc), &
    @@ -960,77 +978,43 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
              ex_z_atm(n_xgrid_sfc), &
              ex_e_t_n(n_xgrid_sfc), &
              ex_e_q_n(n_xgrid_sfc), &
    -         ex_land(n_xgrid_sfc) &
    -         !}
    -    )
    -
    +         ex_land(n_xgrid_sfc))
     #ifdef SCM
         allocate ( &
              ex_dhdt_surf_forland(n_xgrid_sfc), &
              ex_dedt_surf_forland(n_xgrid_sfc), &
    -         ex_dedq_surf_forland(n_xgrid_sfc) &
    -    )
    +         ex_dedq_surf_forland(n_xgrid_sfc))
     #endif
    +    !} END ALLOCATION ARRAYS FOR EXCHANGE FIELDS
     
    -    !> Initialize allocated arrays (does this need to be done in an OpenMP block?  Can it be set during
    -    !! allocation?)
    -    !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, &
    -    !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, ex_albedo_vis_dif,ex_albedo_nir_dif,&
    -    !$OMP ex_cd_t,ex_cd_m, ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) private(is,ie,n_gex)
    -    do l = 1, my_nblocks
    -       is = block_start(l)
    -       ie = block_end(l)
    -       do i = is, ie
    -          ex_t_surf(i) = 200.
    -          ex_u_surf(i) = 0.
    -          ex_v_surf(i) = 0.
    -          ex_albedo(i) = 0. ! bw
    -          ex_albedo_vis_dir(i) = 0.
    -          ex_albedo_nir_dir(i) = 0.
    -          ex_albedo_vis_dif(i) = 0.
    -          ex_albedo_nir_dif(i) = 0.
    -
    -          ! do not use if relax time /= 0
    -          !{
    -          ex_cd_t(i) = 0.0
    -          ex_cd_m(i) = 0.0
    -          ex_cd_q(i) = 0.0
    -          ex_frac_open_sea(i) = 0.
    -          !}
    -       end do
    -       do n_gex = 1, n_gex_lnd2atm
    -          do i = is, ie
    -             ex_gex_lnd2atm(i,n_gex) = 0.0
    -          enddo
    -       enddo
    -    enddo
    -
    -    
    -    !> initialize surface pressure on exchange grid
    +    !> ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY
    +    !{
         ex_p_surf = 1.0
    -
    -
    -    !> Allocate fms/coupler type for gas field exchange between ocean and ice 
    +    ! Actual allocation of exchange fields for ocean_ice boundary
         do n = 1, ex_gas_fields_ice%num_bcs
            do m = 1, ex_gas_fields_ice%bc(n)%num_fields
    -          if(associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then
    -             call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.')
    +          if (associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then
    +             call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.' )
               endif
               allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0)
            enddo
         enddo
    +    !}
     
    -    !> Allocate fms/coupler type for gas field exchange with atmosphere
    +    !> ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHRE
    +    !{
         do n = 1, ex_gas_fields_atm%num_bcs
            do m = 1, ex_gas_fields_atm%bc(n)%num_fields
               if (associated(ex_gas_fields_atm%bc(n)%field(m)%values)) then
                  call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.')
               endif
    -          allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0)
    +          allocate (ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0)
            enddo
         enddo
    +    !}
     
    -    !> Allocate additional gas flux fields for intermediate calculations
    +    !> ALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDS
    +    !{
         do n = 1, ex_gas_fluxes%num_bcs
            do m = 1, ex_gas_fluxes%bc(n)%num_fields
               if (associated(ex_gas_fluxes%bc(n)%field(m)%values)) then
    @@ -1038,242 +1022,328 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
               endif
               allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0)
            enddo 
    -    enddo    
    +    enddo
    +    !}
    +    
    +    ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers
    +    ! For ocean only model
    +    ! call atmos_get_fields_for_flux(Atm)
     
    -    !> override atm fields only if the field is specified in data_table
    +
    +    !> SET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDS
    +    !{
    +    ! this is actually a safeguard against using undefined values
    +    !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, &
    +    !$OMP ex_v_surf, ex_albedo, ex_albedo_vis_dir, ex_albedo_nir_dir, ex_albedo_vis_dif, ex_albedo_nir_dif, ex_cd_t, &
    +    !$OMP ex_cd_m, ex_cd_q, ex_frac_open_sea, n_gex_lnd2atm, ex_gex_lnd2atm)  private(is,ie,n_gex)
    +    do l = 1, my_nblocks
    +       is=block_start(l)
    +       ie=block_end(l)
    +       do i = is,ie
    +          ex_t_surf(i) = 200.
    +          ex_u_surf(i) = 0.
    +          ex_v_surf(i) = 0.
    +          ex_albedo(i) = 0. ! bw
    +          ex_albedo_vis_dir(i) = 0.
    +          ex_albedo_nir_dir(i) = 0.
    +          ex_albedo_vis_dif(i) = 0.
    +          ex_albedo_nir_dif(i) = 0.
    +          !---- do not use if relax time /= 0 ----
    +          ex_cd_t(i) = 0.0
    +          ex_cd_m(i) = 0.0
    +          ex_cd_q(i) = 0.0
    +          ex_frac_open_sea(i) =0.
    +       end do
    +       do n_gex=1,n_gex_lnd2atm
    +         do i = is,ie
    +               ex_gex_lnd2atm(i,n_gex) = 0.0
    +         enddo
    +       enddo
    +    enddo
    +    !}
    +    
    +    !> OVERRIDE ATM ATM%T_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST
    +    !! DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE
    +    !{
    +    !Balaji: data_override stuff moved from coupler_main
    +    call fms_data_override('ATM', 't_bot',  Atm%t_bot , Time)
    +    call fms_data_override('ATM', 'z_bot',  Atm%z_bot , Time)
    +    call fms_data_override('ATM', 'p_bot',  Atm%p_bot , Time)
    +    call fms_data_override('ATM', 'u_bot',  Atm%u_bot , Time)
    +    call fms_data_override('ATM', 'v_bot',  Atm%v_bot , Time)
    +    call fms_data_override('ATM', 'p_surf', Atm%p_surf, Time)
    +    call fms_data_override('ATM', 'slp',    Atm%slp,    Time)
    +    call fms_data_override('ATM', 'gust',   Atm%gust,   Time)
    +    !}
    +
    +    !> CONVERT CO2 TRACER UNITS to WET_MMR UNITS
         !{
    -    call fms_data_override ('ATM', 't_bot',  Atm%t_bot , Time)
    -    call fms_data_override ('ATM', 'z_bot',  Atm%z_bot , Time)
    -    call fms_data_override ('ATM', 'p_bot',  Atm%p_bot , Time)
    -    call fms_data_override ('ATM', 'u_bot',  Atm%u_bot , Time)
    -    call fms_data_override ('ATM', 'v_bot',  Atm%v_bot , Time)
    -    call fms_data_override ('ATM', 'p_surf', Atm%p_surf, Time)
    -    call fms_data_override ('ATM', 'slp',    Atm%slp,    Time)
    -    call fms_data_override ('ATM', 'gust',   Atm%gust,   Time)
    -
    -    do tr = 1, n_atm_tr
    +    ! jgj: 2008/07/18
    +    ! FV atm advects tracers in moist mass mixing ratio: kg co2 /(kg air + kg water)
    +    ! cubed sphere advects moist mass mixing ratio also (per SJ)
    +    ! data table co2 overrides for ocean (co2_flux_pcair_atm)
    +    ! and land (co2_bot) should be in dry vmr (mol/mol) units.
    +    !  ATM: co2_flux_pcair_atm : to override atm_btm layer to send to ocean
    +    !  ATM: co2_bot            : to override atm_btm layer to send to land
    +
    +    ! data override for co2 to be passed to land/photosynthesis (co2_bot)
    +    ! land co2 data override is in dry_vmr units, so convert to wet_mmr for land model.
    +    ! co2mmr = (wco2/wair) * co2vmr;  wet_mmr = dry_mmr * (1-Q)
    +    !
    +    do tr = 1,n_atm_tr
            call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr, tr_name )
            call fms_data_override('ATM', trim(tr_name)//'_bot', Atm%tr_bot(:,:,tr), Time, override=used)
    +       ! conversion for land co2 data override from dry vmr to moist mmr
            if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then
    -          ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units for atmosphere-land exchange
    -          if(id_co2_bot > 0) used = fms_diag_send_data(id_co2_bot, Atm%tr_bot(:,:,tr), Time)
    -          
    +          ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units
    +          if ( id_co2_bot > 0 ) used = fms_diag_send_data ( id_co2_bot, Atm%tr_bot(:,:,tr), Time )
               isc = lbound(Atm%tr_bot,1); iec = ubound(Atm%tr_bot,1)
               jsc = lbound(Atm%tr_bot,2); jec = ubound(Atm%tr_bot,2)
               !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Atm,tr,isphum)
               do j = jsc, jec
                  do i = isc, iec
    -                ! After overriding co2 tracer data, convert units from
    -                ! volume mixing ratio [mol of co2]/[mol of air] to mass mixing ratio [kg of co2]/[kg of air]
    -                ! and convert from dry mass mixing ratio to wet mas mixing ratio via
    -                ! co2mmr = (wco2/wair) * co2vmr and wet_mmr = dry_mmr * (1-Q)  where Q is specific humidity
    -                Atm%tr_bot(i,j,tr) = Atm%tr_bot(i,j,tr) * (WTMCO2/WTMAIR) * &
    +                Atm%tr_bot(i,j,tr) = Atm%tr_bot(i,j,tr) * (WTMCO2/WTMAIR) *    &
                          (1.0 - Atm%tr_bot(i,j,isphum))
                  enddo
               enddo
            end if
         enddo
    -    
    +    !}
    +
    +    !> OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS
    +    !! SPECIFIED IN THE DIAG_TABLE.  DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLE
    +    !{
    +    ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux from moist mmr to dry vmr.
         do n = 1, atm%fields%num_bcs
            do m = 1, atm%fields%bc(n)%num_fields
    -
               call fms_data_override('ATM', atm%fields%bc(n)%field(m)%name, &
                    atm%fields%bc(n)%field(m)%values, Time, override = atm%fields%bc(n)%field(m)%override)
    -
               ex_gas_fields_atm%bc(n)%field(m)%override = atm%fields%bc(n)%field(m)%override
    -
    -          ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before
    -          ! atmosphere-ocean exchange
    -          if(atm%fields%bc(n)%field(m)%override .and. & 
    +          ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic
    +          if ( atm%fields%bc(n)%field(m)%override .and. &
                    fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'co2_flux_pcair_atm') then
                  if(id_co2_flux_pcair_atm > 0) &
                       used = fms_diag_send_data(id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time)
               endif
    -
    -          ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before
    -          ! atmosphere-ocean exchange
    -          if(atm%fields%bc(n)%field(m)%override .and. &
    +          ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic
    +          if (atm%fields%bc(n)%field(m)%override .and. &
                    fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'o2_flux_pcair_atm') then
                  if(id_o2_flux_pcair_atm > 0) &
    -                  used = fms_diag_send_data(id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time)
    +                used = fms_diag_send_data(id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time)
               endif
    -       enddo
    +       enddo 
         enddo
    -    
         do n = 1, atm%fields%num_bcs
            if (atm%fields%bc(n)%use_atm_pressure) then
    -          if (.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then
    +          if(.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then
                  atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values = Atm%p_surf
               endif
            endif
         enddo
         !}
     
    -    !> override ice fields where data is overwritten only if the field is specified in the data_table
    +    !> OVERRIDE ICE%T_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF.
    +    !! OVERRIDE LAND%T_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS
    +    !! DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE
         !{
    -    call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time)
    -    call fms_data_override ('ICE', 'rough_mom', Ice%rough_mom, Time)
    -    call fms_data_override ('ICE', 'rough_heat', Ice%rough_heat, Time)
    -    call fms_data_override ('ICE', 'rough_moist',Ice%rough_moist, Time)
    -    call fms_data_override ('ICE', 'albedo', Ice%albedo, Time)
    -    call fms_data_override ('ICE', 'albedo_vis_dir', Ice%albedo_vis_dir, Time)
    -    call fms_data_override ('ICE', 'albedo_nir_dir', Ice%albedo_nir_dir, Time)
    -    call fms_data_override ('ICE', 'albedo_vis_dif', Ice%albedo_vis_dif, Time)
    -    call fms_data_override ('ICE', 'albedo_nir_dif', Ice%albedo_nir_dif, Time)
    -    call fms_data_override ('ICE', 'u_surf', Ice%u_surf, Time)
    -    call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time)
    +    call fms_data_override('ICE', 't_surf',     Ice%t_surf, Time)
    +    call fms_data_override('ICE', 'rough_mom',  Ice%rough_mom, Time)
    +    call fms_data_override('ICE', 'rough_heat', Ice%rough_heat, Time)
    +    call fms_data_override('ICE', 'rough_moist',Ice%rough_moist, Time)
    +    call fms_data_override('ICE', 'albedo',     Ice%albedo,  Time)
    +    call fms_data_override('ICE', 'albedo_vis_dir', Ice%albedo_vis_dir, Time)
    +    call fms_data_override('ICE', 'albedo_nir_dir', Ice%albedo_nir_dir, Time)
    +    call fms_data_override('ICE', 'albedo_vis_dif', Ice%albedo_vis_dif, Time)
    +    call fms_data_override('ICE', 'albedo_nir_dif', Ice%albedo_nir_dif, Time)
    +    call fms_data_override('ICE', 'u_surf', Ice%u_surf, Time)
    +    call fms_data_override('ICE', 'v_surf', Ice%v_surf, Time)
         call fms_coupler_type_data_override('ICE', Ice%ocean_fields, Time)
         call fms_coupler_type_send_data(Ice%ocean_fields, Time)
    -    !}
    +    call FMS_DATA_OVERRIDE_('LND', 't_surf', Land%t_surf, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 't_ca', Land%t_ca, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 'rough_mom',  Land%rough_mom, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 'rough_heat', Land%rough_heat, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 'albedo', Land%albedo, Time)
     
    -    !> override land fields where data is overwritten only if the field is specified in the data_table
    -    !{
    -    call FMS_DATA_OVERRIDE_ ('LND', 't_surf', Land%t_surf, Time)
    -    call FMS_DATA_OVERRIDE_ ('LND', 't_ca', Land%t_ca, Time)
    -    call FMS_DATA_OVERRIDE_ ('LND', 'rough_mom', Land%rough_mom, Time)
    -    call FMS_DATA_OVERRIDE_ ('LND', 'rough_heat', Land%rough_heat, Time)
    -    call FMS_DATA_OVERRIDE_ ('LND', 'albedo', Land%albedo, Time)
    +    ! tracer data override
         do tr = 1, n_lnd_tr
    -       call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name )
    +       call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name)
     #ifndef _USE_LEGACY_LAND_
            call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time)
     #else
            call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time)
     #endif
         enddo
    -    call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dir', Land%albedo_vis_dir, Time)
    -    call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir, Time)
    -    call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time)
    -    call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 'albedo_vis_dir', Land%albedo_vis_dir, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 'albedo_nir_dir', Land%albedo_nir_dir, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time)
    +    call FMS_DATA_OVERRIDE_('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time)
         !}
         
    -    !> map atmospheric fields onto the exchange grid
    +    !> MAP ATM FIELDS ONTO THE EXCHANGE GRID
         !{
     #ifdef use_AM3_physics
         if (do_forecast) then
    -       call fms_xgrid_put_to_xgrid (Atm%Surf_diff%sst_miz, 'ATM', ex_t_surf_miz, &
    +       call fms_xgrid_put_to_xgrid(Atm%Surf_diff%sst_miz, 'ATM', ex_t_surf_miz, &
                 xmap_sfc, remap_method=remap_method, complete=.false.)
         endif
     #endif
    -    
    -    do tr = 1,n_exch_tr
    -       call fms_xgrid_put_to_xgrid (Atm%tr_bot(:,:,tr_table(tr)%atm), 'ATM', ex_tr_atm(:,tr), xmap_sfc, &
    +    ! put atmosphere bottom layer tracer data onto exchange grid
    +    do tr=1, n_exch_tr
    +       call fms_xgrid_put_to_xgrid(Atm%tr_bot(:,:,tr_table(tr)%atm) , 'ATM', ex_tr_atm(:,tr), xmap_sfc, &
                 remap_method=remap_method, complete=.false.)
         enddo
    -
         do n = 1, Atm%fields%num_bcs
            if(ex_gas_fields_atm%bc(n)%flux_type  .ne. 'air_sea_deposition') then
    -          do m = 1, Atm%fields%bc(n)%num_fields  !{
    +          do m = 1, Atm%fields%bc(n)%num_fields
                  call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', &
                       ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.)
               enddo
            endif
         enddo
    -
    -    call fms_xgrid_put_to_xgrid (Atm%t_bot , 'ATM', ex_t_atm , xmap_sfc, remap_method=remap_method, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Atm%z_bot , 'ATM', ex_z_atm , xmap_sfc, remap_method=remap_method, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Atm%p_bot , 'ATM', ex_p_atm , xmap_sfc, remap_method=remap_method, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Atm%u_bot , 'ATM', ex_u_atm , xmap_sfc, remap_method=remap_method, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Atm%v_bot , 'ATM', ex_v_atm , xmap_sfc, remap_method=remap_method, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Atm%slp,    'ATM', ex_slp,    xmap_sfc, remap_method=remap_method, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Atm%gust,   'ATM', ex_gust,   xmap_sfc, remap_method=remap_method, complete=.true.)
    +    
    +    call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_t_atm, xmap_sfc, remap_method=remap_method, complete=.false.)
    +    call fms_xgrid_put_to_xgrid(Atm%z_bot, 'ATM', ex_z_atm, xmap_sfc, remap_method=remap_method, complete=.false.)
    +    call fms_xgrid_put_to_xgrid(Atm%p_bot, 'ATM', ex_p_atm, xmap_sfc, remap_method=remap_method, complete=.false.)
    +    call fms_xgrid_put_to_xgrid(Atm%u_bot, 'ATM', ex_u_atm, xmap_sfc, remap_method=remap_method, complete=.false.)
    +    call fms_xgrid_put_to_xgrid(Atm%v_bot, 'ATM', ex_v_atm, xmap_sfc, remap_method=remap_method, complete=.false.)
    +    call fms_xgrid_put_to_xgrid(Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.)
    +    call fms_xgrid_put_to_xgrid(Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.)
    +    call fms_xgrid_put_to_xgrid(Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.)
         !}
    +    
    +    ! slm, Mar 20 2002: changed order in whith the data transferred from ice and land
    +    ! grids, to fill t_ca first with t_surf over ocean and then with t_ca from
    +    ! land, where it is different from t_surf. It is mostly to simplify
    +    ! diagnostic, since surface_flux calculations distinguish between land and
    +    ! not-land anyway.
     
    -    !> prefill surface values on the exchange grid with atmospheric values before putting tracers
    +    !> INITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYER
    +    !{
    +    ! prefill surface values with atmospheric values before putting tracers
         ! from ice or land, so that gradient is 0 if tracers are not filled
         ex_tr_surf = ex_tr_atm
    -    
    -    !> map ice fields onto the exchange grid
    +    !}
    +
    +    !> MAP ICE FIELDS ONTO THE EXCHANGE GRID
         !{
         ! (assume that ocean quantites are stored in no ice partition)
         ! (note: ex_avail is true at ice and ocean points)
    -    call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%rough_moist, 'OCN', ex_rough_moist, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%albedo, 'OCN', ex_albedo, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dir, 'OCN', ex_albedo_vis_dir, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dir, 'OCN', ex_albedo_nir_dir, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dif, 'OCN', ex_albedo_vis_dif, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dif, 'OCN', ex_albedo_nir_dif, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc)
    -    call fms_xgrid_put_to_xgrid (Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%rough_moist, 'OCN', ex_rough_moist, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%albedo, 'OCN', ex_albedo, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%albedo_vis_dir, 'OCN', ex_albedo_vis_dir, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%albedo_nir_dir, 'OCN', ex_albedo_nir_dir, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%albedo_vis_dif, 'OCN', ex_albedo_vis_dif, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%albedo_nir_dif, 'OCN', ex_albedo_nir_dif, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc)
     
         tmp_open_sea = 0.
         tmp_open_sea(:,:,1) = 1.
    -    call fms_xgrid_put_to_xgrid ( tmp_open_sea,  'OCN', ex_frac_open_sea,   xmap_sfc)
    +    call fms_xgrid_put_to_xgrid(tmp_open_sea, 'OCN', ex_frac_open_sea, xmap_sfc)
     
         do n = 1, ice%ocean_fields%num_bcs
    -       do m = 1, ice%ocean_fields%bc(n)%num_fields 
    +       do m = 1, ice%ocean_fields%bc(n)%num_fields
               call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', &
                    ex_gas_fields_ice%bc(n)%field(m)%values, xmap_sfc)
    -       enddo
    +       enddo 
         enddo
         !}
    -    
    -    !> Compute dynamic mask for seaice and static mask for land
    +
    +    !> GENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRID
         !{
    -    ! Initialize open-water mask where each OCN grid cells is open water set to mask value of 1.0
    -    sea = 0.0
    -    sea(:,:,1) = 1.0
    -    
    -    ! Generate dynamic ex_seawater wet mask that will be used to limit the air-sea flux exchange to areas
    -    ! that are not totally covered by seaice.  Note, xmap_sfc between land and ice is dynamic and changes
    -    ! as seaice fraction changes during the model run [link to coupler_main].  Below call takes the updated
    -    ! xmap_sfc and mark all open-water cells to be 1.0 
    +    !Generate a wet mask array on the xgrid which is:
    +    !       1: where there is any open water in the OCN grid cell
    +    !       0: where there is no  open water in the OCN grid cell, i.e., totally ice covered or land
    +    !This is a dynamic wet mask and particularly is not the same as a static land mask because seaice fractions change
    +    ! as the model runs.
    +    !One way to create such a mask is if 'OCN' puts an array on the xgrid which is
    +    ! 1 on every OCN grid cell with the 3rd index equal to 1 (ice category 1 corresponds to open water in the grid cell)
    +    ! 0 otherwise
    +    !This wet mask will be used to limit the air-sea flux exchange to areas that are not totally covered by seaice.
    +    sea = 0.0; sea(:,:,1) = 1.0;
         ex_seawater = 0.0
         call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc)
    +    !}
         
    +    !Question: Why is the above ex_seawater a dynamic mask array?
    +    !          From its construction it looks like a static array of 1s and 0s !
    +    !Answer: The xmap_sfc is dynamic and changes as the model steps because it contains updated information about
    +    !        seaice fractions. The updated array "ex_seawater" after the above "put" call will be 1 where there
    +    !        is open water even if those grid cells where previously closed by seaice.
    +    !        Particularly if we restrict xgrid calculations where  ex_seawater==1
    +    !        only cells with (partially or totally) open water contribute and totally covered cells won't contribute.
    +
    +    !Not related to the above comments, it seems that the above ex_frac_open_sea could be replaced by ex_seawater
    +    !for code cleaning.
    +    !The following test does not print out anything for a fully coupled model. This asserts that
    +    !1. The two arrays ex_frac_open_sea and  ex_seawater are the same
    +    !   Their difference is that ex_frac_open_sea is a local array,
    +    !   but ex_seawater is a module array used outside this subroutine
    +    !2. The xgrid array "ex_seawater" is either 0 or 1 and nothing else, just like the "OCN" grid array "sea"
    +    !Test:
    +    !do l = 1, my_nblocks
    +    !   is=block_start(l)
    +    !   ie=block_end(l)
    +    !   do i = is, ie
    +    !      if(ex_frac_open_sea(i) /= ex_seawater(i)) &
    +    !           print*,'ex_frac_open_sea != ex_seawater ',ex_frac_open_sea(i),ex_seawater(i)
    +    !      if(ex_seawater(i) /= 0.0 .or.ex_seawater(i) /= 1.0 )&
    +    !           print*,'ex_seawater !1 or 0 ' ,ex_seawater(i)
    +    !   enddo
    +    !enddo
    + 
    +    !> INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRID
         ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean
     
    -    !> map land mask onto the exchange grid
    +    !> MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID
    +    !{
         call fms_xgrid_some(xmap_sfc, ex_land, 'LND')
    -    !}
     
    -    !> Map land fields on to the exchange grid
    -    !{
     #ifdef use_AM3_physics
         if (do_forecast) then
    -       call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_miz,  xmap_sfc)
    +       call FMS_XGRID_PUT_TO_XGRID_(Land%t_surf, 'LND', ex_t_surf_miz,  xmap_sfc)
            ex_t_ca(:) = ex_t_surf_miz(:)
         end if
     #endif
     
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo, 'LND', ex_albedo, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc)
    -    call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc)
    -
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%t_surf, 'LND', ex_t_surf, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%t_ca, 'LND', ex_t_ca, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%albedo, 'LND', ex_albedo, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc)
    +    call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc)
         ex_rough_scale = ex_rough_mom
         call FMS_XGRID_PUT_TO_XGRID_(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc)
     
         do n_gex=1,n_gex_lnd2atm
    -      call FMS_XGRID_PUT_TO_XGRID_ (Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc)
    +      call FMS_XGRID_PUT_TO_XGRID_(Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc)
         end do
    -    
    +
         do tr = 1,n_exch_tr
            n = tr_table(tr)%lnd
            if(n /= NO_TRACER ) then
     #ifndef _USE_LEGACY_LAND_
    -          call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc )
    +          call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc)
     #else
    -          call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc )
    +          call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc)
     #endif
            else
    -          ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore fluxes will be 0
    +          ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore
    +          ! fluxes will be 0
            endif
         enddo
     
         ex_land_frac = 0.0
         call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc)
    -    !}
    +    !} END MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID
     
     #ifdef SCM
         if (do_specified_land) then
    @@ -1303,57 +1373,59 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
         end if
     #endif
     
    -    !> compute explicit fluxes and tendencies on the exchange grid
    +    !> CALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRID
    +    !{
         call fms_xgrid_some(xmap_sfc, ex_avail)
         !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, &
         !$OMP ex_p_atm, ex_z_atm, ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf, ex_u_surf, ex_v_surf, ex_rough_mom, &
         !$OMP ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, ex_flux_t, ex_flux_tr, ex_flux_lw, &
         !$OMP ex_flux_u, ex_flux_v, ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, &
    -    !$OMP ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf, ex_drdt_surf, ex_dhdt_atm, &
    -    !$OMP ex_dfdtr_atm, ex_dtaudu_atm, ex_dtaudv_atm, dt, ex_land, ex_seawater, ex_avail, block_start, &
    -    !$OMP block_end,isphum) private(is,ie)
    +    !$OMP ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf, ex_drdt_surf, &
    +    !$OMP ex_dhdt_atm, ex_dfdtr_atm, ex_dtaudu_atm, ex_dtaudv_atm, dt, ex_land, &
    +    !$OMP ex_seawater,ex_avail,block_start,block_end,isphum) private(is,ie)
         do l = 1, my_nblocks
            is=block_start(l)
            ie=block_end(l)
            call surface_flux (&
    -            ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), &
    -            ex_z_atm(is:ie), ex_p_surf(is:ie), ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), &
    -            ex_u_surf(is:ie), ex_v_surf(is:ie), ex_rough_mom(is:ie), ex_rough_heat(is:ie), &
    -            ex_rough_moist(is:ie), ex_rough_scale(is:ie), ex_gust(is:ie), ex_flux_t(is:ie), &
    -            ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), &
    +            ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), ex_z_atm(is:ie),&
    +            ex_p_surf(is:ie),ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), ex_u_surf(is:ie), ex_v_surf(is:ie), &
    +            ex_rough_mom(is:ie), ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_rough_scale(is:ie), ex_gust(is:ie), &
    +            ex_flux_t(is:ie), ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), &
                 ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), ex_wind(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), &
                 ex_q_star(is:ie), ex_thv_atm(is:ie), ex_thv_surf(is:ie), ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), &
                 ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), &
    -            ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), dt, ex_land(is:ie), &
    -            (ex_seawater(is:ie) .gt. 0.0), ex_avail(is:ie) &
    -       )
    +            ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), dt, ex_land(is:ie), (ex_seawater(is:ie).gt.0.0), ex_avail(is:ie))
         enddo
     
     #ifdef SCM
         ! Option to override surface fluxes for SCM
         if (do_specified_flux) then
    -       call scm_surface_flux ( &
    -            ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm, ex_p_atm, ex_z_atm,  &
    +
    +       call scm_surface_flux(&
    +            ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm,  ex_p_atm,  ex_z_atm,  &
                 ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf(:,isphum), ex_u_surf, ex_v_surf, &
    -            ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, &
    -            ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, &
    +            ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, &
    +            ex_gust, ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, &
                 ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, &
                 ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf(:,isphum), ex_drdt_surf, &
    -            ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, dt, &
    -            (ex_land, ex_seawater .gt. 0.0, ex_avail), ex_dhdt_surf_forland, ex_dedt_surf_forland, &
    -            ex_dedq_surf_forland &
    -       )
    +            ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, dt, (ex_land, ex_seawater .gt. 0.0), &
    +            ex_avail, ex_dhdt_surf_forland, ex_dedt_surf_forland, ex_dedq_surf_forland)
         endif
     #endif
    +    !} END CALL SURFACE_FLUX
    +
     
    -    !> compute the zonal and meriodonal winds at the boundary layer and at the reference heights on the
    -    !! exchange grid
    +    !  call mpp_clock_end(fluxClock)
    +
    +    !> COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRID
    +    !{
         zrefm = 10.0
         zrefh = z_ref_heat
    +    !      ---- optimize calculation ----
         !$OMP parallel do default(shared) private(is,ie)
         do l = 1, my_nblocks
    -       is = block_start(l)
    -       ie = block_end(l)
    +       is=block_start(l)
    +       ie=block_end(l)
            call fms_monin_obukhov_mo_profile(zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), &
                 ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), &
                 ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie))
    @@ -1374,159 +1446,187 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
                  endif
               endif
            enddo
    -       
    +       !} END COMPUTE ZONAL AND MERIDIONAL WINDS
    +
    +       !> CALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRID
    +       !{
            !f1p: calculate atmospheric conductance to send to the land model
            do i=is,ie
               ex_con_atm(i) = ex_wind(i)*ex_cd_q(i)
            end do
    -       
    -       !> Compute tracer flux where tracer flux = (C0*u*rho)*delta_q
    -       !! slm: ex_dfdtr_surf(:,isphum) is set to zero over the ocean in call to surface_flux 
    -       !! and [so it is not appropriate to use for other tracers] <- why?
    -       !! However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative
    -       !! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux
    -       !! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but
    -       !! then this whole section will have to be changed.
    +       !}
    +
    +       !> COMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRID
    +       !{
    +       ! F = C0*u*rho*delta_q, C0*u*rho is the same for all tracers, copy from sphum
            do tr = 1,n_exch_tr
               if (tr==isphum) cycle
               do i = is,ie
    -             ex_dfdtr_atm(i, tr) = ex_dfdtr_atm(i, isphum)
    -             ex_dfdtr_surf(i, tr) = -ex_dfdtr_atm(i, isphum)
    +             ! slm: ex_dfdtr_surf(:,isphum) is manipulated in surface_flux: it is set to
    +             ! zero over the ocean, so it is not appropriate to use for other tracers.
    +             ! However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative
    +             ! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux
    +             ! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but
    +             ! then this whole section will have to be changed.
    +             ex_dfdtr_atm(i,tr) = ex_dfdtr_atm  (i,isphum)
    +             ex_dfdtr_surf(i,tr) = -ex_dfdtr_atm (i,isphum)
                  ex_flux_tr(i,tr) =  ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr))
               enddo
            enddo
         enddo
    -    
    +    !}
    +
         ! Combine explicit ocean flux and implicit land flux of extra flux fields.
    -    
    -    !> map ocean gas field fluxes from the exchange grid to the ocn grid, where the 
    -    !! flux is due to exchange between atmosphere and ocean surface and exchange between top of ice and ocean surface
    -    call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf)
     
    -    !> map intermediate fluxes from the exchange grid to the atmospheric grid 
    -    do n = 1, ex_gas_fluxes%num_bcs
    +    !> COMPUTE EXPLICIT OCEAN FLUXES
    +    !{
    +    call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf)
    +    
    +    do n=1, ex_gas_fluxes%num_bcs
            if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then
               m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch
               if (id_tr_mol_flux0(m) .gt. 0) then
    -             call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', &
    -                  ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:), xmap_sfc)
    +             call fms_xgrid_get_from_xgrid(&
    +                  diag_atm, 'ATM', ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:), xmap_sfc)
                  used = fms_diag_send_data(id_tr_mol_flux0(m), diag_atm, Time)
               end if
            end if
         end do
    -        
    -    !> convert units 
    +
    +
    +    ! The following statement is a concise version of what's following and worth
    +    ! looking into in the future.
         ! ex_flux_tr(:,itracer) = ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:)
         ! where(ex_seawater.gt.0) ex_flux_tr(:,itracer) = F_ocn
         !$OMP parallel do default(shared) private(is,ie,m,tr_units,tr_name)
    -    do l = 1, my_nblocks
    +    do l=1, my_nblocks
            is = block_start(l)
            ie = block_end(l)
    -       do n = 1, ex_gas_fluxes%num_bcs
    -          if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then
    +       do n=1, ex_gas_fluxes%num_bcs
    +          if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then 
                  m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch
    -             call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, &
    -                  tr_name, units=tr_units)
    -             do i = is,ie
    -                if (ex_land(i)) cycle  ! over land, don't do anything                
    -                ex_dfdtr_atm(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives
    -                ex_dfdtr_surf(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives
    -                if (ex_seawater(i)>0.0) then                   
    +             call fms_tracer_manager_get_tracer_names(&
    +                  MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, tr_name, units=tr_units)
    +             do i=is, ie 
    +                if (ex_land(i)) cycle  ! over land, don't do anything
    +                ! on ocean or ice cells, flux is explicit therefore we zero derivatives.
    +                ex_dfdtr_atm(i,m) = 0.0
    +                ex_dfdtr_surf(i,m) = 0.0
    +                if (ex_seawater(i)>0.0) then
                        if (fms_mpp_lowercase(trim(tr_units)).eq."vmr") then
    -                      ! if units in ambient "vmr*kg/m2/s" (as in land model), convert to mol/m2/s
    +                      ! in mol/m2/s but from land model it should be in vmr * kg/m2/s
    +                      ! This was converting to dry vmr (as opposed to ambient vmr)
    +                      !    ex_flux_tr(i,m)    = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)  &
    +                      !         * WTMAIR*1.0e-3 &
    +                      !         / (1.-ex_tr_atm(i,isphum))
    +                      !
    +                      ! vmr * kg/m2/s = mol(X)/[m2 s] [1/mol(air) * mol(air)] * WTM(air)
    +                      !
                           ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) &
    -                           * 1.0e-3*WTMAIR*WTMH2O/((1.-ex_tr_atm(i,isphum))*WTMH2O + ex_tr_atm(i,isphum)*WTMAIR)
    +                           * 1.0e-3*WTMAIR*WTMH2O/((1.-ex_tr_atm(i,isphum))*WTMH2O+ex_tr_atm(i,isphum)*WTMAIR)
    +                      !end if
                        else
    -                   ! jgj: convert to kg co2/m2/sec for atm
    -                      ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) &
    -                           * ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03
    +                      ! jgj: convert to kg co2/m2/sec for atm
    +                      ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) * &
    +                           ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03
                        end if
                     else
                        ex_flux_tr(i,m) = 0.0 ! pure ice exchange cell
    -                endif 
    -             enddo 
    -          endif 
    +                endif
    +             enddo
    +          endif
            enddo
    -    enddo 
    +    enddo
    +    !} END COMPUTE EXPLICIT OCEAN FLUXES
     
    -    !> override above computed fluxes with values from data_override if tracer exists in data_table
    -    do tr = 1,n_exch_tr
    +    !> OVERRIDE LAND AND ICE TRACER FLUXES 
    +    !! DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE
    +    !{
    +    ![5.2] override tracer fluxes and derivatives
    +    do tr=1, n_exch_tr
            if( tr_table(tr)%atm == NO_TRACER ) cycle ! it should never happen, though
     
    -       call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name )
    -       
    -       call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used )
    -       if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc )
    -       
    -       call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used )
    -       if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc )
    -
    +       call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, tr_name)
    +       ! [5.2.1] override tracer flux. Note that "sea" and "diag_land" are repeatedly used
    +       ! as temporary storage for the values we are overriding fluxes and derivative with,
    +       ! over ocean and land respectively
    +       call FMS_DATA_OVERRIDE_ ('LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used)
    +       if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc)
    +       call fms_data_override('ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used)
    +       if(used) call fms_xgrid_put_to_xgrid(sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc)
            ! [5.2.2] override derivative of flux wrt surface concentration
    -       call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used )
    -       if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc )
    -
    -       call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used )
    -       if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc )
    -
    +       call FMS_DATA_OVERRIDE_('LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used)
    +       if(used) call FMS_XGRID_PUT_TO_XGRID_(diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc)
    +       call fms_data_override('ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used)
    +       if(used) call fms_xgrid_put_to_xgrid(sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc)
            ! [5.2.3] override derivative of flux wrt atmospheric concentration
    -       call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used )
    -       if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc )
    -       
    -       call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used )
    -       if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc )
    +       call FMS_DATA_OVERRIDE_('LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used)
    +       if(used) call FMS_XGRID_PUT_TO_XGRID_(diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc)
    +       call fms_data_override('ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used)
    +       if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc)
         enddo
     
    -    !> override flux and derivatives of sensible heat flux if field is specified in data_table
    +    ! [5.3] override flux and derivatives for sensible heat flux
    +    ! [5.3.1] override flux
         call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_t', diag_land, Time, override=used )
         if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_t, xmap_sfc )
         call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used )
         if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc )
    -
    -    !> override derivative of flux wrt near-surface temperature if field is specified in data_table
    +    ! [5.3.2] override derivative of flux wrt near-surface temperature
         call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used )
         if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc )
         call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used )
         if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc )
    -
    -    !> override derivative of flux wrt atmospheric temperature if field is specified in data_table
    +    ! [5.3.3] override derivative of flux wrt atmospheric temperature
         call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used )
         if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc )
         call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used )
         if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc )
    +    !} END DATAOVERRIDE
     
    -    !> Note, the units of sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm";
    -    ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and W/(m2 degK) respectively
    -    
    -    !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_avail, &
    -    !$OMP ex_drag_q, ex_wind, ex_cd_q, ex_t_surf4, ex_t_surf ) private(is,ie)
    +    ! NB: names of the override fields are constructed using tracer name and certain
    +    ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be:
    +    ! "ex_flux_sphum", "ex_dfdsphum_surf", and "ex_dfdsphum_atm".
    +    !
    +    ! For sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm";
    +    ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and
    +    ! W/(m2 degK) respectively
    +
    +    !> COMPUTE T_SURF**4
    +    !{
    +    !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_avail, &
    +    !$OMP ex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf ) private(is,ie)
         do l = 1, my_nblocks
    -       is = block_start(l)
    -       ie = block_end(l)
    -       do i = is, ie          
    -          if(ex_avail(i)) ex_drag_q(i) = ex_wind(i)*ex_cd_q(i) !! get mean quantities on atmosphere grid
    -          ex_t_surf4(i) = ex_t_surf(i) ** 4 !! compute t surf for radiation
    +       is=block_start(l)
    +       ie=block_end(l)
    +       do i = is, ie
    +          if(ex_avail(i)) ex_drag_q(i) = ex_wind(i)*ex_cd_q(i)
    +          ! [6] get mean quantities on atmosphere grid
    +          ! [6.1] compute t surf for radiation
    +          ex_t_surf4(i) = ex_t_surf(i) ** 4
            enddo
         enddo
    +    !}
     
    -    !> Update fields on Land_Ice_Atmos_Boundary
    -    !{
    -    call fms_xgrid_get_from_xgrid(Land_Icee_Boundary%t_ocean, 'ATM', ex_t_surf , xmap_sfc, complete=.false.) !joseph
    +    ! [6.2] put relevant quantities onto atmospheric boundary
    +    call fms_xgrid_get_from_xgrid(&
    +      Land_Ice_Atmos_Boundary%t_ocean, 'ATM', ex_t_surf, xmap_sfc, complete=.false.) !joseph
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.)
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%frac_open_sea,'ATM', ex_frac_open_sea, xmap_sfc)
    +    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%frac_open_sea,'ATM',ex_frac_open_sea, xmap_sfc)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo, xmap_sfc, complete=.false.)
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dir, &
    -         'ATM', ex_albedo_vis_dir, xmap_sfc, complete=.false.)
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dir, &
    -         'ATM', ex_albedo_nir_dir, xmap_sfc, complete=.false.)
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dif, &
    -         'ATM', ex_albedo_vis_dif, xmap_sfc, complete=.false.)
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', &
    -         ex_albedo_nir_dif, xmap_sfc, complete=.false.)
    +    call fms_xgrid_get_from_xgrid(&
    +      Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', ex_albedo_vis_dir, xmap_sfc, complete=.false.)
    +    call fms_xgrid_get_from_xgrid (&
    +      Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', ex_albedo_nir_dir, xmap_sfc, complete=.false.)
    +    call fms_xgrid_get_from_xgrid (&
    +      Land_Ice_Atmos_Boundary%albedo_vis_dif, 'ATM', ex_albedo_vis_dif, xmap_sfc, complete=.false.)
    +    call fms_xgrid_get_from_xgrid (&
    +      Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', ex_albedo_nir_dif, xmap_sfc, complete=.false.)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_mom, 'ATM', ex_rough_mom,  xmap_sfc, complete=.false.)
    -    !{ kgao 
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_heat,'ATM', ex_rough_heat, xmap_sfc, complete=.false.)
    -    !}
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac,  xmap_sfc, complete=.false.)
    +    call fms_xgrid_get_from_xgrid(&
    +      Land_Ice_Atmos_Boundary%rough_heat,'ATM', ex_rough_heat, xmap_sfc, complete=.false.) !kgao
    +    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac, xmap_sfc, complete=.false.)
    +
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_flux, 'ATM', ex_flux_u, xmap_sfc, complete=.false.)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_flux, 'ATM', ex_flux_v, xmap_sfc, complete=.false.)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudu, 'ATM', ex_dtaudu_atm, xmap_sfc, complete=.false.)
    @@ -1535,78 +1635,79 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%b_star, 'ATM', ex_b_star, xmap_sfc, complete=.false.)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%q_star, 'ATM', ex_q_star, xmap_sfc, complete=.true.)
     
    -    !> update "generic", non-tracer field exchange between land and atmosphere
    -    do n_gex=1, n_gex_lnd2atm
    -       call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), &
    -            'ATM', ex_gex_lnd2atm(:, n_gex), xmap_sfc, complete=.false.)
    +    do n_gex=1,n_gex_lnd2atm
    +      call fms_xgrid_get_from_xgrid(&
    +        Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), 'ATM', ex_gex_lnd2atm(:,n_gex), xmap_sfc, complete=.false.)
         end do
     
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u, xmap_sfc, complete=.false.) !bqx
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v, xmap_sfc, complete=.true.) !bqx
    -    
    +
    +! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same)
     #ifndef use_AM3_physics
    -    ! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t, xmap_sfc, complete=.false.)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc, complete=.true.)
     #endif
    -    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind , xmap_sfc)
    +    call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind, xmap_sfc)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_atm, 'ATM', ex_thv_atm, xmap_sfc)
         call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_surf, 'ATM', ex_thv_surf, xmap_sfc)
     
     #ifdef use_AM3_physics
         if (do_forecast) then
    -       call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc)
    +       call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf,  xmap_sfc)
         end if
     #endif
     
    -    call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec)
    -    !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary ) private(is,ie)
    +    call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec )
    +    !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary) private(is,ie)
         do j = jsc, jec
            do i = isc, iec
               Land_Ice_Atmos_Boundary%t(i,j) = Land_Ice_Atmos_Boundary%t(i,j) ** 0.25
            enddo
         enddo
    -    !}
    -    
    -    !> data_override updated Land_ice_atmos_boundary if the fields exist in data_table
    -    !{
    -    call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) 
    -    call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time)
    -
    -    call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time)
    -    call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time)
    -    call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time)
    -    call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time)
    +    !Balaji: fms_data_override calls moved here from coupler_main
    +    call fms_data_override('ATM', 't',         Land_Ice_Atmos_Boundary%t,         Time)
    +    call fms_data_override('ATM', 'albedo',    Land_Ice_Atmos_Boundary%albedo,    Time)
    +
    +    call fms_data_override('ATM', 'albedo_vis_dir',    Land_Ice_Atmos_Boundary%albedo_vis_dir,    Time)
    +    call fms_data_override('ATM', 'albedo_nir_dir',    Land_Ice_Atmos_Boundary%albedo_nir_dir,    Time)
    +    call fms_data_override('ATM', 'albedo_vis_dif',    Land_Ice_Atmos_Boundary%albedo_vis_dif,    Time)
    +    call fms_data_override('ATM', 'albedo_nir_dif',    Land_Ice_Atmos_Boundary%albedo_nir_dif,    Time)
         call fms_data_override('ATM', 'land_frac', Land_Ice_Atmos_Boundary%land_frac, Time)
    -    call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time)
    +    call fms_data_override('ATM', 'dt_t',      Land_Ice_Atmos_Boundary%dt_t,      Time)
         do tr=1,n_atm_tr
            call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr, tr_name)
            call fms_data_override('ATM', 'dt_'//trim(tr_name), Land_Ice_Atmos_Boundary%dt_tr(:,:,tr), Time)
         enddo
    -    call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time)
    -    call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time)
    -    call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time)
    -    call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time)
    -    call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time)
    -    call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time)
    -    ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time)
    +    call fms_data_override('ATM', 'u_flux',    Land_Ice_Atmos_Boundary%u_flux,    Time)
    +    call fms_data_override('ATM', 'v_flux',    Land_Ice_Atmos_Boundary%v_flux,    Time)
    +    call fms_data_override('ATM', 'dtaudu',    Land_Ice_Atmos_Boundary%dtaudu,    Time)
    +    call fms_data_override('ATM', 'dtaudv',    Land_Ice_Atmos_Boundary%dtaudv,    Time)
    +    call fms_data_override('ATM', 'u_star',    Land_Ice_Atmos_Boundary%u_star,    Time)
    +    call fms_data_override('ATM', 'b_star',    Land_Ice_Atmos_Boundary%b_star,    Time)
    +    ! call fms_data_override('ATM', 'q_star',    Land_Ice_Atmos_Boundary%q_star,    Time)
         call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time)
    -    !}
    -    
    -    !> albedo fix
    -    ! save atmos albedo fix and old albedo (for downward SW flux calculations) on exchange grid
    -    ! STILL NEEDED ???? IS THIS CORRECT ??
    -    allocate(ex_albedo_fix(n_xgrid_sfc))
    -    allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc))
    -    allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc))
    -    allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc))
    -    allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc))
    -
    -    !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, &
    -    !$OMP ex_albedo_vis_dir_fix, ex_albedo_nir_dir_fix, ex_albedo_vis_dif_fix, ex_albedo_nir_dif_fix ) private(is,ie)
    +
    +    ! [6.3] save atmos albedo fix and old albedo (for downward SW flux calculations)
    +    ! on exchange grid
    +    ! allocate ( ex_old_albedo(n_xgrid_sfc)  )
    +    ! ex_old_albedo = ex_albedo
    +
    +    !!  STILL NEEDED   ????
    +    !! IS THIS CORRECT ??
    +    allocate ( ex_albedo_fix(n_xgrid_sfc) )
    +    allocate ( ex_albedo_vis_dir_fix(n_xgrid_sfc) )
    +    allocate ( ex_albedo_nir_dir_fix(n_xgrid_sfc) )
    +    allocate ( ex_albedo_vis_dif_fix(n_xgrid_sfc) )
    +    allocate ( ex_albedo_nir_dif_fix(n_xgrid_sfc) )
    +
    +    !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, &
    +    !$OMP                                  ex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix,    &
    +    !$OMP                                  ex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix )   &
    +    !$OMP                          private(is,ie)
         do l = 1, my_nblocks
    -       is = block_start(l)
    -       ie = block_end(l)
    +       is=block_start(l)
    +       ie=block_end(l)
            do i = is, ie
               ex_albedo_fix(i) = 0.
               ex_albedo_vis_dir_fix(i) = 0.
    @@ -1616,8 +1717,9 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
            enddo
         enddo
     
    +
         call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM',  ex_albedo_fix, xmap_sfc, complete=.false.)
    -    call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', &
    +    call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM',  &
              ex_albedo_vis_dir_fix, xmap_sfc, complete=.false.)
         call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', &
              ex_albedo_nir_dir_fix, xmap_sfc, complete=.false.)
    @@ -1625,13 +1727,15 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
              ex_albedo_vis_dif_fix, xmap_sfc, complete=.false.)
         call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM',  &
              ex_albedo_nir_dif_fix, xmap_sfc, complete=.true.)
    -
         !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix,    &
    -    !$OMP ex_albedo, ex_albedo_vis_dir_fix, ex_albedo_vis_dir, ex_albedo_nir_dir,ex_albedo_nir_dir_fix, &
    -    !$OMP ex_albedo_vis_dif_fix, ex_albedo_vis_dif, ex_albedo_nir_dif_fix, ex_albedo_nir_dif) private(is,ie)
    +    !$OMP                                  ex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir, &
    +    !$OMP                                  ex_albedo_nir_dir,ex_albedo_nir_dir_fix,           &
    +    !$OMP                                  ex_albedo_vis_dif_fix,ex_albedo_vis_dif,           &
    +    !$OMP                                  ex_albedo_nir_dif_fix,ex_albedo_nir_dif)           &
    +    !$OMP                          private(is,ie)
         do l = 1, my_nblocks
    -       is = block_start(l)
    -       ie = block_end(l)
    +       is=block_start(l)
    +       ie=block_end(l)
            do i = is, ie
               ex_albedo_fix(i) = (1.0-ex_albedo(i)) / (1.0-ex_albedo_fix(i))
               ex_albedo_vis_dir_fix(i) = (1.0-ex_albedo_vis_dir(i)) / (1.0-ex_albedo_vis_dir_fix(i))
    @@ -1650,77 +1754,97 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
            ex_albedo_nir_dif_fix = 1.
         endif
     #endif
    -    !}
    -    
     
    -    !> send data to save in diag_manager buffer for outputting at the end of the simulation
    -    !{
    -    ! save static fields, if first_static == true, send to diag_manager once
    +    !=======================================================================
    +    ! [7] diagnostics section
    +
    +    !------- save static fields first time only ------
         if (first_static) then
    +
    +       !------- land fraction ------
            if ( id_land_mask > 0 ) then
    -          used = fms_diag_send_data(id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time) !> land fraction
    +          used = fms_diag_send_data ( id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time )
            endif
            if ( id_sftlf > 0 ) then
    -          used = fms_diag_send_data(id_sftlf, Land_Ice_Atmos_Boundary%land_frac, Time)
    +          used = fms_diag_send_data ( id_sftlf, Land_Ice_Atmos_Boundary%land_frac, Time )
            endif
    -       if(id_height2m  > 0) used = fms_diag_send_data(id_height2m, z_ref_heat, Time) !> near-surface height
    -       if(id_height10m > 0) used = fms_diag_send_data(id_height10m, z_ref_mom, Time) !> near-surface height
    +       ! near-surface heights
    +       if ( id_height2m  > 0) used = fms_diag_send_data ( id_height2m, z_ref_heat, Time )
    +       if ( id_height10m > 0) used = fms_diag_send_data ( id_height10m, z_ref_mom, Time )
    +
            first_static = .false.
         endif
     
    -    ! send_data for atm fields
    -    do n = 1, Atm%fields%num_bcs
    -       do m = 1, Atm%fields%bc(n)%num_fields
    -          if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then 
    +    !------- Atm fields -----------
    +    do n = 1, Atm%fields%num_bcs  !{
    +       do m = 1, Atm%fields%bc(n)%num_fields  !{
    +          if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then  !{
                  if (atm%fields%bc(n)%use_10m_wind_speed .and. m .eq. fms_coupler_ind_u10 .and. &
    -                 .not. Atm%fields%bc(n)%field(m)%override) then
    -                call fms_xgrid_get_from_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', &
    +                 .not. Atm%fields%bc(n)%field(m)%override) then  !{
    +                call fms_xgrid_get_from_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM',     &
                          ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc)
    -             endif
    -             if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then
    +             endif  !}
    +             if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then  !{
                     used = fms_diag_send_data(Atm%fields%bc(n)%field(m)%id_diag, Atm%fields%bc(n)%field(m)%values, Time )
    -             endif
    -          endif
    -       enddo 
    -    enddo
    +             endif  !}
    +          endif  !}
    +       enddo  !} m
    +    enddo  !} n
     
    +    !------- drag coeff moisture -----------
         if ( id_wind > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_wind, xmap_sfc)
            used = fms_diag_send_data ( id_wind, diag_atm, Time )
         endif
    -
    +    !------- drag coeff moisture -----------
         if ( id_drag_moist > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_q, xmap_sfc)
            used = fms_diag_send_data ( id_drag_moist, diag_atm, Time )
         endif
    -    
    +
    +    !------- drag coeff heat -----------
         if ( id_drag_heat > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_t, xmap_sfc)
            used = fms_diag_send_data ( id_drag_heat, diag_atm, Time )
         endif
    -    
    +
    +    !------- drag coeff momemtum -----------
         if ( id_drag_mom > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_m, xmap_sfc)
            used = fms_diag_send_data ( id_drag_mom, diag_atm, Time )
         endif
    -    
    +
    +    !------- roughness moisture -----------
         if ( id_rough_moist > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_moist, xmap_sfc)
            used = fms_diag_send_data ( id_rough_moist, diag_atm, Time )
         endif
    -    
    +
    +    !------- roughness heat -----------
         if ( id_rough_heat > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_heat, xmap_sfc)
            used = fms_diag_send_data ( id_rough_heat, diag_atm, Time )
         endif
    -    
    +
    +    !------- roughness momemtum -----------
         used = fms_diag_send_data ( id_rough_mom, Land_Ice_Atmos_Boundary%rough_mom, Time )
    +
    +    !------- friction velocity -----------
         used = fms_diag_send_data ( id_u_star, Land_Ice_Atmos_Boundary%u_star, Time )
    +
    +    !------- bouyancy -----------
         used = fms_diag_send_data ( id_b_star, Land_Ice_Atmos_Boundary%b_star, Time )
    +
    +    !------- moisture scale -----------
         used = fms_diag_send_data ( id_q_star, Land_Ice_Atmos_Boundary%q_star, Time )
    +
    +    !------- surf and atm virtual potential temperature -----------
         used = fms_diag_send_data ( id_thv_atm,  Land_Ice_Atmos_Boundary%thv_atm,  Time )
         used = fms_diag_send_data ( id_thv_surf, Land_Ice_Atmos_Boundary%thv_surf, Time )
    -    
    +
    +    !-----------------------------------------------------------------------
    +    !------ diagnostics for fields at bottom atmospheric level ------
    +
         if ( id_t_atm > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_atm, xmap_sfc)
            used = fms_diag_send_data ( id_t_atm, diag_atm, Time )
    @@ -1751,24 +1875,22 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
            endif
         enddo
     
    +    ! - slm, Mar 25, 2002
         if ( id_p_atm > 0 ) then
    -       ! - slm, Mar 25, 2002
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_p_atm, xmap_sfc)
            used = fms_diag_send_data ( id_p_atm, diag_atm, Time )
         endif
    -    
         if ( id_z_atm > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_z_atm, xmap_sfc)
            used = fms_diag_send_data ( id_z_atm, diag_atm, Time )
         endif
    -
         if ( id_gust > 0 ) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_gust, xmap_sfc)
            used = fms_diag_send_data ( id_gust, diag_atm, Time )
         endif
     
    +    ! - bw, Sep 17, 2007
         if ( id_slp > 0 .or. id_psl > 0 ) then
    -       ! - bw, Sep 17, 2007
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_slp, xmap_sfc)
            if ( id_slp > 0 ) used = fms_diag_send_data ( id_slp, diag_atm, Time )
            if ( id_psl > 0 ) used = fms_diag_send_data ( id_psl, diag_atm, Time )
    @@ -1777,31 +1899,49 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
         if ( id_t_ocean > 0 ) then
            used = fms_diag_send_data ( id_t_ocean, Land_Ice_Atmos_Boundary%t_ocean, Time )
         endif
    -    !}
    -    
    +    !-----------------------------------------------------------------------
    +    !--------- diagnostics for fields at reference level ---------
    +    !cjg
    +    !  if ( id_t_ref > 0 .or. id_rh_ref > 0 .or. &
    +    !       id_u_ref > 0 .or. id_v_ref  > 0 .or. id_wind_ref > 0 .or. &
    +    !       id_q_ref > 0 .or. id_q_ref_land > 0 .or. &
    +    !       id_t_ref_land > 0 .or. id_rh_ref_land > 0 .or. &
    +    !       id_rh_ref_cmip >0 .or. &
    +    !       id_u_ref_land > 0 .or. id_v_ref_land  > 0 ) then
    +
         zrefm = z_ref_mom
         zrefh = z_ref_heat
    +    !      ---- optimize calculation ----
    +    !cjg     if ( id_t_ref <= 0 ) zrefh = zrefm
     
    -    !> compute deposition velocity 
         !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm, &
    -    !$OMP ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_u_star, ex_b_star, ex_q_star, ex_del_m, ex_del_h, ex_del_q, &
    -    !$OMP ex_tr_ref, n_exch_tr, id_tr_ref, id_tr_ref_land, ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, &
    -    !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum, &
    -    !$OMP ex_flux_tr,ex_t_atm,ex_p_surf) private(is,ie,rho)
    +    !$OMP                                  ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star,   &
    +    !$OMP                                  ex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q,        &
    +    !$OMP                                  ex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land,          &
    +    !$OMP                                  ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land,      &
    +    !$OMP                                  ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land,      &
    +    !$OMP                                  ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum,           &
    +    !$OMP                                  ex_flux_tr,ex_t_atm,ex_p_surf)                         &
    +    !$OMP                          private(is,ie,rho)
         do l = 1, my_nblocks
    -       is = block_start(l)
    -       ie = block_end(l)
    -       call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), &
    -            ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), &
    -            ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie))
    -
    +       is=block_start(l)
    +       ie=block_end(l)
    +       call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie),   ex_rough_mom(is:ie), &
    +            ex_rough_heat(is:ie), ex_rough_moist(is:ie),          &
    +            ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie),        &
    +            ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)  )
    +
    +       !    ------- reference relative humidity -----------
    +       !cjg     if ( id_rh_ref > 0 .or. id_rh_ref_land > 0 .or. &
    +       !cjg          id_rh_ref_cmip > 0 .or. &
    +       !cjg          id_q_ref > 0 .or. id_q_ref_land >0 ) then
            do i = is,ie
               ex_ref(i) = 1.0e-06
               ex_tr_ref(i,:) = 1.e-20
               if (ex_avail(i) .and. ex_rough_moist(i) > 0.) then
    -               ex_ref(i) = ex_tr_surf(i,isphum) + (ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum)) * ex_del_q(i)
    -               rho = ex_p_surf(i)/(rdgas * ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum)))
    -               do tr=1, n_exch_tr
    +               ex_ref(i)   = ex_tr_surf(i,isphum) + (ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum)) * ex_del_q(i)
    +               rho         = ex_p_surf(i)/(rdgas * ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum)))
    +               do tr=1,n_exch_tr
                       if (id_tr_ref(tr).gt.0             &
                            .or. id_tr_ref_land(tr).gt.0  &
                            .or. id_tr_con_ref(tr).gt.0   &
    @@ -1816,7 +1956,6 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
                 end if
            enddo
         enddo
    -    
         call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_ref, 'ATM', ex_ref,   xmap_sfc)  ! cjg
         if(id_q_ref > 0) then
            used = fms_diag_send_data(id_q_ref,Land_Ice_Atmos_Boundary%q_ref,Time)
    @@ -1856,22 +1995,26 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
         end do
     
         !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail, &
    -    !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2 ) private(is,ie)
    +    !$OMP                                  ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h,      &
    +    !$OMP                                  ex_ref,ex_qs_ref_cmip,ex_ref2 ) &
    +    !$OMP                          private(is,ie)
         do l = 1, my_nblocks
    -       is = block_start(l)
    -       ie = block_end(l)
    +       is=block_start(l)
    +       ie=block_end(l)
            do i = is,ie
               ex_t_ref(i) = 200.
               if ( ex_avail(i) .and. ex_rough_heat(i) > 0. ) &
                    ex_t_ref(i) = ex_t_ca(i) + (ex_t_atm(i)-ex_t_ca(i)) * ex_del_h(i)
            enddo
    -       call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref(is:ie), q = ex_ref(is:ie))
    -       call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref_cmip(is:ie),  &
    +       call fms_sat_vapor_pres_compute_qs (ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref(is:ie), q = ex_ref(is:ie))
    +       call fms_sat_vapor_pres_compute_qs (ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref_cmip(is:ie),  &
                 q = ex_ref(is:ie), es_over_liq_and_ice = .true.)
            do i = is,ie
               if(ex_avail(i)) then
    -             ex_ref2(i) = 100.*ex_ref(i)/ex_qs_ref_cmip(i)
    -             ex_ref(i) = 100.*ex_ref(i)/ex_qs_ref(i)
    +             ! remove cap on relative humidity -- this mod requested by cjg, ljd
    +             !RSH    ex_ref    = MIN(100.,100.*ex_ref/ex_qs_ref)
    +             ex_ref2(i)   = 100.*ex_ref(i)/ex_qs_ref_cmip(i)
    +             ex_ref(i)    = 100.*ex_ref(i)/ex_qs_ref(i)
               endif
            enddo
         enddo
    @@ -1896,8 +2039,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
         if(id_rh_ref_cmip > 0 .or. id_hurs > 0 .or. id_rhs > 0) then
            call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref2, xmap_sfc)
            if (id_rh_ref_cmip > 0) used = fms_diag_send_data ( id_rh_ref_cmip, diag_atm, Time )
    -       if (id_hurs > 0) used = fms_diag_send_data ( id_hurs, diag_atm, Time )
    -       if (id_rhs  > 0) used = fms_diag_send_data ( id_rhs,  diag_atm, Time )
    +       if (id_hurs > 0)        used = fms_diag_send_data ( id_hurs, diag_atm, Time )
    +       if (id_rhs  > 0)        used = fms_diag_send_data ( id_rhs,  diag_atm, Time )
         endif
         !cjg  endif
     
    @@ -1948,7 +2091,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
     
         !    ------- reference u comp -----------
         if ( id_u_ref > 0 .or. id_u_ref_land > 0 .or. id_uas > 0) then
    -       where (ex_avail) ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m
    +       where (ex_avail) &
    +            ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m
            if ( id_u_ref_land > 0 ) then
               call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc )
     #ifndef _USE_LEGACY_LAND_
    @@ -2029,146 +2173,115 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar
     
       end subroutine sfc_boundary_layer
     
    -  !#######################################################################
    +  !> Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff]
    +  !! In the subroutine, if override specifications are found in data_table 
    +  !! atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data
    +  !! to the exchange grid.  Next, corrections are computed on the exchange grid and the corrected
    +  !! values are mapped to the land grid and to the ice grid.  However, the corrected fields on land grid
    +  !! and ice grid will be overwritten with data_override if the override specifications are found in
    +  !! data table.  The subroutine ends by computing, stock exchanges between the components and sending
    +  !! zonal and meridonal wind stress data to the diag_manager buffer that will output data at the
    +  !! end of the simulation
    +  subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
     
    -  !> Returns fluxes and derivatives corrected for the implicit treatment of atmospheric
    -  !! diffusive fluxes, and the increments in the temperature and specific humidity
    -  !! of the lowest atmospheric layer due to all explicit processes as well as the diffusive
    -  !! fluxes through the top of this layer.
    -  !! 
    -  !!
    -  !! The following elements from Atmos_boundary are used as input:
    -  !! 
    -  !!        flux_u_atm = zonal wind stress (Pa)
    -  !!        flux_v_atm = meridional wind stress (Pa)
    -  !! 
    - !! - !! The following elements of Land_boundary are output: - !!
    -  !!       flux_t_land = sensible heat flux (W/m2)
    -  !!       flux_q_land = specific humidity flux (Kg/(m2 s)
    -  !!      flux_lw_land = net longwave flux (W/m2), uncorrected for
    -  !!                     changes in surface temperature
    -  !!      flux_sw_land = net shortwave flux (W/m2)
    -  !!         dhdt_land = derivative of sensible heat flux w.r.t.
    -  !!                     surface temperature (on land model grid)  (W/(m2 K)
    -  !!         dedt_land = derivative of specific humidity flux w.r.t.
    -  !!                     surface temperature (on land model grid)  (Kg/(m2 s K)
    -  !!         drdt_land = derivative of upward longwave flux w.r.t.
    -  !!                     surface temperature (on land model grid) (W/(m2 K)
    -  !!        lprec_land = liquid precipitation, mass for one time step
    -  !!                      (Kg/m2)
    -  !!        fprec_land = frozen precipitation, mass for one time step
    -  !!                      (Kg/m2)
    -  !! 
    - !! - !! The following elements of Ice_boundary are output: - !!
    -  !!        flux_u_ice = zonal wind stress (Pa)
    -  !!        flux_v_ice = meridional wind stress (Pa)
    -  !!        coszen_ice = cosine of the zenith angle
    -  !! 
    - subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary ) - type(FmsTime_type), intent(in) :: Time - !< Current time + implicit none + type(FmsTime_type), intent(in):: Time + !< Current model time type(atmos_data_type), intent(inout) :: Atm - !< A derived data type to specify atmosphere boundary data - type(land_data_type), intent(in) :: Land - !< A derived data type to specify land boundary data - type(ice_data_type), intent(in) :: Ice - !< A derived data type to specify ice boundary data + !< A derived data type holding atmosphere boundary data type(land_ice_atmos_boundary_type), intent(in) :: Atmos_boundary !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice type(atmos_land_boundary_type), intent(inout):: Land_boundary !< A derived data type to specify properties and fluxes passed from atmosphere to land type(atmos_ice_boundary_type), intent(inout):: Ice_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to ice + !< A derived data type to specify properties and fluxes passed from atmosphere to ice + ! the following variables are on the exchange grid real, dimension(n_xgrid_sfc) :: & - ex_flux_sw, ex_flux_lwd, & - ex_flux_sw_dir, & - ex_flux_sw_dif, & - ex_flux_sw_down_vis_dir, & - ex_flux_sw_down_total_dir, & - ex_flux_sw_down_vis_dif, & - ex_flux_sw_down_total_dif, & - ex_flux_sw_vis, & - ex_flux_sw_vis_dir, & - ex_flux_sw_vis_dif, & - ex_lprec, & - ex_fprec, & - ex_tprec, & ! temperature of precipitation, currently equal to atm T - ex_u_star_smooth, & + ex_flux_sw, & ! net sfc shortwave radiation flux + ex_flux_lwd, & ! longwave radiation downward flux at surface + ex_flux_sw_dir, & ! direct shortwave radiation flux + ex_flux_sw_dif, & ! downward diffuse visible shortwave radiation flux ar the surface + ex_flux_sw_down_vis_dir, & ! downward direct visible shortwave radiation flux at the surface + ex_flux_sw_down_total_dir, & ! downward direct total shortwave radiation flux at the surface + ex_flux_sw_down_vis_dif, & ! downward diffuse visible shortwave radiation flux at the surface + ex_flux_sw_down_total_dif, & ! downward diffusive total shortwave radiation flux at the surface + ex_flux_sw_vis, & ! net visible shortwave radiation flux at the surface + ex_flux_sw_vis_dir, & ! net direct visible shortwave radiation flux at the surface + ex_flux_sw_vis_dif, & ! net diffuse visible shortwave radiation flux at the surface + ex_lprec, & ! liquid precipitation + ex_fprec, & ! frozen precitipation + ex_tprec, & ! temperature of precipitation, currently equal to atm temperature + ex_u_star_smooth, & ! friction velocity correction #ifdef use_AM3_physics - ex_coszen + ex_coszen ! cosine of the zenith angle #else - ex_coszen, & - ex_setl_flux, & ! tracer sedimentation flux from the lowest atm layer (positive down) - ex_dsetl_dtr ! and its derivative w.r.t. the tracer concentration + ex_coszen, & ! cosine of the zenith angle + ex_setl_flux, & ! tracer sedimentation flux from the lowest atmophere layer (positive down) + ex_dsetl_dtr ! derivative of setl_flux w.r.t. tracer concentration #endif - real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) + + real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) ! tracer seditation flux from the lowest atmospehere layer on the atm grid + real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) ! derivative of setl_dtr from the lowest atmosphere layer on the atm grid + + ! temporary arrays + real, dimension(n_xgrid_sfc) :: ex_gamma, ex_dtmass, ex_delta_t, ex_delta_u, ex_delta_v, ex_dflux_t + + real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd ! generic exchange fields between atm and land - real, dimension(n_xgrid_sfc) :: & - ex_gamma, & - ex_dtmass, & - ex_delta_t, & - ex_delta_u, & - ex_delta_v, & - ex_dflux_t - - real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd - real, dimension(n_xgrid_sfc,n_exch_tr) :: & ex_delta_tr, & ! tracer tendencies - ex_dflux_tr ! fracer flux change + ex_dflux_tr ! tracer flux change - real :: cp_inv - logical :: used - logical :: ov - integer :: ier - integer :: is_atm, ie_atm, js_atm, je_atm, j + real :: cp_inv ! inverse heat capacity at constant pressure + logical :: used, ov, ier ! used in calls to fms + integer :: is_atm, ie_atm, js_atm, je_atm, j ! do loop indices character(32) :: tr_name ! name of the tracer integer :: tr, n, m ! tracer indices - integer :: is, ie, l, i - integer :: n_gex - + integer :: is, ie, l, i, n_gex ! do loop indices + + !> start clocks for profiling + !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmDnClock) - ov = .FALSE. - - !> override flux fields if fields are specified in data_table - call fms_data_override ('ATM', 'flux_sw', Atm%flux_sw, Time) - call fms_data_override ('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) - call fms_data_override ('ATM', 'flux_sw_dif', Atm%flux_sw_dif, Time) - call fms_data_override ('ATM', 'flux_sw_down_vis_dir', Atm%flux_sw_down_vis_dir, Time) - call fms_data_override ('ATM', 'flux_sw_down_vis_dif', Atm%flux_sw_down_vis_dif, Time) - call fms_data_override ('ATM', 'flux_sw_down_total_dir', Atm%flux_sw_down_total_dir, Time) - call fms_data_override ('ATM', 'flux_sw_down_total_dif', Atm%flux_sw_down_total_dif, Time) - call fms_data_override ('ATM', 'flux_sw_vis', Atm%flux_sw_vis, Time) - call fms_data_override ('ATM', 'flux_sw_vis_dir', Atm%flux_sw_vis_dir, Time) - call fms_data_override ('ATM', 'flux_sw_vis_dif', Atm%flux_sw_vis_dif, Time) - call fms_data_override ('ATM', 'flux_lw', Atm%flux_lw, Time) - call fms_data_override ('ATM', 'lprec', Atm%lprec, Time) - - !> if scale_precip_2d = .true., scale liquid precipitation by frac_precip. - !! frac_precip should have been allocated in atm_land_ice_flux_exchange_init - !! with scale_precip_2d_in set to .true. + !} + + !> initialize reusable flag. data_override will return ov=.true. if data was overwritten + ov = .false. + + !> update Atm fields with override values. Note, data_override will only overwrite + !! data if the field is specified in the data_table + !Balaji: fms_data_override calls moved here from coupler_main + call fms_data_override('ATM', 'flux_sw', Atm%flux_sw, Time) + call fms_data_override('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) + call fms_data_override('ATM', 'flux_sw_dif', Atm%flux_sw_dif, Time) + call fms_data_override('ATM', 'flux_sw_down_vis_dir', Atm%flux_sw_down_vis_dir, Time) + call fms_data_override('ATM', 'flux_sw_down_vis_dif', Atm%flux_sw_down_vis_dif, Time) + call fms_data_override('ATM', 'flux_sw_down_total_dir', Atm%flux_sw_down_total_dir, Time) + call fms_data_override('ATM', 'flux_sw_down_total_dif', Atm%flux_sw_down_total_dif, Time) + call fms_data_override('ATM', 'flux_sw_vis', Atm%flux_sw_vis, Time) + call fms_data_override('ATM', 'flux_sw_vis_dir', Atm%flux_sw_vis_dir, Time) + call fms_data_override('ATM', 'flux_sw_vis_dif', Atm%flux_sw_vis_dif, Time) + call fms_data_override('ATM', 'flux_lw', Atm%flux_lw, Time) + call fms_data_override('ATM', 'lprec', Atm%lprec, Time) + + !> scale liquid precipitation by frac_precip if scale_precip_2d is true + !! scale_precip_2d is set during module initialization call to atm_land_ice_flux_exchange_init + !! frac_precip is set with data_override if (scale_precip_2d) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) - do j=js_atm,je_atm - do i=is_atm, ie_atm + do j = js_atm, je_atm + do i = is_atm, ie_atm Atm%lprec(i,j) = Atm%lprec(i,j)*frac_precip(i,j) enddo enddo endif - !> if partition_fprec_from_lpec = .true., initialize frozen precition and - !! liquid precipitation in Atm - allocate atm%fprec and atm%lprec fields - !! and initially set atm%fprec = atm%lprec + !> partition preciptation to liquid precipitation and frozen precipitation if partition_fprec_from_lprec = .true. + !! partiion_fprec_from_lprec is set as part of module initialization call in atm_land_ice_flux_exchange + !! Note, the partitioning only occurs on mpi ranks for atmosphere if (partition_fprec_from_lprec .and. Atm%pe) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) do j=js_atm,je_atm @@ -2181,23 +2294,26 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo endif - !> override atm fields if fields are specified in the data_table - call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) - call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) - call fms_data_override ('ATM', 'dtmass', Atm%Surf_Diff%dtmass, Time) - call fms_data_override ('ATM', 'delta_t', Atm%Surf_Diff%delta_t, Time) - call fms_data_override ('ATM', 'dflux_t', Atm%Surf_Diff%dflux_t, Time) + !> update more Atm fields with override values. Note, data_override will only overwrite + !{ + call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) + call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) + call fms_data_override ('ATM', 'dtmass', Atm%Surf_Diff%dtmass, Time) + call fms_data_override ('ATM', 'delta_t', Atm%Surf_Diff%delta_t, Time) + call fms_data_override ('ATM', 'dflux_t', Atm%Surf_Diff%dflux_t, Time) do tr = 1,n_atm_tr call fms_tracer_manager_get_tracer_names(MODEL_ATMOS,tr,tr_name) - call fms_data_override ('ATM', 'delta_'//trim(tr_name), Atm%Surf_Diff%delta_tr(:,:,tr), Time) - call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) + call fms_data_override ('ATM', 'delta_'//trim(tr_name), Atm%Surf_Diff%delta_tr(:,:,tr), Time) + call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) enddo + !} - !> map atmosphere quantities onto exchange grid + !> Map atmosphere quantities onto the exchange grid in order to exchange quantities with other components !{ - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u, ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v, & - !$OMP ex_gex_atm2lnd,n_gex_atm2lnd) private(is,ie,n_gex) + + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_sw_dir, & + !$OMP ex_flux_sw_vis_dir, ex_flux_sw_dif, ex_delta_u, ex_flux_sw_vis_dif, ex_flux_lwd, ex_delta_v, & + !$OMP ex_gex_atm2lnd, n_gex_atm2lnd) private(is,ie,n_gex) do l = 1, my_nblocks is = block_start(l) ie = block_end(l) @@ -2210,84 +2326,118 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ex_delta_u(i) = 0.0 ex_delta_v(i) = 0.0 enddo - do n_gex = 1, n_gex_atm2lnd + do n_gex=1,n_gex_atm2lnd do i = is, ie ex_gex_atm2lnd(i,n_gex) = 0.0 end do end do enddo + call fms_xgrid_put_to_xgrid(Atm%flux_sw_dir, 'ATM', ex_flux_sw_dir, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dir, 'ATM', ex_flux_sw_vis_dir, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%flux_sw_dif, 'ATM', ex_flux_sw_dif, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dif, 'ATM', ex_flux_sw_vis_dif, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dir, 'ATM', ex_flux_sw_down_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc,complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc,complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc,complete=.false.) + + ! ccc = conservation_check(Atm%lprec, 'ATM', xmap_sfc) + ! if (fms_mpp_pe()== fms_mpp_root_pe()) print *,'LPREC', ccc + + ! if(do_area_weighted_flux) then + ! call put_to_xgrid (Atm%lprec * AREA_ATM_MODEL, 'ATM', ex_lprec, xmap_sfc) + ! call put_to_xgrid (Atm%fprec * AREA_ATM_MODEL, 'ATM', ex_fprec, xmap_sfc) + ! else + call fms_xgrid_put_to_xgrid (Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) + ! endif do n_gex=1,n_gex_atm2lnd - call fms_xgrid_put_to_xgrid (Atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) end do - call fms_xgrid_put_to_xgrid(Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) + call fms_xgrid_put_to_xgrid(Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) call fms_xgrid_put_to_xgrid(Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) - + ! MOD changed the following two lines to put Atmos%surf_diff%delta_u and v ! on exchange grid instead of the stresses themselves so that only the - ! implicit corrections are filtered through the atmospheric grid not the stresses themselves - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_u, 'ATM', ex_delta_u, xmap_sfc, remap_method=remap_method, & - complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & - complete=.true.) + ! implicit corrections are filtered through the atmospheric grid not the + ! stresses themselves + call fms_xgrid_put_to_xgrid(Atm%Surf_Diff%delta_u, 'ATM', ex_delta_u, xmap_sfc, remap_method=remap_method, & + complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & + complete=.true.) + !} end map atmospheric quantities on exchange grid + + !> update u and v stress on the exchange grid + !{ ! MOD update stresses using atmos delta's but derivatives on exchange grid - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u, & - !$OMP ex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v ) private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_u, ex_delta_u, & + !$OMP ex_dtaudu_atm, ex_dtaudv_atm, ex_flux_v, ex_delta_v) private(is,ie) do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie ex_flux_u(i) = ex_flux_u(i) + ex_delta_u(i)*ex_dtaudu_atm(i) ex_flux_v(i) = ex_flux_v(i) + ex_delta_v(i)*ex_dtaudv_atm(i) enddo enddo + !} end update u and v stress on the exchange grid - - !> adjust sw flux for albedo variations on exchange grid - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir,ex_albedo_nir_dir_fix, ex_albedo_vis_dir_fix,ex_flux_sw_dif, & - !$OMP ex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw, ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix) & + !> fix shortwave radiation flux of visible light on the exchange grid + !{ + !---- adjust sw flux for albedo variations on exch grid ---- + !---- adjust 4 categories (vis/nir dir/dif) separately ---- + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_sw_dir, & + !$OMP ex_flux_sw_vis_dir, ex_albedo_nir_dir_fix, ex_albedo_vis_dir_fix, ex_flux_sw_dif, & + !$OMP ex_flux_sw_vis_dif, ex_flux_sw_vis, ex_flux_sw, ex_albedo_nir_dif_fix, ex_albedo_vis_dif_fix)& !$OMP private(is,ie) do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) + is=block_start(l) + ie=block_end(l) do i = is, ie - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) - ex_flux_sw_vis_dir(i) ! temporarily nir/dir - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) * ex_albedo_nir_dir_fix(i) ! fix nir/dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) - ex_flux_sw_vis_dir(i) ! temporarily nir/dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) * ex_albedo_nir_dir_fix(i) ! fix nir/dir ex_flux_sw_vis_dir(i) = ex_flux_sw_vis_dir(i) * ex_albedo_vis_dir_fix(i) ! fix vis/dir - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) + ex_flux_sw_vis_dir(i) ! back to total dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) + ex_flux_sw_vis_dir(i) ! back to total dir - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) - ex_flux_sw_vis_dif(i) ! temporarily nir/dif - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) * ex_albedo_nir_dif_fix(i) ! fix nir/dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) - ex_flux_sw_vis_dif(i) ! temporarily nir/dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) * ex_albedo_nir_dif_fix(i) ! fix nir/dif ex_flux_sw_vis_dif(i) = ex_flux_sw_vis_dif(i) * ex_albedo_vis_dif_fix(i) ! fix vis/dif - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) + ex_flux_sw_vis_dif(i) ! back to total dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) + ex_flux_sw_vis_dif(i) ! back to total dif ex_flux_sw_vis(i) = ex_flux_sw_vis_dir(i) + ex_flux_sw_vis_dif(i) ! legacy, remove later - ex_flux_sw(i) = ex_flux_sw_dir(i) + ex_flux_sw_dif(i) ! legacy, remove later + ex_flux_sw(i) = ex_flux_sw_dir(i) + ex_flux_sw_dif(i) ! legacy, remove later enddo enddo - deallocate(ex_albedo_fix) - deallocate(ex_albedo_vis_dir_fix) - deallocate(ex_albedo_nir_dir_fix) - deallocate(ex_albedo_vis_dif_fix) - deallocate(ex_albedo_nir_dif_fix) - + ! ex_flux_sw_dir = ex_flux_sw_dir - ex_flux_sw_vis_dir ! temporarily nir/dir + ! ex_flux_sw_dir = ex_flux_sw_dir * ex_albedo_nir_dir_fix ! fix nir/dir + ! ex_flux_sw_vis_dir = ex_flux_sw_vis_dir * ex_albedo_vis_dir_fix ! fix vis/dir + ! ex_flux_sw_dir = ex_flux_sw_dir + ex_flux_sw_vis_dir ! back to total dir + ! + ! ex_flux_sw_dif = ex_flux_sw_dif - ex_flux_sw_vis_dif ! temporarily nir/dif + ! ex_flux_sw_dif = ex_flux_sw_dif * ex_albedo_nir_dif_fix ! fix nir/dif + ! ex_flux_sw_vis_dif = ex_flux_sw_vis_dif * ex_albedo_vis_dif_fix ! fix vis/dif + ! ex_flux_sw_dif = ex_flux_sw_dif + ex_flux_sw_vis_dif ! back to total dif + ! + ! ex_flux_sw_vis = ex_flux_sw_vis_dir + ex_flux_sw_vis_dif ! legacy, remove later + ! ex_flux_sw = ex_flux_sw_dir + ex_flux_sw_dif ! legacy, remove later - !> adjust fluxes for implicit dependence on atmosphere + deallocate ( ex_albedo_fix ) + deallocate ( ex_albedo_vis_dir_fix ) + deallocate ( ex_albedo_nir_dir_fix ) + deallocate ( ex_albedo_vis_dif_fix ) + deallocate ( ex_albedo_nir_dif_fix ) + + !} end fix short wavelength radiation flux on the exchange grid + + + !> Adjust fluxes for implicit dependence (TOM HELP, this sounds awkward) + !{ do tr = 1,n_exch_tr n = tr_table(tr)%atm call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_tr(:,:,n), 'ATM', ex_delta_tr(:,tr), xmap_sfc, complete=.false.) @@ -2299,7 +2449,10 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dflux_t, 'ATM', ex_dflux_t, xmap_sfc, complete=.true. ) #ifndef use_AM3_physics - !> Map sedimentation flux on the exchange + ! Get sedimentation flux. Has to be here (instead of sfc_boundary_layer sub) + ! because of time stepping order: sedimentation fluxes are calculated in + ! update_atmos_model_down (in atmos_tracer_driver), but sfc_boundary_layer + ! is called before that. do tr = 1,n_exch_tr if (atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm)) then call get_atmos_tracer_surf_setl_flux (tr_table(tr)%atm, setl_flux, dsetl_dtr) @@ -2307,7 +2460,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_xgrid_put_to_xgrid(dsetl_dtr, 'ATM', ex_dsetl_dtr, xmap_sfc) where (ex_avail) ! minus sign is because sedimentation is positive down - ex_flux_tr(:,tr) = ex_flux_tr(:,tr) - ex_setl_flux(:) + ex_flux_tr(:,tr)= ex_flux_tr(:,tr) - ex_setl_flux(:) ex_dfdtr_atm(:,tr) = ex_dfdtr_atm(:,tr) - ex_dsetl_dtr(:) end where endif @@ -2315,14 +2468,15 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound #endif cp_inv = 1.0/cp_air - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd, & - !$OMP ex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm, cp_inv,ex_e_t_n,ex_dhdt_surf,ex_f_t_delt_n,& - !$OMP ex_delta_t, ex_flux_t,ex_dflux_tr,isphum,ex_dfdtr_atm,ex_e_q_n, ex_dedt_surf,n_exch_tr,& - !$OMP ex_e_tr_n,ex_dfdtr_surf, ex_f_tr_delt_n,ex_delta_tr,ex_flux_tr) private(is,ie) + + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_lw, ex_flux_lwd, & + !$OMP ex_avail, ex_gamma, ex_dtmass, ex_dflux_t, ex_dhdt_atm, cp_inv, ex_e_t_n, & + !$OMP ex_dhdt_surf,ex_f_t_delt_n,ex_delta_t, ex_flux_t, ex_dflux_tr, isphum, & + !$OMP ex_dfdtr_atm, ex_e_q_n, ex_dedt_surf, n_exch_tr, ex_e_tr_n, ex_dfdtr_surf, & + !$OMP ex_f_tr_delt_n, ex_delta_tr, ex_flux_tr) private(is,ie) do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) + is=block_start(l) + ie=block_end(l) do i = is, ie !----- compute net longwave flux (down-up) ----- ! (note: lw up already in ex_flux_lw) @@ -2333,11 +2487,11 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ex_e_t_n(i) = ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) ex_f_t_delt_n(i) = (ex_delta_t(i) + ex_dtmass(i) * ex_flux_t(i)*cp_inv) * ex_gamma(i) - ex_flux_t (i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) - ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) + ex_flux_t(i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) + ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) ! moisture - ! ex_gamma = 1./ (1.0 - ex_dtmass*(ex_dflux_q + ex_dedq_atm)) + ! ex_gamma = 1./ (1.0 - ex_dtmass*(ex_dflux_q + ex_dedq_atm)) ! here it looks like two derivatives with different units are added together, ! but in fact they are not: ex_dedt_surf and ex_dedq_surf defined in complimentary ! regions of exchange grid, so that if one of them is not zero the other is, and @@ -2350,86 +2504,97 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ! moisture vs. surface temperture, assuming saturation ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,isphum) + ex_dfdtr_atm(i,isphum))) ex_e_q_n(i) = ex_dtmass(i) * ex_dedt_surf(i) * ex_gamma(i) - ex_dedt_surf(i) = ex_dedt_surf(i) + ex_dfdtr_atm(i,isphum) * ex_e_q_n(i) + ex_dedt_surf(i) = ex_dedt_surf(i) + ex_dfdtr_atm(i,isphum) * ex_e_q_n(i) do tr = 1,n_exch_tr ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,tr) + ex_dfdtr_atm(i,tr))) ex_e_tr_n(i,tr) = ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) ex_f_tr_delt_n(i,tr) = (ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) + ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) - ex_dfdtr_surf(i,tr) = ex_dfdtr_surf(i,tr) + ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) + ex_dfdtr_surf(i,tr) = ex_dfdtr_surf(i,tr) + ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) enddo endif enddo enddo - !> map field from the exchange grid to the land grid - !{ - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) + !} end adjust fluxes for implicit dependence + + !> map fluxes from the exchange grid to the land grid + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) #ifdef SCM if (do_specified_land .and. do_specified_flux) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) else - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) endif #else - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) #endif - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) - - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) + + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) + ! if(do_area_weighted_flux) then + ! ! evap goes here??? + ! do k = 1, size(Land_boundary%lprec, dim=3) + ! ! Note: we divide by AREA_ATM_MODEL, which should be the same as + ! ! AREA_LND_MODEL (but the latter may not be defined) + ! call divide_by_area(data=Land_boundary%lprec(:,:,k), area=AREA_ATM_MODEL) + ! call divide_by_area(data=Land_boundary%fprec(:,:,k), area=AREA_ATM_MODEL) + ! enddo + ! endif if(associated(Land_boundary%drag_q)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'drag_q', Land_boundary%drag_q, Time ) endif if(associated(Land_boundary%lwdn_flux)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) endif if(associated(Land_boundary%cd_m)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'cd_m', Land_boundary%cd_m, Time ) endif if(associated(Land_boundary%cd_t)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'cd_t', Land_boundary%cd_t, Time ) endif if(associated(Land_boundary%bstar)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'bstar', Land_boundary%bstar, Time ) endif if(associated(Land_boundary%ustar)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'ustar', Land_boundary%ustar, Time ) endif if(associated(Land_boundary%wind)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%wind, 'LND', ex_wind, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'wind', Land_boundary%wind, Time ) endif if(associated(Land_boundary%z_bot)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) call FMS_DATA_OVERRIDE_('LND', 'z_bot', Land_boundary%z_bot, Time ) endif if (associated(Land_boundary%gex_atm2lnd)) then do n_gex=1,n_gex_atm2lnd - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) !add data_override here end do end if #ifndef _USE_LEGACY_LAND_ if (associated(Land_boundary%con_atm)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) end if #endif @@ -2439,63 +2604,71 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound n = tr_table(tr)%lnd if(n /= NO_TRACER ) then #ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) #else - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) #endif #ifdef SCM if (do_specified_land .and. do_specified_flux .and. tr.eq.isphum) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) endif #endif endif enddo - !} + + !} map fluxes from the exchange grid to the land grid - !> Data_override land fields if the field is specified in the data_table - call FMS_DATA_OVERRIDE_('LND', 't_flux', Land_boundary%t_flux, Time ) - call FMS_DATA_OVERRIDE_('LND', 'lw_flux', Land_boundary%lw_flux, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux', Land_boundary%sw_flux, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) - - call FMS_DATA_OVERRIDE_('LND', 'lprec', Land_boundary%lprec, Time ) - call FMS_DATA_OVERRIDE_('LND', 'fprec', Land_boundary%fprec, Time ) - call FMS_DATA_OVERRIDE_('LND', 'dhdt', Land_boundary%dhdt, Time ) - call FMS_DATA_OVERRIDE_('LND', 'drdt', Land_boundary%drdt, Time ) - call FMS_DATA_OVERRIDE_('LND', 'p_surf', Land_boundary%p_surf, Time ) + !> override land fluxes only if the field is specified in the data_table + !{ + ! current time is Time: is that ok? not available in land_data_type + !Balaji: data_override calls moved here from coupler_main + call FMS_DATA_OVERRIDE_('LND', 't_flux', Land_boundary%t_flux, Time) + call FMS_DATA_OVERRIDE_('LND', 'lw_flux', Land_boundary%lw_flux, Time) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux', Land_boundary%sw_flux, Time) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time) + call FMS_DATA_OVERRIDE_('LND', 'lprec', Land_boundary%lprec, Time) + call FMS_DATA_OVERRIDE_('LND', 'fprec', Land_boundary%fprec, Time) + call FMS_DATA_OVERRIDE_('LND', 'dhdt', Land_boundary%dhdt, Time) + call FMS_DATA_OVERRIDE_('LND', 'drdt', Land_boundary%drdt, Time) + call FMS_DATA_OVERRIDE_('LND', 'p_surf', Land_boundary%p_surf, Time) do tr = 1,n_lnd_tr call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) #ifndef _USE_LEGACY_LAND_ call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) - call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) #else call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,:,tr), Time) - call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) #endif enddo - - !> map data on the exchange grid onto the Ice grid + !} end override land fluxes + + !> Map ice fields from the exchange grid to the Ice grid !{ call fms_xgrid_get_from_xgrid (Ice_boundary%t_flux, 'OCN', ex_flux_t, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%q_flux, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dir, 'OCN', ex_flux_sw_vis_dir, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dir, 'OCN', ex_flux_sw_dir,xmap_sfc) + ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_flux_nir_dir - Ice_boundary%sw_flux_vis_dir call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dif, 'OCN', ex_flux_sw_vis_dif, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dif, 'OCN', ex_flux_sw_dif,xmap_sfc) + ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_flux_nir_dif - Ice_boundary%sw_flux_vis_dif call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dir, 'OCN', ex_flux_sw_down_vis_dir, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dir, 'OCN', ex_flux_sw_down_total_dir, xmap_sfc) + ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_down_nir_dir = Ice_boundary%sw_down_nir_dir - Ice_boundary%sw_down_vis_dir call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dif, 'OCN', ex_flux_sw_down_vis_dif, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dif, 'OCN', ex_flux_sw_down_total_dif,xmap_sfc) + ! ice & ocean use these 4: dir/dif nir/vis Ice_boundary%sw_down_nir_dif = Ice_boundary%sw_down_nir_dif - Ice_boundary%sw_down_vis_dif call fms_xgrid_get_from_xgrid (Ice_boundary%lw_flux, 'OCN', ex_flux_lw, xmap_sfc) @@ -2510,62 +2683,69 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_xgrid_get_from_xgrid (Ice_boundary%lprec, 'OCN', ex_lprec, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%fprec, 'OCN', ex_fprec, xmap_sfc) - + ! if (do_area_weighted_flux) then + ! where (AREA_ATM_SPHERE /= 0) + ! Ice_boundary%lprec = Ice_boundary%lprec * AREA_ATM_MODEL/AREA_ATM_SPHERE + ! Ice_boundary%fprec = Ice_boundary%fprec * AREA_ATM_MODEL/AREA_ATM_SPHERE + ! end where + ! endif + ! if(do_area_weighted_flux) then + ! do k = 1, size(Ice_boundary%lprec, dim=3) + ! call divide_by_area(data=Ice_boundary%lprec(:,:,k), area=AREA_ATM_SPHERE) + ! call divide_by_area(data=Ice_boundary%fprec(:,:,k), area=AREA_ATM_SPHERE) + ! enddo + ! endif + ! Extra fluxes - do n = 1, Ice_boundary%fluxes%num_bcs - if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then - do m = 1, Ice_boundary%fluxes%bc(n)%num_fields !{ - call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & - ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - enddo - endif + do n = 1, Ice_boundary%fluxes%num_bcs + if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then + do m = 1, Ice_boundary%fluxes%bc(n)%num_fields + call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & + ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) + enddo + endif enddo - !} - - !> Override ice data if data field is specified in the data_table - call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) - call fms_data_override('ICE', 'v_flux', Ice_boundary%v_flux, Time) - call fms_data_override('ICE', 't_flux', Ice_boundary%t_flux, Time) - call fms_data_override('ICE', 'q_flux', Ice_boundary%q_flux, Time) + !} end map ice fields from the exchange grid to the ice grid + + !> override Ice fields only if the field is specified in the data table + !{ + !Balaji: data_override calls moved here from coupler_main + call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) + call fms_data_override('ICE', 'v_flux', Ice_boundary%v_flux, Time) + call fms_data_override('ICE', 't_flux', Ice_boundary%t_flux, Time) + call fms_data_override('ICE', 'q_flux', Ice_boundary%q_flux, Time) call fms_data_override('ICE', 'lw_flux',Ice_boundary%lw_flux, Time) call fms_data_override('ICE', 'lw_flux_dn',Ice_boundary%lw_flux, Time, override=ov) if (ov) Ice_boundary%lw_flux = Ice_boundary%lw_flux - stefan*Ice%t_surf**4 - call fms_data_override('ICE', 'sw_flux_nir_dir',Ice_boundary%sw_flux_nir_dir, Time) call fms_data_override('ICE', 'sw_flux_vis_dir',Ice_boundary%sw_flux_vis_dir, Time) call fms_data_override('ICE', 'sw_flux_nir_dif',Ice_boundary%sw_flux_nir_dif, Time, override=ov) call fms_data_override('ICE', 'sw_flux_vis_dif',Ice_boundary%sw_flux_vis_dif, Time) call fms_data_override('ICE', 'sw_flux_vis_dir_dn',Ice_boundary%sw_down_vis_dir, Time, override=ov) if (ov) Ice_boundary%sw_flux_vis_dir = Ice_boundary%sw_down_vis_dir*(1.0-Ice%albedo_vis_dir) - call fms_data_override('ICE', 'sw_flux_vis_dif_dn',Ice_boundary%sw_down_vis_dif, Time, override=ov) if (ov) Ice_boundary%sw_flux_vis_dif = Ice_boundary%sw_down_vis_dif*(1.0-Ice%albedo_vis_dif) - call fms_data_override('ICE', 'sw_flux_nir_dir_dn',Ice_boundary%sw_down_nir_dir, Time, override=ov) if (ov) Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_down_nir_dir*(1.0-Ice%albedo_nir_dir) - call fms_data_override('ICE', 'sw_flux_nir_dif_dn',Ice_boundary%sw_down_nir_dif, Time, override=ov) if (ov) Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_down_nir_dif*(1.0-Ice%albedo_nir_dif) - - call fms_data_override('ICE', 'lprec', Ice_boundary%lprec, Time) - call fms_data_override('ICE', 'fprec', Ice_boundary%fprec, Time) - call fms_data_override('ICE', 'dhdt', Ice_boundary%dhdt, Time) - call fms_data_override('ICE', 'dedt', Ice_boundary%dedt, Time) - call fms_data_override('ICE', 'drdt', Ice_boundary%drdt, Time) - call fms_data_override('ICE', 'coszen', Ice_boundary%coszen, Time) - call fms_data_override('ICE', 'p', Ice_boundary%p, Time) - + call fms_data_override('ICE', 'lprec', Ice_boundary%lprec, Time) + call fms_data_override('ICE', 'fprec', Ice_boundary%fprec, Time) + call fms_data_override('ICE', 'dhdt', Ice_boundary%dhdt, Time) + call fms_data_override('ICE', 'dedt', Ice_boundary%dedt, Time) + call fms_data_override('ICE', 'drdt', Ice_boundary%drdt, Time) + call fms_data_override('ICE', 'coszen', Ice_boundary%coszen, Time) + call fms_data_override('ICE', 'p', Ice_boundary%p, Time) call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) - call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) - !} - - !> Compute stock changes + !} end override Ice fields + + !> Compute stock changes between components !{ ! Atm -> Lnd (precip) call FMS_XGRID_STOCK_MOVE_( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & + & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & #ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & #else @@ -2580,13 +2760,13 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ! Atm -> Lnd (heat) call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & #ifndef _USE_LEGACY_LAND_ - & stock_ug_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & - Land_boundary%fprec*HLF), & + & stock_ug_data3d = & + (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & #else - & stock_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & - Land_boundary%fprec*HLF), & + & stock_data3d = & + (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & #endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & @@ -2597,7 +2777,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ! Atm -> Ice (precip) call fms_xgrid_stock_move( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_ice_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_ice_stock(ISTOCK_WATER), & & stock_data3d = (Ice_boundary%lprec + Ice_boundary%fprec), & & grid_index=X1_GRID_ICE, & & xmap=xmap_sfc, & @@ -2608,45 +2788,50 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ! Atm -> Ice (heat) call fms_xgrid_stock_move( & & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & TO = fms_stock_constants_ice_stock(ISTOCK_HEAT), & - & stock_data3d = (-Ice_boundary%t_flux + Ice_boundary%lw_flux - Ice_boundary%fprec*HLF + & - Ice_boundary%sw_flux_vis_dir + & + & TO = fms_stock_constants_ice_stock(ISTOCK_HEAT), & + & stock_data3d = & + (-Ice_boundary%t_flux + Ice_boundary%lw_flux - Ice_boundary%fprec*HLF + Ice_boundary%sw_flux_vis_dir + & Ice_boundary%sw_flux_vis_dif + Ice_boundary%sw_flux_nir_dir + Ice_boundary%sw_flux_nir_dif), & & grid_index=X1_GRID_ICE, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') - !} - + !} end copute stock exchange between components + deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) - !> send data to diag_manager buffer to save data for output + + !> send data to diag_manager buffer where if the field is specified in the diag_table, + !! data will be outputted at the end of the simulation !{ - ! zonal wind stress + !------- zonal wind stress ----------- used = fms_diag_send_data ( id_u_flux, Atmos_boundary%u_flux, Time ) used = fms_diag_send_data ( id_tauu, -Atmos_boundary%u_flux, Time ) - - ! meridional wind stress + + !------- meridional wind stress ----------- used = fms_diag_send_data ( id_v_flux, Atmos_boundary%v_flux, Time ) used = fms_diag_send_data ( id_tauv, -Atmos_boundary%v_flux, Time ) - !} + !} end send data to diag_mana ger + !> end clock for profiling + !Balaji call fms_mpp_clock_end(fluxAtmDnClock) - call fms_mpp_clock_end(cplClock) + call fms_mpp_clock_end(cplClock) end subroutine flux_down_from_atmos - !####################################################################### - !> \brief Optimizes the exchange grids by eliminating land and ice partitions with no data. - !! - !! Optimizes the exchange grids by eliminating land and ice partitions with no data. - subroutine generate_sfc_xgrid( Land, Ice ) - ! subroutine to regenerate exchange grid eliminating side 2 tiles with 0 frac area - type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data - type(ice_data_type), intent(in) :: Ice !< A derived data type to specify ice boundary data + !> Update fractional area of the exchange grid between land and ice (see link to xgrid for details) + !! Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. + !! This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are + !! pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) + subroutine generate_sfc_xgrid(Land, Ice) - integer :: isc, iec, jsc, jec + implicit none + type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data + Type(Ice_Data_Type), intent(in) :: Ice !< A derived data type to specify ice boundary data + + integer :: isc, iec, jsc, jec !compute domain indices !Balaji call fms_mpp_clock_begin(cplClock) @@ -2654,11 +2839,16 @@ subroutine generate_sfc_xgrid( Land, Ice ) call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) - call fms_xgrid_set_frac_area (Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) - call FMS_XGRID_SET_FRAC_AREA_ (Land%tile_size, 'LND', xmap_sfc) + !> update fractional areas of ice and land on the exchange grid + !{ + call fms_xgrid_set_frac_area(Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) + call FMS_XGRID_SET_FRAC_AREA_(Land%tile_size, 'LND', xmap_sfc) + !} + !> reset the number of exchange grid cells saved in the module + !{ n_xgrid_sfc = max(fms_xgrid_count(xmap_sfc),1) - if(n_xgrid_sfc .GE. nblocks) then + if(n_xgrid_sfc .ge. nblocks) then my_nblocks = nblocks call fms_mpp_domains_compute_extent(1, n_xgrid_sfc, nblocks, block_start, block_end) else @@ -2666,11 +2856,12 @@ subroutine generate_sfc_xgrid( Land, Ice ) block_start(1) = 1 block_end(1) = n_xgrid_sfc endif + !} !Balaji call fms_mpp_clock_end(regenClock) call fms_mpp_clock_end(cplClock) - return + end subroutine generate_sfc_xgrid !####################################################################### @@ -2690,19 +2881,24 @@ end subroutine generate_sfc_xgrid !! atmospheric level (kg/kg) !!
    subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary ) - type(FmsTime_type), intent(in) :: Time !< Current time - type(land_data_type), intent(inout) :: Land !< A derived data type to specify ice boundary data - type(ice_data_type), intent(inout) :: Ice !< A derived data type to specify ice boundary data - type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary !< A derived data type to specify - !! properties and fluxes passed from - !! exchange grid to the atmosphere, - !! land and ice - type(atmos_land_boundary_type), intent(inout) :: Land_boundary - type(atmos_ice_boundary_type), intent(inout) :: Ice_boundary + + implicit none + type(FmsTime_type), intent(in) :: Time + !< current model time + type(land_data_type), intent(inout) :: Land + !< derived data type holding land boundary data + type(ice_data_type), intent(inout) :: Ice + !< derived data type holding ice boundary data + type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary + !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice + type(atmos_land_boundary_type), intent(inout) :: Land_boundary + !< A derived data type to specify properties and fluxes passed from atmosphere to land + type(atmos_ice_boundary_type), intent(inout) :: Ice_boundary + !< A derived data type to specify properties and fluxes passed from atmosphere to ice real, dimension(n_xgrid_sfc) :: & - ex_t_surf_new, & - ex_dt_t_surf, & + ex_t_surf_new, & ! new surface temperature on the exchange grid + ex_dt_t_surf, & ! ex_delta_t_n, & ex_t_ca_new, & ex_dt_t_ca, & @@ -2711,50 +2907,56 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ex_temp real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_surf_new, & ! updated tracer values at the surface - ex_dt_tr_surf, & ! tendency of tracers at the surface + ex_tr_surf_new, & ! updated tracer values at the surface + ex_dt_tr_surf, & ! tendency of tracers at the surface ex_delta_tr_n - ! jgj: added for co2_surf diagnostic - real, dimension(n_xgrid_sfc) :: & - ex_co2_surf_dvmr ! updated CO2 tracer values at the surface (dry vmr) - real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: diag_atm, & - evap_atm, frac_atm + ! jgj: added for co2_surf diagnostic, where co2_surf_dvmr is the updated CO2 tracer values at the surface (dry vmr) + real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr + + real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: & + diag_atm, & + evap_atm, & + frac_atm + #ifndef _USE_LEGACY_LAND_ real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land #else - real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: data_lnd,& - diag_land + real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: & + data_lnd, diag_land #endif real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid - logical :: used - integer :: tr ! tracer index + logical :: used + integer :: tr ! tracer index character(32) :: tr_name, tr_units ! tracer name integer :: n, i, m, ier - integer :: is, ie, l !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmUpClock) - !----------------------------------------------------------------------- + + !> override Ice and Land temperature fields. Note, data_override will only overwrite data if + !! the field is specified in the data_table + !{ !Balaji: data_override calls moved here from coupler_main - call fms_data_override ( 'ICE', 't_surf', Ice%t_surf, Time) - call FMS_DATA_OVERRIDE_ ( 'LND', 't_ca', Land%t_ca, Time) - call FMS_DATA_OVERRIDE_ ( 'LND', 't_surf', Land%t_surf, Time) + call fms_data_override('ICE', 't_surf', Ice%t_surf, Time) + call FMS_DATA_OVERRIDE_('LND', 't_ca', Land%t_ca, Time) + call FMS_DATA_OVERRIDE_('LND', 't_surf', Land%t_surf, Time) do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) #ifndef _USE_LEGACY_LAND_ - call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) #else - call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) #endif enddo + !} - !----- compute surface temperature change ----- - + !> COMPUTE CHANGE IN SURFACE TEMPERATURE + !{ ex_t_surf_new = 200.0 call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf_new, xmap_sfc) @@ -2775,11 +2977,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou #endif do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie if(ex_avail(i)) then - ex_dt_t_ca(i) = ex_t_ca_new(i) - ex_t_ca(i) ! changes in near-surface T + ex_dt_t_ca(i) = ex_t_ca_new(i) - ex_t_ca(i) ! changes in near-surface T ex_dt_t_surf(i) = ex_t_surf_new(i) - ex_t_surf(i) ! changes in radiative T endif enddo @@ -2787,15 +2989,16 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou if (do_forecast) then do i = is, ie if(ex_avail(i) .and. (.not.ex_land(i))) then - ex_dt_t_ca (i) = 0. + ex_dt_t_ca(i) = 0. ex_dt_t_surf(i) = 0. endif enddo end if - !----------------------------------------------------------------------- - !----- adjust fluxes and atmospheric increments for - !----- implicit dependence on surface temperature ----- + !} END COMPUTE CHANGE IN SURFACE TEMPERATURE + + !> UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE + !{ do tr = 1,n_exch_tr ! set up updated surface tracer field so that flux to atmos for absent ! tracers is zero @@ -2809,31 +3012,33 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ex_tr_surf_new(i,tr) = ex_tr_surf(i,tr)+ex_dt_tr_surf(i,tr) enddo enddo - enddo ! l = 1, my_nblocks + enddo ! get all tracers available from land, and calculate changes in near-tracer field do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then #ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) + call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc) #else - call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) + call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc) #endif endif enddo + !} END UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE ! get all tracers available from ocean here - ! update tracer tendencies in the atmosphere + !> UPDATE TRACER TENDENCIES IN THE ATMOSPHERE + !{ do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do tr = 1,n_exch_tr do i = is, ie if(ex_avail(i)) then ex_dt_tr_surf(i,tr) = ex_tr_surf_new(i,tr) - ex_tr_surf(i,tr) ex_delta_tr_n(i,tr) = ex_f_tr_delt_n(i,tr) + ex_dt_tr_surf(i,tr) * ex_e_tr_n(i,tr) - ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dt_tr_surf(i,tr) * ex_dfdtr_surf(i,tr) + ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dt_tr_surf(i,tr) * ex_dfdtr_surf(i,tr) endif enddo enddo @@ -2842,67 +3047,64 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou do i = is, ie if(ex_avail(i) .and. (.not.ex_land(i))) then ! note that in this region (over ocean) ex_dt_t_surf == ex_dt_t_ca - ex_delta_tr_n(i,isphum) = ex_f_tr_delt_n(i,isphum) + ex_dt_t_surf(i) * ex_e_q_n(i) - ex_flux_tr(i,isphum) = ex_flux_tr(i,isphum) + ex_dt_t_surf(i) * ex_dedt_surf(i) + ex_delta_tr_n(i,isphum) = ex_f_tr_delt_n(i,isphum) + ex_dt_t_surf(i) * ex_e_q_n(i) + ex_flux_tr(i,isphum) = ex_flux_tr(i,isphum) + ex_dt_t_surf(i) * ex_dedt_surf(i) endif enddo enddo do tr=1,n_exch_tr ! get updated tracer tendency on the atmospheic grid - n=tr_table(tr)%atm - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_tr(:,:,n), 'ATM', ex_delta_tr_n(:,tr), xmap_sfc) + n = tr_table(tr)%atm + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dt_tr(:,:,n), 'ATM', ex_delta_tr_n(:,tr), xmap_sfc) enddo do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) + is = block_start(l) + ie = block_end(l) do i = is, ie ex_delta_t_n(i) = 0.0 if(ex_avail(i)) then - ex_flux_t(i) = ex_flux_t(i) + ex_dt_t_ca(i) * ex_dhdt_surf(i) - ex_flux_lw(i) = ex_flux_lw(i) - ex_dt_t_surf(i) * ex_drdt_surf(i) - ex_delta_t_n(i) = ex_f_t_delt_n(i) + ex_dt_t_ca(i)*ex_e_t_n(i) + ex_flux_t(i) = ex_flux_t(i) + ex_dt_t_ca(i) * ex_dhdt_surf(i) + ex_flux_lw(i) = ex_flux_lw(i) - ex_dt_t_surf(i) * ex_drdt_surf(i) + ex_delta_t_n(i) = ex_f_t_delt_n(i) + ex_dt_t_ca(i) * ex_e_t_n(i) endif enddo enddo - - !----------------------------------------------------------------------- - !---- get mean quantites on atmospheric grid ---- - + !} END UPDATE TRACER TENDENCIES IN THE ATMOSPHERE + + !> MAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID + !{ call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_t, 'ATM', ex_delta_t_n, xmap_sfc) #ifndef use_AM3_physics call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t , xmap_sfc) !miz call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc)!miz #endif + !} END MAP MEAN QUANITTIES FROM THE EXCHANGE GRID TO THE ATMOSPHERE GRID - !======================================================================= - !-------------------- diagnostics section ------------------------------ - - !------- new surface temperature ----------- + + !> SEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE + !! DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUN + !{ #ifdef use_AM3_physics - if ( id_t_surf > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) - used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) + if (id_t_surf > 0) then + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) + used = fms_diag_send_data(id_t_surf, diag_atm, Time) endif #else call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) - if ( id_t_surf > 0 ) then - used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) - endif - if ( id_ts > 0 ) then - used = fms_diag_send_data ( id_ts, diag_atm, Time ) - endif + if (id_t_surf > 0) used = fms_diag_send_data(id_t_surf, diag_atm, Time) + if (id_ts > 0) used = fms_diag_send_data(id_ts, diag_atm, Time) call fms_sum_diag_integral_field ('t_surf', diag_atm) - if ( id_ts_g > 0 ) used = send_global_diag ( id_ts_g, diag_atm, Time ) + if(id_ts_g > 0) used = send_global_diag(id_ts_g, diag_atm, Time) !------- new surface temperature only over open ocean ----------- - if ( id_tos > 0 ) then + if(id_tos > 0) then ex_icetemp = 0.0 icegrid = 0.0; icegrid(:,:,1) = 1.0 - call fms_xgrid_put_to_xgrid ( icegrid, 'OCN', ex_icetemp, xmap_sfc) + call fms_xgrid_put_to_xgrid(icegrid, 'OCN', ex_icetemp, xmap_sfc) ex_temp = ex_t_surf_new * ex_icetemp - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_temp, xmap_sfc) - call fms_xgrid_get_from_xgrid (frac_atm, 'ATM', ex_icetemp, xmap_sfc) + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_temp, xmap_sfc) + call fms_xgrid_get_from_xgrid(frac_atm, 'ATM', ex_icetemp, xmap_sfc) where (frac_atm > 0.0) diag_atm = (diag_atm/frac_atm) ! - tfreeze CMIP6 in degK frac_atm = 1.0 @@ -2910,11 +3112,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou diag_atm = 0.0 frac_atm = 0.0 endwhere - used = fms_diag_send_data ( id_tos, diag_atm, Time, rmask=frac_atm ) + used = fms_diag_send_data(id_tos, diag_atm, Time, rmask=frac_atm) endif !------- new surface temperature only over land and sea-ice ----------- - if ( id_tslsi > 0 ) then + if(id_tslsi > 0) then ex_land_frac = 0.0 call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) icegrid = 1.0; icegrid(:,:,1) = 0. @@ -2931,7 +3133,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou diag_atm = 0.0 frac_atm = 0.0 endwhere - used = fms_diag_send_data ( id_tslsi, diag_atm, Time, rmask=frac_atm ) + used = fms_diag_send_data(id_tslsi, diag_atm, Time, rmask=frac_atm) endif #endif @@ -2939,121 +3141,119 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ! ------ new canopy temperature -------- ! NOTE, that in the particular case of LM2 t_ca is identical to t_surf, ! but this will be changed in future version of the land madel - if ( id_t_ca > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_ca_new, xmap_sfc) - used = fms_diag_send_data ( id_t_ca, diag_atm, Time ) + if(id_t_ca > 0) then + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_t_ca_new, xmap_sfc) + used = fms_diag_send_data(id_t_ca, diag_atm, Time) endif !------- updated surface tracer fields ------ - do tr=1,n_exch_tr + do tr=1, n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) - if ( id_tr_surf(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_surf_new(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_surf(tr), diag_atm, Time ) + if(id_tr_surf(tr) > 0) then + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_tr_surf_new(:,tr), xmap_sfc) + used = fms_diag_send_data(id_tr_surf(tr), diag_atm, Time) endif !!jgj: add dryvmr co2_surf ! - slm Mar 25, 2010: moved to resolve interdependence of diagnostic fields - if ( id_co2_surf_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then + if(id_co2_surf_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then ex_co2_surf_dvmr = (ex_tr_surf_new(:,tr) / (1.0 - ex_tr_surf_new(:,isphum))) * WTMAIR/WTMCO2 call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_co2_surf_dvmr, xmap_sfc) - used = fms_diag_send_data ( id_co2_surf_dvmr, diag_atm, Time ) + used = fms_diag_send_data(id_co2_surf_dvmr, diag_atm, Time) endif enddo !------- sensible heat flux ----------- - if ( id_t_flux > 0 .or. id_hfss > 0 .or. id_hfss_g > 0 ) then + if(id_t_flux > 0 .or. id_hfss > 0 .or. id_hfss_g > 0) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_t, xmap_sfc) - if ( id_t_flux > 0 ) used = fms_diag_send_data ( id_t_flux, diag_atm, Time ) - if ( id_hfss > 0 ) used = fms_diag_send_data ( id_hfss, diag_atm, Time ) + if(id_t_flux > 0) used = fms_diag_send_data(id_t_flux, diag_atm, Time) + if(id_hfss > 0) used = fms_diag_send_data(id_hfss, diag_atm, Time) #ifndef use_AM3_physics - if ( id_hfss_g > 0 ) used = send_global_diag ( id_hfss_g, diag_atm, Time ) + if(id_hfss_g > 0) used = send_global_diag ( id_hfss_g, diag_atm, Time ) #endif endif !------- net longwave flux ----------- - if ( id_r_flux > 0 .or. id_rls_g > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_lw, xmap_sfc) - if ( id_r_flux > 0 ) used = fms_diag_send_data ( id_r_flux, diag_atm, Time ) + if(id_r_flux > 0 .or. id_rls_g > 0) then + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_flux_lw, xmap_sfc) + if(id_r_flux > 0) used = fms_diag_send_data(id_r_flux, diag_atm, Time) #ifndef use_AM3_physics - if ( id_rls_g > 0 ) used = send_global_diag ( id_rls_g, diag_atm, Time ) + if(id_rls_g > 0) used = send_global_diag(id_rls_g, diag_atm, Time) #endif endif !------- tracer fluxes ------------ ! tr_mol_flux diagnostic will be correct for co2 tracer only. ! will need update code to use correct molar mass for tracers other than co2 - do tr=1,n_exch_tr - if ( id_tr_flux(tr) > 0 .or. id_tr_mol_flux(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_tr(:,tr), xmap_sfc) - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) - if (id_tr_flux(tr) > 0 ) & - used = fms_diag_send_data ( id_tr_flux(tr), diag_atm, Time ) - ! if (id_tr_mol_flux(tr) > 0 ) & - ! used = fms_diag_end_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) - ! 2017/08/08 jgj - replaced 2 lines above by the following - if (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then - used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) - !sometimes in 2018 f1p for vmr tracers - elseif (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_units)).eq."vmr") then - ! if (ocn_atm_flux_vmr_bug) then - ! call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & - ! ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)), xmap_sfc) - ! used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMAIR, Time) - ! else - !flux is in vmr * kg/m2/s. Divide by MW_air - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & - ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & - / (1e-3*WTMAIR*WTMH2O) , & - xmap_sfc) - used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm, Time) - endif - endif - if ( id_tr_con_atm(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_atm(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_con_atm(tr), diag_atm, Time ) - end if - if ( id_tr_con_ref(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_ref(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_con_ref(tr), diag_atm, Time ) - end if + do tr=1, n_exch_tr + if(id_tr_flux(tr) > 0 .or. id_tr_mol_flux(tr) > 0) then + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_flux_tr(:,tr), xmap_sfc) + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units) + if(id_tr_flux(tr) > 0 ) used = fms_diag_send_data ( id_tr_flux(tr), diag_atm, Time) + ! if (id_tr_mol_flux(tr) > 0 ) & + ! used = fms_diag_end_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) + ! 2017/08/08 jgj - replaced 2 lines above by the following + if(id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then + used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) + !sometimes in 2018 f1p for vmr tracers + elseif(id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_units)).eq."vmr") then + ! if (ocn_atm_flux_vmr_bug) then + ! call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ! ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)), xmap_sfc) + ! used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMAIR, Time) + ! else + !flux is in vmr * kg/m2/s. Divide by MW_air + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & + / (1e-3*WTMAIR*WTMH2O) , & + xmap_sfc) + used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm, Time) + endif + endif + if(id_tr_con_atm(tr) > 0) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_atm(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_con_atm(tr), diag_atm, Time ) + end if + if(id_tr_con_ref(tr) > 0) then + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_tr_con_ref(:,tr), xmap_sfc) + used = fms_diag_send_data(id_tr_con_ref(tr), diag_atm, Time) + end if enddo - + #ifndef _USE_LEGACY_LAND_ - if ( id_t_flux_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_t, xmap_sfc) - call send_tile_data ( id_t_flux_land, diag_land ) + if(id_t_flux_land > 0) then + call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_flux_t, xmap_sfc) + call send_tile_data(id_t_flux_land, diag_land) endif !------- tracer fluxes for land - do tr=1,n_exch_tr - if ( id_tr_flux_land(tr) > 0 .or. id_tr_mol_flux_land(tr) > 0 ) then - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) - if (id_tr_flux_land(tr) > 0 ) & - call send_tile_data (id_tr_flux_land(tr), diag_land ) + do tr=1, n_exch_tr + if(id_tr_flux_land(tr) > 0 .or. id_tr_mol_flux_land(tr) > 0) then + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units) + call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) + if(id_tr_flux_land(tr) > 0) call send_tile_data(id_tr_flux_land(tr), diag_land) if (id_tr_mol_flux_land(tr) > 0) then - if (fms_mpp_lowercase(trim(tr_name))=='co2') then + if(fms_mpp_lowercase(trim(tr_name))=='co2') then call send_tile_data (id_tr_mol_flux_land(tr), diag_land*1000./WTMCO2) - elseif (fms_mpp_lowercase(trim(tr_units)).eq.'vmr') then + elseif(fms_mpp_lowercase(trim(tr_units)).eq.'vmr') then !flux is in vmr * kg/m2/s. Divide by MW_air call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', & ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & /(1e-3*WTMAIR*WTMH2O) , & xmap_sfc) - call send_tile_data ( id_tr_mol_flux_land(tr), diag_land) + call send_tile_data(id_tr_mol_flux_land(tr), diag_land) endif endif endif enddo !-------- tracer deposition velocity - do tr=1,n_exch_tr - if ( id_tr_con_atm_land(tr) > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) - call send_tile_data (id_tr_con_atm_land(tr), diag_land ) + do tr=1, n_exch_tr + if(id_tr_con_atm_land(tr) > 0) then + call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) + call send_tile_data(id_tr_con_atm_land(tr), diag_land) endif - if ( id_tr_con_ref_land(tr) > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc ) - call send_tile_data (id_tr_con_ref_land(tr), diag_land ) + if(id_tr_con_ref_land(tr) > 0) then + call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc) + call send_tile_data(id_tr_con_ref_land(tr), diag_land) endif enddo @@ -3061,27 +3261,27 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou !----------------------------------------------------------------------- !---- accumulate global integral of evaporation (mm/day) ----- - call fms_xgrid_get_from_xgrid (evap_atm, 'ATM', ex_flux_tr(:,isphum), xmap_sfc) - if( id_q_flux > 0 ) used = fms_diag_send_data ( id_q_flux, evap_atm, Time) - if( id_evspsbl > 0 ) used = fms_diag_send_data ( id_evspsbl, evap_atm, Time) - if( id_hfls > 0 ) used = fms_diag_send_data ( id_hfls, HLV*evap_atm, Time) + call fms_xgrid_get_from_xgrid(evap_atm, 'ATM', ex_flux_tr(:,isphum), xmap_sfc) + if(id_q_flux > 0) used = fms_diag_send_data(id_q_flux, evap_atm, Time) + if(id_evspsbl > 0) used = fms_diag_send_data(id_evspsbl, evap_atm, Time) + if(id_hfls > 0) used = fms_diag_send_data(id_hfls, HLV*evap_atm, Time) #ifndef use_AM3_physics - if( id_hfls_g > 0 ) used = send_global_diag ( id_hfls_g, HLV*evap_atm, Time) + if(id_hfls_g > 0) used = send_global_diag(id_hfls_g, HLV*evap_atm, Time) #endif - if( id_q_flux_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) + if(id_q_flux_land > 0) then + call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) #ifndef _USE_LEGACY_LAND_ - call send_tile_data (id_q_flux_land, diag_land) + call send_tile_data(id_q_flux_land, diag_land) #else used = fms_diag_send_tile_averaged_data(id_q_flux_land, diag_land, & Land%tile_size, Time, mask=Land%mask) #endif endif - call fms_sum_diag_integral_field ('evap', evap_atm*86400.) + call fms_sum_diag_integral_field('evap', evap_atm*86400.) #ifndef use_AM3_physics - if (id_evspsbl_g > 0) used = send_global_diag ( id_evspsbl_g, evap_atm, Time ) + if(id_evspsbl_g > 0) used = send_global_diag(id_evspsbl_g, evap_atm, Time) #endif #ifndef _USE_LEGACY_LAND_ @@ -3089,14 +3289,15 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ! need this to avoid diag issues with tiling changes in update_land_slow call dump_tile_diag_fields(Time) #endif + !} END SEND DATA TO DIAG_MANAGER_BUFFER + !> COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS + !{ call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) - - ! compute stock changes - + ! Lnd -> Atm (evap) call FMS_XGRID_STOCK_MOVE_( & - & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & #ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = data_lnd, & @@ -3108,7 +3309,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & delta_t=Dt_atm, & & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') - + ! Lnd -> Atm (heat lost through evap) call FMS_XGRID_STOCK_MOVE_( & & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & @@ -3147,16 +3348,21 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & delta_t=Dt_atm, & & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') - + !} END COMPUTE STOCK EXCHANGE + !Balaji call fms_mpp_clock_end(fluxAtmUpClock) call fms_mpp_clock_end(cplClock) end subroutine flux_up_to_atmos - subroutine flux_ex_arrays_dealloc + + + !> Internal subroutine to deallocate exchange fields + subroutine flux_ex_arrays_dealloc() + + implicit none integer :: m,n - !======================================================================= !---- deallocate module storage ---- deallocate ( & ex_t_surf , & @@ -3177,16 +3383,14 @@ subroutine flux_ex_arrays_dealloc ex_tr_surf , & ex_tr_con_ref, & ex_tr_con_atm, & - ex_dfdtr_surf , & ex_dfdtr_atm , & ex_flux_tr , & ex_f_tr_delt_n , & ex_e_tr_n , & - ex_e_t_n , & ex_e_q_n , & - ! values added for LM3 + ! values added for LM3 ex_cd_t , & ex_cd_m , & ex_b_star , & @@ -3205,124 +3409,131 @@ subroutine flux_ex_arrays_dealloc #endif ! Extra fluxes - do n = 1, ex_gas_fields_ice%num_bcs !{ - do m = 1, ex_gas_fields_ice%bc(n)%num_fields !{ - deallocate ( ex_gas_fields_ice%bc(n)%field(m)%values ) - nullify ( ex_gas_fields_ice%bc(n)%field(m)%values ) - enddo !} m - enddo !} n + do n = 1, ex_gas_fields_ice%num_bcs + do m = 1, ex_gas_fields_ice%bc(n)%num_fields + deallocate(ex_gas_fields_ice%bc(n)%field(m)%values) + nullify ( ex_gas_fields_ice%bc(n)%field(m)%values) + enddo + enddo - do n = 1, ex_gas_fields_atm%num_bcs !{ - do m = 1, ex_gas_fields_atm%bc(n)%num_fields !{ + do n = 1, ex_gas_fields_atm%num_bcs + do m = 1, ex_gas_fields_atm%bc(n)%num_fields deallocate ( ex_gas_fields_atm%bc(n)%field(m)%values ) nullify ( ex_gas_fields_atm%bc(n)%field(m)%values ) - enddo !} m - enddo !} n + enddo + enddo - do n = 1, ex_gas_fluxes%num_bcs !{ - do m = 1, ex_gas_fluxes%bc(n)%num_fields !{ + do n = 1, ex_gas_fluxes%num_bcs + do m = 1, ex_gas_fluxes%bc(n)%num_fields deallocate ( ex_gas_fluxes%bc(n)%field(m)%values ) nullify ( ex_gas_fluxes%bc(n)%field(m)%values ) - enddo !} m - enddo !} n - + enddo + enddo + end subroutine flux_ex_arrays_dealloc + !> Computes deposition gas fluxes between atmosphere and ocean subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) - type(FmsTime_type), intent(in) :: Time !< Current time - type(atmos_data_type), intent(inout):: Atm !< A derived data type to specify atmosphere boundary data - type(atmos_ice_boundary_type), intent(inout):: Ice_boundary !< A derived data type to specify properties and fluxes - !! passed from atmosphere to ice - type(ice_data_type), intent(inout):: Ice - - integer :: n,m - logical :: used + implicit none + type(FmsTime_type), intent(in) :: Time + !< Current time + type(atmos_data_type), intent(inout):: Atm + !< A derived data type to specify atmosphere boundary data + type(atmos_ice_boundary_type), intent(inout):: Ice_boundary + !< A derived data type to specify properties and fluxes passed from atmosphere to ice + type(ice_data_type), intent(inout):: Ice + + integer :: n,m + logical :: used + #ifndef use_AM3_physics - call atmos_tracer_driver_gather_data_down(Atm%fields, Atm%tr_bot) + call atmos_tracer_driver_gather_data_down(Atm%fields, Atm%tr_bot) #endif - !air-sea deposition fluxes - do n = 1, Atm%fields%num_bcs !{ - !Do the string copies. - Atm%fields%bc(n)%flux_type = trim(ex_gas_fluxes%bc(n)%flux_type) - Atm%fields%bc(n)%implementation = trim(ex_gas_fluxes%bc(n)%implementation) - if(ex_gas_fields_atm%bc(n)%flux_type .eq. 'air_sea_deposition') then - do m = 1, Atm%fields%bc(n)%num_fields !{ - call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & - ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method) - enddo !} m - endif - enddo !} n - - ! Calculate ocean explicit flux here - - call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) - - do n = 1, Ice_boundary%fluxes%num_bcs !{ - if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then - do m = 1, Ice_boundary%fluxes%bc(n)%num_fields !{ - call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & + !> MAP ATMOSPHERE FIELDS TO THE EXCHANGE MAP FOR FLUX EXCHANGE WITH OCEAN + !{ + !air-sea deposition fluxes + do n = 1, Atm%fields%num_bcs + !Do the string copies. + Atm%fields%bc(n)%flux_type = trim(ex_gas_fluxes%bc(n)%flux_type) + Atm%fields%bc(n)%implementation = trim(ex_gas_fluxes%bc(n)%implementation) + if(ex_gas_fields_atm%bc(n)%flux_type .eq. 'air_sea_deposition') then + do m = 1, Atm%fields%bc(n)%num_fields + call fms_xgrid_put_to_xgrid(Atm%fields%bc(n)%field(m)%values, 'ATM', & + ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method) + enddo + endif + enddo + !} + + !> CALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRID + !{ + call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) + !} + + !> MAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRID + !{ + do n = 1, Ice_boundary%fluxes%num_bcs + if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then + do m = 1, Ice_boundary%fluxes%bc(n)%num_fields + call fms_xgrid_get_from_xgrid(Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - call fms_data_override('ICE', Ice_boundary%fluxes%bc(n)%field(m)%name, & + call fms_data_override('ICE', Ice_boundary%fluxes%bc(n)%field(m)%name, & Ice_boundary%fluxes%bc(n)%field(m)%values, Time) - if ( Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then !{ + if(Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then used = fms_diag_send_data(Ice_boundary%fluxes%bc(n)%field(m)%id_diag, & - Ice_boundary%fluxes%bc(n)%field(m)%values, Time ) - endif !} - enddo !} m + Ice_boundary%fluxes%bc(n)%field(m)%values, Time) + endif + enddo endif - enddo !} n + enddo + !} - call update_ice_atm_deposition_flux( Ice_boundary, Ice ) + !> UPDATE AIR_SEA_DEPOSITION FLUXES + !{ + call update_ice_atm_deposition_flux(Ice_boundary, Ice) + !} end subroutine flux_atmos_to_ocean - !####################################################################### - - !> \brief Puts land or ice model masks (with partitions) onto the - !! exchange grid as a real array (1.=true, 0.=false) + !> \brief Converts 3D logical mask arrays to real arrays with values of 1.0 for true and + !! 0.0 for false before mapping the mask to the exchange grid + !! Internally used subroutine to convert Land%mask when using _USE_LEGACY_LAND_ subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) - logical , intent(in) :: mask(:,:,:) - character(len=3), intent(in) :: id - real , intent(inout) :: ex_mask(:) + implicit none + logical, intent(in) :: mask(:,:,:) !< land/ice mask to map to exchange grid + character(len=3), intent(in) :: id + real, intent(inout) :: ex_mask(:) !< converted mask on exchange grid type(FmsXgridXmap_type), intent(inout) :: xmap - !----------------------------------------------------------------------- - ! puts land or ice model masks (with partitions) onto the - ! exchange grid as a real array (1.=true, 0.=false) - !----------------------------------------------------------------------- - real, dimension(size(mask,1),size(mask,2),size(mask,3)) :: rmask - + where (mask) rmask = 1.0 elsewhere rmask = 0.0 endwhere - + call fms_xgrid_put_to_xgrid(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_sg - !####################################################################### - - !> \brief Puts land or ice model masks (with partitions) onto the - !! exchange grid as a real array (1.=true, 0.=false) + + !> \brief Converts 2D logical mask arrays to real arrays with values of 1.0 for true and + !! 0.0 for false before mapping the mask to the exchange grid + !! Internally used subroutine to convert Land%mask when not using _USE_LEGACY_LAND_ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) - logical , intent(in) :: mask(:,:) - character(len=3), intent(in) :: id - real , intent(inout) :: ex_mask(:) + implicit none + logical, intent(in) :: mask(:,:) !< mask on component grid + character(len=3), intent(in) :: id + real, intent(inout) :: ex_mask(:) !< converted mask on exchange grid type(FmsXgridXmap_type), intent(inout) :: xmap - !----------------------------------------------------------------------- - ! puts land or ice model masks (with partitions) onto the - ! exchange grid as a real array (1.=true, 0.=false) - !----------------------------------------------------------------------- - + real, dimension(size(mask,1),size(mask,2)) :: rmask where (mask) @@ -3334,36 +3545,34 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_ug + + !> \brief Initializes diagnostic fields in diag_manager + !! All diagnostics must be registered in diag_manager and all diagnostics + !! must be specified in the diag_table in order for the data to be outputted + !! to a NetCDF file at the end of the model run + subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) - !####################################################################### - - !> \brief Initializes diagnostic fields that may be output from this - !! module (the ID numbers may be referenced anywhere in this module) - subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) - + implicit none type(FmsTime_type), intent(in) :: Time - integer, intent(in) :: atmos_axes(2) - integer, intent(in) :: land_axes(:) - logical, intent(in) :: land_pe + integer, intent(in) :: atmos_axes(2) + integer, intent(in) :: land_axes(:) + logical, intent(in) :: land_pe integer :: iref character(len=6) :: label_zm, label_zh - real, dimension(2) :: trange = (/ 100., 400. /), & - vrange = (/ -400., 400. /), & - frange = (/ -0.01, 1.01 /) + real, dimension(2) :: & + trange = [100., 400.], & + vrange = [-400., 400.], & + frange = [-0.01, 1.01] character(len=32) :: name, units ! name of the tracer - character(len=128) :: longname ! long name of the tracer - integer :: tr ! tracer index - integer :: area_id - !----------------------------------------------------------------------- - ! initializes diagnostic fields that may be output from this module - ! (the id numbers may be referenced anywhere in this module) - !----------------------------------------------------------------------- - - !------ labels for diagnostics ------- + character(len=128) :: longname ! long name of the tracer + integer :: tr ! tracer index + integer :: area_id + + !> Convert diagnostic labels from integers to strings + !{ ! (z_ref_mom, z_ref_heat are namelist variables) - iref = int(z_ref_mom+0.5) if ( real(iref) == z_ref_mom ) then write (label_zm,105) iref @@ -3383,212 +3592,167 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) 100 format (i1,' m',3x) 105 format (i2,' m',2x) 110 format (f4.1,' m') + !} + !--------- initialize static diagnostic fields -------------------- - id_land_mask = & fms_diag_register_static_field ( mod_name, 'land_mask', atmos_axes, & 'fractional amount of land', 'none', & range=frange, interp_method = "conserve_order1" ) - + !--------- initialize diagnostic fields -------------------- + + id_ice_mask = fms_diag_register_diag_field(& + mod_name, 'ice_mask', atmos_axes, Time, 'fractional amount of sea ice', 'none', range=frange, & + interp_method = "conserve_order1") - id_ice_mask = & - fms_diag_register_diag_field ( mod_name, 'ice_mask', atmos_axes, Time, & - 'fractional amount of sea ice', 'none', & - range=frange, interp_method = "conserve_order1" ) + id_wind = fms_diag_register_diag_field(& + mod_name, 'wind', atmos_axes, Time, 'wind speed for flux calculations', 'm/s', range=[0.,vrange(2)]) + + id_drag_moist = fms_diag_register_diag_field(& + mod_name, 'drag_moist', atmos_axes, Time, 'drag coeff for moisture', 'none') + + id_drag_heat = fms_diag_register_diag_field(& + mod_name, 'drag_heat', atmos_axes, Time, 'drag coeff for heat', 'none') + + id_drag_mom = fms_diag_register_diag_field(& + mod_name, 'drag_mom', atmos_axes, Time, 'drag coeff for momentum', 'none') + + id_rough_moist = fms_diag_register_diag_field(& + mod_name, 'rough_moist', atmos_axes, Time, 'surface roughness for moisture', 'm') + + id_rough_heat = fms_diag_register_diag_field(& + mod_name, 'rough_heat', atmos_axes, Time, 'surface roughness for heat', 'm') + + id_rough_mom = fms_diag_register_diag_field(& + mod_name, 'rough_mom', atmos_axes, Time, 'surface roughness for momentum', 'm') + + id_u_star = fms_diag_register_diag_field(& + mod_name, 'u_star', atmos_axes, Time, 'friction velocity', 'm/s') + + id_b_star = fms_diag_register_diag_field(& + mod_name, 'b_star', atmos_axes, Time, 'buoyancy scale', 'm/s2') + + id_q_star = fms_diag_register_diag_field(& + mod_name, 'q_star', atmos_axes, Time, 'moisture scale', 'kg water/kg air') + + id_thv_atm = fms_diag_register_diag_field(& + mod_name, 'thv_atm', atmos_axes, Time, 'surface air virtual potential temperature', 'K') + + id_thv_surf = fms_diag_register_diag_field(& + mod_name, 'thv_surf', atmos_axes, Time, 'surface virtual potential temperature', 'K') - id_wind = & - fms_diag_register_diag_field ( mod_name, 'wind', atmos_axes, Time, & - 'wind speed for flux calculations', 'm/s', & - range=(/0.,vrange(2)/) ) + id_u_flux = fms_diag_register_diag_field(& + mod_name, 'tau_x', atmos_axes, Time, 'zonal wind stress', 'pa') - id_drag_moist = & - fms_diag_register_diag_field ( mod_name, 'drag_moist', atmos_axes, Time, & - 'drag coeff for moisture', 'none' ) + id_v_flux = fms_diag_register_diag_field(& + mod_name, 'tau_y', atmos_axes, Time, 'meridional wind stress', 'pa') + + id_t_ocean = fms_diag_register_diag_field(& + mod_name, 't_ocean', atmos_axes, Time, 'surface temperature from ocean output', 'deg_k', range=trange) + + id_t_surf = fms_diag_register_diag_field(& + mod_name, 't_surf', atmos_axes, Time, 'surface temperature','deg_k', range=trange) - id_drag_heat = & - fms_diag_register_diag_field ( mod_name, 'drag_heat', atmos_axes, Time, & - 'drag coeff for heat', 'none' ) + ! + slm, Mar 25, 2002 -- add diagnositcs for t_ca, q_ca, and q_atm + id_t_ca = fms_diag_register_diag_field(& + mod_name, 't_ca', atmos_axes, Time, 'canopy air temperature', 'deg_k', range=trange) - id_drag_mom = & - fms_diag_register_diag_field ( mod_name, 'drag_mom', atmos_axes, Time, & - 'drag coeff for momentum', 'none' ) + ! - slm, Mar 25, 2002 + id_z_atm = fms_diag_register_diag_field(& + mod_name, 'z_atm', atmos_axes, Time, 'height of btm level', 'm') - id_rough_moist = & - fms_diag_register_diag_field ( mod_name, 'rough_moist', atmos_axes, Time, & - 'surface roughness for moisture', 'm' ) + id_p_atm = fms_diag_register_diag_field(& + mod_name, 'p_atm', atmos_axes, Time, 'pressure at btm level','pa') - id_rough_heat = & - fms_diag_register_diag_field ( mod_name, 'rough_heat', atmos_axes, Time, & - 'surface roughness for heat', 'm' ) + ! - bw, Mar 25, 2002 -- added diagnostic slp + id_slp = fms_diag_register_diag_field(& + mod_name, 'slp', atmos_axes, Time, 'sea level pressure', 'pa') - id_rough_mom = & - fms_diag_register_diag_field ( mod_name, 'rough_mom', atmos_axes, Time, & - 'surface roughness for momentum', 'm' ) + id_gust = fms_diag_register_diag_field(& + mod_name, 'gust', atmos_axes, Time, 'gust scale', 'm/s') - id_u_star = & - fms_diag_register_diag_field ( mod_name, 'u_star', atmos_axes, Time, & - 'friction velocity', 'm/s' ) + id_t_flux = fms_diag_register_diag_field(& + mod_name, 'shflx', atmos_axes, Time, 'sensible heat flux', 'w/m2') - id_b_star = & - fms_diag_register_diag_field ( mod_name, 'b_star', atmos_axes, Time, & - 'buoyancy scale', 'm/s2' ) + id_r_flux = fms_diag_register_diag_field(& + mod_name, 'lwflx', atmos_axes, Time, 'net (down-up) longwave flux', 'w/m2') - id_q_star = & - fms_diag_register_diag_field ( mod_name, 'q_star', atmos_axes, Time, & - 'moisture scale', 'kg water/kg air' ) + id_t_atm = fms_diag_register_diag_field(& + mod_name, 't_atm', atmos_axes, Time, 'temperature at btm level', 'deg_k', range=trange) - id_thv_atm = & - fms_diag_register_diag_field ( mod_name, 'thv_atm', atmos_axes, Time, & - 'surface air virtual potential temperature', 'K') + id_u_atm = fms_diag_register_diag_field(& + mod_name, 'u_atm', atmos_axes, Time, 'u wind component at btm level', 'm/s', range=vrange) - id_thv_surf = & - fms_diag_register_diag_field ( mod_name, 'thv_surf', atmos_axes, Time, & - 'surface virtual potential temperature', 'K') + id_v_atm = fms_diag_register_diag_field(& + mod_name, 'v_atm', atmos_axes, Time, 'v wind component at btm level', 'm/s', range=vrange) - id_u_flux = & - fms_diag_register_diag_field ( mod_name, 'tau_x', atmos_axes, Time, & - 'zonal wind stress', 'pa' ) + id_t_ref = fms_diag_register_diag_field(& + mod_name, 't_ref', atmos_axes, Time, 'temperature at '//label_zh, 'deg_k', range=trange) - id_v_flux = & - fms_diag_register_diag_field ( mod_name, 'tau_y', atmos_axes, Time, & - 'meridional wind stress', 'pa' ) + id_rh_ref = fms_diag_register_diag_field(& + mod_name, 'rh_ref', atmos_axes, Time, 'relative humidity at '//label_zh, 'percent') - id_t_ocean = & - fms_diag_register_diag_field ( mod_name, 't_ocean', atmos_axes, Time, & - 'surface temperature from ocean output', 'deg_k', & - range=trange ) + id_rh_ref_cmip = fms_diag_register_diag_field(& + mod_name, 'rh_ref_cmip', atmos_axes, Time, 'relative humidity at '//label_zh, 'percent') - id_t_surf = & - fms_diag_register_diag_field ( mod_name, 't_surf', atmos_axes, Time, & - 'surface temperature', 'deg_k', & - range=trange ) + id_u_ref = fms_diag_register_diag_field(& + mod_name, 'u_ref', atmos_axes, Time, 'zonal wind component at '//label_zm, 'm/s', range=vrange) - ! + slm, Mar 25, 2002 -- add diagnositcs for t_ca, q_ca, and q_atm - id_t_ca = & - fms_diag_register_diag_field ( mod_name, 't_ca', atmos_axes, Time, & - 'canopy air temperature', 'deg_k', & - range=trange ) + id_v_ref = fms_diag_register_diag_field(& + mod_name, 'v_ref', atmos_axes, Time, 'meridional wind component at '//label_zm, 'm/s', range=vrange) - ! - slm, Mar 25, 2002 - id_z_atm = & - fms_diag_register_diag_field ( mod_name, 'z_atm', atmos_axes, Time, & - 'height of btm level', 'm') + id_wind_ref = fms_diag_register_diag_field(& + mod_name, 'wind_ref', atmos_axes, Time, 'absolute value of wind at '//label_zm, 'm/s', range=vrange) - id_p_atm = & - fms_diag_register_diag_field ( mod_name, 'p_atm', atmos_axes, Time, & - 'pressure at btm level', 'pa') + id_del_h = fms_diag_register_diag_field(& + mod_name, 'del_h', atmos_axes, Time, 'ref height interp factor for heat', 'none') - ! - bw, Mar 25, 2002 -- added diagnostic slp - id_slp = & - fms_diag_register_diag_field ( mod_name, 'slp', atmos_axes, Time, & - 'sea level pressure', 'pa') - - id_gust = & - fms_diag_register_diag_field ( mod_name, 'gust', atmos_axes, Time, & - 'gust scale', 'm/s') - - id_t_flux = & - fms_diag_register_diag_field ( mod_name, 'shflx', atmos_axes, Time, & - 'sensible heat flux', 'w/m2' ) - - id_r_flux = & - fms_diag_register_diag_field ( mod_name, 'lwflx', atmos_axes, Time, & - 'net (down-up) longwave flux', 'w/m2' ) - - id_t_atm = & - fms_diag_register_diag_field ( mod_name, 't_atm', atmos_axes, Time, & - 'temperature at btm level', 'deg_k', & - range=trange ) - - id_u_atm = & - fms_diag_register_diag_field ( mod_name, 'u_atm', atmos_axes, Time, & - 'u wind component at btm level', 'm/s', & - range=vrange ) - - id_v_atm = & - fms_diag_register_diag_field ( mod_name, 'v_atm', atmos_axes, Time, & - 'v wind component at btm level', 'm/s', & - range=vrange ) - - id_t_ref = & - fms_diag_register_diag_field ( mod_name, 't_ref', atmos_axes, Time, & - 'temperature at '//label_zh, 'deg_k' , & - range=trange ) - - id_rh_ref = & - fms_diag_register_diag_field ( mod_name, 'rh_ref', atmos_axes, Time, & - 'relative humidity at '//label_zh, 'percent' ) - - id_rh_ref_cmip = & - fms_diag_register_diag_field ( mod_name, 'rh_ref_cmip', atmos_axes, Time, & - 'relative humidity at '//label_zh, 'percent' ) - - id_u_ref = & - fms_diag_register_diag_field ( mod_name, 'u_ref', atmos_axes, Time, & - 'zonal wind component at '//label_zm, 'm/s', & - range=vrange ) - - id_v_ref = & - fms_diag_register_diag_field ( mod_name, 'v_ref', atmos_axes, Time, & - 'meridional wind component at '//label_zm, 'm/s', & - range=vrange ) - - id_wind_ref = & - fms_diag_register_diag_field ( mod_name, 'wind_ref', atmos_axes, Time, & - 'absolute value of wind at '//label_zm, 'm/s', & - range=vrange ) - - id_del_h = & - fms_diag_register_diag_field ( mod_name, 'del_h', atmos_axes, Time, & - 'ref height interp factor for heat', 'none' ) - id_del_m = & - fms_diag_register_diag_field ( mod_name, 'del_m', atmos_axes, Time, & - 'ref height interp factor for momentum','none' ) - id_del_q = & - fms_diag_register_diag_field ( mod_name, 'del_q', atmos_axes, Time, & - 'ref height interp factor for moisture','none' ) - - if( land_pe ) then - ! set the default filter (for area and subsampling) for consequent calls to - ! register_tiled_diag_field + id_del_m = fms_diag_register_diag_field(& + mod_name, 'del_m', atmos_axes, Time, 'ref height interp factor for momentum', 'none') + + id_del_q = fms_diag_register_diag_field(& + mod_name, 'del_q', atmos_axes, Time, 'ref height interp factor for moisture','none') + + if(land_pe) then + ! set the default filter (for area and subsampling) for consequent calls to register_tiled_diag_field #ifndef _USE_LEGACY_LAND_ call set_default_diag_filter('land') #endif - id_t_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 't_ref', Land_axes, Time, & - 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & - range=trange, missing_value = -100.0) - id_q_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'q_ref', Land_axes, Time, & - 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & + id_t_ref_land = FMS_DIAG_REGISTER_FIELD_(& + 'flux_land', 't_ref', Land_axes, Time, 'temperature at '//trim(label_zh)//' over land', 'deg_k', & + range=trange, missing_value=-100.0) + + id_q_ref_land = FMS_DIAG_REGISTER_FIELD_(& + 'flux_land', 'q_ref', Land_axes, Time, 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & missing_value=-1.0) - id_rh_ref_land= & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'rh_ref', Land_axes, Time, & - 'relative humidity at '//trim(label_zh)//' over land', 'percent', & + + id_rh_ref_land= FMS_DIAG_REGISTER_FIELD_(& + 'flux_land', 'rh_ref', Land_axes, Time, 'relative humidity at '//trim(label_zh)//' over land', 'percent', & missing_value=-999.0) - id_u_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'u_ref', Land_axes, Time, & - 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & - range=vrange, missing_value=-999.0 ) - id_v_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'v_ref', Land_axes, Time, & - 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & - range=vrange, missing_value = -999.0 ) - id_q_flux_land = & - FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'evap', Land_axes, Time, & - 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) - id_t_flux_land = & - FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'shflx', Land_axes, Time, & - 'sensible heat flux', 'W/m2', missing_value=-1.0 ) - id_tasLut_land = & - FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'tasLut', Land_axes, Time, & + + id_u_ref_land = FMS_DIAG_REGISTER_FIELD_(& + 'flux_land', 'u_ref', Land_axes, Time, 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & + range=vrange, missing_value=-999.0) + + id_v_ref_land = FMS_DIAG_REGISTER_FIELD_( & + 'flux_land', 'v_ref', Land_axes, Time, 'meridional wind component at '//trim(label_zm)//' over land', & + 'm/s', range=vrange, missing_value = -999.0) + + id_q_flux_land = FMS_DIAG_REGISTER_FIELD_(& + 'flux_land', 'evap', Land_axes, Time, 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0) + + id_t_flux_land = FMS_DIAG_REGISTER_FIELD_(& + 'flux_land', 'shflx', Land_axes, Time, 'sensible heat flux', 'W/m2', missing_value=-1.0) + + id_tasLut_land = FMS_DIAG_REGISTER_FIELD_(& + 'cmor_land', 'tasLut', Land_axes, Time, & 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & units='K', standard_name='air_temperature', missing_value=-1.0 ) - id_hussLut_land = & - FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'hussLut', Land_axes, Time, & - 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & + + id_hussLut_land = FMS_DIAG_REGISTER_FIELD_(& + 'cmor_land', 'hussLut', Land_axes, Time, 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & standard_name='specific_humidity', missing_value=-1.0 ) allocate(id_tr_flux_land(n_exch_tr)) @@ -3606,27 +3770,28 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) do tr = 1, n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) - id_tr_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_flux', & - Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) + id_tr_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_flux', & + Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0) + if ( fms_mpp_lowercase(trim(name))=='co2') then - id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & - Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) + id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_mol_flux', & + Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0) else - id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & - Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) + id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_mol_flux', & + Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0) endif #ifndef _USE_LEGACY_LAND_ - id_tr_con_atm_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_tot_con_atm', & + id_tr_con_atm_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_tot_con_atm', & Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) - id_tr_con_ref_land(tr) = register_diag_field( 'flux_land', trim(name)//'_tot_con_ref', & - Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) + id_tr_con_ref_land(tr) = register_diag_field('flux_land', trim(name)//'_tot_con_ref', & + Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) + ! we skip sphum because it is already available as flux_land/q_ref - if ( tr .ne. isphum ) then - id_tr_ref_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_ref', & - Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', & - trim(units),missing_value=-1.0) + if(tr .ne. isphum) then + id_tr_ref_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_ref', & + Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', trim(units),missing_value=-1.0) else id_tr_ref_land(tr) = -1 end if @@ -3634,14 +3799,11 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) enddo endif - id_q_ref = & - fms_diag_register_diag_field ( mod_name, 'q_ref', atmos_axes, Time, & - 'specific humidity at '//trim(label_zh), 'kg/kg', missing_value=-1.0) + id_q_ref = fms_diag_register_diag_field(& + mod_name, 'q_ref', atmos_axes, Time, 'specific humidity at '//trim(label_zh), 'kg/kg', missing_value=-1.0) - id_rough_scale = & - fms_diag_register_diag_field ( mod_name, 'rough_scale', atmos_axes, Time, & - 'topographic scaling factor for momentum drag','1' ) - !----------------------------------------------------------------------- + id_rough_scale = fms_diag_register_diag_field(& + mod_name, 'rough_scale', atmos_axes, Time, 'topographic scaling factor for momentum drag','1') allocate(id_tr_atm(n_exch_tr)) allocate(id_tr_surf(n_exch_tr)) @@ -3653,7 +3815,7 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) allocate(id_tr_ref(n_exch_tr)) do tr = 1, n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, name, longname, units) id_tr_con_atm(tr) = fms_diag_register_diag_field( mod_name, trim(name)//'_tot_con_atm', atmos_axes, Time, & 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) @@ -3662,21 +3824,24 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) id_tr_atm(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_atm', atmos_axes, Time, & trim(longname)//' at btm level', trim(units)) + id_tr_surf(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_surf', atmos_axes, Time, & trim(longname)//' at the surface', trim(units)) + id_tr_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_flux', atmos_axes, Time, & 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)') + if ( tr .ne. isphum ) then id_tr_ref(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_ref', atmos_axes, Time, & trim(longname)//' at '//trim(label_zh), trim(units),missing_value=-1.0) else id_tr_ref(tr) = -1 end if + !! add dryvmr co2_surf and co2_atm if ( fms_mpp_lowercase(trim(name))=='co2') then ! - slm Mar 25, 2010: moved registration of mol_flux inside 'if' to disable - ! saving incorrect results (mol fluxes for other tracers computed with CO2 molar - ! mass) + ! saving incorrect results (mol fluxes for other tracers computed with CO2 molar mass id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & 'flux of '//trim(longname), 'mol CO2/(m2 s)') id_co2_atm_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_atm_dvmr', atmos_axes, Time, & @@ -3684,11 +3849,11 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) id_co2_surf_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_surf_dvmr', atmos_axes, Time, & trim(longname)//' at the surface', 'mol CO2 /mol air') else -!f1p + !f1p id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & 'flux of '//trim(longname), 'mol/(m2 s)') endif -!f1p + !f1p id_tr_mol_flux0(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux_atm0', atmos_axes, Time, & 'gross flux of '//trim(longname), 'mol/(m2 s)') @@ -3697,14 +3862,14 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) ! 2017/08/08 jgj add diagnostics for co2 data overrides even if co2 is not a tracer ! register data calls not needed here for co2_flux_pcair_atm and o2_flux_pcair_atm as this happens elsewhere id_co2_bot = fms_diag_register_diag_field (mod_name, 'co2_bot', atmos_axes, Time, & - 'co2_bot from data_override', 'ppmv') - + 'co2_bot from data_override', 'ppmv') + ! id_nh3_flux_atm0 = fms_diag_register_diag_field (mod_name, 'nh3_flux_atm0', atmos_axes, Time, & ! 'nh3 flux out of the ocean assuming not nh3 in the atmosphere', 'mol/m2/s') - - id_q_flux = fms_diag_register_diag_field( mod_name, 'evap', atmos_axes, Time, & - 'evaporation rate', 'kg/m2/s' ) + + id_q_flux = fms_diag_register_diag_field(mod_name, 'evap',fatmos_axes, Time, & + 'evaporation rate', 'kg/m2/s') !-------------------------------------------------------------------- ! retrieve the diag_manager id for the area diagnostic, @@ -3721,334 +3886,281 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) ! NOTE: add extra dimension reference level fields? height2m, height10m ! for now we will handle this with an attribute - id_height2m = & - fms_diag_register_static_field ( mod_name, 'height2m', (/null_axis_id/), & - 'Height', 'm', standard_name = 'height' ) + id_height2m = fms_diag_register_static_field(& + mod_name, 'height2m', [null_axis_id], 'Height', 'm', standard_name = 'height') if ( id_height2m > 0 ) then - call fms_diag_field_add_attribute( id_height2m, 'axis', 'Z' ) - call fms_diag_field_add_attribute( id_height2m, 'positive', 'up' ) + call fms_diag_field_add_attribute(id_height2m, 'axis', 'Z') + call fms_diag_field_add_attribute(id_height2m, 'positive', 'up') endif - id_height10m = & - fms_diag_register_static_field ( mod_name, 'height10m', (/null_axis_id/), & - 'Height', 'm', standard_name = 'height' ) + id_height10m = fms_diag_register_static_field(& + mod_name, 'height10m', [null_axis_id], 'Height', 'm', standard_name = 'height') if ( id_height10m > 0 ) then - call fms_diag_field_add_attribute( id_height10m, 'axis', 'Z' ) - call fms_diag_field_add_attribute( id_height10m, 'positive', 'up' ) + call fms_diag_field_add_attribute(id_height10m, 'axis', 'Z') + call fms_diag_field_add_attribute(id_height10m, 'positive', 'up') endif #ifdef use_AM3_physics - id_tas = & - fms_diag_register_diag_field ( mod_name, 'tas', atmos_axes, Time, & - 'Near-Surface Air Temperature', 'K' , & - standard_name = 'air_temperature', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=trange ) - if ( id_tas > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) - - id_uas = & - fms_diag_register_diag_field ( mod_name, 'uas', atmos_axes, Time, & - 'Eastward Near-Surface Wind', 'm s-1', & - standard_name = 'eastward_wind', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=vrange ) - if ( id_uas > 0 .and. id_height10m > 0) & - call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) - - id_vas = & - fms_diag_register_diag_field ( mod_name, 'vas', atmos_axes, Time, & - 'Northward Near-Surface Wind', 'm s-1', & - standard_name = 'northward_wind', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=vrange ) - if ( id_vas > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) - - id_sfcWind = & - fms_diag_register_diag_field ( mod_name, 'sfcWind', atmos_axes, Time, & - 'Near-Surface Wind Speed', 'm s-1', & - standard_name = 'wind_speed', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=vrange ) - if ( id_sfcWind > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) - - id_huss = & - fms_diag_register_diag_field ( mod_name, 'huss', atmos_axes, Time, & - 'Near-Surface Specific Humidity', '1.0', & - standard_name = 'specific_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_huss > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) - - id_hurs = & - fms_diag_register_diag_field ( mod_name, 'hurs', atmos_axes, Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name = 'relative_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_hurs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) - - id_rhs = & - fms_diag_register_diag_field ( mod_name, 'rhs', atmos_axes, Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name = 'relative_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_rhs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) - - id_ts = & - fms_diag_register_diag_field ( mod_name, 'ts', atmos_axes, Time, & - 'Surface Temperature', 'K', & - standard_name = 'surface_temperature', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=trange ) - - id_psl = & - fms_diag_register_diag_field ( mod_name, 'psl', atmos_axes, Time, & - 'Sea Level Pressure', 'Pa', & - standard_name = 'air_pressure_at_sea_level', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_tauu = & - fms_diag_register_diag_field ( mod_name, 'tauu', atmos_axes, Time, & - 'Surface Downward Eastward Wind Stress', 'Pa', & - standard_name = 'surface_downward_eastward_stress', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_tauv = & - fms_diag_register_diag_field ( mod_name, 'tauv', atmos_axes, Time, & - 'Surface Downward Northward Wind Stress', 'Pa', & - standard_name = 'surface_downward_northward_stress', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_hfss = & - fms_diag_register_diag_field ( mod_name, 'hfss', atmos_axes, Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', & - standard_name = 'surface_upward_sensible_heat_flux', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_hfls = & - fms_diag_register_diag_field ( mod_name, 'hfls', atmos_axes, Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', & - standard_name = 'surface_upward_latent_heat_flux', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) - - id_evspsbl = & - fms_diag_register_diag_field( mod_name, 'evspsbl', atmos_axes, Time, & - 'Evaporation', 'kg m-2 s-1', & - standard_name = 'water_evaporation_flux', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_sftlf = & - fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & - 'Fraction of the Grid Cell Occupied by Land', '1.0', & - standard_name = 'land_area_fraction', area=area_id, & - interp_method = "conserve_order1" ) - - id_tslsi = & - fms_diag_register_diag_field ( mod_name, 'tslsi', atmos_axes, Time, & - 'Surface Temperature Where Land or Sea Ice', 'K', & - standard_name = 'surface_temperature', area=area_id, & - mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) - - id_tos = & - fms_diag_register_diag_field ( mod_name, 'tos', atmos_axes, Time, & - 'Sea Surface Temperature', 'K', & - standard_name = 'sea_surface_temperature', area=area_id, & - mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) - - id_sic = & - fms_diag_register_diag_field ( mod_name, 'sic', atmos_axes, Time, & - 'Sea Ice Area Fraction', '1.0', & - standard_name = 'sea_ice_area_fraction', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & - 'averaged over the ocean portion of grid box' ) + id_tas = fms_diag_register_diag_field (& + mod_name, 'tas', atmos_axes, Time, 'Near-Surface Air Temperature', 'K' , & + standard_name = 'air_temperature', area=area_id, missing_value=CMOR_MISSING_VALUE, range=trange) + + if (id_tas > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_tas, 'coordinates', 'height2m') + + id_uas = fms_diag_register_diag_field(& + mod_name, 'uas', atmos_axes, Time, 'Eastward Near-Surface Wind', 'm s-1', & + standard_name = 'eastward_wind', area=area_id, missing_value=CMOR_MISSING_VALUE, range=vrange) + + if(id_uas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_uas, 'coordinates', 'height10m') + + id_vas = fms_diag_register_diag_field(& + mod_name, 'vas', atmos_axes, Time, 'Northward Near-Surface Wind', 'm s-1', & + standard_name = 'northward_wind', area=area_id, missing_value=CMOR_MISSING_VALUE, range=vrange) + + if(id_vas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_vas, 'coordinates', 'height10m') + + id_sfcWind = fms_diag_register_diag_field(mod_name, 'sfcWind', atmos_axes, Time, & + 'Near-Surface Wind Speed', 'm s-1', standard_name = 'wind_speed', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=vrange) + + if(id_sfcWind > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_sfcWind, 'coordinates', 'height10m') + + id_huss = fms_diag_register_diag_field(mod_name, 'huss', atmos_axes, Time, & + 'Near-Surface Specific Humidity', '1.0', standard_name = 'specific_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE) + + if(id_huss > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_huss, 'coordinates', 'height2m') + + id_hurs = fms_diag_register_diag_field(mod_name, 'hurs', atmos_axes, Time, & + 'Near-Surface Relative Humidity', '%', standard_name = 'relative_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE) + + if(id_hurs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_hurs, 'coordinates', 'height2m') + + id_rhs = fms_diag_register_diag_field(mod_name, 'rhs', atmos_axes, Time, & + 'Near-Surface Relative Humidity', '%', standard_name = 'relative_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE) + + if(id_rhs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_rhs, 'coordinates', 'height2m') + + id_ts = fms_diag_register_diag_field(mod_name, 'ts', atmos_axes, Time, & + 'Surface Temperature', 'K', standard_name = 'surface_temperature', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=trange) + + id_psl = fms_diag_register_diag_field(mod_name, 'psl', atmos_axes, Time, & + 'Sea Level Pressure', 'Pa', standard_name = 'air_pressure_at_sea_level', area=area_id, & + missing_value=CMOR_MISSING_VALUE) + + id_tauu = fms_diag_register_diag_field(mod_name, 'tauu', atmos_axes, Time, & + 'Surface Downward Eastward Wind Stress', 'Pa', standard_name = 'surface_downward_eastward_stress', & + area=area_id, missing_value=CMOR_MISSING_VALUE) + + id_tauv = fms_diag_register_diag_field(mod_name, 'tauv', atmos_axes, Time, & + 'Surface Downward Northward Wind Stress', 'Pa', standard_name = 'surface_downward_northward_stress', & + area=area_id, missing_value=CMOR_MISSING_VALUE) + + id_hfss = fms_diag_register_diag_field(mod_name, 'hfss', atmos_axes, Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', standard_name = 'surface_upward_sensible_heat_flux', & + area=area_id, missing_value=CMOR_MISSING_VALUE) + + id_hfls = fms_diag_register_diag_field(mod_name, 'hfls', atmos_axes, Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', standard_name = 'surface_upward_latent_heat_flux', & + area=area_id, missing_value=CMOR_MISSING_VALUE) + + if ( id_hfls > 0 ) call fms_diag_field_add_attribute(id_hfls, 'comment', 'Lv*evap') + + id_evspsbl = fms_diag_register_diag_field(mod_name, 'evspsbl', atmos_axes, Time, & + 'Evaporation', 'kg m-2 s-1', standard_name = 'water_evaporation_flux', area=area_id, & + missing_value=CMOR_MISSING_VALUE) + + id_sftlf = fms_diag_register_static_field(mod_name, 'sftlf', atmos_axes, & + 'Fraction of the Grid Cell Occupied by Land', '1.0', standard_name = 'land_area_fraction', area=area_id, & + interp_method = "conserve_order1") + + id_tslsi = fms_diag_register_diag_field(mod_name, 'tslsi', atmos_axes, Time, & + 'Surface Temperature Where Land or Sea Ice', 'K', standard_name = 'surface_temperature', area=area_id, & + mask_variant=.true., missing_value=CMOR_MISSING_VALUE) + + id_tos = fms_diag_register_diag_field(mod_name, 'tos', atmos_axes, Time, & + 'Sea Surface Temperature', 'K', standard_name = 'sea_surface_temperature', area=area_id, & + mask_variant=.true., missing_value=CMOR_MISSING_VALUE) + + id_sic = fms_diag_register_diag_field(mod_name, 'sic', atmos_axes, Time, & + 'Sea Ice Area Fraction', '1.0', standard_name = 'sea_ice_area_fraction', area=area_id, & + missing_value=CMOR_MISSING_VALUE) + + if ( id_sic > 0 ) & + call fms_diag_field_add_attribute(id_sic, 'comment', 'averaged over the ocean portion of grid box') #else - id_tas = register_cmip_diag_field_2d ( mod_name, 'tas', Time, & - 'Near-Surface Air Temperature', 'K' , & - standard_name='air_temperature' ) - if ( id_tas > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) - - id_uas = register_cmip_diag_field_2d ( mod_name, 'uas', Time, & - 'Eastward Near-Surface Wind', 'm s-1', & - standard_name='eastward_wind' ) - if ( id_uas > 0 .and. id_height10m > 0) & - call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) - - id_vas = register_cmip_diag_field_2d ( mod_name, 'vas', Time, & - 'Northward Near-Surface Wind', 'm s-1', & - standard_name='northward_wind' ) - if ( id_vas > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) - - id_sfcWind = register_cmip_diag_field_2d ( mod_name, 'sfcWind', Time, & - 'Near-Surface Wind Speed', 'm s-1', & - standard_name='wind_speed' ) - if ( id_sfcWind > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) - - id_huss = register_cmip_diag_field_2d ( mod_name, 'huss', Time, & - 'Near-Surface Specific Humidity', '1.0', & - standard_name='specific_humidity' ) - if ( id_huss > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) - - id_hurs = register_cmip_diag_field_2d ( mod_name, 'hurs', Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name='relative_humidity' ) - if ( id_hurs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) - - id_rhs = register_cmip_diag_field_2d ( mod_name, 'rhs', Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name='relative_humidity' ) - if ( id_rhs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) - - id_ts = register_cmip_diag_field_2d ( mod_name, 'ts', Time, & - 'Surface Temperature', 'K', & - standard_name='surface_temperature' ) - - id_psl = register_cmip_diag_field_2d ( mod_name, 'psl', Time, & - 'Sea Level Pressure', 'Pa', & - standard_name='air_pressure_at_sea_level' ) - - id_tauu = register_cmip_diag_field_2d ( mod_name, 'tauu', Time, & - 'Surface Downward Eastward Wind Stress', 'Pa', & - standard_name='surface_downward_eastward_stress' ) - - id_tauv = register_cmip_diag_field_2d ( mod_name, 'tauv', Time, & - 'Surface Downward Northward Wind Stress', 'Pa', & - standard_name='surface_downward_northward_stress' ) - - id_hfss = register_cmip_diag_field_2d ( mod_name, 'hfss', Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', & - standard_name='surface_upward_sensible_heat_flux' ) - - id_hfls = register_cmip_diag_field_2d ( mod_name, 'hfls', Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', & - standard_name='surface_upward_latent_heat_flux' ) - if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) - - id_evspsbl = register_cmip_diag_field_2d ( mod_name, 'evspsbl', Time, & - 'Evaporation', 'kg m-2 s-1', & - standard_name='water_evaporation_flux' ) - - id_sftlf = fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & - 'Fraction of the Grid Cell Occupied by Land', '1.0', & - standard_name='land_area_fraction', area=area_id, & - interp_method='conserve_order1' ) - - id_tslsi = register_cmip_diag_field_2d ( mod_name, 'tslsi', Time, & - 'Surface Temperature Where Land or Sea Ice', 'K', & - standard_name='surface_temperature', & - mask_variant=.true. ) + id_tas = register_cmip_diag_field_2d(mod_name, 'tas', Time, & + 'Near-Surface Air Temperature', 'K' , standard_name='air_temperature') + + if(id_tas > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_tas, 'coordinates', 'height2m') + + id_uas = register_cmip_diag_field_2d(mod_name, 'uas', Time, & + 'Eastward Near-Surface Wind', 'm s-1', standard_name='eastward_wind') + + if(id_uas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_uas, 'coordinates', 'height10m') + + id_vas = register_cmip_diag_field_2d(mod_name, 'vas', Time, & + 'Northward Near-Surface Wind', 'm s-1', standard_name='northward_wind') + + if(id_vas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_vas, 'coordinates', 'height10m') + + id_sfcWind = register_cmip_diag_field_2d(mod_name, 'sfcWind', Time, & + 'Near-Surface Wind Speed', 'm s-1', standard_name='wind_speed') + + if(id_sfcWind > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_sfcWind, 'coordinates', 'height10m') + + id_huss = register_cmip_diag_field_2d(mod_name, 'huss', Time, & + 'Near-Surface Specific Humidity', '1.0', standard_name='specific_humidity') + + if(id_huss > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_huss, 'coordinates', 'height2m') + + id_hurs = register_cmip_diag_field_2d(mod_name, 'hurs', Time, & + 'Near-Surface Relative Humidity', '%', standard_name='relative_humidity') + + if(id_hurs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_hurs, 'coordinates', 'height2m') + + id_rhs = register_cmip_diag_field_2d(mod_name, 'rhs', Time, & + 'Near-Surface Relative Humidity', '%', standard_name='relative_humidity') + + if (id_rhs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_rhs, 'coordinates', 'height2m') + + id_ts = register_cmip_diag_field_2d(mod_name, 'ts', Time, & + 'Surface Temperature', 'K', standard_name='surface_temperature') + + id_psl = register_cmip_diag_field_2d(mod_name, 'psl', Time, & + 'Sea Level Pressure', 'Pa', standard_name='air_pressure_at_sea_level') + + id_tauu = register_cmip_diag_field_2d(mod_name, 'tauu', Time, & + 'Surface Downward Eastward Wind Stress', 'Pa', standard_name='surface_downward_eastward_stress') + + id_tauv = register_cmip_diag_field_2d(mod_name, 'tauv', Time, & + 'Surface Downward Northward Wind Stress', 'Pa', standard_name='surface_downward_northward_stress') + + id_hfss = register_cmip_diag_field_2d(mod_name, 'hfss', Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', standard_name='surface_upward_sensible_heat_flux') + + id_hfls = register_cmip_diag_field_2d(mod_name, 'hfls', Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', standard_name='surface_upward_latent_heat_flux') + if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap') + + id_evspsbl = register_cmip_diag_field_2d(mod_name, 'evspsbl', Time, & + 'Evaporation', 'kg m-2 s-1', standard_name='water_evaporation_flux') + + id_sftlf = fms_diag_register_static_field(mod_name, 'sftlf', atmos_axes, & + 'Fraction of the Grid Cell Occupied by Land', '1.0', standard_name='land_area_fraction', & + area=area_id, interp_method='conserve_order1') + + id_tslsi = register_cmip_diag_field_2d(mod_name, 'tslsi', Time, & + 'Surface Temperature Where Land or Sea Ice', 'K', standard_name='surface_temperature', mask_variant=.true.) + ! tos,sic are ocean,seaIce fields on the atmos grid ! useful for amip-type runs + + id_tos = register_cmip_diag_field_2d(mod_name, 'tos', Time, & + 'Sea Surface Temperature', 'K', standard_name='sea_surface_temperature', mask_variant=.true.) - id_tos = register_cmip_diag_field_2d ( mod_name, 'tos', Time, & - 'Sea Surface Temperature', 'K', & - standard_name='sea_surface_temperature', & - mask_variant=.true. ) + id_sic = register_cmip_diag_field_2d(mod_name, 'sic', Time, & + 'Sea Ice Area Fraction', '1.0', standard_name='sea_ice_area_fraction' ) - id_sic = register_cmip_diag_field_2d ( mod_name, 'sic', Time, & - 'Sea Ice Area Fraction', '1.0', & - standard_name='sea_ice_area_fraction' ) - if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & - 'averaged over the ocean portion of grid box' ) + if ( id_sic > 0 ) & + call fms_diag_field_add_attribute(id_sic, 'comment', 'averaged over the ocean portion of grid box') !----- initialize global integrals for netCDF output ----- - id_evspsbl_g = register_global_diag_field ( 'evspsbl', Time, & - 'Evaporation', 'mm d-1', & - standard_name='water_evaporation_flux' ) - - id_ts_g = register_global_diag_field ( 'ts', Time, & - 'Surface Temperature', 'K', & - standard_name='surface_temperature' ) - - id_tas_g = register_global_diag_field ( 'tas', Time, & - 'Near-Surface Air Temperature', 'K' , & - standard_name='air_temperature' ) - if ( id_tas_g > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tas_g), 'coordinates', 'height2m' ) - - id_tasl_g = register_global_diag_field ( 'tasl', Time, & - 'Near-Surface Air Temperature (Land Only)', 'K' , & - standard_name='air_temperature' ) + id_evspsbl_g = register_global_diag_field(& + 'evspsbl', Time, 'Evaporation', 'mm d-1', standard_name='water_evaporation_flux') + + id_ts_g = register_global_diag_field(& + 'ts', Time, 'Surface Temperature', 'K', standard_name='surface_temperature') + + id_tas_g = register_global_diag_field(& + 'tas', Time, 'Near-Surface Air Temperature', 'K', standard_name='air_temperature') + + if(id_tas_g > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute(get_global_diag_field_id(id_tas_g), 'coordinates', 'height2m') + + id_tasl_g = register_global_diag_field(& + 'tasl', Time, 'Near-Surface Air Temperature (Land Only)', 'K' , standard_name='air_temperature') + #if defined(_USE_LEGACY_LAND_) || defined(use_AM3_physics) if(id_tasl_g>0) then call fms_mpp_error(WARNING, "diag_field_init: field tasl is registered, but macro "// & - "_USE_LEGACY_LAND_ or use_AM3_physics is defined, no data will be written out") + "_USE_LEGACY_LAND_ or use_AM3_physics is defined, no data will be written out") endif #endif - if ( id_tasl_g > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tasl_g), 'coordinates', 'height2m' ) + if(id_tasl_g > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute(get_global_diag_field_id(id_tasl_g), 'coordinates', 'height2m') + + id_hfss_g = register_global_diag_field('hfss', Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', standard_name='surface_upward_sensible_heat_flux') - id_hfss_g = register_global_diag_field ( 'hfss', Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', & - standard_name='surface_upward_sensible_heat_flux' ) + id_hfls_g = register_global_diag_field('hfls', Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', standard_name='surface_upward_latent_heat_flux') - id_hfls_g = register_global_diag_field ( 'hfls', Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', & - standard_name='surface_upward_latent_heat_flux') if ( id_hfls_g > 0 ) & - call fms_diag_field_add_attribute( get_global_diag_field_id(id_hfls_g), 'comment', 'Lv*evap' ) + call fms_diag_field_add_attribute(get_global_diag_field_id(id_hfls_g), 'comment', 'Lv*evap') - id_rls_g = register_global_diag_field ( 'rls', Time, & - 'Net Longwave Surface Radiation', 'W m-2', & - standard_name='surface_net_longwave_flux' ) + id_rls_g = register_global_diag_field('rls', Time, & + 'Net Longwave Surface Radiation', 'W m-2', standard_name='surface_net_longwave_flux') #endif - !----------------------------------------------------------------------- end subroutine diag_field_init - !###################################################################################### - !> \brief Divide data by area while avoiding zero area elements + !> \brief Divide data by area where grid cell area is not zero subroutine divide_by_area(data, area) + + implicit none real, intent(inout) :: data(:,:) - real, intent(in) :: area(:,:) + real, intent(in) :: area(:,:) - if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) then - ! no op - return - endif + !> check the size of data and area are the same + if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) return + !> divide data in each grid cell by grid cell area where(area /= 0.0) data = data / area end where end subroutine divide_by_area - - !####################################################################### - !> \brief Send out the ice_mask and/or sic data. - !! This was called inside flux_ocean_to_ice. Why? + + !> \brief compute and send fractional amount of sea ice to diag_manager buffer + ! This was called inside flux_ocean_to_ice. Why? subroutine send_ice_mask_sic(Time) - type(FmsTime_type), intent(in) :: Time !< Current time + + implicit none + type(FmsTime_type), intent(in) :: Time !< Current time real, dimension(nxc_ice, nyc_ice, nk_ice) :: ice_frac - real, dimension(n_xgrid_sfc) :: ex_ice_frac - real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac + real, dimension(n_xgrid_sfc) :: ex_ice_frac + real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac logical :: used - if ( id_ice_mask > 0 .or. id_sic > 0) then - ice_frac = 1. + if(id_ice_mask > 0 .or. id_sic > 0) then + + !> initialize ice_frac + ice_frac = 1. ice_frac(:,:,1) = 0. - ex_ice_frac = 0. - call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ice_frac, xmap_sfc) - if ( id_ice_mask > 0 ) used = fms_diag_send_data ( id_ice_mask, diag_atm, Time ) - - ! ice concentration for only the ocean part of the atmos grid box - ! normalize ice fraction over entire atmos grid box by the - ! fraction of atmos grid box that is ocean - if ( id_sic > 0) then + ex_ice_frac = 0. + + !> remap ice_mask (fractional amount of sea ice) to the atm grid + call fms_xgrid_put_to_xgrid(ice_frac, 'OCN', ex_ice_frac, xmap_sfc) + call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_ice_frac, xmap_sfc) + + !> send ice_mask to diag_manager buffer + if(id_ice_mask > 0) used = fms_diag_send_data(id_ice_mask, diag_atm, Time) + + !> compute sea ice area fraction for cells on atm grid that are over ocean + !! normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean + if(id_sic > 0) then ice_frac = 1. ex_ice_frac = 0. - call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) - call fms_xgrid_get_from_xgrid (ocean_frac, 'ATM', ex_ice_frac, xmap_sfc) + call fms_xgrid_put_to_xgrid(ice_frac, 'OCN', ex_ice_frac, xmap_sfc) + call fms_xgrid_get_from_xgrid(ocean_frac, 'ATM', ex_ice_frac, xmap_sfc) where (ocean_frac > 0.0) diag_atm = min(1., diag_atm/ocean_frac) ! CMIP6 as fraction ocean_frac = 1.0 @@ -4056,7 +4168,7 @@ subroutine send_ice_mask_sic(Time) diag_atm = 0.0 ocean_frac = 0.0 endwhere - used = fms_diag_send_data ( id_sic, diag_atm, Time, rmask=ocean_frac ) + used = fms_diag_send_data(id_sic, diag_atm, Time, rmask=ocean_frac) endif endif @@ -4064,10 +4176,14 @@ end subroutine send_ice_mask_sic !####################################################################### + !> \brief integrate the total precipitation in atmosphere and multipy by dt subroutine atm_stock_integrate(Atm, res) - type(atmos_data_type), intent(in) :: Atm - real, intent(out) :: res - integer :: ier + + implicit none + type(atmos_data_type), intent(in) :: Atm !< derived type to holding atmosphere boundary data + real, intent(out) :: res !< integrated value + + integer :: ier !< error returned from fms_xgrid_stock_integrate_2d call fms_xgrid_stock_integrate_2d(Atm%lprec + Atm%fprec, xmap=xmap_sfc, delta_t=Dt_atm, & & radius=Radius, res=res, ier=ier) From 0ec9d11a2485d23fc240538a896c97a7c0aef3bb Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 24 Feb 2026 10:49:56 -0500 Subject: [PATCH 18/31] test html files --- docs/html/_formulas.tex | 65 + .../_s_hi_e_l_d_2coupler__main_8_f90.html | 186 + docs/html/annotated.html | 94 + ...__land__ice__flux__exchange-old_8_f90.html | 722 ++ .../atm__land__ice__flux__exchange_8_f90.html | 259 + ...atmos__ocean__dep__fluxes__calc_8_f90.html | 107 + .../atmos__ocean__fluxes__calc_8_f90.html | 133 + docs/html/classes.html | 94 + docs/html/coupler_config.html | 134 + .../dir_1af7c1440245086f9f32c0fc5ed4b868.html | 94 + .../dir_9982052f7ce695d12571567315b2fafa.html | 88 + .../dir_d31ef39e894be3975a1de5d6a46d3717.html | 88 + .../dir_ec0543676189fadf8843b558a280dd29.html | 94 + .../dir_f6406403be25082e487bde7aa9e18575.html | 116 + docs/html/files.html | 103 + docs/html/flux_exchange_conf.html | 102 + docs/html/full_2coupler__main_8_f90.html | 124 + docs/html/full_2flux__exchange_8_f90.html | 337 + docs/html/full__coupler__mod_8_f90.html | 344 + docs/html/functions.html | 450 ++ docs/html/functions_func.html | 114 + docs/html/functions_vars.html | 407 + docs/html/globals.html | 114 + docs/html/globals_defs.html | 99 + docs/html/globals_func.html | 90 + docs/html/ice__model_8_f90.html | 204 + .../ice__ocean__flux__exchange_8_f90.html | 150 + docs/html/index.html | 35 +- ...mod_1_1put__logical__to__real-members.html | 94 + ...change__mod_1_1put__logical__to__real.html | 640 ++ ...e__flux__mod_1_1surface__flux-members.html | 86 + ...cesurface__flux__mod_1_1surface__flux.html | 766 ++ .../html/land__ice__flux__exchange_8_f90.html | 123 + docs/html/menudata.js | 12 +- ...ceatm__land__ice__flux__exchange__mod.html | 6712 +++++++++++++++++ ...eatmos__ocean__dep__fluxes__calc__mod.html | 159 + ...espaceatmos__ocean__fluxes__calc__mod.html | 684 ++ docs/html/namespaceflux__exchange__mod.html | 4082 ++++++++++ docs/html/namespacefull__coupler__mod.html | 3594 +++++++++ docs/html/namespaceice__model__mod.html | 1382 ++++ ...espaceice__ocean__flux__exchange__mod.html | 851 +++ ...mespaceland__ice__flux__exchange__mod.html | 400 + docs/html/namespacemembers.html | 120 + docs/html/namespacemembers_b.html | 99 + docs/html/namespacemembers_c.html | 233 + docs/html/namespacemembers_d.html | 221 + docs/html/namespacemembers_e.html | 230 + docs/html/namespacemembers_f.html | 176 + docs/html/namespacemembers_func.html | 439 ++ docs/html/namespacemembers_g.html | 119 + docs/html/namespacemembers_h.html | 86 + docs/html/namespacemembers_i.html | 484 ++ docs/html/namespacemembers_j.html | 85 + docs/html/namespacemembers_k.html | 80 + docs/html/namespacemembers_l.html | 89 + docs/html/namespacemembers_m.html | 103 + docs/html/namespacemembers_n.html | 157 + docs/html/namespacemembers_o.html | 89 + docs/html/namespacemembers_p.html | 99 + docs/html/namespacemembers_q.html | 80 + docs/html/namespacemembers_r.html | 112 + docs/html/namespacemembers_s.html | 131 + docs/html/namespacemembers_t.html | 119 + docs/html/namespacemembers_u.html | 122 + docs/html/namespacemembers_v.html | 86 + docs/html/namespacemembers_vars.html | 104 + docs/html/namespacemembers_vars_b.html | 99 + docs/html/namespacemembers_vars_c.html | 122 + docs/html/namespacemembers_vars_d.html | 210 + docs/html/namespacemembers_vars_e.html | 230 + docs/html/namespacemembers_vars_f.html | 126 + docs/html/namespacemembers_vars_g.html | 89 + docs/html/namespacemembers_vars_h.html | 86 + docs/html/namespacemembers_vars_i.html | 460 ++ docs/html/namespacemembers_vars_j.html | 85 + docs/html/namespacemembers_vars_k.html | 80 + docs/html/namespacemembers_vars_l.html | 83 + docs/html/namespacemembers_vars_m.html | 103 + docs/html/namespacemembers_vars_n.html | 148 + docs/html/namespacemembers_vars_o.html | 89 + docs/html/namespacemembers_vars_p.html | 84 + docs/html/namespacemembers_vars_q.html | 80 + docs/html/namespacemembers_vars_r.html | 109 + docs/html/namespacemembers_vars_s.html | 108 + docs/html/namespacemembers_vars_t.html | 119 + docs/html/namespacemembers_vars_u.html | 116 + docs/html/namespacemembers_vars_v.html | 83 + docs/html/namespacemembers_vars_w.html | 80 + docs/html/namespacemembers_vars_x.html | 98 + docs/html/namespacemembers_vars_z.html | 85 + docs/html/namespacemembers_w.html | 80 + docs/html/namespacemembers_x.html | 101 + docs/html/namespacemembers_z.html | 85 + docs/html/namespaces.html | 90 + docs/html/namespacesurface__flux__mod.html | 2247 ++++++ docs/html/pages.html | 84 + docs/html/search/all_0.html | 30 + docs/html/search/all_0.js | 36 + docs/html/search/all_1.html | 30 + docs/html/search/all_1.js | 10 + docs/html/search/all_10.html | 30 + docs/html/search/all_10.js | 5 + docs/html/search/all_11.html | 30 + docs/html/search/all_11.js | 18 + docs/html/search/all_12.html | 30 + docs/html/search/all_12.js | 28 + docs/html/search/all_13.html | 30 + docs/html/search/all_13.js | 25 + docs/html/search/all_14.html | 30 + docs/html/search/all_14.js | 30 + docs/html/search/all_15.html | 30 + docs/html/search/all_15.js | 5 + docs/html/search/all_16.html | 30 + docs/html/search/all_16.js | 4 + docs/html/search/all_17.html | 30 + docs/html/search/all_17.js | 12 + docs/html/search/all_18.html | 30 + docs/html/search/all_18.js | 5 + docs/html/search/all_2.html | 30 + docs/html/search/all_2.js | 64 + docs/html/search/all_3.html | 30 + docs/html/search/all_3.js | 50 + docs/html/search/all_4.html | 30 + docs/html/search/all_4.js | 54 + docs/html/search/all_5.html | 30 + docs/html/search/all_5.js | 48 + docs/html/search/all_6.html | 30 + docs/html/search/all_6.js | 22 + docs/html/search/all_7.html | 30 + docs/html/search/all_7.js | 6 + docs/html/search/all_8.html | 30 + docs/html/search/all_8.js | 130 + docs/html/search/all_9.html | 30 + docs/html/search/all_9.js | 5 + docs/html/search/all_a.html | 30 + docs/html/search/all_a.js | 4 + docs/html/search/all_b.html | 30 + docs/html/search/all_b.js | 20 + docs/html/search/all_c.html | 30 + docs/html/search/all_c.js | 12 + docs/html/search/all_d.html | 30 + docs/html/search/all_d.js | 28 + docs/html/search/all_e.html | 30 + docs/html/search/all_e.js | 10 + docs/html/search/all_f.html | 30 + docs/html/search/all_f.js | 11 + docs/html/search/classes_0.html | 30 + docs/html/search/classes_0.js | 4 + docs/html/search/classes_1.html | 30 + docs/html/search/classes_1.js | 6 + docs/html/search/classes_2.html | 30 + docs/html/search/classes_2.js | 4 + docs/html/search/classes_3.html | 30 + docs/html/search/classes_3.js | 4 + docs/html/search/classes_4.html | 30 + docs/html/search/classes_4.js | 4 + docs/html/search/classes_5.html | 30 + docs/html/search/classes_5.js | 5 + docs/html/search/defines_0.html | 30 + docs/html/search/defines_0.js | 9 + docs/html/search/files_0.html | 30 + docs/html/search/files_0.js | 7 + docs/html/search/files_1.html | 30 + docs/html/search/files_1.js | 4 + docs/html/search/files_2.html | 30 + docs/html/search/files_2.js | 5 + docs/html/search/files_3.html | 30 + docs/html/search/files_3.js | 5 + docs/html/search/files_4.html | 30 + docs/html/search/files_4.js | 4 + docs/html/search/files_5.html | 30 + docs/html/search/files_5.js | 4 + docs/html/search/files_6.html | 30 + docs/html/search/files_6.js | 6 + docs/html/search/functions_0.html | 30 + docs/html/search/functions_0.js | 8 + docs/html/search/functions_1.html | 30 + docs/html/search/functions_1.js | 42 + docs/html/search/functions_2.html | 30 + docs/html/search/functions_2.js | 6 + docs/html/search/functions_3.html | 30 + docs/html/search/functions_3.js | 19 + docs/html/search/functions_4.html | 30 + docs/html/search/functions_4.js | 13 + docs/html/search/functions_5.html | 30 + docs/html/search/functions_5.js | 11 + docs/html/search/functions_6.html | 30 + docs/html/search/functions_6.js | 5 + docs/html/search/functions_7.html | 30 + docs/html/search/functions_7.js | 6 + docs/html/search/functions_8.html | 30 + docs/html/search/functions_8.js | 8 + docs/html/search/functions_9.html | 30 + docs/html/search/functions_9.js | 4 + docs/html/search/functions_a.html | 30 + docs/html/search/functions_a.js | 10 + docs/html/search/functions_b.html | 30 + docs/html/search/functions_b.js | 5 + docs/html/search/functions_c.html | 30 + docs/html/search/functions_c.js | 4 + docs/html/search/functions_d.html | 30 + docs/html/search/functions_d.js | 4 + docs/html/search/namespaces_0.html | 30 + docs/html/search/namespaces_0.js | 6 + docs/html/search/namespaces_1.html | 30 + docs/html/search/namespaces_1.js | 5 + docs/html/search/namespaces_2.html | 30 + docs/html/search/namespaces_2.js | 5 + docs/html/search/namespaces_3.html | 30 + docs/html/search/namespaces_3.js | 4 + docs/html/search/namespaces_4.html | 30 + docs/html/search/namespaces_4.js | 4 + docs/html/search/pages_0.html | 30 + docs/html/search/pages_0.js | 4 + docs/html/search/pages_1.html | 30 + docs/html/search/pages_1.js | 4 + docs/html/search/pages_2.html | 30 + docs/html/search/pages_2.js | 4 + docs/html/search/searchdata.js | 24 + docs/html/search/variables_0.html | 30 + docs/html/search/variables_0.js | 23 + docs/html/search/variables_1.html | 30 + docs/html/search/variables_1.js | 10 + docs/html/search/variables_10.html | 30 + docs/html/search/variables_10.js | 5 + docs/html/search/variables_11.html | 30 + docs/html/search/variables_11.js | 17 + docs/html/search/variables_12.html | 30 + docs/html/search/variables_12.js | 18 + docs/html/search/variables_13.html | 30 + docs/html/search/variables_13.js | 23 + docs/html/search/variables_14.html | 30 + docs/html/search/variables_14.js | 26 + docs/html/search/variables_15.html | 30 + docs/html/search/variables_15.js | 4 + docs/html/search/variables_16.html | 30 + docs/html/search/variables_16.js | 4 + docs/html/search/variables_17.html | 30 + docs/html/search/variables_17.js | 11 + docs/html/search/variables_18.html | 30 + docs/html/search/variables_18.js | 5 + docs/html/search/variables_2.html | 30 + docs/html/search/variables_2.js | 20 + docs/html/search/variables_3.html | 30 + docs/html/search/variables_3.js | 47 + docs/html/search/variables_4.html | 30 + docs/html/search/variables_4.js | 54 + docs/html/search/variables_5.html | 30 + docs/html/search/variables_5.js | 29 + docs/html/search/variables_6.html | 30 + docs/html/search/variables_6.js | 13 + docs/html/search/variables_7.html | 30 + docs/html/search/variables_7.js | 6 + docs/html/search/variables_8.html | 30 + docs/html/search/variables_8.js | 118 + docs/html/search/variables_9.html | 30 + docs/html/search/variables_9.js | 5 + docs/html/search/variables_a.html | 30 + docs/html/search/variables_a.js | 4 + docs/html/search/variables_b.html | 30 + docs/html/search/variables_b.js | 16 + docs/html/search/variables_c.html | 30 + docs/html/search/variables_c.js | 12 + docs/html/search/variables_d.html | 30 + docs/html/search/variables_d.js | 25 + docs/html/search/variables_e.html | 30 + docs/html/search/variables_e.js | 10 + docs/html/search/variables_f.html | 30 + docs/html/search/variables_f.js | 5 + docs/html/simple_2coupler__main_8_f90.html | 189 + docs/html/simple_2flux__exchange_8_f90.html | 316 + ...od_1_1tracer__exch__ind__type-members.html | 87 + ...hange__mod_1_1tracer__exch__ind__type.html | 177 + ...nge__mod_1_1tracer__ind__type-members.html | 87 + ...x__exchange__mod_1_1tracer__ind__type.html | 178 + ..._mod_1_1coupler__chksum__type-members.html | 92 + ...coupler__mod_1_1coupler__chksum__type.html | 280 + ...__mod_1_1coupler__clock__type-members.html | 122 + ..._coupler__mod_1_1coupler__clock__type.html | 1009 +++ ..._1_1coupler__components__type-members.html | 96 + ...ler__mod_1_1coupler__components__type.html | 408 + ...1_1atmos__ice__boundary__type-members.html | 97 + ...el__mod_1_1atmos__ice__boundary__type.html | 404 + ...model__mod_1_1ice__data__type-members.html | 110 + ...uctice__model__mod_1_1ice__data__type.html | 716 ++ docs/html/surface__flux_8_f90.html | 202 + docs/html/surface_flux_config.html | 104 + docs/html/use__am3__only_8f90.html | 162 + docs/html/use__land__and__am3_8f90.html | 147 + docs/html/use__land__only_8f90.html | 147 + 290 files changed, 42989 insertions(+), 3 deletions(-) create mode 100644 docs/html/_formulas.tex create mode 100644 docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html create mode 100644 docs/html/annotated.html create mode 100644 docs/html/atm__land__ice__flux__exchange-old_8_f90.html create mode 100644 docs/html/atm__land__ice__flux__exchange_8_f90.html create mode 100644 docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html create mode 100644 docs/html/atmos__ocean__fluxes__calc_8_f90.html create mode 100644 docs/html/classes.html create mode 100644 docs/html/coupler_config.html create mode 100644 docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html create mode 100644 docs/html/dir_9982052f7ce695d12571567315b2fafa.html create mode 100644 docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html create mode 100644 docs/html/dir_ec0543676189fadf8843b558a280dd29.html create mode 100644 docs/html/dir_f6406403be25082e487bde7aa9e18575.html create mode 100644 docs/html/files.html create mode 100644 docs/html/flux_exchange_conf.html create mode 100644 docs/html/full_2coupler__main_8_f90.html create mode 100644 docs/html/full_2flux__exchange_8_f90.html create mode 100644 docs/html/full__coupler__mod_8_f90.html create mode 100644 docs/html/functions.html create mode 100644 docs/html/functions_func.html create mode 100644 docs/html/functions_vars.html create mode 100644 docs/html/globals.html create mode 100644 docs/html/globals_defs.html create mode 100644 docs/html/globals_func.html create mode 100644 docs/html/ice__model_8_f90.html create mode 100644 docs/html/ice__ocean__flux__exchange_8_f90.html create mode 100644 docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html create mode 100644 docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html create mode 100644 docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html create mode 100644 docs/html/interfacesurface__flux__mod_1_1surface__flux.html create mode 100644 docs/html/land__ice__flux__exchange_8_f90.html create mode 100644 docs/html/namespaceatm__land__ice__flux__exchange__mod.html create mode 100644 docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html create mode 100644 docs/html/namespaceatmos__ocean__fluxes__calc__mod.html create mode 100644 docs/html/namespaceflux__exchange__mod.html create mode 100644 docs/html/namespacefull__coupler__mod.html create mode 100644 docs/html/namespaceice__model__mod.html create mode 100644 docs/html/namespaceice__ocean__flux__exchange__mod.html create mode 100644 docs/html/namespaceland__ice__flux__exchange__mod.html create mode 100644 docs/html/namespacemembers.html create mode 100644 docs/html/namespacemembers_b.html create mode 100644 docs/html/namespacemembers_c.html create mode 100644 docs/html/namespacemembers_d.html create mode 100644 docs/html/namespacemembers_e.html create mode 100644 docs/html/namespacemembers_f.html create mode 100644 docs/html/namespacemembers_func.html create mode 100644 docs/html/namespacemembers_g.html create mode 100644 docs/html/namespacemembers_h.html create mode 100644 docs/html/namespacemembers_i.html create mode 100644 docs/html/namespacemembers_j.html create mode 100644 docs/html/namespacemembers_k.html create mode 100644 docs/html/namespacemembers_l.html create mode 100644 docs/html/namespacemembers_m.html create mode 100644 docs/html/namespacemembers_n.html create mode 100644 docs/html/namespacemembers_o.html create mode 100644 docs/html/namespacemembers_p.html create mode 100644 docs/html/namespacemembers_q.html create mode 100644 docs/html/namespacemembers_r.html create mode 100644 docs/html/namespacemembers_s.html create mode 100644 docs/html/namespacemembers_t.html create mode 100644 docs/html/namespacemembers_u.html create mode 100644 docs/html/namespacemembers_v.html create mode 100644 docs/html/namespacemembers_vars.html create mode 100644 docs/html/namespacemembers_vars_b.html create mode 100644 docs/html/namespacemembers_vars_c.html create mode 100644 docs/html/namespacemembers_vars_d.html create mode 100644 docs/html/namespacemembers_vars_e.html create mode 100644 docs/html/namespacemembers_vars_f.html create mode 100644 docs/html/namespacemembers_vars_g.html create mode 100644 docs/html/namespacemembers_vars_h.html create mode 100644 docs/html/namespacemembers_vars_i.html create mode 100644 docs/html/namespacemembers_vars_j.html create mode 100644 docs/html/namespacemembers_vars_k.html create mode 100644 docs/html/namespacemembers_vars_l.html create mode 100644 docs/html/namespacemembers_vars_m.html create mode 100644 docs/html/namespacemembers_vars_n.html create mode 100644 docs/html/namespacemembers_vars_o.html create mode 100644 docs/html/namespacemembers_vars_p.html create mode 100644 docs/html/namespacemembers_vars_q.html create mode 100644 docs/html/namespacemembers_vars_r.html create mode 100644 docs/html/namespacemembers_vars_s.html create mode 100644 docs/html/namespacemembers_vars_t.html create mode 100644 docs/html/namespacemembers_vars_u.html create mode 100644 docs/html/namespacemembers_vars_v.html create mode 100644 docs/html/namespacemembers_vars_w.html create mode 100644 docs/html/namespacemembers_vars_x.html create mode 100644 docs/html/namespacemembers_vars_z.html create mode 100644 docs/html/namespacemembers_w.html create mode 100644 docs/html/namespacemembers_x.html create mode 100644 docs/html/namespacemembers_z.html create mode 100644 docs/html/namespaces.html create mode 100644 docs/html/namespacesurface__flux__mod.html create mode 100644 docs/html/pages.html create mode 100644 docs/html/search/all_0.html create mode 100644 docs/html/search/all_0.js create mode 100644 docs/html/search/all_1.html create mode 100644 docs/html/search/all_1.js create mode 100644 docs/html/search/all_10.html create mode 100644 docs/html/search/all_10.js create mode 100644 docs/html/search/all_11.html create mode 100644 docs/html/search/all_11.js create mode 100644 docs/html/search/all_12.html create mode 100644 docs/html/search/all_12.js create mode 100644 docs/html/search/all_13.html create mode 100644 docs/html/search/all_13.js create mode 100644 docs/html/search/all_14.html create mode 100644 docs/html/search/all_14.js create mode 100644 docs/html/search/all_15.html create mode 100644 docs/html/search/all_15.js create mode 100644 docs/html/search/all_16.html create mode 100644 docs/html/search/all_16.js create mode 100644 docs/html/search/all_17.html create mode 100644 docs/html/search/all_17.js create mode 100644 docs/html/search/all_18.html create mode 100644 docs/html/search/all_18.js create mode 100644 docs/html/search/all_2.html create mode 100644 docs/html/search/all_2.js create mode 100644 docs/html/search/all_3.html create mode 100644 docs/html/search/all_3.js create mode 100644 docs/html/search/all_4.html create mode 100644 docs/html/search/all_4.js create mode 100644 docs/html/search/all_5.html create mode 100644 docs/html/search/all_5.js create mode 100644 docs/html/search/all_6.html create mode 100644 docs/html/search/all_6.js create mode 100644 docs/html/search/all_7.html create mode 100644 docs/html/search/all_7.js create mode 100644 docs/html/search/all_8.html create mode 100644 docs/html/search/all_8.js create mode 100644 docs/html/search/all_9.html create mode 100644 docs/html/search/all_9.js create mode 100644 docs/html/search/all_a.html create mode 100644 docs/html/search/all_a.js create mode 100644 docs/html/search/all_b.html create mode 100644 docs/html/search/all_b.js create mode 100644 docs/html/search/all_c.html create mode 100644 docs/html/search/all_c.js create mode 100644 docs/html/search/all_d.html create mode 100644 docs/html/search/all_d.js create mode 100644 docs/html/search/all_e.html create mode 100644 docs/html/search/all_e.js create mode 100644 docs/html/search/all_f.html create mode 100644 docs/html/search/all_f.js create mode 100644 docs/html/search/classes_0.html create mode 100644 docs/html/search/classes_0.js create mode 100644 docs/html/search/classes_1.html create mode 100644 docs/html/search/classes_1.js create mode 100644 docs/html/search/classes_2.html create mode 100644 docs/html/search/classes_2.js create mode 100644 docs/html/search/classes_3.html create mode 100644 docs/html/search/classes_3.js create mode 100644 docs/html/search/classes_4.html create mode 100644 docs/html/search/classes_4.js create mode 100644 docs/html/search/classes_5.html create mode 100644 docs/html/search/classes_5.js create mode 100644 docs/html/search/defines_0.html create mode 100644 docs/html/search/defines_0.js create mode 100644 docs/html/search/files_0.html create mode 100644 docs/html/search/files_0.js create mode 100644 docs/html/search/files_1.html create mode 100644 docs/html/search/files_1.js create mode 100644 docs/html/search/files_2.html create mode 100644 docs/html/search/files_2.js create mode 100644 docs/html/search/files_3.html create mode 100644 docs/html/search/files_3.js create mode 100644 docs/html/search/files_4.html create mode 100644 docs/html/search/files_4.js create mode 100644 docs/html/search/files_5.html create mode 100644 docs/html/search/files_5.js create mode 100644 docs/html/search/files_6.html create mode 100644 docs/html/search/files_6.js create mode 100644 docs/html/search/functions_0.html create mode 100644 docs/html/search/functions_0.js create mode 100644 docs/html/search/functions_1.html create mode 100644 docs/html/search/functions_1.js create mode 100644 docs/html/search/functions_2.html create mode 100644 docs/html/search/functions_2.js create mode 100644 docs/html/search/functions_3.html create mode 100644 docs/html/search/functions_3.js create mode 100644 docs/html/search/functions_4.html create mode 100644 docs/html/search/functions_4.js create mode 100644 docs/html/search/functions_5.html create mode 100644 docs/html/search/functions_5.js create mode 100644 docs/html/search/functions_6.html create mode 100644 docs/html/search/functions_6.js create mode 100644 docs/html/search/functions_7.html create mode 100644 docs/html/search/functions_7.js create mode 100644 docs/html/search/functions_8.html create mode 100644 docs/html/search/functions_8.js create mode 100644 docs/html/search/functions_9.html create mode 100644 docs/html/search/functions_9.js create mode 100644 docs/html/search/functions_a.html create mode 100644 docs/html/search/functions_a.js create mode 100644 docs/html/search/functions_b.html create mode 100644 docs/html/search/functions_b.js create mode 100644 docs/html/search/functions_c.html create mode 100644 docs/html/search/functions_c.js create mode 100644 docs/html/search/functions_d.html create mode 100644 docs/html/search/functions_d.js create mode 100644 docs/html/search/namespaces_0.html create mode 100644 docs/html/search/namespaces_0.js create mode 100644 docs/html/search/namespaces_1.html create mode 100644 docs/html/search/namespaces_1.js create mode 100644 docs/html/search/namespaces_2.html create mode 100644 docs/html/search/namespaces_2.js create mode 100644 docs/html/search/namespaces_3.html create mode 100644 docs/html/search/namespaces_3.js create mode 100644 docs/html/search/namespaces_4.html create mode 100644 docs/html/search/namespaces_4.js create mode 100644 docs/html/search/pages_0.html create mode 100644 docs/html/search/pages_0.js create mode 100644 docs/html/search/pages_1.html create mode 100644 docs/html/search/pages_1.js create mode 100644 docs/html/search/pages_2.html create mode 100644 docs/html/search/pages_2.js create mode 100644 docs/html/search/variables_0.html create mode 100644 docs/html/search/variables_0.js create mode 100644 docs/html/search/variables_1.html create mode 100644 docs/html/search/variables_1.js create mode 100644 docs/html/search/variables_10.html create mode 100644 docs/html/search/variables_10.js create mode 100644 docs/html/search/variables_11.html create mode 100644 docs/html/search/variables_11.js create mode 100644 docs/html/search/variables_12.html create mode 100644 docs/html/search/variables_12.js create mode 100644 docs/html/search/variables_13.html create mode 100644 docs/html/search/variables_13.js create mode 100644 docs/html/search/variables_14.html create mode 100644 docs/html/search/variables_14.js create mode 100644 docs/html/search/variables_15.html create mode 100644 docs/html/search/variables_15.js create mode 100644 docs/html/search/variables_16.html create mode 100644 docs/html/search/variables_16.js create mode 100644 docs/html/search/variables_17.html create mode 100644 docs/html/search/variables_17.js create mode 100644 docs/html/search/variables_18.html create mode 100644 docs/html/search/variables_18.js create mode 100644 docs/html/search/variables_2.html create mode 100644 docs/html/search/variables_2.js create mode 100644 docs/html/search/variables_3.html create mode 100644 docs/html/search/variables_3.js create mode 100644 docs/html/search/variables_4.html create mode 100644 docs/html/search/variables_4.js create mode 100644 docs/html/search/variables_5.html create mode 100644 docs/html/search/variables_5.js create mode 100644 docs/html/search/variables_6.html create mode 100644 docs/html/search/variables_6.js create mode 100644 docs/html/search/variables_7.html create mode 100644 docs/html/search/variables_7.js create mode 100644 docs/html/search/variables_8.html create mode 100644 docs/html/search/variables_8.js create mode 100644 docs/html/search/variables_9.html create mode 100644 docs/html/search/variables_9.js create mode 100644 docs/html/search/variables_a.html create mode 100644 docs/html/search/variables_a.js create mode 100644 docs/html/search/variables_b.html create mode 100644 docs/html/search/variables_b.js create mode 100644 docs/html/search/variables_c.html create mode 100644 docs/html/search/variables_c.js create mode 100644 docs/html/search/variables_d.html create mode 100644 docs/html/search/variables_d.js create mode 100644 docs/html/search/variables_e.html create mode 100644 docs/html/search/variables_e.js create mode 100644 docs/html/search/variables_f.html create mode 100644 docs/html/search/variables_f.js create mode 100644 docs/html/simple_2coupler__main_8_f90.html create mode 100644 docs/html/simple_2flux__exchange_8_f90.html create mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html create mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html create mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html create mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html create mode 100644 docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html create mode 100644 docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html create mode 100644 docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html create mode 100644 docs/html/structfull__coupler__mod_1_1coupler__clock__type.html create mode 100644 docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html create mode 100644 docs/html/structfull__coupler__mod_1_1coupler__components__type.html create mode 100644 docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html create mode 100644 docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html create mode 100644 docs/html/structice__model__mod_1_1ice__data__type-members.html create mode 100644 docs/html/structice__model__mod_1_1ice__data__type.html create mode 100644 docs/html/surface__flux_8_f90.html create mode 100644 docs/html/surface_flux_config.html create mode 100644 docs/html/use__am3__only_8f90.html create mode 100644 docs/html/use__land__and__am3_8f90.html create mode 100644 docs/html/use__land__only_8f90.html diff --git a/docs/html/_formulas.tex b/docs/html/_formulas.tex new file mode 100644 index 00000000..453e3f93 --- /dev/null +++ b/docs/html/_formulas.tex @@ -0,0 +1,65 @@ +\documentclass{article} +\usepackage{epsfig} +\pagestyle{empty} +\begin{document} +$k_w$ +\pagebreak + +\[ F = K_g(c_g - H C_l) = K_l(c_g/H - C_l) \] +\pagebreak + +$c_g$ +\pagebreak + +$C_l$ +\pagebreak + +$H$ +\pagebreak + +$H = c_{sg}/C_{sl}$ +\pagebreak + +$c_{sg}$ +\pagebreak + +$g/cm^3$ +\pagebreak + +$C_{sl}$ +\pagebreak + +\[ 1/K_g = 1/k_g + H/k_l \] +\pagebreak + +\[ 1/K_l = 1/k_l + 1/{Hk_g} \] +\pagebreak + +$k_g$ +\pagebreak + +$k_l$ +\pagebreak + +$H=c_sg/C_sl$ +\pagebreak + +$u_{10} \sqrt{C_D}$ +\pagebreak + +$C_D$ +\pagebreak + +$6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$ +\pagebreak + +$k_a$ +\pagebreak + +$cm3/mol$ +\pagebreak + +$m^2/s$ +\pagebreak + +\end{document} diff --git a/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html b/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html new file mode 100644 index 00000000..2d42e83e --- /dev/null +++ b/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html @@ -0,0 +1,186 @@ + + + + + + + +FMS Coupler: SHiELD/coupler_main.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    coupler_main.F90 File Reference
    +
    +
    +

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    +

    Main driver program for the SHiELD model. +More...

    + + + + + + + + + + + + + +

    +Functions/Subroutines

    program coupler_main
     
    subroutine coupler_init
     Read namelists and restart file, initializes all defined exchange grids and all boundary maps. More...
     
    subroutine coupler_restart (time_stamp)
     Writes a restart file for the current date. More...
     
    subroutine coupler_end
     Finalizes run, outputs restart files and diagnostic fields. More...
     
    +

    Detailed Description

    +

    Main driver program for the SHiELD model.

    +

    Sequences the dynamics, radiation/physics, and updates the prognostic state.

    +

    Function/Subroutine Documentation

    + +

    ◆ coupler_end()

    + +
    +
    + + + + + + + +
    subroutine coupler_main::coupler_end ()
    +
    + +

    Finalizes run, outputs restart files and diagnostic fields.

    + +
    +
    + +

    ◆ coupler_init()

    + +
    +
    + + + + + + + +
    subroutine coupler_main::coupler_init ()
    +
    + +

    Read namelists and restart file, initializes all defined exchange grids and all boundary maps.

    + +
    +
    + +

    ◆ coupler_main()

    + +
    +
    + + + + + + + +
    program coupler_main ()
    +
    + +
    +
    + +

    ◆ coupler_restart()

    + +
    +
    + + + + + + + + +
    subroutine coupler_main::coupler_restart (character(len=32), intent(in), optional time_stamp)
    +
    + +

    Writes a restart file for the current date.

    +
    Parameters
    + + +
    [in]time_stampOptional timestamp for file name
    +
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/annotated.html b/docs/html/annotated.html new file mode 100644 index 00000000..49dfd6c6 --- /dev/null +++ b/docs/html/annotated.html @@ -0,0 +1,94 @@ + + + + + + + +FMS Coupler: By Module + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    By Module
    +
    +
    +
    Interfaces and derived types by module
    +
    [detail level 12]
    + + + + + + + + + + + + + +
     Natm_land_ice_flux_exchange_mod
     Cput_logical_to_real
     Ctracer_exch_ind_type
     Ctracer_ind_type
     Nfull_coupler_mod
     Ccoupler_chksum_typeThe purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components
     Ccoupler_clock_typeCoupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main
     Ccoupler_components_type
     Nice_model_mod
     Catmos_ice_boundary_type
     Cice_data_type
     Nsurface_flux_modModule for the calculation of fluxes on the exchange grids
     Csurface_fluxFor the calculation of fluxes on the exchange grids
    +
    +
    + + + + diff --git a/docs/html/atm__land__ice__flux__exchange-old_8_f90.html b/docs/html/atm__land__ice__flux__exchange-old_8_f90.html new file mode 100644 index 00000000..af86507a --- /dev/null +++ b/docs/html/atm__land__ice__flux__exchange-old_8_f90.html @@ -0,0 +1,722 @@ + + + + + + + +FMS Coupler: full/atm_land_ice_flux_exchange-old.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    atm_land_ice_flux_exchange-old.F90 File Reference
    +
    +
    + +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice. +More...

    + + + + + + + + +

    +Data Types

    type  atm_land_ice_flux_exchange_mod::tracer_ind_type
     
    type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
     
    interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
     
    + + + +

    +Modules

    module  atm_land_ice_flux_exchange_mod
     
    + + + + + + + + + + + + + +

    +Macros

    #define FMS_DATA_OVERRIDE_   fms_data_override_ug
     
    #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
     
    #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
     
    #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
     
    #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
     
    #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    character(len=128) atm_land_ice_flux_exchange_mod::version = '$Id$'
     coupler version number More...
     
    character(len=128) atm_land_ice_flux_exchange_mod::tag = '$Name$'
     coupler tag More...
     
    type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc
     holds exchange grid between different components More...
     
    integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc =0
     number of exchange grid points More...
     
    character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name = 'flux'
     module name used to register diag_manager More...
     
    integer atm_land_ice_flux_exchange_mod::id_b_star
     
    integer atm_land_ice_flux_exchange_mod::id_del_h
     
    integer atm_land_ice_flux_exchange_mod::id_del_m
     
    integer atm_land_ice_flux_exchange_mod::id_del_q
     
    integer atm_land_ice_flux_exchange_mod::id_drag_heat
     
    integer atm_land_ice_flux_exchange_mod::id_drag_moist
     
    integer atm_land_ice_flux_exchange_mod::id_drag_mom
     
    integer atm_land_ice_flux_exchange_mod::id_gust
     
    integer atm_land_ice_flux_exchange_mod::id_husslut_land
     
    integer atm_land_ice_flux_exchange_mod::id_ice_mask
     
    integer atm_land_ice_flux_exchange_mod::id_land_mask
     
    integer atm_land_ice_flux_exchange_mod::id_p_atm
     
    integer atm_land_ice_flux_exchange_mod::id_q_flux
     
    integer atm_land_ice_flux_exchange_mod::id_q_flux_land
     
    integer atm_land_ice_flux_exchange_mod::id_q_ref
     
    integer atm_land_ice_flux_exchange_mod::id_q_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_q_star
     
    integer atm_land_ice_flux_exchange_mod::id_r_flux
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_rough_heat
     
    integer atm_land_ice_flux_exchange_mod::id_rough_moist
     
    integer atm_land_ice_flux_exchange_mod::id_rough_mom
     
    integer atm_land_ice_flux_exchange_mod::id_rough_scale
     
    integer atm_land_ice_flux_exchange_mod::id_slp
     
    integer atm_land_ice_flux_exchange_mod::id_t_atm
     
    integer atm_land_ice_flux_exchange_mod::id_t_ca
     
    integer atm_land_ice_flux_exchange_mod::id_t_flux
     
    integer atm_land_ice_flux_exchange_mod::id_t_ocean
     
    integer atm_land_ice_flux_exchange_mod::id_t_ref
     
    integer atm_land_ice_flux_exchange_mod::id_t_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_t_surf
     
    integer atm_land_ice_flux_exchange_mod::id_taslut_land
     
    integer atm_land_ice_flux_exchange_mod::id_thv_atm
     
    integer atm_land_ice_flux_exchange_mod::id_thv_surf
     
    integer atm_land_ice_flux_exchange_mod::id_u_atm
     
    integer atm_land_ice_flux_exchange_mod::id_u_flux
     
    integer atm_land_ice_flux_exchange_mod::id_u_ref
     
    integer atm_land_ice_flux_exchange_mod::id_u_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_u_star
     
    integer atm_land_ice_flux_exchange_mod::id_v_atm
     
    integer atm_land_ice_flux_exchange_mod::id_v_flux
     
    integer atm_land_ice_flux_exchange_mod::id_v_ref
     
    integer atm_land_ice_flux_exchange_mod::id_v_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_wind
     
    integer atm_land_ice_flux_exchange_mod::id_wind_ref
     
    integer atm_land_ice_flux_exchange_mod::id_z_atm
     
    integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr
     
    integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr
     
    integer atm_land_ice_flux_exchange_mod::id_co2_bot
     
    integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm
     
    integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm
     deposition velocity at bottom level (atm) More...
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land
     deposition velocity at bottom level (land) More...
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref
     deposition velocity at ref height (atm) More...
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land
     deposition velocity at reference height (land) More...
     
    integer atm_land_ice_flux_exchange_mod::id_evspsbl
     
    integer atm_land_ice_flux_exchange_mod::id_height10m
     
    integer atm_land_ice_flux_exchange_mod::id_height2m
     
    integer atm_land_ice_flux_exchange_mod::id_hfls
     
    integer atm_land_ice_flux_exchange_mod::id_hfss
     
    integer atm_land_ice_flux_exchange_mod::id_hurs
     
    integer atm_land_ice_flux_exchange_mod::id_huss
     
    integer atm_land_ice_flux_exchange_mod::id_psl
     
    integer atm_land_ice_flux_exchange_mod::id_rhs
     
    integer atm_land_ice_flux_exchange_mod::id_sfcwind
     
    integer atm_land_ice_flux_exchange_mod::id_sftlf
     
    integer atm_land_ice_flux_exchange_mod::id_sic
     
    integer atm_land_ice_flux_exchange_mod::id_tas
     
    integer atm_land_ice_flux_exchange_mod::id_tauu
     
    integer atm_land_ice_flux_exchange_mod::id_tauv
     
    integer atm_land_ice_flux_exchange_mod::id_tos
     
    integer atm_land_ice_flux_exchange_mod::id_ts
     
    integer atm_land_ice_flux_exchange_mod::id_tslsi
     
    integer atm_land_ice_flux_exchange_mod::id_uas
     
    integer atm_land_ice_flux_exchange_mod::id_vas
     
    integer atm_land_ice_flux_exchange_mod::id_evspsbl_g
     
    integer atm_land_ice_flux_exchange_mod::id_hfls_g
     
    integer atm_land_ice_flux_exchange_mod::id_hfss_g
     
    integer atm_land_ice_flux_exchange_mod::id_rls_g
     
    integer atm_land_ice_flux_exchange_mod::id_tas_g
     
    integer atm_land_ice_flux_exchange_mod::id_tasl_g
     
    integer atm_land_ice_flux_exchange_mod::id_ts_g
     
    logical atm_land_ice_flux_exchange_mod::first_static = .true.
     If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
     
    logical atm_land_ice_flux_exchange_mod::do_init = .true.
     
    integer atm_land_ice_flux_exchange_mod::remap_method = 1
     
    real, parameter atm_land_ice_flux_exchange_mod::bound_tol = 1e-7
     
    real, parameter atm_land_ice_flux_exchange_mod::d622 = rdgas/rvgas
     
    real, parameter atm_land_ice_flux_exchange_mod::d378 = 1.0-d622
     
    real, parameter atm_land_ice_flux_exchange_mod::d608 = d378/d622
     
    real, parameter atm_land_ice_flux_exchange_mod::tfreeze = 273.15
     freezing point of water at 1 atm [K] More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip
     
    real atm_land_ice_flux_exchange_mod::z_ref_heat = 2.
     Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
     
    real atm_land_ice_flux_exchange_mod::z_ref_mom = 10.
     Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
     
    logical atm_land_ice_flux_exchange_mod::do_area_weighted_flux = .FALSE.
     
    logical atm_land_ice_flux_exchange_mod::do_forecast = .false.
     
    integer atm_land_ice_flux_exchange_mod::nblocks = 1
     
    logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
     option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
     
    logical atm_land_ice_flux_exchange_mod::scale_precip_2d = .false.
     
    integer atm_land_ice_flux_exchange_mod::my_nblocks = 1
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t
     drag coefficient for heat on exchange grid More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm
     deposition velocity at lowest atmospheric level on exchange grid More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf
     d(water.vap.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm
     d(sens.heat.flux)/d(T atm) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf
     d(sens.heat.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf
     d(water.vap.flux)/d(q canopy) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf
     d(LW flux)/d(T surf) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm
     d(stress)/d(u) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm
     d(stress)/d(v) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw
     longwave radiation flux More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t
     sens heat flux More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u
     u stress on atmosphere More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v
     v stress on atmosphere More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo
     old value of albedo for downward flux calculations More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf
     surface pressure More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp
     surface pressure More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca
     near-surface (canopy) air temperature, degK More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf
     surface temperature for radiation calc, degK More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz
     miz NEED HELP More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm
     d(tracer flux)/d(atm tracer) More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf
     d(tracer flux)/d(surf tracer) More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr
     tracer fluxes More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref
     deposition velocity at reference height More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm
     deposition velocity at atmospheric height More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf
     near-surface tracer fields More...
     
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail
     true where data on exchange grid are available More...
     
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land
     true if exchange grid cell is over land More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n
     
    integer atm_land_ice_flux_exchange_mod::n_atm_tr
     number of prognostic tracers in the atmos model More...
     
    integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot
     number of prognostic tracers in the atmos model More...
     
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr
     number of prognostic tracers in the land model More...
     
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot
     number of prognostic tracers in the land model More...
     
    integer atm_land_ice_flux_exchange_mod::n_exch_tr
     number of tracers exchanged between models More...
     
    integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd
     number of gex fields exchanged between land and atmosphere More...
     
    integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm
     number of gex fields exchanged between atmosphere and land More...
     
    type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table
     table of tracers passed through flux exchange More...
     
    type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map
     map atm tracers to exchange, ice and land variables More...
     
    integer atm_land_ice_flux_exchange_mod::isphum = NO_TRACER
     tracer index for specific humidity More...
     
    integer atm_land_ice_flux_exchange_mod::ico2 = NO_TRACER
     tracer index for co2 More...
     
    integer atm_land_ice_flux_exchange_mod::inh3 = NO_TRACER
     tracer index for nh3 More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm =>NULL()
     gas fields in atm place holder for various atmospheric fields. More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice =>NULL()
     gas fields on ice More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes =>NULL()
     gas flux place holder of intermediate calculations, such as piston velocities etc. More...
     
    real, dimension(3) atm_land_ice_flux_exchange_mod::ccc
     for conservation checks !< NOT USED DELETE More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::regrid =1
     grids are physically different, pass via exchange grid More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::redist =2
     same physical grid, different decomposition, must move data around More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::redirect =3
     same physical grid, same domain decomposition, can directly copy data More...
     
    integer atm_land_ice_flux_exchange_mod::cplclock
     
    integer atm_land_ice_flux_exchange_mod::sfcclock
     FMS clock id to profile sfc_boundary_layer. More...
     
    integer atm_land_ice_flux_exchange_mod::fluxatmdnclock
     FMS clock id to profile flux down from atmosphere. More...
     
    integer atm_land_ice_flux_exchange_mod::regenclock
     FMS clock to profile exchange grid generation. More...
     
    integer atm_land_ice_flux_exchange_mod::fluxatmupclock
     FMS clock to profile flux up to atmosphere. More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_atm
     1, exchange grid index for xgrid_stock_move More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_ice
     2, exchange grid index for xgrid_stock_move More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_lnd
     3, !< exchange grid index for xgrid_stock_move More...
     
    real atm_land_ice_flux_exchange_mod::dt_atm
     atmospheric timestep [s] More...
     
    real atm_land_ice_flux_exchange_mod::dt_cpl
     coupled timestep [s] More...
     
    integer atm_land_ice_flux_exchange_mod::ni_atm
     number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer atm_land_ice_flux_exchange_mod::nj_atm
     number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer atm_land_ice_flux_exchange_mod::nxc_ice =0
     number of x points in ice compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nyc_ice =0
     number of y points in ice compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nk_ice =0
     number of vertical levels in ice More...
     
    integer atm_land_ice_flux_exchange_mod::nxc_lnd =0
     number of x points in land compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nyc_lnd =0
     number of y points in land compute domain More...
     
    +

    Detailed Description

    +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice.

    +

    Macro Definition Documentation

    + +

    ◆ FMS_DATA_OVERRIDE_

    + +
    +
    + + + + +
    #define FMS_DATA_OVERRIDE_   fms_data_override_ug
    +
    + +
    +
    + +

    ◆ FMS_DIAG_REGISTER_FIELD_

    + +
    +
    + + + + +
    #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
    +
    + +
    +
    + +

    ◆ FMS_XGRID_GET_FROM_XGRID_

    + +
    +
    + + + + +
    #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
    +
    + +
    +
    + +

    ◆ FMS_XGRID_PUT_TO_XGRID_

    + +
    +
    + + + + +
    #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
    +
    + +
    +
    + +

    ◆ FMS_XGRID_SET_FRAC_AREA_

    + +
    +
    + + + + +
    #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
    +
    + +
    +
    + +

    ◆ FMS_XGRID_STOCK_MOVE_

    + +
    +
    + + + + +
    #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/atm__land__ice__flux__exchange_8_f90.html b/docs/html/atm__land__ice__flux__exchange_8_f90.html new file mode 100644 index 00000000..c65ac020 --- /dev/null +++ b/docs/html/atm__land__ice__flux__exchange_8_f90.html @@ -0,0 +1,259 @@ + + + + + + + +FMS Coupler: full/atm_land_ice_flux_exchange.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    atm_land_ice_flux_exchange.F90 File Reference
    +
    +
    +

    (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

    +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice. +More...

    + + + + + + + + +

    +Data Types

    interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
     
    type  atm_land_ice_flux_exchange_mod::tracer_ind_type
     
    type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
     
    + + + +

    +Modules

    module  atm_land_ice_flux_exchange_mod
     
    + + + + + + + + + + + + + +

    +Macros

    #define FMS_DATA_OVERRIDE_   fms_data_override_ug
     
    #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
     
    #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
     
    #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
     
    #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
     
    #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
     Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    + + + + + + + + +

    +Variables

    real atm_land_ice_flux_exchange_mod::atmospheric
     
    real atm_land_ice_flux_exchange_mod::timestep
     
    real atm_land_ice_flux_exchange_mod::s
     coupled timestep [s] More...
     
    +

    Detailed Description

    +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice.

    +

    Macro Definition Documentation

    + +

    ◆ FMS_DATA_OVERRIDE_

    + +
    +
    + + + + +
    #define FMS_DATA_OVERRIDE_   fms_data_override_ug
    +
    + +
    +
    + +

    ◆ FMS_DIAG_REGISTER_FIELD_

    + +
    +
    + + + + +
    #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
    +
    + +
    +
    + +

    ◆ FMS_XGRID_GET_FROM_XGRID_

    + +
    +
    + + + + +
    #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
    +
    + +
    +
    + +

    ◆ FMS_XGRID_PUT_TO_XGRID_

    + +
    +
    + + + + +
    #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
    +
    + +
    +
    + +

    ◆ FMS_XGRID_SET_FRAC_AREA_

    + +
    +
    + + + + +
    #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
    +
    + +
    +
    + +

    ◆ FMS_XGRID_STOCK_MOVE_

    + +
    +
    + + + + +
    #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html new file mode 100644 index 00000000..a11b8d89 --- /dev/null +++ b/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html @@ -0,0 +1,107 @@ + + + + + + + +FMS Coupler: full/atmos_ocean_dep_fluxes_calc.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    atmos_ocean_dep_fluxes_calc.F90 File Reference
    +
    +
    +

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    +

    Calculates ocean and atmosphere deposition gas fluxes. +More...

    + + + + +

    +Modules

    module  atmos_ocean_dep_fluxes_calc_mod
     
    + + + + +

    +Functions/Subroutines

    subroutine atmos_ocean_dep_fluxes_calc_mod::atmos_ocean_dep_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater)
     atmos_ocean_dep_fluxes_calc More...
     
    + + + +

    +Variables

    character(len= *), parameter atmos_ocean_dep_fluxes_calc_mod::mod_name = "aodfc"
     
    +

    Detailed Description

    +

    Calculates ocean and atmosphere deposition gas fluxes.

    +
    + + + + diff --git a/docs/html/atmos__ocean__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__fluxes__calc_8_f90.html new file mode 100644 index 00000000..b9a71ca2 --- /dev/null +++ b/docs/html/atmos__ocean__fluxes__calc_8_f90.html @@ -0,0 +1,133 @@ + + + + + + + +FMS Coupler: full/atmos_ocean_fluxes_calc.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    atmos_ocean_fluxes_calc.F90 File Reference
    +
    +
    +

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    +

    Calculates gas fluxes for atmosphere and ocean. +More...

    + + + + +

    +Modules

    module  atmos_ocean_fluxes_calc_mod
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atmos_ocean_fluxes_calc_mod::atmos_ocean_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater, tsurf, ustar, cd_m)
     Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive. More...
     
    real function atmos_ocean_fluxes_calc_mod::calc_kw (tk, p, u10, h, vb, mw, sc_w, ustar, cd_m)
     Calculate $k_w$. More...
     
    real function atmos_ocean_fluxes_calc_mod::calc_ka (t, p, mw, vb, u10, ustar, cd_m)
     Calculate $k_a$. More...
     
    real function atmos_ocean_fluxes_calc_mod::calc_kl (t, v, sc)
     Calculate $k_l$. More...
     
    real function atmos_ocean_fluxes_calc_mod::schmidt_g (t, p, mw, vb)
     Schmidt number of the gas in air. More...
     
    real function atmos_ocean_fluxes_calc_mod::d_air (t, p, mw, vb)
     From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007) More...
     
    real function atmos_ocean_fluxes_calc_mod::p_air (t)
     kinematic viscosity in air More...
     
    real function atmos_ocean_fluxes_calc_mod::v_air (t)
     Kinematic viscosity in air ( $m^2/s$. More...
     
    real function atmos_ocean_fluxes_calc_mod::n_air (t)
     dynamic viscosity in air More...
     
    + + + + + +

    +Variables

    character(len= *), parameter atmos_ocean_fluxes_calc_mod::mod_name = "cdwfe"
     
    real, parameter atmos_ocean_fluxes_calc_mod::epsln =1.0e-30
     
    +

    Detailed Description

    +

    Calculates gas fluxes for atmosphere and ocean.

    +
    + + + + diff --git a/docs/html/classes.html b/docs/html/classes.html new file mode 100644 index 00000000..ba639220 --- /dev/null +++ b/docs/html/classes.html @@ -0,0 +1,94 @@ + + + + + + + +FMS Coupler: By Name + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    By Name
    +
    + + + + + diff --git a/docs/html/coupler_config.html b/docs/html/coupler_config.html new file mode 100644 index 00000000..aeab26f9 --- /dev/null +++ b/docs/html/coupler_config.html @@ -0,0 +1,134 @@ + + + + + + + +FMS Coupler: Coupler Configuration + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    Coupler Configuration
    +
    +
    +

    coupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Variable Name Type Default Value Description
    current_date integer, dimension(6) (/0,0,0,0,0,0/) The date that the current integration starts with.
    force_date_from_namelist logical .FALSE. Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has not effect, the value of current_date will be used.
    calendar character(len=17) '' The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' can not be used because the time_manager's date function are used. All values must be lowercase.
    months integer 0 The number of months that the current integration will be run for.
    days integer 0 The number of days that the current integration will be run for.
    hours integer 0 The number of hours that the current integration will be run for.
    minutes integer 0 The number of minutes that the current integration will be run for.
    seconds integer 0 The number of seconds that the current integration will be run for.
    dt_atmos integer 0 Atmospheric model time step in seconds, including the fast coupling with land and sea ice.
    dt_cpld integer 0 Time step in seconds for coupling between ocean and atmospheric models: must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep.
    do_atmos, do_ocean, do_ice, do_land, do_flux logical .TRUE. If true (default), that particular model component (atmos, etc.) is run. If false, the execution of that component is skipped. This is used when ALL the output fields sent by that component to the coupler have been overridden using the data_override feature. For advanced users only: if you're not sure, you should leave these values at TRUE.
    concurrent logical .FALSE. If true, the ocean executes concurrently with the atmosphere-land-ocean on a separate set of PEs. If false (default), the execution is serial: call atmos... followed by call ocean... If using concurrent execution, you must set one of atmos_npes and ocean_npes, see below.
    do_concurrent_radiation logical .FALSE. If true then radiation is done concurrently.
    atmos_npes, ocean_npes integer none If concurrent is set to true, we use these to set the list of PEs on which each component runs. At least one of them must be set to a number between 0 and NPES. If exactly one of these two is set non-zero, the other is set to the remainder from NPES. If both are set non-zero they must add up to NPES.
    atmos_nthreads, ocean_nthreads integer 1 We set here the number of OpenMP threads to use separately for each component.
    radiation_nthreads integer 1 Number of threads to use for the concurrent radiation when do_concurrent_radiation = .true., otherwise is equal to atmos_nthreads
    use_lag_fluxes logical .TRUE. If true, the ocean is forced with SBCs from one coupling timestep ago. If false, the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable.
    concurrent_ice logical .FALSE. If true, the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=true, this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities.
    slow_ice_with_ocean logical .FALSE. If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice.
    restart_interval integer, dimension(6) (/0,0,0,0,0,0/) The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out.
    do_debug logical .FALSE. If .TRUE. print additional debugging messages.
    do_chksum logical .FALSE. Turns on/off checksum of certain variables.
    do_endpoint_chksum logical .TRUE. Report checksums of the start and end states of certain variables.
    +
    Note
      +
    1. If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.
    2. +
    3. The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.
    4. +
    5. The run length must be an intergal multiple of the coupling timestep dt_cpld.
    6. +
    +
    +
    + + + + diff --git a/docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html b/docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html new file mode 100644 index 00000000..0b316275 --- /dev/null +++ b/docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html @@ -0,0 +1,94 @@ + + + + + + + +FMS Coupler: full/delete Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    delete Directory Reference
    +
    +
    + + + + + + + + + + + +

    +Files

    file  use_am3_only.f90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    file  use_land_and_am3.f90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    file  use_land_only.f90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    +
    + + + + diff --git a/docs/html/dir_9982052f7ce695d12571567315b2fafa.html b/docs/html/dir_9982052f7ce695d12571567315b2fafa.html new file mode 100644 index 00000000..bc97770d --- /dev/null +++ b/docs/html/dir_9982052f7ce695d12571567315b2fafa.html @@ -0,0 +1,88 @@ + + + + + + + +FMS Coupler: shared Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    shared Directory Reference
    +
    +
    + + + + + +

    +Files

    file  surface_flux.F90
     Handles calculation of fluxes on the exchange grids, see module page for more information.
     
    +
    + + + + diff --git a/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html b/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html new file mode 100644 index 00000000..45b4fa9b --- /dev/null +++ b/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html @@ -0,0 +1,88 @@ + + + + + + + +FMS Coupler: SHiELD Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    SHiELD Directory Reference
    +
    +
    + + + + + +

    +Files

    file  coupler_main.F90
     Main driver program for the SHiELD model.
     
    +
    + + + + diff --git a/docs/html/dir_ec0543676189fadf8843b558a280dd29.html b/docs/html/dir_ec0543676189fadf8843b558a280dd29.html new file mode 100644 index 00000000..7ec0e79c --- /dev/null +++ b/docs/html/dir_ec0543676189fadf8843b558a280dd29.html @@ -0,0 +1,94 @@ + + + + + + + +FMS Coupler: simple Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    simple Directory Reference
    +
    +
    + + + + + + + + + + + +

    +Files

    file  coupler_main.F90
     Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90
     
    file  flux_exchange.F90
     Routines to handle flux exchanges through exchange grids for the simple coupler.
     
    file  ice_model.F90
     Handles ice component updates and time steps.
     
    +
    + + + + diff --git a/docs/html/dir_f6406403be25082e487bde7aa9e18575.html b/docs/html/dir_f6406403be25082e487bde7aa9e18575.html new file mode 100644 index 00000000..6fc3b3a4 --- /dev/null +++ b/docs/html/dir_f6406403be25082e487bde7aa9e18575.html @@ -0,0 +1,116 @@ + + + + + + + +FMS Coupler: full Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    full Directory Reference
    +
    +
    + + + + +

    +Directories

    directory  delete
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Files

    file  atm_land_ice_flux_exchange-old.F90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    file  atm_land_ice_flux_exchange.F90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    file  atmos_ocean_dep_fluxes_calc.F90
     Calculates ocean and atmosphere deposition gas fluxes.
     
    file  atmos_ocean_fluxes_calc.F90
     Calculates gas fluxes for atmosphere and ocean.
     
    file  coupler_main.F90
     Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean).
     
    file  flux_exchange.F90
     The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved.
     
    file  full_coupler_mod.F90
     
    file  ice_ocean_flux_exchange.F90
     Handles flux calculations and exchange grids for ice and ocean.
     
    file  land_ice_flux_exchange.F90
     Handles flux exchanges and exchange grids between land and ice grids.
     
    +
    + + + + diff --git a/docs/html/files.html b/docs/html/files.html new file mode 100644 index 00000000..732baba8 --- /dev/null +++ b/docs/html/files.html @@ -0,0 +1,103 @@ + + + + + + + +FMS Coupler: File List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    File List
    +
    +
    +
    Here is a list of all files with brief descriptions:
    +
    [detail level 123]
    + + + + + + + + + + + + + + + + + + + + + + +
      full
      delete
     use_am3_only.f90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     use_land_and_am3.f90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     use_land_only.f90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     atm_land_ice_flux_exchange-old.F90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     atm_land_ice_flux_exchange.F90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     atmos_ocean_dep_fluxes_calc.F90Calculates ocean and atmosphere deposition gas fluxes
     atmos_ocean_fluxes_calc.F90Calculates gas fluxes for atmosphere and ocean
     coupler_main.F90Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean)
     flux_exchange.F90The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved
     full_coupler_mod.F90
     ice_ocean_flux_exchange.F90Handles flux calculations and exchange grids for ice and ocean
     land_ice_flux_exchange.F90Handles flux exchanges and exchange grids between land and ice grids
      shared
     surface_flux.F90Handles calculation of fluxes on the exchange grids, see module page for more information
      SHiELD
     coupler_main.F90Main driver program for the SHiELD model
      simple
     coupler_main.F90Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90
     flux_exchange.F90Routines to handle flux exchanges through exchange grids for the simple coupler
     ice_model.F90Handles ice component updates and time steps
    +
    +
    + + + + diff --git a/docs/html/flux_exchange_conf.html b/docs/html/flux_exchange_conf.html new file mode 100644 index 00000000..423345b8 --- /dev/null +++ b/docs/html/flux_exchange_conf.html @@ -0,0 +1,102 @@ + + + + + + + +FMS Coupler: Flux Exchange Configuration + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    Flux Exchange Configuration
    +
    +
    +

    flux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables.

    + + + + + + + + + + + + + + + + + + + + + + + +
    Variable Name Type Default Value Description
    z_ref_heat real 2.0 Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q).
    z_ref_mom real 10.0 Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m).
    do_area_weighted_flux logical .FALSE.
    debug_stocks logical .FALSE.
    divert_stocks_report logical .FALSE.
    do_runoff logical .TRUE. Turns on/off the land runoff interpolation to the ocean.
    do_forecast logical .FALSE.
    nblocks integer 1 Specify number of blocks that n_xgrid_sfc is divided into. The main purpose is for Openmp implementation. Normally you may set nblocks to be coupler_nml atmos_nthreads.
    partition_fprec_from_lprec logical .FALSE. Option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter
    scale_precip_2d logical .false. Option to scale the Atmlprec. If this varible is set to .true. Atmlprec will be rescaled by a field read from the data_table
    +
    + + + + diff --git a/docs/html/full_2coupler__main_8_f90.html b/docs/html/full_2coupler__main_8_f90.html new file mode 100644 index 00000000..1de9508d --- /dev/null +++ b/docs/html/full_2coupler__main_8_f90.html @@ -0,0 +1,124 @@ + + + + + + + +FMS Coupler: full/coupler_main.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    coupler_main.F90 File Reference
    +
    +
    +

    (e357d8ffc44c2808628ec7912c827d2ad41978b7)

    +

    Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean). +More...

    + + + + +

    +Functions/Subroutines

    program coupler_main
     
    +

    Detailed Description

    +

    Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean).

    +

    Please see the main page for additional information.

    +

    Function/Subroutine Documentation

    + +

    ◆ coupler_main()

    + +
    +
    + + + + + + + +
    program coupler_main ()
    +
    +
    Exceptions
    + + + + + + + +
    FATAL,no namelist value for current_dateA namelist value for current_date must be given if no restart file for coupler_main (INPUT/coupler.res) is found.
    FATAL,invalid namelist value for calendarThe value of calendar must be 'gregorian', 'julian', 'noleap', or 'thirty_day'. See the namelist documentation.
    FATAL,no namelist value for calendarIf no restart file is present, then a namelist value for calendar must be specified.
    FATAL,initial time is greater than current timeIf a restart file is present, then the namelist value for either current_date or start_date was incorrectly set.
    FATAL,run length must be multiple of ocean time stepThere must be an even number of ocean time steps for the requested run length.
    FATAL,final time does not match expected ending timeThis error should probably not occur because of checks done at initialization time.
    +
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/full_2flux__exchange_8_f90.html b/docs/html/full_2flux__exchange_8_f90.html new file mode 100644 index 00000000..eca44005 --- /dev/null +++ b/docs/html/full_2flux__exchange_8_f90.html @@ -0,0 +1,337 @@ + + + + + + + +FMS Coupler: full/flux_exchange.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    flux_exchange.F90 File Reference
    +
    +
    +

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    +

    The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved. +More...

    + + + + +

    +Modules

    module  flux_exchange_mod
     
    + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public flux_exchange_mod::gas_exchange_init (gas_fields_atm, gas_fields_ice, gas_fluxes)
     Gas and tracer exchange initialization routine. More...
     
    subroutine, public flux_exchange_mod::flux_exchange_init (Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)
     Initialization routine. More...
     
    subroutine, public flux_exchange_mod::flux_check_stocks (Time, Atm, Lnd, Ice, Ocn_state)
     Check stock values. More...
     
    subroutine, public flux_exchange_mod::flux_init_stocks (Time, Atm, Lnd, Ice, Ocn_state)
     Initialize stock values. More...
     
    subroutine flux_exchange_mod::check_atm_grid (Atm, grid_file)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    character(len=128) flux_exchange_mod::version = '$Id$'
     
    character(len=128) flux_exchange_mod::tag = '$Name$'
     
    logical flux_exchange_mod::do_init = .true.
     
    real, parameter flux_exchange_mod::bound_tol = 1e-7
     
    real, parameter flux_exchange_mod::d622 = rdgas/rvgas
     
    real, parameter flux_exchange_mod::d378 = 1.0-d622
     
    real flux_exchange_mod::z_ref_heat = 2.
     Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
     
    real flux_exchange_mod::z_ref_mom = 10.
     Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
     
    logical flux_exchange_mod::do_area_weighted_flux = .FALSE.
     
    logical flux_exchange_mod::debug_stocks = .FALSE.
     
    logical flux_exchange_mod::divert_stocks_report = .FALSE.
     
    logical flux_exchange_mod::do_runoff = .TRUE.
     Turns on/off the land runoff interpolation to the ocean. More...
     
    logical flux_exchange_mod::do_forecast = .false.
     
    integer flux_exchange_mod::nblocks = 1
     
    logical flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
     option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
     
    real, parameter flux_exchange_mod::tfreeze = 273.15
     
    logical flux_exchange_mod::scale_precip_2d = .false.
     
    logical flux_exchange_mod::gas_fluxes_initialized = .false.
     
    type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_atm
     Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
     
    type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_ice
     Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
     
    type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fluxes
     A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. More...
     
    integer flux_exchange_mod::ni_atm
     
    integer flux_exchange_mod::nj_atm
     to do atmos diagnostic from flux_ocean_to_ice More...
     
    real, dimension(3) flux_exchange_mod::ccc
     for conservation checks More...
     
    integer flux_exchange_mod::cplclock
     
    real flux_exchange_mod::dt_atm
     
    real flux_exchange_mod::dt_cpl
     
    real flux_exchange_mod::atm_precip_new
     
    +

    Detailed Description

    +

    The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved.

    +
    Author
    Bruce Wyman Bruce.nosp@m..Wym.nosp@m.an@no.nosp@m.aa.g.nosp@m.ov
    +
    +V. Balaji V.Bal.nosp@m.aji@.nosp@m.noaa..nosp@m.gov
    +
    +Sergey Malyshev Serge.nosp@m.y.Ma.nosp@m.lyshe.nosp@m.v@no.nosp@m.aa.go.nosp@m.v
    +
      +
    1. This version of flux_exchange_mod allows the definition of physically independent grids for atmosphere, land and sea ice. Ice and ocean must share the same physical grid (though the domain decomposition on parallel systems may be different). Grid information is input through the grid_spec file (URL). The masked region of the land grid and ice/ocean grid must "tile" each other. The masked region of the ice grid and ocean grid must be identical.

      +         ATMOSPHERE  |----|----|----|----|----|----|----|----|
                     LAND  |---|---|---|---|xxx|xxx|xxx|xxx|xxx|xxx|
                      ICE  |xxx|xxx|xxx|xxx|---|---|---|---|---|---|
                     OCEAN |xxx|xxx|xxx|xxx|---|---|---|---|---|---|
      + 

      where |xxx| represents a masked grid point

      +

      The atmosphere, land, and ice grids exchange information using the exchange grid xmap_sfc.

      +

      The land and ice grids exchange runoff data using the exchange grid xmap_runoff.

      +

      Transfer of data between the ice bottom and ocean does not require an exchange grid as the grids are physically identical. The flux routines will automatically detect and redistribute data if their domain decompositions are different.

      +

      To get information from the atmosphere to the ocean it must pass through the ice model, first by interpolating from the atmospheric grid to the ice grid, and then transferring from the ice grid to the ocean grid.

      +
    2. +
    3. Each component model must have a public defined data type containing specific boundary fields. A list of these quantities is located in the NOTES of this document.
    4. +
    5. The surface flux of sensible heat and surface evaporation can be implicit functions of surface temperature. As a consequence, the parts of the land and sea-ice models that update the surface temperature must be called on the atmospheric time step
    6. +
    7. The surface fluxes of all other tracers and of momentum are assumed to be explicit functions of all surface parameters.
    8. +
    9. While no explicit reference is made within this module to the implicit treatment of vertical diffusion in the atmosphere and in the land or sea-ice models, the module is designed to allow for simultaneous implicit time integration on both sides of the surface interface.
    10. +
    11. Due to #5, the diffusion part of the land and ice models must be called on the atmospheric time step, although in the case of concurrent-ice coupling, this version of the sea-ice that is called by the atmosphere may later be replaced by a version of the ice that is tightly coupled with the ocean.
    12. +
    13. The fluxes of additional tracers related to biological quantities or the air-sea exchange of gases are accomplished by specifying fields that will be passed between components via the "field_table" and the use of named fields in the coupler_..._bc_types.
    14. +
    15. Any field passed from one component to another may be "faked" to a constant value, or to data acquired from a file, using the data_override feature of FMS. The fields to override are runtime configurable, using the text file data_table for input. See the data_override_mod documentation for more details.

      +

      We DO NOT RECOMMEND exercising the data override capabilities of the FMS coupler until the user has acquired considerable sophistication in running FMS.

      +

      Here is a listing of the override capabilities of the flux_exchange module:

        +
      • FROM the atmosphere boundary TO the exchange grid (in sfc_boundary_layer):

        +

        t_bot, q_bot, z_bot, p_bot, u_bot, v_bot, p_surf, slp, gust

        +
      • +
      • FROM the ice boundary TO the exchange grid (in sfc_boundary_layer):

        +

        t_surf, rough_mom, rough_heat, rough_moist, albedo, u_surf, v_surf

        +
      • +
      • FROM the land boundary TO the exchange grid (in sfc_boundary_layer):

        +

        t_surf, t_ca, q_ca, rough_mom, rough_heat, albedo

        +
      • +
      • FROM the exchange grid TO land_ice_atmos_boundary (in sfc_boundary_layer):

        +

        t, albedo, land_frac, dt_t, dt_q, u_flux, v_flux, dtaudu, dtaudv, u_star, b_star, rough_mom

        +
      • +
      • FROM the atmosphere boundary TO the exchange grid (in flux_down_from_atmos):

        +

        flux_sw, flux_lw, lprec, fprec, coszen, dtmass, delta_t, delta_q, dflux_t, dflux_q

        +
      • +
      • FROM the exchange grid TO the land boundary (in flux_down_from_atmos):

        +

        t_flux, q_flux, lw_flux, sw_flux, lprec, fprec, dhdt, dedt, dedq, drdt, drag_q, p_surf

        +
      • +
      • FROM the exchange grid TO the ice boundary (in flux_down_from_atmos):

        +

        u_flux, v_flux, t_flux, q_flux, lw_flux, lw_flux_dn, sw_flux, sw_flux_dn, lprec, fprec, dhdt, dedt, drdt, coszen, p

        +
      • +
      • FROM the land boundary TO the ice boundary (in flux_land_to_ice):

        +

        runoff, calving

        +
      • +
      • FROM the ice boundary TO the ocean boundary (in flux_ice_to_ocean):

        +

        u_flux, v_flux, t_flux, q_flux, salt_flux, lw_flux, sw_flux, lprec, fprec, runoff, calving, p, ustar_berg, area_berg, mass_berg

        +
      • +
      • FROM the ocean boundary TO the ice boundary (in flux_ocean_to_ice):

        +

        u, v, t, s, frazil, sea_level

        +
      • +
      • FROM the ice boundary TO the atmosphere boundary (in flux_up_to_atmos):

        +

        t_surf

        +
      • +
      • FROM the land boundary TO the atmosphere boundary (in flux_up_to_atmos):

        +

        t_ca, t_surf, q_ca

        +
      • +
      +

      See NOTES below for an explanation of the field names.

      +
    16. +
    +

    +Diagnostic Fields

    +

    The table below contains the available diagnostic fields is the flux diagnostic module.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field Name Units Description
    land_mask none Fractional amount of land
    wind m/s Wind speed for flux calculations
    drag_moist none Drag coeff for moisture
    drag_heat none Drag coeff for heat
    drag_mom none Drag coeff for momentum
    rough_moist m Surface roughness for moisture
    rough_heat m Surface roughness for heat
    rough_mom m Surface roughness for momentum
    u_star m/s Friction velocity
    b_star m/s Buoyancy scale
    q_star kg water/kg air moisture scale
    t_atm deg_k temperature at btm level
    u_atm m/s u wind component at btm level
    v_atm m/s v wind component at btm level
    q_atm kg/kg specific humidity at btm level
    p_atm pa pressure at btm level
    z_atm m height of btm level
    gust m/s gust scale
    rh_ref percent relative humidity at ref height
    t_ref deg_k temperature at ref height
    u_ref m/s zonal wind component at ref height
    v_ref m/s meridional wind component at ref height
    del_h none ref height interp factor for heat
    del_m none ref height interp factor for momentum
    del_q none ref height interp factor for moisture
    tau_x pa zonal wind stress
    tau_y pa meridional wind stress
    ice_mask none fractional amount of sea ice
    t_surf deg_k surface temperature
    t_ca deg_k canopy air temperature
    q_surf kg/kg surface specific humidity
    shflx w/m2 sensible heat flux
    evap kg/m2/s evaporation rate
    lwflx w/m2 net (down-up) longwave flux
    +

    +Main Program Example

    +

    Below is some pseudo-code to illustrate the logic of the main loop.

    +
    DO slow time steps(ocean)
    call flux_ocean_to_ice
    call ice_slow_up
    DO fast time steps(atmos)
    call sfc_boundary_layer
    call atmos_down
    call flux_down_from_atmos
    call land_fast
    call ice_fast
    call flux_up_to_atmos
    call atmos_up
    END DO
    call ice_slow_dn
    call flux_ice_to_ocean
    call ocean
    END DO
    Note
    LAND_FAST and ICE_FAST must update the surface temperature
    +

    +Variables In Defined Data Types For Component Models

    +

    +Atmosphere

    +
    type(atmos_boundary_data_type) :: atm
    real, dimension(:) :: Atm%lon_bnd & ! longitude axis grid box boundaries in radians
    ! must be monotonic
    atm%lat_bnd ! latitude axis grid box boundaries in radians
    ! must be monotonic
    real, dimension(:,:) :: Atm%t_bot & ! temperature at lowest model level
    Atm%q_bot & ! specific humidity at lowest model level
    Atm%z_bot & ! height above the surface for the lowest model level (m)
    Atm%p_bot & ! pressure at lowest model level (pa)
    Atm%u_bot & ! zonal wind component at lowest model level (m/s)
    Atm%v_bot & ! meridional wind component at lowest model level (m/s)
    Atm%p_surf & ! surface pressure (pa)
    Atm%slp & ! sea level pressure (pa)
    Atm%gust & ! gustiness factor (m/s)
    Atm%flux_sw & ! net shortwave flux at the surface
    Atm%flux_lw & ! downward longwave flux at the surface
    Atm%lprec & ! liquid precipitation (kg/m2)
    Atm%fprec & ! water equivalent frozen precipitation (kg/m2)
    Atm%coszen & ! cosine of the zenith angle
    integer, dimension(4) :: Atm%axes ! Axis identifiers returned by diag_axis_init for the
    ! atmospheric model axes: x, y, z_full, z_half.

    The following five fields are gathered into a data type for convenience in passing this information through the different levels of the atmospheric model – these fields are rlated to the simultaneous implicit time steps in the atmosphere and surface models – they are described more fully in flux_exchange.tech.ps and in the documntation for vert_diff_mod

    +
    type(surf_diff_type) :: atm%Surf_Diff
    real, dimension(:,:) :: Atm%Surf_Diff%dtmass & !dt/mass where dt=atmospheric time step ((i+1)=(i-1) for leapfrog)(s)
    ! mass = mass per unit area of lowest atmosphehic layer (Kg/m2))
    atm%Surf_Diff%delta_t & ! increment ((i+1) = (i-1) for leapfrog) in temperature of
    ! lowest atmospheric layer (K)
    atm%Surf_Diff%delta_q & ! increment ((i+1) = (i-1) for leapfrog) in specific humidity of
    ! lowest atmospheric layer (nondimensional -- Kg/Kg)
    atm%Surf_Diff%dflux_t & ! derivative of implicit part of downward temperature flux at top of
    ! lowest atmospheric layer with respect to temperature
    ! of lowest atmospheric layer (Kg/(m2 s))
    atm%Surf_Diff%dflux_q ! derivative of implicit part of downward moisture flux at top of
    ! lowest atmospheric layer with respect to specific humidity of
    ! of lowest atmospheric layer(kg/(m2 s))

    +Land

    +
    type(land_boundary_data_type) :: land
    real, dimension(:) :: Land%lon_bnd & ! longitude axis grid box boundaries in radians
    ! must be monotonic
    land%lat_bnd ! latitude axis grid box boundaries in radians
    ! must be monotonic
    logical, dimension(:,:,:) :: Land%mask & ! land/sea mask (true for land)
    Land%glacier ! glacier mask (true for glacier)
    real, dimension(:,:,:) :: Land%tile_size & ! fractional area of each tile (partition)
    Land%t_surf & ! surface temperature (deg k)
    Land%albedo & ! surface albedo (fraction)
    Land%rough_mom & ! surface roughness for momentum (m)
    Land%rough_heat & ! surface roughness for heat/moisture (m)
    Land%stomatal & ! stomatal resistance
    Land%snow & ! snow depth (water equivalent) (kg/m2)
    Land%water & ! water depth of the uppermost bucket (kg/m2)
    Land%max_water ! maximum water depth allowed in the uppermost bucket (kg/m2)

    +Ice

    +
    type(ice_boundary_data_type) :: ice
    real, dimension(:) :: Ice%lon_bnd & ! longitude axis grid box boundaries for temperature points
    ! in radians (must be monotonic)
    ice%lat_bnd & ! latitude axis grid box boundaries for temperature points
    ! in radians (must be monotonic)
    ice%lon_bnd_uv & ! longitude axis grid box boundaries for momentum points
    ! in radians (must be monotonic)
    ice%lat_bnd_uv ! latitude axis grid box boundaries for momentum points
    ! in radians (must be monotonic)
    logical, dimension(:,:,:) :: Ice%mask & ! ocean/land mask for temperature points
    ! (true for ocean, with or without ice)
    ice%mask_uv & ! ocean/land mask for momentum points
    ! (true for ocean, with or without ice)
    ice%ice_mask ! optional ice mask (true for ice)
    real, dimension(:,:,:) :: Ice%part_size & ! fractional area of each partition of a temperature grid box
    Ice%part_size_uv ! fractional area of each partition of a momentum grid box

    The following fields are located on the ice top grid

    +
    real, dimension(:,:,:) :: Ice%t_surf & ! surface temperature (deg k)
    Ice%albedo & ! surface albedo (fraction)
    Ice%rough_mom & ! surface roughness for momentum (m)
    Ice%rough_heat & ! surface roughness for heat/moisture (m)
    Ice%u_surf & ! zonal (ocean/ice) current at the surface (m/s)
    Ice%v_surf ! meridional (ocean/ice) current at the surface (m/s)

    The following fields are located on the ice bottom grid

    +
    real, dimension(:,:,:) :: Ice%flux_u & ! zonal wind stress (Pa)
    Ice%flux_v & ! meridional wind stress (Pa)
    Ice%flux_t & ! sensible heat flux (w/m2)
    Ice%flux_q & ! specific humidity flux (kg/m2/s)
    Ice%flux_sw & ! net (down-up) shortwave flux (w/m2)
    Ice%flux_lw & ! net (down-up) longwave flux (w/m2)
    Ice%lprec & ! mass of liquid precipitation since last time step (Kg/m2)
    Ice%fprec & ! mass of frozen precipitation since last time step (Kg/m2)
    Ice%runoff ! mass of runoff water since last time step (Kg/m2)

    +Ocean

    +
    type(ocean_boundary_data_type) :: ocean
    real, dimension(:) :: Ocean%Data%lon_bnd & ! longitude axis grid box boundaries for temperature
    ! points on the ocean DATA GRID (radians)
    ocean%Data%lat_bnd & ! latitude axis grid box boundaries for temperature
    ! points on the ocean DATA GRID (radians)
    ocean%Data%lon_bnd_uv & ! longitude axis grid box boundaries for momentum
    ! points on the ocean DATA GRID (radians)
    ocean%Data%lat_bnd_uv & ! latitude axis grid box boundaries for momentum
    ! points on the ocean DATA GRID (radians)
    ocean%Ocean%lon_bnd & ! longitude axis grid box boundaries for temperature
    ! points on the ocean MODEL GRID (radians)
    ocean%Ocean%lat_bnd & ! latitude axis grid box boundaries for temperature
    ! points on the ocean MODEL GRID (radians)
    ocean%Ocean%lon_bnd_uv & ! longitude axis grid box boundaries for momentum
    ! points on the ocean MODEL GRID (radians)
    ocean%Ocean%lat_bnd_uv & ! latitude axis grid box boundaries for momentum
    ! points on the ocean model grid(radians)
    Note
    The data values in all longitude and latitude grid box boundary array must be monotonic.
    +
    logical, dimension(:,:) :: Ocean%Data%mask & ! ocean/land mask for temperature points on the ocean
    ! DATA GRID (true for ocean)
    ocean%Data%mask_uv & ! ocean/land mask for momentum points on the ocean
    ! DATA GRID (true for ocean)
    ocean%Ocean%mask & ! ocean/land mask for temperature points on the ocean
    ! MODEL GRID (true for ocean)
    ocean%Ocean%mask_uv ! ocean/land mask for momentum points on the ocean
    ! MODEL GRID (true for ocean)
    real, dimension(:,:) :: Ocean%t_surf_data & ! surface temperature on the ocean DATA GRID (deg k)
    Ocean%t_surf & ! surface temperature on the ocean MODEL GRID (deg k)
    Ocean%u_surf & ! zonal ocean current at the surface on the ocean
    ! MODEL GRID (m/s)
    ocean%v_surf & ! meridional ocean current at the surface on the
    ! ocean MODEL GRID (m/s)
    ocean%frazil ! frazil at temperature points on the ocean model grid
    + + + + diff --git a/docs/html/full__coupler__mod_8_f90.html b/docs/html/full__coupler__mod_8_f90.html new file mode 100644 index 00000000..8d9f9504 --- /dev/null +++ b/docs/html/full__coupler__mod_8_f90.html @@ -0,0 +1,344 @@ + + + + + + + +FMS Coupler: full/full_coupler_mod.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    full_coupler_mod.F90 File Reference
    +
    +
    +

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    #include <file_version.fh>
    +
    + + + + + + + + + +

    +Data Types

    type  full_coupler_mod::coupler_clock_type
     coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. More...
     
    type  full_coupler_mod::coupler_components_type
     
    type  full_coupler_mod::coupler_chksum_type
     The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. More...
     
    + + + +

    +Modules

    module  full_coupler_mod
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public full_coupler_mod::coupler_init (Atm, Ocean, Land, Ice, Ocean_state, Atmos_land_boundary, Atmos_ice_boundary, Ocean_ice_boundary, Ice_ocean_boundary, Land_ice_atmos_boundary, Land_ice_boundary, Ice_ocean_driver_CS, Ice_bc_restart, Ocn_bc_restart, ensemble_pelist, slow_ice_ocean_pelist, conc_nthreads, coupler_clocks, coupler_components_obj, coupler_chksum_obj, Time_step_cpld, Time_step_atmos, Time_atmos, Time_ocean, num_cpld_calls, num_atmos_calls, Time, Time_start, Time_end, Time_restart, Time_restart_current)
     Initialize all defined exchange grids and all boundary maps. More...
     
    subroutine full_coupler_mod::initialize_coupler_components_obj (this, Atm, Land, Ice, Ocean, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Land_ice_boundary, Ice_ocean_boundary, Ocean_ice_boundary)
     This subroutine associates the pointer in an object of coupler_components_type to the model components. More...
     
    subroutine full_coupler_mod::get_component (this, retrieve_component)
     Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm. More...
     
    subroutine full_coupler_mod::initialize_coupler_chksum_obj (this, components_obj)
     This subroutine associates the pointer in an object of coupler_chksum_type to the component models. More...
     
    subroutine full_coupler_mod::get_components_obj (this, components_obj)
     This subroutine retrieves coupler_chksum_objcomponents_obj. More...
     
    subroutine, public full_coupler_mod::coupler_end (Atm, Land, Ice, Ocean, Ocean_state, Land_ice_atmos_boundary, Atmos_ice_boundary, Atmos_land_boundary, Ice_ocean_boundary, Ocean_ice_boundary, Ocn_bc_restart, Ice_bc_restart, current_timestep, Time_current, Time_start, Time_end, Time_restart_current, coupler_chksum_obj, coupler_clocks)
     This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time. More...
     
    subroutine full_coupler_mod::add_domain_dimension_data (fileobj)
     Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1. More...
     
    subroutine, public full_coupler_mod::coupler_restart (Atm, Ice, Ocean, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart_current, Time_start, time_stamp)
     Writing restart file that contains running time and restart file writing time. More...
     
    subroutine full_coupler_mod::get_coupler_chksums (this, id, timestep)
     Print out checksums for several atm, land and ice variables. More...
     
    subroutine full_coupler_mod::get_atmos_ice_land_ocean_chksums (this, id, timestep)
     This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum. More...
     
    subroutine full_coupler_mod::get_atmos_ice_land_chksums (this, id, timestep)
     This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (atm%pe) then
    call mpp_set_current_pelist(atm%pelist)
    call atmos_ice_land_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist. More...

     
    subroutine full_coupler_mod::get_slow_ice_chksums (this, id, timestep)
     This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (ice%slow_ice_pe) then
    call mpp_set_current_pelist(ice%slow_pelist)
    call slow_ice_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist. More...

     
    subroutine full_coupler_mod::get_ocean_chksums (this, id, timestep)
     This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (ocean%is_ocean_pe) then
    call mpp_set_current_pelist(ocean%pelist)
    call ocean_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist. More...

     
    subroutine full_coupler_mod::coupler_set_clock_ids (coupler_clocks, Atm, Land, Ice, Ocean, ensemble_pelist, slow_ice_ocean_pelist, ensemble_id)
     This subroutine sets the ID for clocks used in coupler_main. More...
     
    subroutine, public full_coupler_mod::coupler_flux_init_finish_stocks (Time, Atm, Land, Ice, Ocean_state, coupler_clocks, init_stocks, finish_stocks)
     This subroutine calls flux_init_stocks or does the final call to flux_check_stocks. More...
     
    subroutine, public full_coupler_mod::coupler_flux_check_stocks (nc, Time, Atm, Land, Ice, Ocean_state, coupler_clocks)
     This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks. More...
     
    subroutine, public full_coupler_mod::coupler_flux_ocean_to_ice (Ocean, Ice, Ocean_ice_boundary, coupler_clocks, slow_ice_ocean_pelist)
     This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice. More...
     
    subroutine, public full_coupler_mod::coupler_flux_ice_to_ocean (Ice, Ocean, Ice_ocean_boundary, coupler_clocks, slow_ice_ocean_pelist, set_current_slow_ice_ocean_pelist)
     This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True. More...
     
    subroutine, public full_coupler_mod::coupler_unpack_ocean_ice_boundary (nc, Time_flux_ocean_to_ice, Ice, Ocean_ice_boundary, coupler_clocks, coupler_chksum_obj)
     This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True. More...
     
    subroutine, public full_coupler_mod::coupler_exchange_slow_to_fast_ice (Ice, coupler_clocks)
     This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls. More...
     
    subroutine, public full_coupler_mod::coupler_exchange_fast_to_slow_ice (Ice, coupler_clocks, set_ice_current_pelist)
     This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true. More...
     
    subroutine, public full_coupler_mod::coupler_set_ice_surface_fields (Ice, coupler_clocks)
     This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call. More...
     
    subroutine, public full_coupler_mod::coupler_generate_sfc_xgrid (Land, Ice, coupler_clocks)
     This subroutine calls generate_sfc_xgrid. Clocks are set and before the call. More...
     
    subroutine, public full_coupler_mod::coupler_atmos_tracer_driver_gather_data (Atm, coupler_clocks)
     This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call. More...
     
    subroutine, public full_coupler_mod::coupler_sfc_boundary_layer (Atm, Land, Ice, Land_ice_atmos_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics. More...
     
    subroutine, public full_coupler_mod::coupler_update_atmos_model_dynamics (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public full_coupler_mod::coupler_update_atmos_model_radiation (Atm, Land_ice_atmos_boundary, coupler_clocks, current_timestep, coupler_chksum_obj)
     This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True. More...
     
    subroutine, public full_coupler_mod::coupler_update_atmos_model_down (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public full_coupler_mod::coupler_flux_down_from_atmos (Atm, Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_clocks, coupler_chksum_obj)
     This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public full_coupler_mod::coupler_update_land_model_fast (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public full_coupler_mod::coupler_update_ice_model_fast (Ice, Atmos_ice_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public full_coupler_mod::coupler_flux_up_to_atmos (Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. More...
     
    subroutine, public full_coupler_mod::coupler_update_atmos_model_up (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public full_coupler_mod::coupler_flux_atmos_to_ocean (Atm, Atmos_ice_boundary, Ice, Time_atmos)
     This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc. More...
     
    subroutine, public full_coupler_mod::coupler_update_atmos_model_state (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively. More...
     
    subroutine, public full_coupler_mod::coupler_update_land_model_slow (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
     In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public full_coupler_mod::coupler_flux_land_to_ice (Land, Ice, Land_ice_boundary, Time, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public full_coupler_mod::coupler_unpack_land_ice_boundary (Ice, Land_ice_boundary, coupler_clocks)
     This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary. More...
     
    subroutine, public full_coupler_mod::coupler_update_ice_model_slow_and_stocks (Ice, coupler_clocks)
     This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks. More...
     
    subroutine, public full_coupler_mod::coupler_update_ocean_model (Ocean, Ocean_state, Ice_ocean_boundary, Time_ocean, Time_step_cpld, current_timestep, coupler_chksum_obj)
     This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public full_coupler_mod::coupler_intermediate_restart (Atm, Ice, Ocean, Ocean_state, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart, Time_restart_current, Time_start)
     Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time. More...
     
    subroutine, public full_coupler_mod::coupler_summarize_timestep (current_timestep, num_cpld_calls, coupler_chksum_obj, is_atmos_pe, omp_sec, imb_sec)
     This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    integer, dimension(6), public full_coupler_mod::restart_interval = (/ 0, 0, 0, 0, 0, 0/)
     namelist interface More...
     
    integer, dimension(6) full_coupler_mod::current_date = (/ 0, 0, 0, 0, 0, 0 /)
     The date that the current integration starts with. (See force_date_from_namelist.) More...
     
    character(len=17) full_coupler_mod::calendar = ' '
     
    logical full_coupler_mod::force_date_from_namelist = .false.
     Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used. More...
     
    integer, public full_coupler_mod::months =0
     Number of months the current integration will be run. More...
     
    integer, public full_coupler_mod::days =0
     Number of days the current integration will be run. More...
     
    integer, public full_coupler_mod::hours =0
     Number of hours the current integration will be run. More...
     
    integer, public full_coupler_mod::minutes =0
     Number of minutes the current integration will be run. More...
     
    integer, public full_coupler_mod::seconds =0
     Number of seconds the current integration will be run. More...
     
    integer, public full_coupler_mod::dt_atmos = 0
     Atmospheric model time step in seconds, including the fast coupling with land and sea ice. More...
     
    integer, public full_coupler_mod::dt_cpld = 0
     Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. More...
     
    integer, public full_coupler_mod::atmos_npes =0
     The number of MPI tasks to use for the atmosphere. More...
     
    integer, public full_coupler_mod::ocean_npes =0
     The number of MPI tasks to use for the ocean. More...
     
    integer, public full_coupler_mod::ice_npes =0
     The number of MPI tasks to use for the ice. More...
     
    integer, public full_coupler_mod::land_npes =0
     The number of MPI tasks to use for the land. More...
     
    integer, public full_coupler_mod::atmos_nthreads =1
     Number of OpenMP threads to use in the atmosphere. More...
     
    integer, public full_coupler_mod::ocean_nthreads =1
     Number of OpenMP threads to use in the ocean. More...
     
    integer, public full_coupler_mod::radiation_nthreads =1
     Number of threads to use for the radiation. More...
     
    logical, public full_coupler_mod::do_atmos =.true.
     Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only. More...
     
    logical, public full_coupler_mod::do_land =.true.
     See do_atmos. More...
     
    logical, public full_coupler_mod::do_ice =.true.
     See do_atmos. More...
     
    logical, public full_coupler_mod::do_ocean =.true.
     See do_atmos. More...
     
    logical, public full_coupler_mod::do_flux =.true.
     See do_atmos. More...
     
    logical, public full_coupler_mod::concurrent =.FALSE.
     If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean... More...
     
    logical, public full_coupler_mod::do_concurrent_radiation =.FALSE.
     If .TRUE. then radiation is done concurrently. More...
     
    logical, public full_coupler_mod::use_lag_fluxes =.TRUE.
     If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. More...
     
    logical, public full_coupler_mod::concurrent_ice =.FALSE.
     If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. More...
     
    logical, public full_coupler_mod::slow_ice_with_ocean =.FALSE.
     If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. More...
     
    logical, public full_coupler_mod::combined_ice_and_ocean =.FALSE.
     
    logical, public full_coupler_mod::do_chksum =.FALSE.
     If .TRUE., do multiple checksums throughout the execution of the model. More...
     
    logical, public full_coupler_mod::do_endpoint_chksum =.TRUE.
     If .TRUE., do checksums of the initial and final states. More...
     
    logical, public full_coupler_mod::do_debug =.FALSE.
     If .TRUE. print additional debugging messages. More...
     
    integer, public full_coupler_mod::check_stocks = 0
     -1: never 0: at end of run only n>0: every n coupled steps More...
     
    logical, public full_coupler_mod::use_hyper_thread = .false.
     
    character(len=80) full_coupler_mod::text
     
    character(len=48), parameter full_coupler_mod::mod_name = 'coupler_main_mod'
     
    integer full_coupler_mod::calendar_type = INVALID_CALENDAR
     
    integer, dimension(6) full_coupler_mod::date_init = (/ 0, 0, 0, 0, 0, 0 /)
     coupled model initial date More...
     
    +
    + + + + diff --git a/docs/html/functions.html b/docs/html/functions.html new file mode 100644 index 00000000..b7ef946f --- /dev/null +++ b/docs/html/functions.html @@ -0,0 +1,450 @@ + + + + + + + +FMS Coupler: Data Fields + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all data types members with links to the data types they belong to:
    + +

    - a -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - o -

    + + +

    - p -

    + + +

    - q -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - u -

    + + +

    - x -

    +
    + + + + diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html new file mode 100644 index 00000000..60bcdca6 --- /dev/null +++ b/docs/html/functions_func.html @@ -0,0 +1,114 @@ + + + + + + + +FMS Coupler: Data Fields - Functions/Subroutines + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html new file mode 100644 index 00000000..bb66d45b --- /dev/null +++ b/docs/html/functions_vars.html @@ -0,0 +1,407 @@ + + + + + + + +FMS Coupler: Data Fields - Variables + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - o -

    + + +

    - q -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - u -

    + + +

    - x -

    +
    + + + + diff --git a/docs/html/globals.html b/docs/html/globals.html new file mode 100644 index 00000000..db785a5a --- /dev/null +++ b/docs/html/globals.html @@ -0,0 +1,114 @@ + + + + + + + +FMS Coupler: File Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all file members with links to the files they belong to:
    +
    + + + + diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html new file mode 100644 index 00000000..9a7419fd --- /dev/null +++ b/docs/html/globals_defs.html @@ -0,0 +1,99 @@ + + + + + + + +FMS Coupler: File Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + + diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html new file mode 100644 index 00000000..3fb8918c --- /dev/null +++ b/docs/html/globals_func.html @@ -0,0 +1,90 @@ + + + + + + + +FMS Coupler: File Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + + diff --git a/docs/html/ice__model_8_f90.html b/docs/html/ice__model_8_f90.html new file mode 100644 index 00000000..d9342c59 --- /dev/null +++ b/docs/html/ice__model_8_f90.html @@ -0,0 +1,204 @@ + + + + + + + +FMS Coupler: simple/ice_model.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ice_model.F90 File Reference
    +
    +
    +

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    +

    Handles ice component updates and time steps. +More...

    + + + + + + +

    +Data Types

    type  ice_model_mod::ice_data_type
     
    type  ice_model_mod::atmos_ice_boundary_type
     
    + + + +

    +Modules

    module  ice_model_mod
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public ice_model_mod::update_ice_model_fast (Atmos_boundary, Ice)
     
    subroutine, public ice_model_mod::update_ice_model_slow (Atmos_boundary, Ice)
     
    subroutine ice_model_mod::prognostic_ice (Ice)
     
    subroutine ice_model_mod::prognostic_sst (Ice)
     
    subroutine, public ice_model_mod::ice_model_init (Ice, Time_Init, Time, Time_step_fast, Time_step_slow, glon_bnd, glat_bnd, Atmos_domain)
     
    subroutine ice_model_mod::ice_register_restart (fileobj, Ice)
     
    subroutine, public ice_model_mod::ice_model_end (Ice)
     
    subroutine ice_model_mod::add_domain_dimension_data (fileobj)
     
    logical function ice_model_mod::is_latlon (lon, lat)
     
    subroutine ice_model_mod::get_cell_center (lonb, latb, lon, lat)
     
    subroutine ice_model_mod::latlon2xyz (sph_coor, xyz_coor)
     
    subroutine ice_model_mod::xyz2latlon (xyz_coor, sph_coor)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    real ice_model_mod::cmin
     
    real ice_model_mod::cmax
     
    real ice_model_mod::diff = 2.092
     
    real ice_model_mod::thickness_min = 0.10
     
    real ice_model_mod::specified_ice_thickness = 2.0
     
    real ice_model_mod::heat_capacity_ocean = 1.e07
     
    real ice_model_mod::temp_ice_freeze = -1.66
     
    real ice_model_mod::roughness_ice = 1.e-4
     
    logical ice_model_mod::mixed_layer_ocean = .false.
     
    logical ice_model_mod::use_climo_ice = .false.
     
    logical ice_model_mod::use_annual_ice = .false.
     
    logical ice_model_mod::use_climo_sst = .false.
     
    logical ice_model_mod::use_annual_sst = .false.
     
    character(len=64) ice_model_mod::ice_method = 'prognostic'
     
    character(len=64) ice_model_mod::sst_method = 'specified'
     
    character(len=64) ice_model_mod::specified
     
    character(len=64) ice_model_mod::uniform
     
    character(len=64) ice_model_mod::or
     
    character(len=64) ice_model_mod::mixed_layer
     
    real ice_model_mod::temp_ice = 270.
     
    real ice_model_mod::temp_sst = 280.
     
    real ice_model_mod::sst_anom = 0.
     
    character(len=64) ice_model_mod::interp_method = "bilinear"
     
    logical ice_model_mod::do_netcdf_restart = .true.
     
    integer ice_model_mod::is
     
    integer ice_model_mod::ie
     
    integer ice_model_mod::js
     
    integer ice_model_mod::je
     
    type(fmsamipinterp_type), save ice_model_mod::amip_ice
     
    type(fmsamipinterp_type), save ice_model_mod::amip_sst
     
    logical ice_model_mod::module_is_initialized = .false.
     
    character(len=64) ice_model_mod::fname = 'INPUT/ice_model.res.nc'
     
    character(len=128) ice_model_mod::version = '$Id$'
     
    character(len=128) ice_model_mod::tagname = '$Name$'
     
    real, parameter ice_model_mod::latent = HLV + HLF
     
    +

    Detailed Description

    +

    Handles ice component updates and time steps.

    +
    + + + + diff --git a/docs/html/ice__ocean__flux__exchange_8_f90.html b/docs/html/ice__ocean__flux__exchange_8_f90.html new file mode 100644 index 00000000..d7c395e4 --- /dev/null +++ b/docs/html/ice__ocean__flux__exchange_8_f90.html @@ -0,0 +1,150 @@ + + + + + + + +FMS Coupler: full/ice_ocean_flux_exchange.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ice_ocean_flux_exchange.F90 File Reference
    +
    +
    +

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    +

    Handles flux calculations and exchange grids for ice and ocean. +More...

    + + + + +

    +Modules

    module  ice_ocean_flux_exchange_mod
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public ice_ocean_flux_exchange_mod::ice_ocean_flux_exchange_init (Time, Ice, Ocean, Ocean_state, ice_ocean_boundary, ocean_ice_boundary, Dt_cpl_in, debug_stocks_in, do_area_weighted_flux_in, ex_gas_fields_ice, ex_gas_fluxes, do_ocean, slow_ice_ocean_pelist_in)
     
    subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean (Ice, Ocean, Ice_Ocean_Boundary)
     
    subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_finish (Time, Ice_Ocean_Boundary)
     flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics. More...
     
    subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice (Ocean, Ice, Ocean_Ice_Boundary)
     Takes the ocean model state and interpolates it onto the bottom of the ice. More...
     
    subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice_finish (Time, Ice, Ocean_Ice_Boundary)
     flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics. More...
     
    subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks (Ice)
     Updates Ice and Ocean stocks. More...
     
    subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_from_ice_stocks (ocean_state, Ocean, Ice_Ocean_boundary)
     Updates Ocean stocks due to input that the Ocean model gets. More...
     
    subroutine ice_ocean_flux_exchange_mod::flux_ice_to_ocean_redistribute (ice, ocean, ice_data, ocn_bnd_data, type, do_area_weighted)
     Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute. More...
     
    subroutine ice_ocean_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine ice_ocean_flux_exchange_mod::check_flux_conservation (Ice, Ocean, Ice_Ocean_Boundary)
     Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true. More...
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    integer, parameter ice_ocean_flux_exchange_mod::regrid =1
     
    integer, parameter ice_ocean_flux_exchange_mod::redist =2
     
    integer, parameter ice_ocean_flux_exchange_mod::direct =3
     
    logical ice_ocean_flux_exchange_mod::debug_stocks = .false.
     
    logical ice_ocean_flux_exchange_mod::do_area_weighted_flux = .false.
     
    integer ice_ocean_flux_exchange_mod::cplocnclock
     
    integer ice_ocean_flux_exchange_mod::fluxoceaniceclock
     
    integer ice_ocean_flux_exchange_mod::fluxiceoceanclock
     
    real ice_ocean_flux_exchange_mod::dt_cpl
     
    integer, dimension(:), allocatable ice_ocean_flux_exchange_mod::slow_ice_ocean_pelist
     
    +

    Detailed Description

    +

    Handles flux calculations and exchange grids for ice and ocean.

    +
    + + + + diff --git a/docs/html/index.html b/docs/html/index.html index 9bdeb172..cf65ecf4 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -66,10 +66,41 @@
    FMS Coupler Documentation
    -
    +

    FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean) on different logically rectangular grids. This repository holds 3 separate directories with driver programs for different usages along with modules with routines for common operations.

    +

    There are currently 3 coupler_main driver programs, each with their own directory:

      +
    • the original 'full' coupler_main
    • +
    • a slimmed down 'simple' version
    • +
    • a SHiELD version for use with the model
    • +
    +

    Additionally, files in the 'shared' directory holds modules used by multiple drivers. The information below is provided for the full coupler, but there is considerable overlap between the other versions. Documentation on all programs and modules is available through the files tab.

    +
    Author
    Bruce Wyman Bruce.nosp@m..Wym.nosp@m.an@no.nosp@m.aa.g.nosp@m.ov
    +
    +V. Balaji V.Bal.nosp@m.aji@.nosp@m.noaa..nosp@m.gov
    +

    coupler_main.F90 couples component models for atmosphere, ocean, land and sea ice on independent grids. It also controls the time integration.

    +

    This version couples model components representing atmosphere, ocean, land and sea ice on independent grids. Each model component is represented by a data type giving the instantaneous model state.

    +

    The component models are coupled to allow implicit vertical diffusion of heat and moisture at the interfaces of the atmosphere, land, and ice models. As a result, the atmosphere, land, and ice models all use the same time step. The atmospheric model has been separated into down and up calls that correspond to the down and up sweeps of the standard tridiagonal elimination.

    +

    The ocean interface uses explicit mixing. Fluxes to and from the ocean must be passed through the ice model. This includes atmospheric fluxes as well as fluxes from the land to the ocean (runoff).

    +

    This program contains the model's main time loop. Each iteration of the main time loop is one coupled (slow) time step. Within this slow time step loop is a fast time step loop, using the atmospheric time step, where the tridiagonal vertical diffusion equations are solved. Exchange between sea ice and ocean occurs once every slow timestep.

    +

    +Namelists

    +

    The three components of coupler: coupler_main , flux_exchange_mod, and surface_flux_mod are configured through three namelists

    +
    Note
      +
    1. If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.
    2. +
    3. The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.
    4. +
    5. The run length must be an intergal multiple of the coupling timestep dt_cpld.
    6. +
    +
    +

    +Program Example

    +

    Below is some pseudo-code to illustrate the runtime loop of the coupler_main drivers.

    +
    DO slow time steps(ocean)
    call flux_ocean_to_ice
    call set_ice_surface_fields
    DO fast time steps(atmos)
    call flux_calculation
    call atmos_down
    call flux_down_from_atmos
    call land_fast
    call ice_fast
    call flux_up_to_atmos
    call atmos_up
    ENDDO
    call ice_slow
    call flux_ice_to_ocean
    call ocean
    enddo
    diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html new file mode 100644 index 00000000..786b4ee2 --- /dev/null +++ b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html @@ -0,0 +1,94 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    atm_land_ice_flux_exchange_mod::put_logical_to_real Member List
    +
    + + + + + diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html new file mode 100644 index 00000000..65077e98 --- /dev/null +++ b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html @@ -0,0 +1,640 @@ + + + + + + + +FMS Coupler: atm_land_ice_flux_exchange_mod::put_logical_to_real Interface Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    atm_land_ice_flux_exchange_mod::put_logical_to_real Interface Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Private Member Functions

    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    +

    Member Function/Subroutine Documentation

    + +

    ◆ put_logical_to_real_sg() [1/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_sg() [2/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_sg() [3/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_sg() [4/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_sg() [5/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

    +
    Parameters
    + + + +
    [in]maskland/ice mask to map to exchange grid
    [in,out]ex_maskconverted mask on exchange grid
    +
    +
    + +
    +
    + +

    ◆ put_logical_to_real_ug() [1/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_ug() [2/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_ug() [3/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_ug() [4/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    + +
    +
    + +

    ◆ put_logical_to_real_ug() [5/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

    +
    Parameters
    + + + +
    [in]maskmask on component grid
    [in,out]ex_maskconverted mask on exchange grid
    +
    +
    + +
    +
    +
    The documentation for this interface was generated from the following files: +
    + + + + diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html new file mode 100644 index 00000000..11e0e8f0 --- /dev/null +++ b/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html @@ -0,0 +1,86 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    surface_flux_mod::surface_flux Member List
    +
    +
    + +

    This is the complete list of members for surface_flux_mod::surface_flux, including all inherited members.

    + + + +
    surface_flux_1d(t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)surface_flux_mod::surface_fluxprivate
    surface_flux_2d(t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)surface_flux_mod::surface_fluxprivate
    + + + + diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux.html new file mode 100644 index 00000000..2276ac01 --- /dev/null +++ b/docs/html/interfacesurface__flux__mod_1_1surface__flux.html @@ -0,0 +1,766 @@ + + + + + + + +FMS Coupler: surface_flux_mod::surface_flux Interface Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    surface_flux_mod::surface_flux Interface Reference
    +
    +
    + +

    For the calculation of fluxes on the exchange grids. + More...

    + + + + + + +

    +Private Member Functions

    subroutine surface_flux_1d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    subroutine surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    +

    Detailed Description

    +

    For the calculation of fluxes on the exchange grids.

    +

    For the calculation of fluxes on the exchange grids.

    +

    Member Function/Subroutine Documentation

    + +

    ◆ surface_flux_1d()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::surface_flux::surface_flux_1d (real, dimension(:), intent(in) t_atm,
    real, dimension(:), intent(in) q_atm_in,
    real, dimension(:), intent(in) u_atm,
    real, dimension(:), intent(in) v_atm,
    real, dimension(:), intent(in) p_atm,
    real, dimension(:), intent(in) z_atm,
    real, dimension(:), intent(in) p_surf,
    real, dimension(:), intent(in) t_surf,
    real, dimension(:), intent(in) t_ca,
    real, dimension(:), intent(inout) q_surf,
    real, dimension(:), intent(in) u_surf,
    real, dimension(:), intent(in) v_surf,
    real, dimension(:), intent(inout) rough_mom,
    real, dimension(:), intent(inout) rough_heat,
    real, dimension(:), intent(inout) rough_moist,
    real, dimension(:), intent(in) rough_scale,
    real, dimension(:), intent(in) gust,
    real, dimension(:), intent(out) flux_t,
    real, dimension(:), intent(out) flux_q,
    real, dimension(:), intent(out) flux_r,
    real, dimension(:), intent(out) flux_u,
    real, dimension(:), intent(out) flux_v,
    real, dimension(:), intent(out) cd_m,
    real, dimension(:), intent(out) cd_t,
    real, dimension(:), intent(out) cd_q,
    real, dimension(:), intent(out) w_atm,
    real, dimension(:), intent(out) u_star,
    real, dimension(:), intent(out) b_star,
    real, dimension(:), intent(out) q_star,
    real, dimension(:), intent(out) thv_atm,
    real, dimension(:), intent(out) thv_surf,
    real, dimension(:), intent(out) dhdt_surf,
    real, dimension(:), intent(out) dedt_surf,
    real, dimension(:), intent(out) dedq_surf,
    real, dimension(:), intent(out) drdt_surf,
    real, dimension(:), intent(out) dhdt_atm,
    real, dimension(:), intent(out) dedq_atm,
    real, dimension(:), intent(out) dtaudu_atm,
    real, dimension(:), intent(out) dtaudv_atm,
    real, intent(in) dt,
    logical, dimension(:), intent(in) land,
    logical, dimension(:), intent(in) seawater,
    logical, dimension(:), intent(in) avail 
    )
    +
    +private
    +
    +
    Parameters
    + + + + + + +
    [in]avail.TRUE. where the exchange cell is active
    [in]gustGustiness factor
    [out]cd_qMoisture exchange coefficient
    [in,out]rough_moistMoisture roughness length
    [in]dtTime step (it is not used presently)
    +
    +
    +
    Parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    t_atmAir temp lowest atmospheric level.
    q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
    u_atmZonal wind velocity at lowest atmospheric level.
    v_atmMeridional wind velocity at lowest atmospheric level.
    p_atmPressure lowest atmospheric level.
    z_atmHeight lowest atmospheric level.
    p_surfPressure at the Earth's surface
    t_surfTemp at the Earth's surface
    t_caAir temp at the canopy
    q_surfMixing ratio at the Earth's surface (kg/kg)
    u_surfZonal wind velocity at the Earth's surface
    v_surfMeridional wind velocity at the Earth's surface
    rough_momMomentum roughness length
    rough_heatHeat roughness length
    rough_scaleScale factor used to topographic roughness calculation
    flux_tSensible heat flux
    flux_qEvaporative water flux
    flux_rRadiative energy flux
    flux_uZonal momentum flux
    flux_vMeridional momentum flux
    cd_mMomentum exchange coefficient
    w_atmAbsolute wind at the lowest atmospheric level
    u_starTurbulent velocity scale
    b_starTurbulent buoyant scale
    q_starTurbulent moisture scale
    dhdt_surfSensible heat flux temperature sensitivity
    dedt_surfMoisture flux temperature sensitivity
    dedq_surfMoisture flux humidity sensitivity
    drdt_surfRadiative energy flux temperature sensitivity
    dhdt_atmDerivative of sensible heat flux over temp at the lowest atmos level
    dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
    dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
    dtaudv_atmDerivative of meridional wind stress with respect to the lowest
    landIndicates where land exists (.TRUE. if exchange cell is on land
    seawaterIndicates where liquid ocean water exists
    +
    +
    + +
    +
    + +

    ◆ surface_flux_2d()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::surface_flux::surface_flux_2d (real, dimension(:,:), intent(in) t_atm,
    real, dimension(:,:), intent(in) q_atm_in,
    real, dimension(:,:), intent(in) u_atm,
    real, dimension(:,:), intent(in) v_atm,
    real, dimension(:,:), intent(in) p_atm,
    real, dimension(:,:), intent(in) z_atm,
    real, dimension(:,:), intent(in) p_surf,
    real, dimension(:,:), intent(in) t_surf,
    real, dimension(:,:), intent(in) t_ca,
    real, dimension(:,:), intent(inout) q_surf,
    real, dimension(:,:), intent(in) u_surf,
    real, dimension(:,:), intent(in) v_surf,
    real, dimension(:,:), intent(inout) rough_mom,
    real, dimension(:,:), intent(inout) rough_heat,
    real, dimension(:,:), intent(inout) rough_moist,
    real, dimension(:,:), intent(in) rough_scale,
    real, dimension(:,:), intent(in) gust,
    real, dimension(:,:), intent(out) flux_t,
    real, dimension(:,:), intent(out) flux_q,
    real, dimension(:,:), intent(out) flux_r,
    real, dimension(:,:), intent(out) flux_u,
    real, dimension(:,:), intent(out) flux_v,
    real, dimension(:,:), intent(out) cd_m,
    real, dimension(:,:), intent(out) cd_t,
    real, dimension(:,:), intent(out) cd_q,
    real, dimension(:,:), intent(out) w_atm,
    real, dimension(:,:), intent(out) u_star,
    real, dimension(:,:), intent(out) b_star,
    real, dimension(:,:), intent(out) q_star,
    real, dimension(:,:), intent(out) thv_atm,
    real, dimension(:,:), intent(out) thv_surf,
    real, dimension(:,:), intent(out) dhdt_surf,
    real, dimension(:,:), intent(out) dedt_surf,
    real, dimension(:,:), intent(out) dedq_surf,
    real, dimension(:,:), intent(out) drdt_surf,
    real, dimension(:,:), intent(out) dhdt_atm,
    real, dimension(:,:), intent(out) dedq_atm,
    real, dimension(:,:), intent(out) dtaudu_atm,
    real, dimension(:,:), intent(out) dtaudv_atm,
    real, intent(in) dt,
    logical, dimension(:,:), intent(in) land,
    logical, dimension(:,:), intent(in) seawater,
    logical, dimension(:,:), intent(in) avail 
    )
    +
    +private
    +
    +
    Parameters
    + + + + + + +
    [in]avail.TRUE. where the exchange cell is active
    [in]gustGustiness factor
    [out]cd_qMoisture exchange coefficient
    [in,out]rough_moistMoisture roughness length
    [in]dtTime step (it is not used presently)
    +
    +
    +
    Parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    t_atmAir temp lowest atmospheric level.
    q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
    u_atmZonal wind velocity at lowest atmospheric level.
    v_atmMeridional wind velocity at lowest atmospheric level.
    p_atmPressure lowest atmospheric level.
    z_atmHeight lowest atmospheric level.
    p_surfPressure at the Earth's surface
    t_surfTemp at the Earth's surface
    t_caAir temp at the canopy
    q_surfMixing ratio at the Earth's surface (kg/kg)
    u_surfZonal wind velocity at the Earth's surface
    v_surfMeridional wind velocity at the Earth's surface
    rough_momMomentum roughness length
    rough_heatHeat roughness length
    rough_scaleScale factor used to topographic roughness calculation
    flux_tSensible heat flux
    flux_qEvaporative water flux
    flux_rRadiative energy flux
    flux_uZonal momentum flux
    flux_vMeridional momentum flux
    cd_mMomentum exchange coefficient
    w_atmAbsolute wind at the lowest atmospheric level
    u_starTurbulent velocity scale
    b_starTurbulent buoyant scale
    q_starTurbulent moisture scale
    dhdt_surfSensible heat flux temperature sensitivity
    dedt_surfMoisture flux temperature sensitivity
    dedq_surfMoisture flux humidity sensitivity
    drdt_surfRadiative energy flux temperature sensitivity
    dhdt_atmDerivative of sensible heat flux over temp at the lowest
    dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
    dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
    dtaudv_atmDerivative of meridional wind stress with respect to the lowest
    landIndicates where land exists (.TRUE. if exchange cell is on land
    seawaterIndicates where liquid ocean water exists
    +
    +
    + +
    +
    +
    The documentation for this interface was generated from the following file: +
    + + + + diff --git a/docs/html/land__ice__flux__exchange_8_f90.html b/docs/html/land__ice__flux__exchange_8_f90.html new file mode 100644 index 00000000..796725fe --- /dev/null +++ b/docs/html/land__ice__flux__exchange_8_f90.html @@ -0,0 +1,123 @@ + + + + + + + +FMS Coupler: full/land_ice_flux_exchange.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    land_ice_flux_exchange.F90 File Reference
    +
    +
    +

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    +

    Handles flux exchanges and exchange grids between land and ice grids. +More...

    + + + + +

    +Modules

    module  land_ice_flux_exchange_mod
     
    + + + + + + +

    +Functions/Subroutines

    subroutine, public land_ice_flux_exchange_mod::land_ice_flux_exchange_init (Land, Ice, land_ice_boundary, Dt_cpl_in, do_runoff_in, cplClock_in)
     
    subroutine, public land_ice_flux_exchange_mod::flux_land_to_ice (Time, Land, Ice, Land_Ice_Boundary)
     Conservative transfer of water and snow discharge from the land model to sea ice/ocean model. More...
     
    + + + + + + + + + + + + + + + + + +

    +Variables

    type(fmsxgridxmap_type), save land_ice_flux_exchange_mod::xmap_runoff
     
    integer land_ice_flux_exchange_mod::n_xgrid_runoff =0
     
    integer land_ice_flux_exchange_mod::x2_grid_lnd
     
    integer land_ice_flux_exchange_mod::x2_grid_ice
     
    integer land_ice_flux_exchange_mod::cplclock
     
    integer land_ice_flux_exchange_mod::fluxlandiceclock
     
    logical land_ice_flux_exchange_mod::do_runoff
     
    real land_ice_flux_exchange_mod::dt_cpl
     
    +

    Detailed Description

    +

    Handles flux exchanges and exchange grids between land and ice grids.

    +
    + + + + diff --git a/docs/html/menudata.js b/docs/html/menudata.js index 03b9351f..39dc162a 100644 --- a/docs/html/menudata.js +++ b/docs/html/menudata.js @@ -22,4 +22,14 @@ with this program; if not, write to the Free Software Foundation, Inc., for the JavaScript code in this file */ var menudata={children:[ -{text:"Main Page",url:"index.html"}]} +{text:"Main Page",url:"index.html"}, +{text:"Namelist Configuration",url:"pages.html"}, +{text:"Interfaces and Derived Types",url:"annotated.html",children:[ +{text:"By Module",url:"annotated.html"}, +{text:"By Name",url:"classes.html"}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html"}, +{text:"Functions/Subroutines",url:"globals_func.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/html/namespaceatm__land__ice__flux__exchange__mod.html b/docs/html/namespaceatm__land__ice__flux__exchange__mod.html new file mode 100644 index 00000000..59cc3f3b --- /dev/null +++ b/docs/html/namespaceatm__land__ice__flux__exchange__mod.html @@ -0,0 +1,6712 @@ + + + + + + + +FMS Coupler: atm_land_ice_flux_exchange_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    atm_land_ice_flux_exchange_mod Module Reference
    +
    +
    + + + + + + + + +

    +Data Types

    interface  put_logical_to_real
     
    type  tracer_exch_ind_type
     
    type  tracer_ind_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
     
    subroutine, public generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     
    subroutine divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine, public send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    subroutine, public flux_down_from_atmos (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
     Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine, public atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    character(len=128) version = '$Id$'
     coupler version number More...
     
    character(len=128) tag = '$Name$'
     coupler tag More...
     
    type(fmsxgridxmap_type), save xmap_sfc
     holds exchange grid between different components More...
     
    integer n_xgrid_sfc =0
     number of exchange grid points More...
     
    character(len=4), parameter mod_name = 'flux'
     module name used to register diag_manager More...
     
    integer id_b_star
     
    integer id_del_h
     
    integer id_del_m
     
    integer id_del_q
     
    integer id_drag_heat
     
    integer id_drag_moist
     
    integer id_drag_mom
     
    integer id_gust
     
    integer id_husslut_land
     
    integer id_ice_mask
     
    integer id_land_mask
     
    integer id_p_atm
     
    integer id_q_flux
     
    integer id_q_flux_land
     
    integer id_q_ref
     
    integer id_q_ref_land
     
    integer id_q_star
     
    integer id_r_flux
     
    integer id_rh_ref
     
    integer id_rh_ref_cmip
     
    integer id_rh_ref_land
     
    integer id_rough_heat
     
    integer id_rough_moist
     
    integer id_rough_mom
     
    integer id_rough_scale
     
    integer id_slp
     
    integer id_t_atm
     
    integer id_t_ca
     
    integer id_t_flux
     
    integer id_t_ocean
     
    integer id_t_ref
     
    integer id_t_ref_land
     
    integer id_t_surf
     
    integer id_taslut_land
     
    integer id_thv_atm
     
    integer id_thv_surf
     
    integer id_u_atm
     
    integer id_u_flux
     
    integer id_u_ref
     
    integer id_u_ref_land
     
    integer id_u_star
     
    integer id_v_atm
     
    integer id_v_flux
     
    integer id_v_ref
     
    integer id_v_ref_land
     
    integer id_wind
     
    integer id_wind_ref
     
    integer id_z_atm
     
    integer id_co2_atm_dvmr
     
    integer id_co2_surf_dvmr
     
    integer id_co2_bot
     
    integer id_co2_flux_pcair_atm
     
    integer id_o2_flux_pcair_atm
     
    integer, dimension(:), allocatable id_tr_atm
     
    integer, dimension(:), allocatable id_tr_surf
     
    integer, dimension(:), allocatable id_tr_flux
     
    integer, dimension(:), allocatable id_tr_mol_flux
     
    integer, dimension(:), allocatable id_tr_ref
     
    integer, dimension(:), allocatable id_tr_ref_land
     
    integer, dimension(:), allocatable id_tr_mol_flux0
     
    integer, dimension(:), allocatable id_tr_flux_land
     
    integer, dimension(:), allocatable id_tr_mol_flux_land
     
    integer, dimension(:), allocatable id_tr_con_atm
     deposition velocity at bottom level (atm) More...
     
    integer, dimension(:), allocatable id_tr_con_atm_land
     deposition velocity at bottom level (land) More...
     
    integer, dimension(:), allocatable id_tr_con_ref
     deposition velocity at ref height (atm) More...
     
    integer, dimension(:), allocatable id_tr_con_ref_land
     deposition velocity at reference height (land) More...
     
    integer id_evspsbl
     
    integer id_height10m
     
    integer id_height2m
     
    integer id_hfls
     
    integer id_hfss
     
    integer id_hurs
     
    integer id_huss
     
    integer id_psl
     
    integer id_rhs
     
    integer id_sfcwind
     
    integer id_sftlf
     
    integer id_sic
     
    integer id_tas
     
    integer id_tauu
     
    integer id_tauv
     
    integer id_tos
     
    integer id_ts
     
    integer id_tslsi
     
    integer id_uas
     
    integer id_vas
     
    integer id_evspsbl_g
     
    integer id_hfls_g
     
    integer id_hfss_g
     
    integer id_rls_g
     
    integer id_tas_g
     
    integer id_tasl_g
     
    integer id_ts_g
     
    logical first_static = .true.
     If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
     
    logical do_init = .true.
     
    integer remap_method = 1
     
    real, parameter bound_tol = 1e-7
     
    real, parameter d622 = rdgas/rvgas
     
    real, parameter d378 = 1.0-d622
     
    real, parameter d608 = d378/d622
     
    real, parameter tfreeze = 273.15
     freezing point of water at 1 atm [K] More...
     
    real, dimension(:,:), allocatable frac_precip
     
    real z_ref_heat = 2.
     Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
     
    real z_ref_mom = 10.
     Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
     
    logical do_area_weighted_flux = .FALSE.
     
    logical do_forecast = .false.
     
    integer nblocks = 1
     
    logical partition_fprec_from_lprec = .FALSE.
     option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
     
    logical scale_precip_2d = .false.
     
    integer my_nblocks = 1
     
    integer, dimension(:), allocatable block_start
     
    integer, dimension(:), allocatable block_end
     
    real, dimension(:), allocatable ex_albedo_fix
     
    real, dimension(:), allocatable ex_albedo_nir_dif_fix
     
    real, dimension(:), allocatable ex_albedo_nir_dir_fix
     
    real, dimension(:), allocatable ex_albedo_vis_dif_fix
     
    real, dimension(:), allocatable ex_albedo_vis_dir_fix
     
    real, dimension(:), allocatable ex_b_star
     
    real, dimension(:), allocatable ex_cd_m
     
    real, dimension(:), allocatable ex_cd_t
     drag coefficient for heat on exchange grid More...
     
    real, dimension(:), allocatable ex_con_atm
     deposition velocity at lowest atmospheric level on exchange grid More...
     
    real, dimension(:), allocatable ex_dedt_surf
     d(water.vap.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable ex_dhdt_atm
     d(sens.heat.flux)/d(T atm) More...
     
    real, dimension(:), allocatable ex_dhdt_surf
     d(sens.heat.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable ex_dqsatdt_surf
     d(water.vap.flux)/d(q canopy) More...
     
    real, dimension(:), allocatable ex_drdt_surf
     d(LW flux)/d(T surf) More...
     
    real, dimension(:), allocatable ex_dtaudu_atm
     d(stress)/d(u) More...
     
    real, dimension(:), allocatable ex_dtaudv_atm
     d(stress)/d(v) More...
     
    real, dimension(:), allocatable ex_e_q_n
     
    real, dimension(:), allocatable ex_flux_lw
     longwave radiation flux More...
     
    real, dimension(:), allocatable ex_flux_t
     sens heat flux More...
     
    real, dimension(:), allocatable ex_flux_u
     u stress on atmosphere More...
     
    real, dimension(:), allocatable ex_flux_v
     v stress on atmosphere More...
     
    real, dimension(:), allocatable ex_old_albedo
     old value of albedo for downward flux calculations More...
     
    real, dimension(:), allocatable ex_p_surf
     surface pressure More...
     
    real, dimension(:), allocatable ex_seawater
     
    real, dimension(:), allocatable ex_slp
     surface pressure More...
     
    real, dimension(:), allocatable ex_t_ca
     near-surface (canopy) air temperature, degK More...
     
    real, dimension(:), allocatable ex_t_surf
     surface temperature for radiation calc, degK More...
     
    real, dimension(:), allocatable ex_t_surf_miz
     miz NEED HELP More...
     
    real, dimension(:), allocatable ex_u_star
     
    real, dimension(:), allocatable ex_wind
     
    real, dimension(:), allocatable ex_z_atm
     
    real, dimension(:,:), allocatable ex_dfdtr_atm
     d(tracer flux)/d(atm tracer) More...
     
    real, dimension(:,:), allocatable ex_dfdtr_surf
     d(tracer flux)/d(surf tracer) More...
     
    real, dimension(:,:), allocatable ex_e_tr_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable ex_f_tr_delt_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable ex_flux_tr
     tracer fluxes More...
     
    real, dimension(:,:), allocatable ex_tr_con_ref
     deposition velocity at reference height More...
     
    real, dimension(:,:), allocatable ex_tr_con_atm
     deposition velocity at atmospheric height More...
     
    real, dimension(:,:), allocatable ex_tr_surf
     near-surface tracer fields More...
     
    logical, dimension(:), allocatable ex_avail
     true where data on exchange grid are available More...
     
    logical, dimension(:), allocatable ex_land
     true if exchange grid cell is over land More...
     
    real, dimension(:), allocatable ex_e_t_n
     
    real, dimension(:), allocatable ex_f_t_delt_n
     
    integer n_atm_tr
     number of prognostic tracers in the atmos model More...
     
    integer n_atm_tr_tot
     number of prognostic tracers in the atmos model More...
     
    integer n_lnd_tr
     number of prognostic tracers in the land model More...
     
    integer n_lnd_tr_tot
     number of prognostic tracers in the land model More...
     
    integer n_exch_tr
     number of tracers exchanged between models More...
     
    integer n_gex_atm2lnd
     number of gex fields exchanged between land and atmosphere More...
     
    integer n_gex_lnd2atm
     number of gex fields exchanged between atmosphere and land More...
     
    type(tracer_ind_type), dimension(:), allocatable tr_table
     table of tracers passed through flux exchange More...
     
    type(tracer_exch_ind_type), dimension(:), allocatable tr_table_map
     map atm tracers to exchange, ice and land variables More...
     
    integer isphum = NO_TRACER
     tracer index for specific humidity More...
     
    integer ico2 = NO_TRACER
     tracer index for co2 More...
     
    integer inh3 = NO_TRACER
     tracer index for nh3 More...
     
    type(fmscoupler1dbc_type), pointer ex_gas_fields_atm =>NULL()
     gas fields in atm place holder for various atmospheric fields. More...
     
    type(fmscoupler1dbc_type), pointer ex_gas_fields_ice =>NULL()
     gas fields on ice More...
     
    type(fmscoupler1dbc_type), pointer ex_gas_fluxes =>NULL()
     gas flux place holder of intermediate calculations, such as piston velocities etc. More...
     
    real, dimension(3) ccc
     for conservation checks !< NOT USED DELETE More...
     
    integer, parameter regrid =1
     grids are physically different, pass via exchange grid More...
     
    integer, parameter redist =2
     same physical grid, different decomposition, must move data around More...
     
    integer, parameter redirect =3
     same physical grid, same domain decomposition, can directly copy data More...
     
    integer cplclock
     
    integer sfcclock
     FMS clock id to profile sfc_boundary_layer. More...
     
    integer fluxatmdnclock
     FMS clock id to profile flux down from atmosphere. More...
     
    integer regenclock
     FMS clock to profile exchange grid generation. More...
     
    integer fluxatmupclock
     FMS clock to profile flux up to atmosphere. More...
     
    integer x1_grid_atm
     1, exchange grid index for xgrid_stock_move More...
     
    integer x1_grid_ice
     2, exchange grid index for xgrid_stock_move More...
     
    integer x1_grid_lnd
     3, !< exchange grid index for xgrid_stock_move More...
     
    real dt_atm
     atmospheric timestep [s] More...
     
    real dt_cpl
     coupled timestep [s] More...
     
    integer ni_atm
     number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer nj_atm
     number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer nxc_ice =0
     number of x points in ice compute domain More...
     
    integer nyc_ice =0
     number of y points in ice compute domain More...
     
    integer nk_ice =0
     number of vertical levels in ice More...
     
    integer nxc_lnd =0
     number of x points in land compute domain More...
     
    integer nyc_lnd =0
     number of y points in land compute domain More...
     
    real atmospheric
     
    real timestep
     
    real s
     coupled timestep [s] More...
     
    integer id_q_surf
     
    integer id_q_atm
     
    integer id_t_flux_land
     
    real, dimension(:), allocatable ex_drag_q
     q drag.coeff. More...
     
    integer, parameter direct =3
     
    +

    Function/Subroutine Documentation

    + +

    ◆ atm_land_ice_flux_exchange_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(inout) Ice,
    type(atmos_ice_boundary_type), intent(inout) atmos_ice_boundary,
    type(land_ice_atmos_boundary_type), intent(inout) land_ice_atmos_boundary,
    real, intent(in) Dt_atm_in,
    real, intent(in) Dt_cpl_in,
    real, intent(in) z_ref_heat_in,
    real, intent(in) z_ref_mom_in,
    logical, intent(in) do_area_weighted_flux_in,
    logical, intent(in) do_forecast_in,
    logical, intent(in) partition_fprec_from_lprec_in,
    logical, intent(in) scale_precip_2d_in,
    integer, intent(in) nblocks_in,
    integer, intent(in) cplClock_in,
    type(fmscoupler1dbc_type), intent(in), target ex_gas_fields_atm_in,
    type(fmscoupler1dbc_type), intent(in), target ex_gas_fields_ice_in,
    type(fmscoupler1dbc_type), intent(in), target ex_gas_fluxes_in 
    )
    +
    + +

    Initialization routine.

    +

    module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module

    +

    Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module.

    +
    Parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    [in]timemodel's current time
    [in,out]atmderived data type to specify atmosphere boundary data
    [in]landderived data type to specify land boundary data
    [in,out]icederived data type to specify ice boundary data
    [in,out]atmos_ice_boundaryderived type to specify properties and fluxes passed from atmosphere to ice
    [in,out]land_ice_atmos_boundaryderived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice
    [in]dt_atm_inatmosphere time step in seconds
    [in]dt_cpl_incoupled time step in seconds
    [in]z_ref_heat_inreference height for temperature and relative humidity diagnostics [m]
    [in]z_ref_mom_inreference height for momentum diagnostics [m]
    [in]scale_precip_2d_inif true, rescale Atmlprec by a field from diag_table
    [in]do_area_weighted_flux_inif true, divide flux by area
    [in]do_forecast_inif true, put atmsurf_diffsst_miz on the exchange grid if AM3_physics is used
    [in]timemodel's current time
    [in,out]atmderived data type to specify atmosphere boundary data
    [in]landderived data type to specify land boundary data
    [in,out]icederived data type to specify ice boundary data
    [in,out]atmos_ice_boundaryderived type to specify properties and fluxes passed from atmosphere to ice
    [in,out]land_ice_atmos_boundaryderived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice
    [in]dt_atm_inatmosphere time step in seconds
    [in]dt_cpl_incoupled time step in seconds
    [in]z_ref_heat_inreference height for temperature and relative humidity diagnostics [m]
    [in]z_ref_mom_inreference height for momentum diagnostics [m]
    [in]scale_precip_2d_inif true, rescale Atmlprec by a field from diag_table
    [in]do_area_weighted_flux_inif true, divide flux by area
    [in]do_forecast_inif true, put atmsurf_diffsst_miz on the exchange grid if AM3_physics is used
    [in]partition_fprec_from_lprec_inif true, will convert liquid precip to snow when t_ref < tfreeze
    [in]nblocks_individe the surface exchange grid to nblocks for OpenMP parallelizatio
    [in]cplclock_inclock to measure processes, mainly used for development and debugging
    [in]ex_gas_fields_atm_ingas fields in Atm. Contains atmospheric surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters
    [in]ex_gas_fields_ice_ingas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters
    [in]ex_gas_fluxes_ingas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between the atmosphere and ocean. Values defined from the field table or computed during model run
    +
    +
    +

    Initializes the interpolation routines,diagnostics and boundary data

    +
    Exceptions
    + + + + + +
    FATAL,grid_spec.nc incompatible with atmosphere resolutionThe atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere resolution from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc)The latitude from file grid_spec.nc is different from the latitude from atmosphere model.
    +
    +
    +
    Parameters
    + + + + + + + + + +
    [in]timeThe model's current time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in]landA derived data type to specify land boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]atmos_ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    [in]dt_atm_inAtmosphere time step in seconds
    [in]dt_cpl_inCoupled time step in seconds
    +
    +
    +

    Initialize module level variables
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + get file unit for stdout and stdlog

    +

    get the number ofatmospheric prognostic tracers and specific humidity tracer index from the tracer table

    +

    get the total number of land tracers and the number of prognostic tracers from the tracer table

    +

    Populate tr_table and tr_table_map. Atm, land, and ice models will have its own tracer index for the same tracer.

    +

    Set the number of tracers that will be exchanged between the models

    +

    Populate tracer table for ocean-atm gas fluxes where the tracer name in atm and ocean models may differ

    +

    Get tracer index for specific humidity, co2, and nh3

    +

    Assign exchange grid type and Generate surface exchange grid

    +

    Initialize fms_diag_integral for global integral quantities
    +
    +
    +
    +
    +
    +
    + call diag_integral_field_init ('prec', 'f6.3')

    +

    Initialize atmos_ice_boundary

    +

    Copy gas fluxes from exchange grid to atmosphere_ice boundary

    +

    Initialize land_ice_atmos_boundary

    +

    Allocate fields for extra tracers

    +

    Set nxc_ice and nyc_ice

    +

    Set nxc_land nyc_land

    +

    INITIALIZE MODULE LEVEL VARIABLES

    +

    GET FILE UNIT FOR STDOUT AND STDLOG

    +

    FROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LAND

    +

    ASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS

    +

    GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND HELP: WHAT IS GENERIC EXCHANGE?

    +

    SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER

    +

    GET THE TRACER INDEX OF SPECIFIC HUMIDITY

    +

    INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE

    +

    SET UP THE EXCHANGE GRID

    +

    INITIALIZE SURFACE_FLUX

    +

    INITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGER

    +

    GET THE SIZE OF THE ATM GRID

    +

    ALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZERO

    +

    ALLOCATE FIELDS FOR EXTRA FLUXES

    +

    ALLOCATE LAND_ICE_ATMOS_BOUNDARY

    +

    ALLOCATE FIELDS FOR EXTRA TRACERS

    +

    GET DIMENSION OF THE DECOMPOSED ICE DOMAIN

    +

    GET DIMENSION OF THE DECOMPOSED LAND DOMAIN

    +

    INITIALIZE CLOCKS FOR PROFILING

    +

    INITIALIZE MODULE LEVEL VARIABLES

    +

    GET FILE UNIT FOR STDOUT AND STDLOG

    +

    FROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LAND

    +

    ASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS

    +

    GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND HELP: WHAT IS GENERIC EXCHANGE?

    +

    SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER

    +

    GET THE TRACER INDEX OF SPECIFIC HUMIDITY

    +

    INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE

    +

    SET UP THE EXCHANGE GRID

    +

    INITIALIZE SURFACE_FLUX

    +

    INITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGER

    +

    GET THE SIZE OF THE ATM GRID

    +

    ALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZERO

    +

    ALLOCATE FIELDS FOR EXTRA FLUXES

    +

    ALLOCATE LAND_ICE_ATMOS_BOUNDARY

    +

    ALLOCATE FIELDS FOR EXTRA TRACERS

    +

    GET DIMENSION OF THE DECOMPOSED ICE DOMAIN

    +

    GET DIMENSION OF THE DECOMPOSED LAND DOMAIN

    +

    INITIALIZE CLOCKS FOR PROFILING

    + +
    +
    + +

    ◆ atm_stock_integrate() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::atm_stock_integrate (type(atmos_data_type), intent(in) Atm,
    real, intent(out) res 
    )
    +
    + +

    integrate the total precipitation in atmosphere and multipy by dt

    +
    Parameters
    + + + +
    [in]atmderived type to holding atmosphere boundary data
    [out]resintegrated value
    +
    +
    + +
    +
    + +

    ◆ atm_stock_integrate() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm ,
    res  
    )
    +
    + +

    integrate the total precipitation in atmosphere and multipy by dt

    +
    Parameters
    + + + +
    [in]atmderived type to holding atmosphere boundary data
    [out]resintegrated value
    +
    +
    + +
    +
    + +

    ◆ diag_field_init()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (type(fmstime_type), intent(in) Time,
    integer, dimension(2), intent(in) atmos_axes,
    integer, dimension(:), intent(in) land_axes,
    logical, intent(in) land_pe 
    )
    +
    +private
    +
    + +

    Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module)

    +

    Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run.

    +

    Convert diagnostic labels from integers to strings

    +

    Convert diagnostic labels from integers to strings

    + +
    +
    + +

    ◆ divide_by_area()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (real, dimension(:,:), intent(inout) data,
    real, dimension(:,:), intent(in) area 
    )
    +
    +private
    +
    + +

    Divide data by area while avoiding zero area elements.

    +

    Divide data by area where grid cell area is not zero.

    +

    check the size of data and area are the same

    +

    divide data in each grid cell by grid cell area

    +

    check the size of data and area are the same

    +

    divide data in each grid cell by grid cell area

    + +
    +
    + +

    ◆ flux_atmos_to_ocean()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(atmos_ice_boundary_type), intent(inout) Ice_boundary,
    type(ice_data_type), intent(inout) Ice 
    )
    +
    + +

    Computes deposition gas fluxes between atmosphere and ocean.

    +
    Parameters
    + + + + + + + +
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    +
    +
    +

    MAP ATMOSPHERE FIELDS TO THE EXCHANGE MAP FOR FLUX EXCHANGE WITH OCEAN

    +

    CALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRID

    +

    MAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRID

    +

    UPDATE AIR_SEA_DEPOSITION FLUXES

    +

    MAP ATMOSPHERE FIELDS TO THE EXCHANGE MAP FOR FLUX EXCHANGE WITH OCEAN

    +

    CALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRID

    +

    MAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRID

    +

    UPDATE AIR_SEA_DEPOSITION FLUXES

    + +
    +
    + +

    ◆ flux_down_from_atmos() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(in) Ice,
    type(land_ice_atmos_boundary_type), intent(in) Atmos_boundary,
    type(atmos_land_boundary_type), intent(inout) Land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
    )
    +
    + +

    Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer.

    +

    Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, as well as the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer.

    +

    The following elements from Atmos_boundary are used as input:

    +        flux_u_atm = zonal wind stress (Pa)
    +        flux_v_atm = meridional wind stress (Pa)
    + 

    The following elements of Land_boundary are output:

    +       flux_t_land = sensible heat flux (W/m2)
    +       flux_q_land = specific humidity flux (Kg/(m2 s)
    +      flux_lw_land = net longwave flux (W/m2), uncorrected for
    +                     changes in surface temperature
    +      flux_sw_land = net shortwave flux (W/m2)
    +         dhdt_land = derivative of sensible heat flux w.r.t.
    +                     surface temperature (on land model grid)  (W/(m2 K)
    +         dedt_land = derivative of specific humidity flux w.r.t.
    +                     surface temperature (on land model grid)  (Kg/(m2 s K)
    +         drdt_land = derivative of upward longwave flux w.r.t.
    +                     surface temperature (on land model grid) (W/(m2 K)
    +        lprec_land = liquid precipitation, mass for one time step
    +                      (Kg/m2)
    +        fprec_land = frozen precipitation, mass for one time step
    +                      (Kg/m2)
    + 

    The following elements of Ice_boundary are output:

    +        flux_u_ice = zonal wind stress (Pa)
    +        flux_v_ice = meridional wind stress (Pa)
    +        coszen_ice = cosine of the zenith angle
    + 
    Parameters
    + + + + + + + + +
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in]landA derived data type to specify land boundary data
    [in]iceA derived data type to specify ice boundary data
    [in]atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice
    [in,out]land_boundaryA derived data type to specify properties and fluxes passed from atmosphere to land
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    +
    +
    +

    override flux fields if fields are specified in data_table

    +

    if scale_precip_2d = .true., scale liquid precipitation by frac_precip. frac_precip should have been allocated in atm_land_ice_flux_exchange_init with scale_precip_2d_in set to .true.

    +

    if partition_fprec_from_lpec = .true., initialize frozen precition and liquid precipitation in Atm

    +

    override atm fields if fields are specified in the data_table

    +

    map atmosphere quantities onto exchange grid
    +
    +
    +
    +
    +
    +
    +
    +
    + adjust sw flux for albedo variations on exchange grid

    +

    adjust fluxes for implicit dependence on atmosphere

    +

    Map sedimentation flux on the exchange

    +

    map field from the exchange grid to the land grid

    +

    Data_override land fields if the field is specified in the data_table

    +

    map data on the exchange grid onto the Ice grid

    +

    Override ice data if data field is specified in the data_table

    +

    Compute stock changes

    +

    send data to diag_manager buffer to save data for output

    + +
    +
    + +

    ◆ flux_down_from_atmos() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_ice_atmos_boundary_type), intent(in) Atmos_boundary,
    type(atmos_land_boundary_type), intent(inout) Land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
    )
    +
    + +

    Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation.

    +
    Parameters
    + + + + + + +
    [in]timeCurrent model time
    [in,out]atmA derived data type holding atmosphere boundary data
    [in]atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice
    [in,out]land_boundaryA derived data type to specify properties and fluxes passed from atmosphere to land
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    +
    +
    +

    start clocks for profiling

    +

    initialize reusable flag. data_override will return ov=.true. if data was overwritten

    +

    update Atm fields with override values. Note, data_override will only overwrite data if the field is specified in the data_table

    +

    scale liquid precipitation by frac_precip if scale_precip_2d is true scale_precip_2d is set during module initialization call to atm_land_ice_flux_exchange_init frac_precip is set with data_override

    +

    partition preciptation to liquid precipitation and frozen precipitation if partition_fprec_from_lprec = .true. partiion_fprec_from_lprec is set as part of module initialization call in atm_land_ice_flux_exchange Note, the partitioning only occurs on mpi ranks for atmosphere

    +

    update more Atm fields with override values. Note, data_override will only overwrite

    +

    Map atmosphere quantities onto the exchange grid in order to exchange quantities with other components

    +

    update u and v stress on the exchange grid

    +

    fix shortwave radiation flux of visible light on the exchange grid

    +

    Adjust fluxes for implicit dependence (TOM HELP, this sounds awkward)

    +

    map fluxes from the exchange grid to the land grid

    +

    override land fluxes only if the field is specified in the data_table

    +

    Map ice fields from the exchange grid to the Ice grid

    +

    override Ice fields only if the field is specified in the data table

    +

    Compute stock changes between components

    +

    send data to diag_manager buffer where if the field is specified in the diag_table, data will be outputted at the end of the simulation

    +

    end clock for profiling

    + +
    +
    + +

    ◆ flux_ex_arrays_dealloc()

    + +
    +
    + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
    +
    + +

    Internal subroutine to deallocate exchange fields.

    + +
    +
    + +

    ◆ flux_up_to_atmos()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (type(fmstime_type), intent(in) Time,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Land_Ice_Atmos_Boundary,
    type(atmos_land_boundary_type), intent(inout) Land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
    )
    +
    + +

    Corrects the fluxes for consistency with the new surface temperatures in land and ice models.

    +

    Corrects the fluxes for consistency with the new surface temperatures in land and ice models. Final increments for temperature and specific humidity in the lowest atmospheric layer are computed and returned to the atmospheric model so that it can finalize the increments in the rest of the atmosphere.

    +

    The following elements of the land_ice_atmos_boundary_type are computed:

    +        dt_t  = temperature change at the lowest
    +                 atmospheric level (deg k)
    +        dt_q  = specific humidity change at the lowest
    +                 atmospheric level (kg/kg)
    + 
    Parameters
    + + + + + +
    [in]timeCurrent time
    [in,out]landA derived data type to specify ice boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    +
    +
    +

    Corrects the fluxes for consistency with the new surface temperatures in land and ice models. Final increments for temperature and specific humidity in the lowest atmospheric layer are computed and returned to the atmospheric model so that it can finalize the increments in the rest of the atmosphere.

    +

    The following elements of the land_ice_atmos_boundary_type are computed:

    +        dt_t  = temperature change at the lowest
    +                 atmospheric level (deg k)
    +        dt_q  = specific humidity change at the lowest
    +                 atmospheric level (kg/kg)
    + 
    Parameters
    + + + + + + + +
    [in]timecurrent model time
    [in,out]landderived data type holding land boundary data
    [in,out]icederived data type holding ice boundary data
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    [in,out]land_boundaryA derived data type to specify properties and fluxes passed from atmosphere to land
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    +
    +
    +

    override Ice and Land temperature fields. Note, data_override will only overwrite data if the field is specified in the data_table

    +

    COMPUTE CHANGE IN SURFACE TEMPERATURE

    +

    UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE

    +

    UPDATE TRACER TENDENCIES IN THE ATMOSPHERE

    +

    MAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID

    +

    SEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUN

    +

    COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS

    +

    override Ice and Land temperature fields. Note, data_override will only overwrite data if the field is specified in the data_table

    +

    COMPUTE CHANGE IN SURFACE TEMPERATURE

    +

    UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE

    +

    UPDATE TRACER TENDENCIES IN THE ATMOSPHERE

    +

    MAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID

    +

    SEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUN

    +

    COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS

    + +
    +
    + +

    ◆ generate_sfc_xgrid()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(in) Ice 
    )
    +
    + +

    Optimizes the exchange grids by eliminating land and ice partitions with no data.

    +

    Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0)

    +

    Optimizes the exchange grids by eliminating land and ice partitions with no data.

    +
    Parameters
    + + + + + +
    [in]landA derived data type to specify land boundary data
    [in]iceA derived data type to specify ice boundary data
    [in]landA derived data type to specify land boundary data
    [in]iceA derived data type to specify ice boundary data
    +
    +
    +

    update fractional areas of ice and land on the exchange grid

    +

    reset the number of exchange grid cells saved in the module

    +

    update fractional areas of ice and land on the exchange grid

    +

    reset the number of exchange grid cells saved in the module

    + +
    +
    + +

    ◆ put_logical_to_real_sg() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    +

    Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

    +
    Parameters
    + + + +
    [in]maskland/ice mask to map to exchange grid
    [in,out]ex_maskconverted mask on exchange grid
    +
    +
    + +
    +
    + +

    ◆ put_logical_to_real_sg() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask ,
    id ,
    ex_mask ,
    xmap  
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    +

    Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

    +
    Parameters
    + + + +
    [in]maskland/ice mask to map to exchange grid
    [in,out]ex_maskconverted mask on exchange grid
    +
    +
    + +
    +
    + +

    ◆ put_logical_to_real_ug() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    +

    Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

    +
    Parameters
    + + + +
    [in]maskmask on component grid
    [in,out]ex_maskconverted mask on exchange grid
    +
    +
    + +
    +
    + +

    ◆ put_logical_to_real_ug() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask ,
    id ,
    ex_mask ,
    xmap  
    )
    +
    +private
    +
    + +

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    +

    Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

    +
    Parameters
    + + + +
    [in]maskmask on component grid
    [in,out]ex_maskconverted mask on exchange grid
    +
    +
    + +
    +
    + +

    ◆ send_ice_mask_sic()

    + +
    +
    + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (type(fmstime_type), intent(in) Time)
    +
    + +

    Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why?

    +

    compute and send fractional amount of sea ice to diag_manager buffer

    +
    Parameters
    + + +
    [in]timeCurrent time
    +
    +
    +

    initialize ice_frac
    +
    +
    + remap ice_mask (fractional amount of sea ice) to the atm grid

    +

    send ice_mask to diag_manager buffer
    + compute sea ice area fraction for cells on atm grid that are over ocean normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean

    +

    initialize ice_frac
    +
    +
    + remap ice_mask (fractional amount of sea ice) to the atm grid

    +

    send ice_mask to diag_manager buffer
    + compute sea ice area fraction for cells on atm grid that are over ocean normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean

    + +
    +
    + +

    ◆ sfc_boundary_layer()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (real, intent(in) dt,
    type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Land_Ice_Atmos_Boundary 
    )
    +
    + +

    Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction.

    +

    Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction.

    +
    +   t_surf_atm: surface temperature used for radiation [K]
    +   albedo_atm: surface albedo used for radiation  [dimensionless]
    +   rough_mom_atm: surface roughness for momentum [m]
    +   land_frac_atm: fractional area of land beneath an atmospheric grid box
    +   dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)]
    +   flux_u_atm: zonal wind stress  [Pa]
    +   flux_v_atm: meridional wind stress [Pa]
    +   u_star_atm: friction velocity [m/s]
    +   b_star_atm: buoyancy scale  [m2/s]
    + 

    Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data between one component grid to another component grid. Computed fluxes can also be overwritten with calls to data_override. Note, data_override will not override data if the tracers

    Note
    u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface.
    +
    Parameters
    + + + + + + + +
    [in]dttimestep
    [in]timecurrent model time
    [in,out]atmderived type to specify atmosphere boundary data
    [in,out]landderived type to specify land boundary data
    [in,out]icederived data type to specify ice boundary data
    [in,out]land_ice_atmos_boundaryderived data type to specify properties and fluxes passed between land and ice to atmos
    +
    +
    +

    The following quantities in the land_ice_atmos_boundary_type are computed:

    +
    +         t_surf_atm = surface temperature (used for radiation)    (K)
    +         albedo_atm = surface albedo      (used for radiation)    (nondimensional)
    +      rough_mom_atm = surface roughness for momentum (m)
    +      land_frac_atm = fractional area of land beneath an atmospheric
    +                      grid box
    +         dtaudu_atm, dtaudv_atm = derivatives of wind stress w.r.t. the
    +                                  lowest level wind speed  (Pa/(m/s))
    +         flux_u_atm = zonal wind stress  (Pa)
    +         flux_v_atm = meridional wind stress (Pa)
    +         u_star_atm = friction velocity (m/s)
    +         b_star_atm = buoyancy scale    (m2/s)
    + 
    Note
    u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface.
    +
    Exceptions
    + + +
    FATAL,must call atm_land_ice_flux_exchange_init firstatm_land_ice_flux_exchange_init has not been called before calling sfc_boundary_layer.
    +
    +
    +
    Parameters
    + + + + + + + +
    [in]dtTime step
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in,out]landA derived data type to specify land boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    +
    +
    +

    quantities on exchange grid

    +

    temporary array to hold data

    +

    temporary array to hold data

    +

    temporary array to hold data

    +

    array holding generic, non-tracer fields on exchange grid

    +

    check if module was initialized
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + allocate module level arrays to hold data on the exchange grid (deallocated in flux_up_to_atmos)

    +

    Initialize allocated arrays (does this need to be done in an OpenMP block? Can it be set during allocation?)

    +

    initialize surface pressure on exchange grid

    +

    Allocate fms/coupler type for gas field exchange between ocean and ice
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + Allocate fms/coupler type for gas field exchange with atmosphere

    +

    Allocate additional gas flux fields for intermediate calculations

    +

    override atm fields only if the field is specified in data_table

    +

    override ice fields where data is overwritten only if the field is specified in the data_table

    +

    override land fields where data is overwritten only if the field is specified in the data_table

    +

    map atmospheric fields onto the exchange grid

    +

    prefill surface values on the exchange grid with atmospheric values before putting tracers

    +

    map ice fields onto the exchange grid

    +

    Compute dynamic mask for seaice and static mask for land

    +

    map land mask onto the exchange grid

    +

    Map land fields on to the exchange grid

    +

    compute explicit fluxes and tendencies on the exchange grid

    +

    compute the zonal and meriodonal winds at the boundary layer and at the reference heights on the exchange grid

    +

    Compute tracer flux where tracer flux = (C0*u*rho)*delta_q slm: ex_dfdtr_surf(:,isphum) is set to zero over the ocean in call to surface_flux and [so it is not appropriate to use for other tracers] <- why? However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but then this whole section will have to be changed.

    +

    map ocean gas field fluxes from the exchange grid to the ocn grid, where the flux is due to exchange between atmosphere and ocean surface and exchange between top of ice and ocean surface

    +

    map intermediate fluxes from the exchange grid to the atmospheric grid
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + convert units
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + override above computed fluxes with values from data_override if tracer exists in data_table

    +

    override flux and derivatives of sensible heat flux if field is specified in data_table

    +

    override derivative of flux wrt near-surface temperature if field is specified in data_table

    +

    override derivative of flux wrt atmospheric temperature if field is specified in data_table

    +

    Note, the units of sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm";

    +

    Update fields on Land_Ice_Atmos_Boundary

    +

    update "generic", non-tracer field exchange between land and atmosphere

    +

    data_override updated Land_ice_atmos_boundary if the fields exist in data_table

    +

    albedo fix

    +

    send data to save in diag_manager buffer for outputting at the end of the simulation

    +

    land fraction

    +

    near-surface height

    +

    near-surface height

    +

    compute deposition velocity

    +

    Initialize clocks for profiling

    +

    ALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS

    +

    ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY

    +

    ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHRE

    +

    ALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDS

    +

    SET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDS

    +

    OVERRIDE ATM ATMT_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    +

    CONVERT CO2 TRACER UNITS to WET_MMR UNITS

    +

    OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLE

    +

    OVERRIDE ICET_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. OVERRIDE LANDT_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    +

    MAP ATM FIELDS ONTO THE EXCHANGE GRID

    +

    INITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYER

    +

    MAP ICE FIELDS ONTO THE EXCHANGE GRID

    +

    GENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRID

    +

    INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRID

    +

    MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID

    +

    CALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRID

    +

    COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRID

    +

    CALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRID

    +

    COMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRID

    +

    COMPUTE EXPLICIT OCEAN FLUXES

    +

    OVERRIDE LAND AND ICE TRACER FLUXES DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    +

    COMPUTE T_SURF**4

    +

    Initialize clocks for profiling

    +

    ALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS

    +

    ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY

    +

    ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHRE

    +

    ALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDS

    +

    SET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDS

    +

    OVERRIDE ATM ATMT_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    +

    CONVERT CO2 TRACER UNITS to WET_MMR UNITS

    +

    OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLE

    +

    OVERRIDE ICET_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. OVERRIDE LANDT_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    +

    MAP ATM FIELDS ONTO THE EXCHANGE GRID

    +

    INITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYER

    +

    MAP ICE FIELDS ONTO THE EXCHANGE GRID

    +

    GENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRID

    +

    INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRID

    +

    MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID

    +

    CALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRID

    +

    COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRID

    +

    CALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRID

    +

    COMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRID

    +

    COMPUTE EXPLICIT OCEAN FLUXES

    +

    OVERRIDE LAND AND ICE TRACER FLUXES DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    +

    COMPUTE T_SURF**4

    + +
    +
    +

    Variable Documentation

    + +

    ◆ atmospheric

    + +
    +
    + + + + + +
    + + + + +
    real atm_land_ice_flux_exchange_mod::atmospheric
    +
    +private
    +
    + +
    +
    + +

    ◆ block_end

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end
    +
    +private
    +
    + +
    +
    + +

    ◆ block_start

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start
    +
    +private
    +
    + +
    +
    + +

    ◆ bound_tol

    + +
    +
    + + + + + +
    + + + + +
    real parameter atm_land_ice_flux_exchange_mod::bound_tol = 1e-7
    +
    +private
    +
    + +
    +
    + +

    ◆ ccc

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(3) atm_land_ice_flux_exchange_mod::ccc
    +
    +private
    +
    + +

    for conservation checks !< NOT USED DELETE

    +

    for conservation checks

    + +
    +
    + +

    ◆ cplclock

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::cplclock
    +
    +private
    +
    + +
    +
    + +

    ◆ d378

    + +
    +
    + + + + + +
    + + + + +
    real parameter atm_land_ice_flux_exchange_mod::d378 = 1.0-d622
    +
    +private
    +
    + +
    +
    + +

    ◆ d608

    + +
    +
    + + + + + +
    + + + + +
    real parameter atm_land_ice_flux_exchange_mod::d608 = d378/d622
    +
    +private
    +
    + +
    +
    + +

    ◆ d622

    + +
    +
    + + + + + +
    + + + + +
    real parameter atm_land_ice_flux_exchange_mod::d622 = rdgas/rvgas
    +
    +private
    +
    + +
    +
    + +

    ◆ direct

    + +
    +
    + + + + + +
    + + + + +
    integer parameter atm_land_ice_flux_exchange_mod::direct =3
    +
    +private
    +
    + +
    +
    + +

    ◆ do_area_weighted_flux

    + +
    +
    + + + + + +
    + + + + +
    logical atm_land_ice_flux_exchange_mod::do_area_weighted_flux = .FALSE.
    +
    +private
    +
    + +
    +
    + +

    ◆ do_forecast

    + +
    +
    + + + + + +
    + + + + +
    logical atm_land_ice_flux_exchange_mod::do_forecast = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ do_init

    + +
    +
    + + + + + +
    + + + + +
    logical atm_land_ice_flux_exchange_mod::do_init = .true.
    +
    +private
    +
    + +
    +
    + +

    ◆ dt_atm

    + +
    +
    + + + + + +
    + + + + +
    real atm_land_ice_flux_exchange_mod::dt_atm
    +
    +private
    +
    + +

    atmospheric timestep [s]

    + +
    +
    + +

    ◆ dt_cpl

    + +
    +
    + + + + + +
    + + + + +
    real atm_land_ice_flux_exchange_mod::dt_cpl
    +
    +private
    +
    + +

    coupled timestep [s]

    + +
    +
    + +

    ◆ ex_albedo_fix

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_albedo_nir_dif_fix

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_albedo_nir_dir_fix

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_albedo_vis_dif_fix

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_albedo_vis_dir_fix

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_avail

    + +
    +
    + + + + + +
    + + + + +
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail
    +
    +private
    +
    + +

    true where data on exchange grid are available

    + +
    +
    + +

    ◆ ex_b_star

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_cd_m

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_cd_t

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t
    +
    +private
    +
    + +

    drag coefficient for heat on exchange grid

    + +
    +
    + +

    ◆ ex_con_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm
    +
    +private
    +
    + +

    deposition velocity at lowest atmospheric level on exchange grid

    + +
    +
    + +

    ◆ ex_dedt_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf
    +
    +private
    +
    + +

    d(water.vap.flux)/d(T canopy)

    + +
    +
    + +

    ◆ ex_dfdtr_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm
    +
    +private
    +
    + +

    d(tracer flux)/d(atm tracer)

    + +
    +
    + +

    ◆ ex_dfdtr_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf
    +
    +private
    +
    + +

    d(tracer flux)/d(surf tracer)

    + +
    +
    + +

    ◆ ex_dhdt_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm
    +
    +private
    +
    + +

    d(sens.heat.flux)/d(T atm)

    + +
    +
    + +

    ◆ ex_dhdt_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf
    +
    +private
    +
    + +

    d(sens.heat.flux)/d(T canopy)

    + +
    +
    + +

    ◆ ex_dqsatdt_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf
    +
    +private
    +
    + +

    d(water.vap.flux)/d(q canopy)

    + +
    +
    + +

    ◆ ex_drag_q

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drag_q
    +
    +private
    +
    + +

    q drag.coeff.

    + +
    +
    + +

    ◆ ex_drdt_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf
    +
    +private
    +
    + +

    d(LW flux)/d(T surf)

    + +
    +
    + +

    ◆ ex_dtaudu_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm
    +
    +private
    +
    + +

    d(stress)/d(u)

    + +
    +
    + +

    ◆ ex_dtaudv_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm
    +
    +private
    +
    + +

    d(stress)/d(v)

    + +
    +
    + +

    ◆ ex_e_q_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_e_t_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_e_tr_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n
    +
    +private
    +
    + +

    coefficient in implicit scheme

    + +
    +
    + +

    ◆ ex_f_t_delt_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_f_tr_delt_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n
    +
    +private
    +
    + +

    coefficient in implicit scheme

    + +
    +
    + +

    ◆ ex_flux_lw

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw
    +
    +private
    +
    + +

    longwave radiation flux

    + +
    +
    + +

    ◆ ex_flux_t

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t
    +
    +private
    +
    + +

    sens heat flux

    + +
    +
    + +

    ◆ ex_flux_tr

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr
    +
    +private
    +
    + +

    tracer fluxes

    + +
    +
    + +

    ◆ ex_flux_u

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u
    +
    +private
    +
    + +

    u stress on atmosphere

    + +
    +
    + +

    ◆ ex_flux_v

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v
    +
    +private
    +
    + +

    v stress on atmosphere

    + +
    +
    + +

    ◆ ex_gas_fields_atm

    + +
    +
    + + + + + +
    + + + + +
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm =>NULL()
    +
    +private
    +
    + +

    gas fields in atm place holder for various atmospheric fields.

    +

    gas fields in atm Place holder for various atmospheric fields.

    + +
    +
    + +

    ◆ ex_gas_fields_ice

    + +
    +
    + + + + + +
    + + + + +
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice =>NULL()
    +
    +private
    +
    + +

    gas fields on ice

    + +
    +
    + +

    ◆ ex_gas_fluxes

    + +
    +
    + + + + + +
    + + + + +
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes =>NULL()
    +
    +private
    +
    + +

    gas flux place holder of intermediate calculations, such as piston velocities etc.

    +

    Place holder of intermediate calculations, such as piston velocities etc.

    + +
    +
    + +

    ◆ ex_land

    + +
    +
    + + + + + +
    + + + + +
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land
    +
    +private
    +
    + +

    true if exchange grid cell is over land

    + +
    +
    + +

    ◆ ex_old_albedo

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo
    +
    +private
    +
    + +

    old value of albedo for downward flux calculations

    + +
    +
    + +

    ◆ ex_p_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf
    +
    +private
    +
    + +

    surface pressure

    + +
    +
    + +

    ◆ ex_seawater

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_slp

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp
    +
    +private
    +
    + +

    surface pressure

    + +
    +
    + +

    ◆ ex_t_ca

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca
    +
    +private
    +
    + +

    near-surface (canopy) air temperature, degK

    + +
    +
    + +

    ◆ ex_t_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf
    +
    +private
    +
    + +

    surface temperature for radiation calc, degK

    + +
    +
    + +

    ◆ ex_t_surf_miz

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz
    +
    +private
    +
    + +

    miz NEED HELP

    +

    miz

    + +
    +
    + +

    ◆ ex_tr_con_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm
    +
    +private
    +
    + +

    deposition velocity at atmospheric height

    + +
    +
    + +

    ◆ ex_tr_con_ref

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref
    +
    +private
    +
    + +

    deposition velocity at reference height

    + +
    +
    + +

    ◆ ex_tr_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf
    +
    +private
    +
    + +

    near-surface tracer fields

    + +
    +
    + +

    ◆ ex_u_star

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_wind

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_z_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ first_static

    + +
    +
    + + + + + +
    + + + + +
    logical atm_land_ice_flux_exchange_mod::first_static = .true.
    +
    +private
    +
    + +

    If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer.

    + +
    +
    + +

    ◆ fluxatmdnclock

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::fluxatmdnclock
    +
    +private
    +
    + +

    FMS clock id to profile flux down from atmosphere.

    + +
    +
    + +

    ◆ fluxatmupclock

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::fluxatmupclock
    +
    +private
    +
    + +

    FMS clock to profile flux up to atmosphere.

    + +
    +
    + +

    ◆ frac_precip

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip
    +
    +private
    +
    + +
    +
    + +

    ◆ ico2

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::ico2 = NO_TRACER
    +
    +private
    +
    + +

    tracer index for co2

    +

    co2 tracer index

    + +
    +
    + +

    ◆ id_b_star

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_b_star
    +
    +private
    +
    + +
    +
    + +

    ◆ id_co2_atm_dvmr

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr
    +
    +private
    +
    + +
    +
    + +

    ◆ id_co2_bot

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_co2_bot
    +
    +private
    +
    + +
    +
    + +

    ◆ id_co2_flux_pcair_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_co2_surf_dvmr

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr
    +
    +private
    +
    + +
    +
    + +

    ◆ id_del_h

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_del_h
    +
    +private
    +
    + +
    +
    + +

    ◆ id_del_m

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_del_m
    +
    +private
    +
    + +
    +
    + +

    ◆ id_del_q

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_del_q
    +
    +private
    +
    + +
    +
    + +

    ◆ id_drag_heat

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_drag_heat
    +
    +private
    +
    + +
    +
    + +

    ◆ id_drag_moist

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_drag_moist
    +
    +private
    +
    + +
    +
    + +

    ◆ id_drag_mom

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_drag_mom
    +
    +private
    +
    + +
    +
    + +

    ◆ id_evspsbl

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_evspsbl
    +
    +private
    +
    + +
    +
    + +

    ◆ id_evspsbl_g

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_evspsbl_g
    +
    +private
    +
    + +
    +
    + +

    ◆ id_gust

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_gust
    +
    +private
    +
    + +
    +
    + +

    ◆ id_height10m

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_height10m
    +
    +private
    +
    + +
    +
    + +

    ◆ id_height2m

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_height2m
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hfls

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_hfls
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hfls_g

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_hfls_g
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hfss

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_hfss
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hfss_g

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_hfss_g
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hurs

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_hurs
    +
    +private
    +
    + +
    +
    + +

    ◆ id_huss

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_huss
    +
    +private
    +
    + +
    +
    + +

    ◆ id_husslut_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_husslut_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_ice_mask

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_ice_mask
    +
    +private
    +
    + +
    +
    + +

    ◆ id_land_mask

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_land_mask
    +
    +private
    +
    + +
    +
    + +

    ◆ id_o2_flux_pcair_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_p_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_p_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_psl

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_psl
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_q_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_flux

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_q_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_flux_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_q_flux_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_ref

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_q_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_ref_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_q_ref_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_star

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_q_star
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_surf

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_q_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_r_flux

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_r_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rh_ref

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rh_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rh_ref_cmip

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rh_ref_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rhs

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rhs
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rls_g

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rls_g
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_heat

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rough_heat
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_moist

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rough_moist
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_mom

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rough_mom
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_scale

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_rough_scale
    +
    +private
    +
    + +
    +
    + +

    ◆ id_sfcwind

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_sfcwind
    +
    +private
    +
    + +
    +
    + +

    ◆ id_sftlf

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_sftlf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_sic

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_sic
    +
    +private
    +
    + +
    +
    + +

    ◆ id_slp

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_slp
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_ca

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_ca
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_flux

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_flux_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_flux_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_ocean

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_ocean
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_ref

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_ref_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_ref_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_surf

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_t_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tas

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_tas
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tas_g

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_tas_g
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tasl_g

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_tasl_g
    +
    +private
    +
    + +
    +
    + +

    ◆ id_taslut_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_taslut_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tauu

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_tauu
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tauv

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_tauv
    +
    +private
    +
    + +
    +
    + +

    ◆ id_thv_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_thv_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_thv_surf

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_thv_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tos

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_tos
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_atm

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_con_atm

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm
    +
    +private
    +
    + +

    deposition velocity at bottom level (atm)

    + +
    +
    + +

    ◆ id_tr_con_atm_land

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land
    +
    +private
    +
    + +

    deposition velocity at bottom level (land)

    + +
    +
    + +

    ◆ id_tr_con_ref

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref
    +
    +private
    +
    + +

    deposition velocity at ref height (atm)

    + +
    +
    + +

    ◆ id_tr_con_ref_land

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land
    +
    +private
    +
    + +

    deposition velocity at reference height (land)

    + +
    +
    + +

    ◆ id_tr_flux

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_flux_land

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_mol_flux

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_mol_flux0

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_mol_flux_land

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_ref

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_ref_land

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tr_surf

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_ts

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_ts
    +
    +private
    +
    + +
    +
    + +

    ◆ id_ts_g

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_ts_g
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tslsi

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_tslsi
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_u_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_flux

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_u_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_ref

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_u_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_ref_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_u_ref_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_star

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_u_star
    +
    +private
    +
    + +
    +
    + +

    ◆ id_uas

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_uas
    +
    +private
    +
    + +
    +
    + +

    ◆ id_v_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_v_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_v_flux

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_v_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_v_ref

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_v_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_v_ref_land

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_v_ref_land
    +
    +private
    +
    + +
    +
    + +

    ◆ id_vas

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_vas
    +
    +private
    +
    + +
    +
    + +

    ◆ id_wind

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_wind
    +
    +private
    +
    + +
    +
    + +

    ◆ id_wind_ref

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_wind_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_z_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::id_z_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ inh3

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::inh3 = NO_TRACER
    +
    +private
    +
    + +

    tracer index for nh3

    +

    nh3 tracer index

    + +
    +
    + +

    ◆ isphum

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::isphum = NO_TRACER
    +
    +private
    +
    + +

    tracer index for specific humidity

    +

    specific humidity index

    + +
    +
    + +

    ◆ mod_name

    + +
    +
    + + + + + +
    + + + + +
    character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name = 'flux'
    +
    +private
    +
    + +

    module name used to register diag_manager

    + +
    +
    + +

    ◆ my_nblocks

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::my_nblocks = 1
    +
    +private
    +
    + +
    +
    + +

    ◆ n_atm_tr

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_atm_tr
    +
    +private
    +
    + +

    number of prognostic tracers in the atmos model

    + +
    +
    + +

    ◆ n_atm_tr_tot

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot
    +
    +private
    +
    + +

    number of prognostic tracers in the atmos model

    + +
    +
    + +

    ◆ n_exch_tr

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_exch_tr
    +
    +private
    +
    + +

    number of tracers exchanged between models

    + +
    +
    + +

    ◆ n_gex_atm2lnd

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd
    +
    +private
    +
    + +

    number of gex fields exchanged between land and atmosphere

    + +
    +
    + +

    ◆ n_gex_lnd2atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm
    +
    +private
    +
    + +

    number of gex fields exchanged between atmosphere and land

    + +
    +
    + +

    ◆ n_lnd_tr

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr
    +
    +private
    +
    + +

    number of prognostic tracers in the land model

    + +
    +
    + +

    ◆ n_lnd_tr_tot

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot
    +
    +private
    +
    + +

    number of prognostic tracers in the land model

    + +
    +
    + +

    ◆ n_xgrid_sfc

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc =0
    +
    +private
    +
    + +

    number of exchange grid points

    +

    total number of exchange grid cells

    + +
    +
    + +

    ◆ nblocks

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::nblocks = 1
    +
    +private
    +
    + +
    +
    + +

    ◆ ni_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::ni_atm
    +
    +private
    +
    + +

    number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice

    + +
    +
    + +

    ◆ nj_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::nj_atm
    +
    +private
    +
    + +

    number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice

    +

    to do atmos diagnostic from flux_ocean_to_ice

    + +
    +
    + +

    ◆ nk_ice

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::nk_ice =0
    +
    +private
    +
    + +

    number of vertical levels in ice

    + +
    +
    + +

    ◆ nxc_ice

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::nxc_ice =0
    +
    +private
    +
    + +

    number of x points in ice compute domain

    + +
    +
    + +

    ◆ nxc_lnd

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::nxc_lnd =0
    +
    +private
    +
    + +

    number of x points in land compute domain

    + +
    +
    + +

    ◆ nyc_ice

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::nyc_ice =0
    +
    +private
    +
    + +

    number of y points in ice compute domain

    + +
    +
    + +

    ◆ nyc_lnd

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::nyc_lnd =0
    +
    +private
    +
    + +

    number of y points in land compute domain

    + +
    +
    + +

    ◆ partition_fprec_from_lprec

    + +
    +
    + + + + + +
    + + + + +
    logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
    +
    +private
    +
    + +

    option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter

    + +
    +
    + +

    ◆ redirect

    + +
    +
    + + + + + +
    + + + + +
    integer parameter atm_land_ice_flux_exchange_mod::redirect =3
    +
    +private
    +
    + +

    same physical grid, same domain decomposition, can directly copy data

    + +
    +
    + +

    ◆ redist

    + +
    +
    + + + + + +
    + + + + +
    integer parameter atm_land_ice_flux_exchange_mod::redist =2
    +
    +private
    +
    + +

    same physical grid, different decomposition, must move data around

    + +
    +
    + +

    ◆ regenclock

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::regenclock
    +
    +private
    +
    + +

    FMS clock to profile exchange grid generation.

    + +
    +
    + +

    ◆ regrid

    + +
    +
    + + + + + +
    + + + + +
    integer parameter atm_land_ice_flux_exchange_mod::regrid =1
    +
    +private
    +
    + +

    grids are physically different, pass via exchange grid

    + +
    +
    + +

    ◆ remap_method

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::remap_method = 1
    +
    +private
    +
    + +
    +
    + +

    ◆ s

    + +
    +
    + + + + + +
    + + + + +
    real atm_land_ice_flux_exchange_mod::s
    +
    +private
    +
    + +

    coupled timestep [s]

    + +
    +
    + +

    ◆ scale_precip_2d

    + +
    +
    + + + + + +
    + + + + +
    logical atm_land_ice_flux_exchange_mod::scale_precip_2d = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ sfcclock

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::sfcclock
    +
    +private
    +
    + +

    FMS clock id to profile sfc_boundary_layer.

    + +
    +
    + +

    ◆ tag

    + +
    +
    + + + + + +
    + + + + +
    character(len=128) atm_land_ice_flux_exchange_mod::tag = '$Name$'
    +
    +private
    +
    + +

    coupler tag

    + +
    +
    + +

    ◆ tfreeze

    + +
    +
    + + + + + +
    + + + + +
    real parameter atm_land_ice_flux_exchange_mod::tfreeze = 273.15
    +
    +private
    +
    + +

    freezing point of water at 1 atm [K]

    + +
    +
    + +

    ◆ timestep

    + +
    +
    + + + + + +
    + + + + +
    real atm_land_ice_flux_exchange_mod::timestep
    +
    +private
    +
    + +
    +
    + +

    ◆ tr_table

    + +
    +
    + + + + + +
    + + + + +
    type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table
    +
    +private
    +
    + +

    table of tracers passed through flux exchange

    + +
    +
    + +

    ◆ tr_table_map

    + +
    +
    + + + + + +
    + + + + +
    type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map
    +
    +private
    +
    + +

    map atm tracers to exchange, ice and land variables

    + +
    +
    + +

    ◆ version

    + +
    +
    + + + + + +
    + + + + +
    character(len=128) atm_land_ice_flux_exchange_mod::version = '$Id$'
    +
    +private
    +
    + +

    coupler version number

    + +
    +
    + +

    ◆ x1_grid_atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::x1_grid_atm
    +
    +private
    +
    + +

    1, exchange grid index for xgrid_stock_move

    +

    =1, exchange grid index for xgrid_stock_move

    + +
    +
    + +

    ◆ x1_grid_ice

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::x1_grid_ice
    +
    +private
    +
    + +

    2, exchange grid index for xgrid_stock_move

    +

    =2, exchange grid index for xgrid_stock_move

    + +
    +
    + +

    ◆ x1_grid_lnd

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::x1_grid_lnd
    +
    +private
    +
    + +

    3, !< exchange grid index for xgrid_stock_move

    +

    =3 exchange grid index for xgrid_stock_move

    + +
    +
    + +

    ◆ xmap_sfc

    + +
    +
    + + + + + +
    + + + + +
    type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc
    +
    +private
    +
    + +

    holds exchange grid between different components

    + +
    +
    + +

    ◆ z_ref_heat

    + +
    +
    + + + + + +
    + + + + +
    real atm_land_ice_flux_exchange_mod::z_ref_heat = 2.
    +
    +private
    +
    + +

    Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q)

    + +
    +
    + +

    ◆ z_ref_mom

    + +
    +
    + + + + + +
    + + + + +
    real atm_land_ice_flux_exchange_mod::z_ref_mom = 10.
    +
    +private
    +
    + +

    Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m)

    + +
    +
    +
    + + + + diff --git a/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html new file mode 100644 index 00000000..16e7b9c1 --- /dev/null +++ b/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html @@ -0,0 +1,159 @@ + + + + + + + +FMS Coupler: atmos_ocean_dep_fluxes_calc_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    atmos_ocean_dep_fluxes_calc_mod Module Reference
    +
    +
    + + + + + +

    +Functions/Subroutines

    subroutine atmos_ocean_dep_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater)
     atmos_ocean_dep_fluxes_calc More...
     
    + + + +

    +Variables

    character(len= *), parameter mod_name = "aodfc"
     
    +

    Function/Subroutine Documentation

    + +

    ◆ atmos_ocean_dep_fluxes_calc()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine atmos_ocean_dep_fluxes_calc_mod::atmos_ocean_dep_fluxes_calc (type(fmscoupler1dbc_type), intent(in) gas_fields_atm,
    type(fmscoupler1dbc_type), intent(in) gas_fields_ice,
    type(fmscoupler1dbc_type), intent(inout) gas_fluxes,
    real, dimension(:), intent(in) seawater 
    )
    +
    + +

    atmos_ocean_dep_fluxes_calc

    +
    Parameters
    + + + + + +
    [in]gas_fields_atmStructure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
    [in]gas_fields_iceStructure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
    [in,out]gas_fluxesStructure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes.
    [in]seawater1 for the open water category, 0 if ice or land.
    +
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ mod_name

    + +
    +
    + + + + +
    character(len=*), parameter atmos_ocean_dep_fluxes_calc_mod::mod_name = "aodfc"
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html new file mode 100644 index 00000000..935d0e15 --- /dev/null +++ b/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html @@ -0,0 +1,684 @@ + + + + + + + +FMS Coupler: atmos_ocean_fluxes_calc_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    atmos_ocean_fluxes_calc_mod Module Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atmos_ocean_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater, tsurf, ustar, cd_m)
     Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive. More...
     
    real function calc_kw (tk, p, u10, h, vb, mw, sc_w, ustar, cd_m)
     Calculate $k_w$. More...
     
    real function calc_ka (t, p, mw, vb, u10, ustar, cd_m)
     Calculate $k_a$. More...
     
    real function calc_kl (t, v, sc)
     Calculate $k_l$. More...
     
    real function schmidt_g (t, p, mw, vb)
     Schmidt number of the gas in air. More...
     
    real function d_air (t, p, mw, vb)
     From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007) More...
     
    real function p_air (t)
     kinematic viscosity in air More...
     
    real function v_air (t)
     Kinematic viscosity in air ( $m^2/s$. More...
     
    real function n_air (t)
     dynamic viscosity in air More...
     
    + + + + + +

    +Variables

    character(len= *), parameter mod_name = "cdwfe"
     
    real, parameter epsln =1.0e-30
     
    +

    Function/Subroutine Documentation

    + +

    ◆ atmos_ocean_fluxes_calc()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public atmos_ocean_fluxes_calc_mod::atmos_ocean_fluxes_calc (type(fmscoupler1dbc_type), intent(in) gas_fields_atm,
    type(fmscoupler1dbc_type), intent(in) gas_fields_ice,
    type(fmscoupler1dbc_type), intent(inout) gas_fluxes,
    real, dimension(:), intent(in) seawater,
    real, dimension(:), intent(in) tsurf,
    real, dimension(:), intent(in), optional ustar,
    real, dimension(:), intent(in), optional cd_m 
    )
    +
    + +

    Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive.

    +
    Parameters
    + + + + + +
    [in]gas_fields_atmStructure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
    [in]gas_fields_iceStructure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
    [in,out]gas_fluxesStructure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes.
    [in]seawater1 for the open water category, 0 if ice or land.
    +
    +
    + +
    +
    + +

    ◆ calc_ka()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::calc_ka (real, intent(in) t,
    real, intent(in) p,
    real, intent(in) mw,
    real, intent(in) vb,
    real, intent(in) u10,
    real, intent(in), optional ustar,
    real, intent(in), optional cd_m 
    )
    +
    +private
    +
    + +

    Calculate $k_a$.

    +

    See calc_kw

    +
    Parameters
    + + + + + + + + +
    [in]ttemperature at surface in C
    [in]ppressure at surface in pa
    [in]mwmolecular weight (g/mol)
    [in]vbmolar volume
    [in]u10wind speed at 10m above the surface in m/s
    [in]ustarFriction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$.
    [in]cd_mDrag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$
    +
    +
    + +
    +
    + +

    ◆ calc_kl()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::calc_kl (real, intent(in) t,
    real, intent(in) v,
    real, intent(in) sc 
    )
    +
    +private
    +
    + +

    Calculate $k_l$.

    +

    See calc_kw, and Nightingale, Global Biogeochemical Cycles, 2000 (https://doi.org/10.1029/1999GB900091)

    +
    Parameters
    + + + +
    [in]ttemperature at surface in C
    [in]vwind speed at surface in m/s
    +
    +
    + +
    +
    + +

    ◆ calc_kw()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::calc_kw (real, intent(in) tk,
    real, intent(in) p,
    real, intent(in) u10,
    real, intent(in) h,
    real, intent(in) vb,
    real, intent(in) mw,
    real, intent(in) sc_w,
    real, intent(in), optional ustar,
    real, intent(in), optional cd_m 
    )
    +
    +private
    +
    + +

    Calculate $k_w$.

    +

    Taken from Johnson, Ocean Science, 2010. (http://doi.org/10.5194/os-6-913-2010)

    +

    Uses equations defined in Liss[1974],

    +\[ F = K_g(c_g - H C_l) = K_l(c_g/H - C_l) \] +

    +

    where $c_g$ and $C_l$ are the bulk gas and liquid concentrations, $H$ is the Henry's law constant ( $H = c_{sg}/C_{sl}$, where $c_{sg}$ is the equilibrium concentration in gas phase ( $g/cm^3$ of air) and $C_{sl}$ is the equilibrium concentration of unionised dissolved gas in liquid phase ( $g/cm^3$ of water)),

    +\[ 1/K_g = 1/k_g + H/k_l \] +

    +

    and

    +\[ 1/K_l = 1/k_l + 1/{Hk_g} \] +

    +

    where $k_g$ and $k_l$ are the exchange constants for the gas and liquid phases, respectively.

    +
    Parameters
    + + + + + + + + + +
    [in]tktemperature at surface in kelvin
    [in]ppressure at surface in pa
    [in]u10wind speed at 10m above the surface in m/s
    [in]hHenry's law constant ( $H=c_sg/C_sl$) (unitless)
    [in]vbMolar volume
    [in]mwmolecular weight (g/mol)
    [in]ustarFriction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$.
    [in]cd_mDrag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$
    +
    +
    + +
    +
    + +

    ◆ d_air()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::d_air (real, intent(in) t,
    real, intent(in) p,
    real, intent(in) mw,
    real, intent(in) vb 
    )
    +
    +private
    +
    + +

    From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007)

    +
    Parameters
    + + + + + +
    [in]ttemperature in c
    [in]ppressure in pa
    [in]mwmolecular weight (g/mol)
    [in]vbdiffusion coefficient ( $cm3/mol$)
    +
    +
    + +
    +
    + +

    ◆ n_air()

    + +
    +
    + + + + + +
    + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::n_air (real, intent(in) t)
    +
    +private
    +
    + +

    dynamic viscosity in air

    +
    Parameters
    + + +
    [in]ttemperature in C
    +
    +
    + +
    +
    + +

    ◆ p_air()

    + +
    +
    + + + + + +
    + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::p_air (real, intent(in) t)
    +
    +private
    +
    + +

    kinematic viscosity in air

    + +
    +
    + +

    ◆ schmidt_g()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::schmidt_g (real, intent(in) t,
    real, intent(in) p,
    real, intent(in) mw,
    real, intent(in) vb 
    )
    +
    +private
    +
    + +

    Schmidt number of the gas in air.

    +
    Parameters
    + + + + + +
    [in]ttemperature at surface in C
    [in]ppressure at surface in pa
    [in]mwmolecular weight (g/mol)
    [in]vbmolar volume
    +
    +
    + +
    +
    + +

    ◆ v_air()

    + +
    +
    + + + + + +
    + + + + + + + + +
    real function atmos_ocean_fluxes_calc_mod::v_air (real, intent(in) t)
    +
    +private
    +
    + +

    Kinematic viscosity in air ( $m^2/s$.

    +
    Parameters
    + + +
    [in]ttemperature in C
    +
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ epsln

    + +
    +
    + + + + + +
    + + + + +
    real, parameter atmos_ocean_fluxes_calc_mod::epsln =1.0e-30
    +
    +private
    +
    + +
    +
    + +

    ◆ mod_name

    + +
    +
    + + + + + +
    + + + + +
    character(len=*), parameter atmos_ocean_fluxes_calc_mod::mod_name = "cdwfe"
    +
    +private
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/namespaceflux__exchange__mod.html b/docs/html/namespaceflux__exchange__mod.html new file mode 100644 index 00000000..1a895502 --- /dev/null +++ b/docs/html/namespaceflux__exchange__mod.html @@ -0,0 +1,4082 @@ + + + + + + + +FMS Coupler: flux_exchange_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    flux_exchange_mod Module Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public gas_exchange_init (gas_fields_atm, gas_fields_ice, gas_fluxes)
     Gas and tracer exchange initialization routine. More...
     
    subroutine, public flux_exchange_init (Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)
     Initialization routine. More...
     
    subroutine, public flux_check_stocks (Time, Atm, Lnd, Ice, Ocn_state)
     Check stock values. More...
     
    subroutine, public flux_init_stocks (Time, Atm, Lnd, Ice, Ocn_state)
     Initialize stock values. More...
     
    subroutine check_atm_grid (Atm, grid_file)
     
    subroutine, public sfc_boundary_layer (dt, Time, Atm, Land, Ice, Boundary)
     
    subroutine, public flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     
    subroutine, public flux_up_to_atmos (Time, Land, Ice, Boundary)
     
    subroutine, public flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)
     
    subroutine read_namelist
     
    subroutine diag_field_init (Time, atmos_axes)
     
    subroutine, public flux_exchange_end (Atm)
     
    subroutine surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    character(len=128) version = '$Id$'
     
    character(len=128) tag = '$Name$'
     
    logical do_init = .true.
     
    real, parameter bound_tol = 1e-7
     
    real, parameter d622 = rdgas/rvgas
     
    real, parameter d378 = 1.0-d622
     
    real z_ref_heat = 2.
     Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
     
    real z_ref_mom = 10.
     Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
     
    logical do_area_weighted_flux = .FALSE.
     
    logical debug_stocks = .FALSE.
     
    logical divert_stocks_report = .FALSE.
     
    logical do_runoff = .TRUE.
     Turns on/off the land runoff interpolation to the ocean. More...
     
    logical do_forecast = .false.
     
    integer nblocks = 1
     
    logical partition_fprec_from_lprec = .FALSE.
     option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
     
    real, parameter tfreeze = 273.15
     
    logical scale_precip_2d = .false.
     
    logical gas_fluxes_initialized = .false.
     
    type(fmscoupler1dbc_type), target ex_gas_fields_atm
     Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
     
    type(fmscoupler1dbc_type), target ex_gas_fields_ice
     Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
     
    type(fmscoupler1dbc_type), target ex_gas_fluxes
     A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. More...
     
    integer ni_atm
     
    integer nj_atm
     to do atmos diagnostic from flux_ocean_to_ice More...
     
    real, dimension(3) ccc
     for conservation checks More...
     
    integer cplclock
     
    real dt_atm
     
    real dt_cpl
     
    real atm_precip_new
     
    character(len=14), parameter mod_name = 'flux'
     
    integer id_drag_moist
     
    integer id_drag_heat
     
    integer id_drag_mom
     
    integer id_rough_moist
     
    integer id_rough_heat
     
    integer id_rough_mom
     
    integer id_u_star
     
    integer id_b_star
     
    integer id_q_star
     
    integer id_u_flux
     
    integer id_v_flux
     
    integer id_t_surf
     
    integer id_t_flux
     
    integer id_q_flux
     
    integer id_r_flux
     
    integer id_t_atm
     
    integer id_u_atm
     
    integer id_v_atm
     
    integer id_wind
     
    integer id_thv_atm
     
    integer id_thv_surf
     
    integer id_t_ref
     
    integer id_rh_ref
     
    integer id_u_ref
     
    integer id_v_ref
     
    integer id_q_ref
     
    integer id_del_h
     
    integer id_del_m
     
    integer id_del_q
     
    integer id_albedo
     
    integer id_gust
     
    integer id_t_ca
     
    integer id_q_surf
     
    integer id_q_atm
     
    integer id_z_atm
     
    integer id_p_atm
     
    integer id_land_mask
     
    integer id_ice_mask
     
    integer id_rough_scale
     
    integer id_albedo_vis_dir
     
    integer id_albedo_nir_dir
     
    integer id_albedo_vis_dif
     
    integer id_albedo_nir_dif
     
    integer id_tas
     
    integer id_uas
     
    integer id_vas
     
    integer id_ts
     
    integer id_psl
     
    integer id_sfcwind
     
    integer id_tauu
     
    integer id_tauv
     
    integer id_hurs
     
    integer id_huss
     
    integer id_evspsbl
     
    integer id_hfls
     
    integer id_hfss
     
    integer id_height2m
     
    integer id_height10m
     
    logical first_static = .true.
     
    logical do_read_nml = .true.
     
    integer isphum
     
    integer n_atm_tr_tot
     
    integer n_atm_tr
     
    logical use_existing_grid_spec = .false.
     
    logical all_ocean = .true.
     
    logical all_land = .false.
     
    integer is
     
    integer ie
     
    integer js
     
    integer je
     
    real, dimension(:,:), allocatable t_surf
     
    real, dimension(:,:), allocatable t_ca
     
    real, dimension(:,:), allocatable q_surf
     
    real, dimension(:,:), allocatable p_surf
     
    real, dimension(:,:), allocatable e_t_n
     
    real, dimension(:,:), allocatable f_t_delt_n
     
    real, dimension(:,:), allocatable e_q_n
     
    real, dimension(:,:), allocatable f_q_delt_n
     
    real, dimension(:,:), allocatable dhdt_surf
     
    real, dimension(:,:), allocatable dedt_surf
     
    real, dimension(:,:), allocatable dedq_surf
     
    real, dimension(:,:), allocatable drdt_surf
     
    real, dimension(:,:), allocatable dhdt_atm
     
    real, dimension(:,:), allocatable dedq_atm
     
    real, dimension(:,:), allocatable flux_t
     
    real, dimension(:,:), allocatable flux_q
     
    real, dimension(:,:), allocatable flux_lw
     
    real, dimension(:,:), allocatable flux_u
     
    real, dimension(:,:), allocatable flux_v
     
    real, dimension(:,:), allocatable drag_q
     
    real, dimension(:,:), allocatable dtaudu_atm
     
    real, dimension(:,:), allocatable dtaudv_atm
     
    real, dimension(:,:), allocatable cd_t
     
    real, dimension(:,:), allocatable cd_m
     
    real, dimension(:,:), allocatable b_star
     
    real, dimension(:,:), allocatable u_star
     
    real, dimension(:,:), allocatable wind
     
    logical used
     
    +

    Function/Subroutine Documentation

    + +

    ◆ check_atm_grid()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine flux_exchange_mod::check_atm_grid (type(atmos_data_type), intent(in) Atm,
    character(len=*), intent(in) grid_file 
    )
    +
    +private
    +
    + +
    +
    + +

    ◆ diag_field_init()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine flux_exchange_mod::diag_field_init (type(fmstime_type), intent(in) Time,
    integer, dimension(2), intent(in) atmos_axes 
    )
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_check_stocks()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::flux_check_stocks (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout), optional Atm,
    type(land_data_type), intent(inout), optional Lnd,
    type(ice_data_type), intent(inout), optional Ice,
    type(ocean_state_type), intent(inout), optional, pointer Ocn_state 
    )
    +
    + +

    Check stock values.

    +

    Will print out any difference between the integrated flux (in time and space) feeding into a component, and the stock stored in that component.

    + +
    +
    + +

    ◆ flux_down_from_atmos()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::flux_down_from_atmos (type (fmstime_type), intent(in) Time,
    type (atmos_data_type), intent(in) Atm,
    type (land_data_type), intent(in) Land,
    type (ice_data_type), intent(in) Ice,
    type(land_ice_atmos_boundary_type), intent(in) Atmos_boundary,
    type(atmos_land_boundary_type), intent(inout) Land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
    )
    +
    + +
    +
    + +

    ◆ flux_exchange_end()

    + +
    +
    + + + + + + + + +
    subroutine, public flux_exchange_mod::flux_exchange_end (type (atmos_data_type), intent(in) Atm)
    +
    + +
    +
    + +

    ◆ flux_exchange_init() [1/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::flux_exchange_init (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_public_type), intent(inout) Ocean,
    type(ocean_state_type), pointer Ocean_state,
    type(atmos_ice_boundary_type), intent(inout) atmos_ice_boundary,
    type(land_ice_atmos_boundary_type), intent(inout) land_ice_atmos_boundary,
    type(land_ice_boundary_type), intent(inout) land_ice_boundary,
    type(ice_ocean_boundary_type), intent(inout) ice_ocean_boundary,
    type(ocean_ice_boundary_type), intent(inout) ocean_ice_boundary,
    logical, intent(in) do_ocean,
    integer, dimension(:), intent(in) slow_ice_ocean_pelist,
    integer, intent(in), optional dt_atmos,
    integer, intent(in), optional dt_cpld 
    )
    +
    + +

    Initialization routine.

    +

    Initializes the interpolation routines,diagnostics and boundary data

    +
    Exceptions
    + + + + + +
    FATAL,grid_spec.nc incompatible with atmosphere resolutionThe atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere resolution from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc)The latitude from file grid_spec.nc is different from the latitude from atmosphere model.
    +
    +
    +
    Parameters
    + + + + + + + + + + + + + +
    [in]timeThe model's current time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in]landA derived data type to specify land boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]oceanA derived data type to specify ocean boundary data
    [in,out]atmos_ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    [in,out]land_ice_boundaryA derived data type to specify properties and fluxes passed from land to ice
    [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
    [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
    [in]dt_atmosAtmosphere time step in seconds
    [in]dt_cpldCoupled time step in seconds
    +
    +
    + +
    +
    + +

    ◆ flux_exchange_init() [2/2]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::flux_exchange_init (type (fmstime_type), intent(in) Time,
    type (atmos_data_type), intent(in) Atm,
    type (land_data_type), intent(in) Land,
    type (ice_data_type), intent(in) Ice,
    type(atmos_ice_boundary_type), intent(inout) atmos_ice_boundary,
    type(land_ice_atmos_boundary_type), intent(inout) land_ice_atmos_boundary 
    )
    +
    + +
    +
    + +

    ◆ flux_init_stocks()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::flux_init_stocks (type(fmstime_type), intent(in) Time,
    type(atmos_data_type) Atm,
    type(land_data_type) Lnd,
    type(ice_data_typeIce,
    type(ocean_state_type), pointer Ocn_state 
    )
    +
    + +

    Initialize stock values.

    +

    This will call the various component stock_pe routines to store the the initial stock values.

    + +
    +
    + +

    ◆ flux_up_to_atmos()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::flux_up_to_atmos (type(fmstime_type), intent(in) Time,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Boundary 
    )
    +
    + +
    +
    + +

    ◆ gas_exchange_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::gas_exchange_init (type(fmscoupler1dbc_type), optional, pointer gas_fields_atm,
    type(fmscoupler1dbc_type), optional, pointer gas_fields_ice,
    type(fmscoupler1dbc_type), optional, pointer gas_fluxes 
    )
    +
    + +

    Gas and tracer exchange initialization routine.

    +

    This routine causes the field table to be read to determine which fields will be needed for the exchanges of gasses and tracers between the atmosphere and ocean. The metadata for these fields are stored in the ex_gas_fluxes and ex_gas_fields arrays, although the data is not allocated yet. This is intended to be called (optionally) prior to flux_exchange_init.

    +
    Parameters
    + + + + +
    gas_fields_atmPointer to a structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.
    gas_fields_icePointer to a structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.
    gas_fluxesPointer to a s structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes.
    +
    +
    + +
    +
    + +

    ◆ read_namelist()

    + +
    +
    + + + + + +
    + + + + + + + +
    subroutine flux_exchange_mod::read_namelist ()
    +
    +private
    +
    + +
    +
    + +

    ◆ sfc_boundary_layer()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public flux_exchange_mod::sfc_boundary_layer (real, intent(in) dt,
    type (fmstime_type), intent(in) Time,
    type (atmos_data_type), intent(in) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Boundary 
    )
    +
    +
    Parameters
    + + + + + + + +
    [in]dtTime step
    [in]timeCurrent time
    [in]atmA derived data type to specify atmospheric boundary data
    [in,out]landA derived data type to specify land boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere,
    +
    +
    + +
    +
    + +

    ◆ surface_flux_2d()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine flux_exchange_mod::surface_flux_2d (real, dimension(:,:), intent(in) t_atm,
    real, dimension(:,:), intent(in) q_atm_in,
    real, dimension(:,:), intent(in) u_atm,
    real, dimension(:,:), intent(in) v_atm,
    real, dimension(:,:), intent(in) p_atm,
    real, dimension(:,:), intent(in) z_atm,
    real, dimension(:,:), intent(in) p_surf,
    real, dimension(:,:), intent(in) t_surf,
    real, dimension(:,:), intent(in) t_ca,
    real, dimension(:,:), intent(inout) q_surf,
    real, dimension(:,:), intent(in) u_surf,
    real, dimension(:,:), intent(in) v_surf,
    real, dimension(:,:), intent(inout) rough_mom,
    real, dimension(:,:), intent(inout) rough_heat,
    real, dimension(:,:), intent(inout) rough_moist,
    real, dimension(:,:), intent(in) rough_scale,
    real, dimension(:,:), intent(in) gust,
    real, dimension(:,:), intent(out) flux_t,
    real, dimension(:,:), intent(out) flux_q,
    real, dimension(:,:), intent(out) flux_r,
    real, dimension(:,:), intent(out) flux_u,
    real, dimension(:,:), intent(out) flux_v,
    real, dimension(:,:), intent(out) cd_m,
    real, dimension(:,:), intent(out) cd_t,
    real, dimension(:,:), intent(out) cd_q,
    real, dimension(:,:), intent(out) w_atm,
    real, dimension(:,:), intent(out) u_star,
    real, dimension(:,:), intent(out) b_star,
    real, dimension(:,:), intent(out) q_star,
    real, dimension(:,:), intent(out) thv_atm,
    real, dimension(:,:), intent(out) thv_surf,
    real, dimension(:,:), intent(out) dhdt_surf,
    real, dimension(:,:), intent(out) dedt_surf,
    real, dimension(:,:), intent(out) dedq_surf,
    real, dimension(:,:), intent(out) drdt_surf,
    real, dimension(:,:), intent(out) dhdt_atm,
    real, dimension(:,:), intent(out) dedq_atm,
    real, dimension(:,:), intent(out) dtaudu_atm,
    real, dimension(:,:), intent(out) dtaudv_atm,
    real, intent(in) dt,
    logical, dimension(:,:), intent(in) land,
    logical, dimension(:,:), intent(in) seawater,
    logical, dimension(:,:), intent(in) avail 
    )
    +
    +private
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ all_land

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::all_land = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ all_ocean

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::all_ocean = .true.
    +
    +private
    +
    + +
    +
    + +

    ◆ atm_precip_new

    + +
    +
    + + + + + +
    + + + + +
    real flux_exchange_mod::atm_precip_new
    +
    +private
    +
    + +
    +
    + +

    ◆ b_star

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::b_star
    +
    +private
    +
    + +
    +
    + +

    ◆ bound_tol

    + +
    +
    + + + + + +
    + + + + +
    real, parameter flux_exchange_mod::bound_tol = 1e-7
    +
    +private
    +
    + +
    +
    + +

    ◆ ccc

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(3) flux_exchange_mod::ccc
    +
    +private
    +
    + +

    for conservation checks

    + +
    +
    + +

    ◆ cd_m

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::cd_m
    +
    +private
    +
    + +
    +
    + +

    ◆ cd_t

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::cd_t
    +
    +private
    +
    + +
    +
    + +

    ◆ cplclock

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::cplclock
    +
    +private
    +
    + +
    +
    + +

    ◆ d378

    + +
    +
    + + + + + +
    + + + + +
    real parameter flux_exchange_mod::d378 = 1.0-d622
    +
    +private
    +
    + +
    +
    + +

    ◆ d622

    + +
    +
    + + + + + +
    + + + + +
    real parameter flux_exchange_mod::d622 = rdgas/rvgas
    +
    +private
    +
    + +
    +
    + +

    ◆ debug_stocks

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::debug_stocks = .FALSE.
    +
    +private
    +
    + +
    +
    + +

    ◆ dedq_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::dedq_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ dedq_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::dedq_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ dedt_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::dedt_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ dhdt_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::dhdt_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ dhdt_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::dhdt_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ divert_stocks_report

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::divert_stocks_report = .FALSE.
    +
    +private
    +
    + +
    +
    + +

    ◆ do_area_weighted_flux

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::do_area_weighted_flux = .FALSE.
    +
    +private
    +
    + +
    +
    + +

    ◆ do_forecast

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::do_forecast = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ do_init

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::do_init = .true.
    +
    +private
    +
    + +
    +
    + +

    ◆ do_read_nml

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::do_read_nml = .true.
    +
    +private
    +
    + +
    +
    + +

    ◆ do_runoff

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::do_runoff = .TRUE.
    +
    +private
    +
    + +

    Turns on/off the land runoff interpolation to the ocean.

    + +
    +
    + +

    ◆ drag_q

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::drag_q
    +
    +private
    +
    + +
    +
    + +

    ◆ drdt_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::drdt_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ dt_atm

    + +
    +
    + + + + + +
    + + + + +
    real flux_exchange_mod::dt_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ dt_cpl

    + +
    +
    + + + + + +
    + + + + +
    real flux_exchange_mod::dt_cpl
    +
    +private
    +
    + +
    +
    + +

    ◆ dtaudu_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::dtaudu_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ dtaudv_atm

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::dtaudv_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ e_q_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::e_q_n
    +
    +private
    +
    + +
    +
    + +

    ◆ e_t_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::e_t_n
    +
    +private
    +
    + +
    +
    + +

    ◆ ex_gas_fields_atm

    + +
    +
    + + + + + +
    + + + + +
    type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_atm
    +
    +private
    +
    + +

    Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.

    + +
    +
    + +

    ◆ ex_gas_fields_ice

    + +
    +
    + + + + + +
    + + + + +
    type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_ice
    +
    +private
    +
    + +

    Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.

    + +
    +
    + +

    ◆ ex_gas_fluxes

    + +
    +
    + + + + + +
    + + + + +
    type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fluxes
    +
    +private
    +
    + +

    A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes.

    + +
    +
    + +

    ◆ f_q_delt_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::f_q_delt_n
    +
    +private
    +
    + +
    +
    + +

    ◆ f_t_delt_n

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::f_t_delt_n
    +
    +private
    +
    + +
    +
    + +

    ◆ first_static

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::first_static = .true.
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_lw

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::flux_lw
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_q

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::flux_q
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_t

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::flux_t
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_u

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::flux_u
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_v

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::flux_v
    +
    +private
    +
    + +
    +
    + +

    ◆ gas_fluxes_initialized

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::gas_fluxes_initialized = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ id_albedo

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_albedo
    +
    +private
    +
    + +
    +
    + +

    ◆ id_albedo_nir_dif

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_albedo_nir_dif
    +
    +private
    +
    + +
    +
    + +

    ◆ id_albedo_nir_dir

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_albedo_nir_dir
    +
    +private
    +
    + +
    +
    + +

    ◆ id_albedo_vis_dif

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_albedo_vis_dif
    +
    +private
    +
    + +
    +
    + +

    ◆ id_albedo_vis_dir

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_albedo_vis_dir
    +
    +private
    +
    + +
    +
    + +

    ◆ id_b_star

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_b_star
    +
    +private
    +
    + +
    +
    + +

    ◆ id_del_h

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_del_h
    +
    +private
    +
    + +
    +
    + +

    ◆ id_del_m

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_del_m
    +
    +private
    +
    + +
    +
    + +

    ◆ id_del_q

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_del_q
    +
    +private
    +
    + +
    +
    + +

    ◆ id_drag_heat

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_drag_heat
    +
    +private
    +
    + +
    +
    + +

    ◆ id_drag_moist

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_drag_moist
    +
    +private
    +
    + +
    +
    + +

    ◆ id_drag_mom

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_drag_mom
    +
    +private
    +
    + +
    +
    + +

    ◆ id_evspsbl

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_evspsbl
    +
    +private
    +
    + +
    +
    + +

    ◆ id_gust

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_gust
    +
    +private
    +
    + +
    +
    + +

    ◆ id_height10m

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_height10m
    +
    +private
    +
    + +
    +
    + +

    ◆ id_height2m

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_height2m
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hfls

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_hfls
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hfss

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_hfss
    +
    +private
    +
    + +
    +
    + +

    ◆ id_hurs

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_hurs
    +
    +private
    +
    + +
    +
    + +

    ◆ id_huss

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_huss
    +
    +private
    +
    + +
    +
    + +

    ◆ id_ice_mask

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_ice_mask
    +
    +private
    +
    + +
    +
    + +

    ◆ id_land_mask

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_land_mask
    +
    +private
    +
    + +
    +
    + +

    ◆ id_p_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_p_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_psl

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_psl
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_q_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_flux

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_q_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_ref

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_q_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_star

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_q_star
    +
    +private
    +
    + +
    +
    + +

    ◆ id_q_surf

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_q_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_r_flux

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_r_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rh_ref

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_rh_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_heat

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_rough_heat
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_moist

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_rough_moist
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_mom

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_rough_mom
    +
    +private
    +
    + +
    +
    + +

    ◆ id_rough_scale

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_rough_scale
    +
    +private
    +
    + +
    +
    + +

    ◆ id_sfcwind

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_sfcwind
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_t_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_ca

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_t_ca
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_flux

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_t_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_ref

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_t_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_t_surf

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_t_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tas

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_tas
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tauu

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_tauu
    +
    +private
    +
    + +
    +
    + +

    ◆ id_tauv

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_tauv
    +
    +private
    +
    + +
    +
    + +

    ◆ id_thv_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_thv_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_thv_surf

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_thv_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ id_ts

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_ts
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_u_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_flux

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_u_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_ref

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_u_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_u_star

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_u_star
    +
    +private
    +
    + +
    +
    + +

    ◆ id_uas

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_uas
    +
    +private
    +
    + +
    +
    + +

    ◆ id_v_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_v_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ id_v_flux

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_v_flux
    +
    +private
    +
    + +
    +
    + +

    ◆ id_v_ref

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_v_ref
    +
    +private
    +
    + +
    +
    + +

    ◆ id_vas

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_vas
    +
    +private
    +
    + +
    +
    + +

    ◆ id_wind

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_wind
    +
    +private
    +
    + +
    +
    + +

    ◆ id_z_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::id_z_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ ie

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::ie
    +
    +private
    +
    + +
    +
    + +

    ◆ is

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::is
    +
    +private
    +
    + +
    +
    + +

    ◆ isphum

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::isphum
    +
    +private
    +
    + +
    +
    + +

    ◆ je

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::je
    +
    +private
    +
    + +
    +
    + +

    ◆ js

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::js
    +
    +private
    +
    + +
    +
    + +

    ◆ mod_name

    + +
    +
    + + + + + +
    + + + + +
    character(len=14), parameter flux_exchange_mod::mod_name = 'flux'
    +
    +private
    +
    + +
    +
    + +

    ◆ n_atm_tr

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::n_atm_tr
    +
    +private
    +
    + +
    +
    + +

    ◆ n_atm_tr_tot

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::n_atm_tr_tot
    +
    +private
    +
    + +
    +
    + +

    ◆ nblocks

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::nblocks = 1
    +
    +private
    +
    + +
    +
    + +

    ◆ ni_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::ni_atm
    +
    +private
    +
    + +
    +
    + +

    ◆ nj_atm

    + +
    +
    + + + + + +
    + + + + +
    integer flux_exchange_mod::nj_atm
    +
    +private
    +
    + +

    to do atmos diagnostic from flux_ocean_to_ice

    + +
    +
    + +

    ◆ p_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::p_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ partition_fprec_from_lprec

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
    +
    +private
    +
    + +

    option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter

    + +
    +
    + +

    ◆ q_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::q_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ scale_precip_2d

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::scale_precip_2d = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ t_ca

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::t_ca
    +
    +private
    +
    + +
    +
    + +

    ◆ t_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::t_surf
    +
    +private
    +
    + +
    +
    + +

    ◆ tag

    + +
    +
    + + + + + +
    + + + + +
    character(len=128) flux_exchange_mod::tag = '$Name$'
    +
    +private
    +
    + +
    +
    + +

    ◆ tfreeze

    + +
    +
    + + + + + +
    + + + + +
    real, parameter flux_exchange_mod::tfreeze = 273.15
    +
    +private
    +
    + +
    +
    + +

    ◆ u_star

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::u_star
    +
    +private
    +
    + +
    +
    + +

    ◆ use_existing_grid_spec

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::use_existing_grid_spec = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ used

    + +
    +
    + + + + + +
    + + + + +
    logical flux_exchange_mod::used
    +
    +private
    +
    + +
    +
    + +

    ◆ version

    + +
    +
    + + + + + +
    + + + + +
    character(len=128) flux_exchange_mod::version = '$Id$'
    +
    +private
    +
    + +
    +
    + +

    ◆ wind

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), allocatable flux_exchange_mod::wind
    +
    +private
    +
    + +
    +
    + +

    ◆ z_ref_heat

    + +
    +
    + + + + + +
    + + + + +
    real flux_exchange_mod::z_ref_heat = 2.
    +
    +private
    +
    + +

    Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q)

    + +
    +
    + +

    ◆ z_ref_mom

    + +
    +
    + + + + + +
    + + + + +
    real flux_exchange_mod::z_ref_mom = 10.
    +
    +private
    +
    + +

    Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m)

    + +
    +
    +
    + + + + diff --git a/docs/html/namespacefull__coupler__mod.html b/docs/html/namespacefull__coupler__mod.html new file mode 100644 index 00000000..1e9632a5 --- /dev/null +++ b/docs/html/namespacefull__coupler__mod.html @@ -0,0 +1,3594 @@ + + + + + + + +FMS Coupler: full_coupler_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    full_coupler_mod Module Reference
    +
    +
    + + + + + + + + + + +

    +Data Types

    type  coupler_chksum_type
     The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. More...
     
    type  coupler_clock_type
     coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. More...
     
    type  coupler_components_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public coupler_init (Atm, Ocean, Land, Ice, Ocean_state, Atmos_land_boundary, Atmos_ice_boundary, Ocean_ice_boundary, Ice_ocean_boundary, Land_ice_atmos_boundary, Land_ice_boundary, Ice_ocean_driver_CS, Ice_bc_restart, Ocn_bc_restart, ensemble_pelist, slow_ice_ocean_pelist, conc_nthreads, coupler_clocks, coupler_components_obj, coupler_chksum_obj, Time_step_cpld, Time_step_atmos, Time_atmos, Time_ocean, num_cpld_calls, num_atmos_calls, Time, Time_start, Time_end, Time_restart, Time_restart_current)
     Initialize all defined exchange grids and all boundary maps. More...
     
    subroutine initialize_coupler_components_obj (this, Atm, Land, Ice, Ocean, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Land_ice_boundary, Ice_ocean_boundary, Ocean_ice_boundary)
     This subroutine associates the pointer in an object of coupler_components_type to the model components. More...
     
    subroutine get_component (this, retrieve_component)
     Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm. More...
     
    subroutine initialize_coupler_chksum_obj (this, components_obj)
     This subroutine associates the pointer in an object of coupler_chksum_type to the component models. More...
     
    subroutine get_components_obj (this, components_obj)
     This subroutine retrieves coupler_chksum_objcomponents_obj. More...
     
    subroutine, public coupler_end (Atm, Land, Ice, Ocean, Ocean_state, Land_ice_atmos_boundary, Atmos_ice_boundary, Atmos_land_boundary, Ice_ocean_boundary, Ocean_ice_boundary, Ocn_bc_restart, Ice_bc_restart, current_timestep, Time_current, Time_start, Time_end, Time_restart_current, coupler_chksum_obj, coupler_clocks)
     This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time. More...
     
    subroutine add_domain_dimension_data (fileobj)
     Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1. More...
     
    subroutine, public coupler_restart (Atm, Ice, Ocean, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart_current, Time_start, time_stamp)
     Writing restart file that contains running time and restart file writing time. More...
     
    subroutine get_coupler_chksums (this, id, timestep)
     Print out checksums for several atm, land and ice variables. More...
     
    subroutine get_atmos_ice_land_ocean_chksums (this, id, timestep)
     This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum. More...
     
    subroutine get_atmos_ice_land_chksums (this, id, timestep)
     This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (atm%pe) then
    call mpp_set_current_pelist(atm%pelist)
    call atmos_ice_land_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist. More...

     
    subroutine get_slow_ice_chksums (this, id, timestep)
     This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (ice%slow_ice_pe) then
    call mpp_set_current_pelist(ice%slow_pelist)
    call slow_ice_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist. More...

     
    subroutine get_ocean_chksums (this, id, timestep)
     This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (ocean%is_ocean_pe) then
    call mpp_set_current_pelist(ocean%pelist)
    call ocean_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist. More...

     
    subroutine coupler_set_clock_ids (coupler_clocks, Atm, Land, Ice, Ocean, ensemble_pelist, slow_ice_ocean_pelist, ensemble_id)
     This subroutine sets the ID for clocks used in coupler_main. More...
     
    subroutine, public coupler_flux_init_finish_stocks (Time, Atm, Land, Ice, Ocean_state, coupler_clocks, init_stocks, finish_stocks)
     This subroutine calls flux_init_stocks or does the final call to flux_check_stocks. More...
     
    subroutine, public coupler_flux_check_stocks (nc, Time, Atm, Land, Ice, Ocean_state, coupler_clocks)
     This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks. More...
     
    subroutine, public coupler_flux_ocean_to_ice (Ocean, Ice, Ocean_ice_boundary, coupler_clocks, slow_ice_ocean_pelist)
     This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice. More...
     
    subroutine, public coupler_flux_ice_to_ocean (Ice, Ocean, Ice_ocean_boundary, coupler_clocks, slow_ice_ocean_pelist, set_current_slow_ice_ocean_pelist)
     This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True. More...
     
    subroutine, public coupler_unpack_ocean_ice_boundary (nc, Time_flux_ocean_to_ice, Ice, Ocean_ice_boundary, coupler_clocks, coupler_chksum_obj)
     This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True. More...
     
    subroutine, public coupler_exchange_slow_to_fast_ice (Ice, coupler_clocks)
     This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls. More...
     
    subroutine, public coupler_exchange_fast_to_slow_ice (Ice, coupler_clocks, set_ice_current_pelist)
     This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true. More...
     
    subroutine, public coupler_set_ice_surface_fields (Ice, coupler_clocks)
     This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call. More...
     
    subroutine, public coupler_generate_sfc_xgrid (Land, Ice, coupler_clocks)
     This subroutine calls generate_sfc_xgrid. Clocks are set and before the call. More...
     
    subroutine, public coupler_atmos_tracer_driver_gather_data (Atm, coupler_clocks)
     This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call. More...
     
    subroutine, public coupler_sfc_boundary_layer (Atm, Land, Ice, Land_ice_atmos_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics. More...
     
    subroutine, public coupler_update_atmos_model_dynamics (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public coupler_update_atmos_model_radiation (Atm, Land_ice_atmos_boundary, coupler_clocks, current_timestep, coupler_chksum_obj)
     This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True. More...
     
    subroutine, public coupler_update_atmos_model_down (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public coupler_flux_down_from_atmos (Atm, Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_clocks, coupler_chksum_obj)
     This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public coupler_update_land_model_fast (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public coupler_update_ice_model_fast (Ice, Atmos_ice_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public coupler_flux_up_to_atmos (Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. More...
     
    subroutine, public coupler_update_atmos_model_up (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
     
    subroutine, public coupler_flux_atmos_to_ocean (Atm, Atmos_ice_boundary, Ice, Time_atmos)
     This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc. More...
     
    subroutine, public coupler_update_atmos_model_state (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively. More...
     
    subroutine, public coupler_update_land_model_slow (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
     In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public coupler_flux_land_to_ice (Land, Ice, Land_ice_boundary, Time, current_timestep, coupler_chksum_obj, coupler_clocks)
     This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public coupler_unpack_land_ice_boundary (Ice, Land_ice_boundary, coupler_clocks)
     This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary. More...
     
    subroutine, public coupler_update_ice_model_slow_and_stocks (Ice, coupler_clocks)
     This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks. More...
     
    subroutine, public coupler_update_ocean_model (Ocean, Ocean_state, Ice_ocean_boundary, Time_ocean, Time_step_cpld, current_timestep, coupler_chksum_obj)
     This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True. More...
     
    subroutine, public coupler_intermediate_restart (Atm, Ice, Ocean, Ocean_state, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart, Time_restart_current, Time_start)
     Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time. More...
     
    subroutine, public coupler_summarize_timestep (current_timestep, num_cpld_calls, coupler_chksum_obj, is_atmos_pe, omp_sec, imb_sec)
     This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    integer, dimension(6), public restart_interval = (/ 0, 0, 0, 0, 0, 0/)
     namelist interface More...
     
    integer, dimension(6) current_date = (/ 0, 0, 0, 0, 0, 0 /)
     The date that the current integration starts with. (See force_date_from_namelist.) More...
     
    character(len=17) calendar = ' '
     
    logical force_date_from_namelist = .false.
     Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used. More...
     
    integer, public months =0
     Number of months the current integration will be run. More...
     
    integer, public days =0
     Number of days the current integration will be run. More...
     
    integer, public hours =0
     Number of hours the current integration will be run. More...
     
    integer, public minutes =0
     Number of minutes the current integration will be run. More...
     
    integer, public seconds =0
     Number of seconds the current integration will be run. More...
     
    integer, public dt_atmos = 0
     Atmospheric model time step in seconds, including the fast coupling with land and sea ice. More...
     
    integer, public dt_cpld = 0
     Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. More...
     
    integer, public atmos_npes =0
     The number of MPI tasks to use for the atmosphere. More...
     
    integer, public ocean_npes =0
     The number of MPI tasks to use for the ocean. More...
     
    integer, public ice_npes =0
     The number of MPI tasks to use for the ice. More...
     
    integer, public land_npes =0
     The number of MPI tasks to use for the land. More...
     
    integer, public atmos_nthreads =1
     Number of OpenMP threads to use in the atmosphere. More...
     
    integer, public ocean_nthreads =1
     Number of OpenMP threads to use in the ocean. More...
     
    integer, public radiation_nthreads =1
     Number of threads to use for the radiation. More...
     
    logical, public do_atmos =.true.
     Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only. More...
     
    logical, public do_land =.true.
     See do_atmos. More...
     
    logical, public do_ice =.true.
     See do_atmos. More...
     
    logical, public do_ocean =.true.
     See do_atmos. More...
     
    logical, public do_flux =.true.
     See do_atmos. More...
     
    logical, public concurrent =.FALSE.
     If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean... More...
     
    logical, public do_concurrent_radiation =.FALSE.
     If .TRUE. then radiation is done concurrently. More...
     
    logical, public use_lag_fluxes =.TRUE.
     If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. More...
     
    logical, public concurrent_ice =.FALSE.
     If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. More...
     
    logical, public slow_ice_with_ocean =.FALSE.
     If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. More...
     
    logical, public combined_ice_and_ocean =.FALSE.
     
    logical, public do_chksum =.FALSE.
     If .TRUE., do multiple checksums throughout the execution of the model. More...
     
    logical, public do_endpoint_chksum =.TRUE.
     If .TRUE., do checksums of the initial and final states. More...
     
    logical, public do_debug =.FALSE.
     If .TRUE. print additional debugging messages. More...
     
    integer, public check_stocks = 0
     -1: never 0: at end of run only n>0: every n coupled steps More...
     
    logical, public use_hyper_thread = .false.
     
    character(len=80) text
     
    character(len=48), parameter mod_name = 'coupler_main_mod'
     
    integer calendar_type = INVALID_CALENDAR
     
    integer, dimension(6) date_init = (/ 0, 0, 0, 0, 0, 0 /)
     coupled model initial date More...
     
    +

    Function/Subroutine Documentation

    + +

    ◆ add_domain_dimension_data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    subroutine full_coupler_mod::add_domain_dimension_data (type(fmsnetcdfdomainfile_t) fileobj)
    +
    +private
    +
    + +

    Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1.

    +
    Parameters
    + + +
    fileobjFms2io domain decomposed fileobj
    +
    +
    + +
    +
    + +

    ◆ coupler_atmos_tracer_driver_gather_data()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_atmos_tracer_driver_gather_data (type(atmos_data_type), intent(inout) Atm,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call.

    + +
    +
    + +

    ◆ coupler_end()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_end (type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_public_type), intent(inout) Ocean,
    type(ocean_state_type), intent(inout), pointer Ocean_state,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
    type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
    type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
    type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
    integer, intent(in) current_timestep,
    type(fmstime_type), intent(in) Time_current,
    type(fmstime_type), intent(in) Time_start,
    type(fmstime_type), intent(in) Time_end,
    type(fmstime_type), intent(in) Time_restart_current,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(in) coupler_clocks 
    )
    +
    + +

    This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time.

    +
    Parameters
    + + + + + + + + + + +
    [in,out]land_ice_atmos_boundaryLand_ice_boundary
    [in,out]ocn_bc_restartrequired for coupler_restart
    [in,out]ice_bc_restartrequired for coupler_restart
    [in]current_timestepcurrent_timestep (nc)
    [in]coupler_chksum_objrequired for chksum computations
    [in]time_currentCurrent timestep
    [in]time_startmodel starting time
    [in]time_endmodel run time
    [in]time_restart_currentTime corresponding to last restart time
    +
    +
    + +
    +
    + +

    ◆ coupler_exchange_fast_to_slow_ice()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_exchange_fast_to_slow_ice (type(ice_data_type), intent(inout) Ice,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    logical, intent(in), optional set_ice_current_pelist 
    )
    +
    + +

    This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true.

    +
    Parameters
    + + +
    [in]set_ice_current_pelistIf true, call mpp_set_current_pelist(Icepelist)
    +
    +
    + +
    +
    + +

    ◆ coupler_exchange_slow_to_fast_ice()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_exchange_slow_to_fast_ice (type(ice_data_type), intent(inout) Ice,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls.

    + +
    +
    + +

    ◆ coupler_flux_atmos_to_ocean()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_atmos_to_ocean (type(atmos_data_type), intent(inout) Atm,
    type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
    type(ice_data_type), intent(inout) Ice,
    type(fmstime_type), intent(in) Time_atmos 
    )
    +
    + +

    This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc.

    +
    Parameters
    + + +
    [in]time_atmosTime in seconds
    +
    +
    + +
    +
    + +

    ◆ coupler_flux_check_stocks()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_check_stocks (integer, intent(in) nc,
    type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_state_type), intent(inout), pointer Ocean_state,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks.

    +
    Parameters
    + + +
    [in]nccurrent outerloop timestep
    +
    +
    + +
    +
    + +

    ◆ coupler_flux_down_from_atmos()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_down_from_atmos (type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
    type(fmstime_type), intent(in) Time_atmos,
    integer, intent(in) current_timestep,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj 
    )
    +
    + +

    This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True.

    +
    Parameters
    + + + +
    [in]time_atmosTime_atmos FmsTime_type containing time in seconds
    [in]coupler_chksum_objused to compute chksum
    +
    +
    + +
    +
    + +

    ◆ coupler_flux_ice_to_ocean()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_ice_to_ocean (type(ice_data_type), intent(inout) Ice,
    type(ocean_public_type), intent(inout) Ocean,
    type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    integer, dimension(:), intent(in), optional slow_ice_ocean_pelist,
    logical, intent(in), optional set_current_slow_ice_ocean_pelist 
    )
    +
    + +

    This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True.

    +
    Parameters
    + + +
    [in]set_current_slow_ice_ocean_pelistif true, will call mpp_set_current_pelist(slow_ice_ocean_pelist)
    +
    +
    +

    mpp_set_current_pelist(slow_ice_ocean_pelist) is not required if coupler_flux_ice_to_ocean is being called after coupler_flux_ocean_to_ice: mpp_set_current_pelist(slow_ice_ocean_pelist) is called in coupler_flux_ocean_to_ice

    + +
    +
    + +

    ◆ coupler_flux_init_finish_stocks()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_init_finish_stocks (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_state_type), intent(inout), pointer Ocean_state,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    logical, intent(in), optional init_stocks,
    logical, intent(in), optional finish_stocks 
    )
    +
    + +

    This subroutine calls flux_init_stocks or does the final call to flux_check_stocks.

    +
    Parameters
    + + + +
    [in]timecurrent Time
    [in]finish_stockscontrol flags to either call flux_init_stocks or the final flux_check_stocks
    +
    +
    + +
    +
    + +

    ◆ coupler_flux_land_to_ice()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_land_to_ice (type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_boundary_type), intent(inout) Land_ice_boundary,
    type(fmstime_type), intent(in) Time,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True.

    +
    Parameters
    + + + + +
    [in]timeTime (in seconds)
    [in]current_timestepcurrent timestep
    [in]coupler_chksum_objcoupler_chksum_obj to compute chksums
    +
    +
    + +
    +
    + +

    ◆ coupler_flux_ocean_to_ice()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_ocean_to_ice (type(ocean_public_type), intent(inout) Ocean,
    type(ice_data_type), intent(in) Ice,
    type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    integer, dimension(:), intent(in) slow_ice_ocean_pelist 
    )
    +
    + +

    This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice.

    + +
    +
    + +

    ◆ coupler_flux_up_to_atmos()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_flux_up_to_atmos (type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
    type(fmstime_type), intent(in) Time_atmos,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(in) coupler_clocks 
    )
    +
    + +

    This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True.

    +
    Parameters
    + + + + +
    [in]time_atmosTime_atmos, time in seconds
    [in]current_timestepcurrent timestep
    [in]coupler_chksum_objpoints to component types
    +
    +
    + +
    +
    + +

    ◆ coupler_generate_sfc_xgrid()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_generate_sfc_xgrid (type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls generate_sfc_xgrid. Clocks are set and before the call.

    + +
    +
    + +

    ◆ coupler_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_init (type(atmos_data_type), intent(inout) Atm,
    type(ocean_public_type), intent(inout) Ocean,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_state_type), intent(inout), pointer Ocean_state,
    type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
    type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
    type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    type(land_ice_boundary_type), intent(inout) Land_ice_boundary,
    type(ice_ocean_driver_type), intent(inout), pointer Ice_ocean_driver_CS,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
    integer, dimension(:,:), intent(inout), allocatable ensemble_pelist,
    integer, dimension(:), intent(inout), allocatable slow_ice_ocean_pelist,
    integer, intent(inout) conc_nthreads,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    type(coupler_components_type), intent(inout) coupler_components_obj,
    type(coupler_chksum_type), intent(inout) coupler_chksum_obj,
    type(fmstime_type), intent(inout) Time_step_cpld,
    type(fmstime_type), intent(inout) Time_step_atmos,
    type(fmstime_type), intent(inout) Time_atmos,
    type(fmstime_type), intent(inout) Time_ocean,
    integer, intent(inout) num_cpld_calls,
    integer, intent(inout) num_atmos_calls,
    type(fmstime_type), intent(inout) Time,
    type(fmstime_type), intent(inout) Time_start,
    type(fmstime_type), intent(inout) Time_end,
    type(fmstime_type), intent(inout) Time_restart,
    type(fmstime_type), intent(inout) Time_restart_current 
    )
    +
    + +

    Initialize all defined exchange grids and all boundary maps.

    +

    The pelists need to be set before initializing the clocks

    +

    Initialize coupler_components_obj memebers to point to model components

    +

    Initialize coupler_chksum_obj

    + +
    +
    + +

    ◆ coupler_intermediate_restart()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_intermediate_restart (type(atmos_data_type), intent(inout) Atm,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_public_type), intent(inout) Ocean,
    type(ocean_state_type), intent(inout), pointer Ocean_state,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
    type(fmstime_type), intent(in) Time_current,
    type(fmstime_type), intent(inout) Time_restart,
    type(fmstime_type), intent(inout) Time_restart_current,
    type(fmstime_type), intent(in) Time_start 
    )
    +
    + +

    Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time.

    +
    Parameters
    + + + + + + +
    [in,out]ocn_bc_restartused for coupler type restarts
    [in,out]ice_bc_restartused for coupler type restarts
    [in]time_startcurrent Timestep and model start time
    [in,out]time_restartRestart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart.
    [in,out]time_restart_currentRestart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart.
    +
    +
    + +
    +
    + +

    ◆ coupler_restart()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_restart (type(atmos_data_type), intent(inout) Atm,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_public_type), intent(inout) Ocean,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
    type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
    type(fmstime_type), intent(in) Time_current,
    type(fmstime_type), intent(in) Time_restart_current,
    type(fmstime_type), intent(in) Time_start,
    character(len=*), intent(in), optional time_stamp 
    )
    +
    + +

    Writing restart file that contains running time and restart file writing time.

    +
    Parameters
    + + + + + + + +
    [in,out]ocn_bc_restartrequired for restarts
    [in,out]ice_bc_restartrequired for restarts
    [in]time_currentcurrent model runtime (Time)
    [in]time_restart_currentcurrent restart time
    [in]time_startmodel start time
    [in]time_stamptime_stamp for restart
    +
    +
    + +
    +
    + +

    ◆ coupler_set_clock_ids()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::coupler_set_clock_ids (type(coupler_clock_type), intent(inout) coupler_clocks,
    type(atmos_data_type), intent(in) Atm,
    type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(in) Ice,
    type(ocean_public_type), intent(in) Ocean,
    integer, dimension(:,:), intent(in) ensemble_pelist,
    integer, dimension(:), intent(in) slow_ice_ocean_pelist,
    integer, intent(in) ensemble_id 
    )
    +
    +private
    +
    + +

    This subroutine sets the ID for clocks used in coupler_main.

    +
    Parameters
    + + + + + + + +
    [in]atmAtm, required to retrieve pe information
    [in]landLand, required to retrieve pe information
    [in]oceanOcean, required to retrieve pe information
    [in]iceIce, required to retrieve pe information
    [in]slow_ice_ocean_pelistslow_ice_oean_pelist
    [in]ensemble_idensemble_id used as index in ensemble_pelist
    +
    +
    +

    initialization clock

    + +
    +
    + +

    ◆ coupler_set_ice_surface_fields()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_set_ice_surface_fields (type(ice_data_type), intent(inout) Ice,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call.

    + +
    +
    + +

    ◆ coupler_sfc_boundary_layer()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_sfc_boundary_layer (type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    type(fmstime_type), intent(in) Time_atmos,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics.

    +
    Parameters
    + + + +
    [in]time_atmosAtmos time
    [in]current_timestep(nc-1)*num_atmos_cal + na
    +
    +
    + +
    +
    + +

    ◆ coupler_summarize_timestep()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_summarize_timestep (integer, intent(in) current_timestep,
    integer, intent(in) num_cpld_calls,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    logical, intent(in) is_atmos_pe,
    real, dimension(:), intent(inout) omp_sec,
    real, dimension(:), intent(inout) imb_sec 
    )
    +
    + +

    This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True.

    +
    Parameters
    + + + + + +
    [in]current_timestepcurrent_timestep, nc
    [in]num_cpld_callstotal number of outerloop timestep
    [in]is_atmos_peAtmpe
    [in,out]imb_secfrom omp computation
    +
    +
    + +
    +
    + +

    ◆ coupler_unpack_land_ice_boundary()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_unpack_land_ice_boundary (type(ice_data_type), intent(inout) Ice,
    type(land_ice_boundary_type), intent(inout) Land_ice_boundary,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary.

    +

    These two calls occur on whichever PEs handle the fast ice processess.

    + +
    +
    + +

    ◆ coupler_unpack_ocean_ice_boundary()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_unpack_ocean_ice_boundary (integer, intent(in) nc,
    type(fmstime_type), intent(inout) Time_flux_ocean_to_ice,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj 
    )
    +
    + +

    This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True.

    +
    Parameters
    + + + +
    [in]ncCurrent outer loop timestep
    [in,out]time_flux_ocean_to_iceTime flux_ocean_to_ice
    +
    +
    + +
    +
    + +

    ◆ coupler_update_atmos_model_down()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_atmos_model_down (type(atmos_data_type), intent(inout) Atm,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

    +
    Parameters
    + + + + +
    [in,out]land_ice_atmos_boundaryLand ice_atmos_boundary
    [in]current_timestepCurrent timestep
    [in]coupler_chksum_objcoupler_chksum_obj pointing to component types
    +
    +
    + +
    +
    + +

    ◆ coupler_update_atmos_model_dynamics()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_atmos_model_dynamics (type(atmos_data_type), intent(inout) Atm,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

    +
    Parameters
    + + + +
    [in]current_timestepCurrent timestep
    [in]coupler_chksum_objcoupler_chksum_obj pointing to component types
    +
    +
    + +
    +
    + +

    ◆ coupler_update_atmos_model_radiation()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_atmos_model_radiation (type(atmos_data_type), intent(inout) Atm,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    type(coupler_clock_type), intent(inout) coupler_clocks,
    integer, intent(in), optional current_timestep,
    type(coupler_chksum_type), intent(in), optional coupler_chksum_obj 
    )
    +
    + +

    This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True.

    +
    Parameters
    + + + +
    [in]current_timestepCurrent timestep
    [in]coupler_chksum_objpoints to component types
    +
    +
    +

    cannot put mpp_chksum for concurrent_radiation as it requires the ability to have two different OpenMP threads inside of MPI at the same time which is not currently allowed

    + +
    +
    + +

    ◆ coupler_update_atmos_model_state()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_atmos_model_state (type(atmos_data_type), intent(inout) Atm,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively.

    +
    Parameters
    + + +
    [in]coupler_chksum_objused to compute chksums
    +
    +
    + +
    +
    + +

    ◆ coupler_update_atmos_model_up()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_atmos_model_up (type(atmos_data_type), intent(inout) Atm,
    type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

    +
    Parameters
    + + +
    [in]coupler_chksum_objpoints to component types
    +
    +
    + +
    +
    + +

    ◆ coupler_update_ice_model_fast()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_ice_model_fast (type(ice_data_type), intent(inout) Ice,
    type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
    integer, dimension(:), intent(in) atm_pelist,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

    +
    Parameters
    + + + + +
    [in]atm_pelistAtmpelist to reset the pelist to Atmpelist
    [in]coupler_chksum_objpoints to component types
    [in,out]coupler_clockscurrent pelist = Atmpelist
    +
    +
    + +
    +
    + +

    ◆ coupler_update_ice_model_slow_and_stocks()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_ice_model_slow_and_stocks (type(ice_data_type), intent(inout) Ice,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks.

    + +
    +
    + +

    ◆ coupler_update_land_model_fast()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_land_model_fast (type(land_data_type), intent(inout) Land,
    type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
    integer, dimension(:), intent(in) atm_pelist,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

    +
    Parameters
    + + + + + +
    [in]atm_pelistAtmpelist to reset the pelist to Atmpelist
    [in]current_timestepcurrent timestep
    [in]coupler_chksum_objpoints to component types
    [in,out]coupler_clockscurrent pelist=Atmpelist
    +
    +
    + +
    +
    + +

    ◆ coupler_update_land_model_slow()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_land_model_slow (type(land_data_type), intent(inout) Land,
    type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
    integer, dimension(:), intent(in) atm_pelist,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj,
    type(coupler_clock_type), intent(inout) coupler_clocks 
    )
    +
    + +

    In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True.

    +
    Parameters
    + + + + +
    [in]atm_pelistatm_pelist used for clocks
    [in]current_timestepcurrent timestep
    [in]coupler_chksum_objcoupler_chksum_obj for chksum computation
    +
    +
    + +
    +
    + +

    ◆ coupler_update_ocean_model()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public full_coupler_mod::coupler_update_ocean_model (type(ocean_public_type), intent(inout) Ocean,
    type(ocean_state_type), intent(inout), pointer Ocean_state,
    type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
    type(fmstime_type), intent(inout) Time_ocean,
    type(fmstime_type), intent(in) Time_step_cpld,
    integer, intent(in) current_timestep,
    type(coupler_chksum_type), intent(in) coupler_chksum_obj 
    )
    +
    + +

    This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True.

    +
    Parameters
    + + + + +
    [in]time_step_cpldtotal number of timesteps
    [in]current_timestepcurrent timestep
    [in]coupler_chksum_objused for checksum computation
    +
    +
    + +
    +
    + +

    ◆ get_atmos_ice_land_chksums()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::get_atmos_ice_land_chksums (class(coupler_chksum_type), intent(in) this,
    character(len=*), intent(in) id,
    integer, intent(in) timestep 
    )
    +
    +private
    +
    + +

    This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (atm%pe) then
    call mpp_set_current_pelist(atm%pelist)
    call atmos_ice_land_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist.

    +
    Parameters
    + + + +
    [in]thisself
    [in]idid to label CHECKSUMS in stdout
    +
    +
    + +
    +
    + +

    ◆ get_atmos_ice_land_ocean_chksums()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::get_atmos_ice_land_ocean_chksums (class(coupler_chksum_type), intent(in) this,
    character(len=*), intent(in) id,
    integer, intent(in) timestep 
    )
    +
    +private
    +
    + +

    This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum.

    +
    Parameters
    + + + +
    [in]thisself
    [in]idID labelling the set of checksums
    +
    +
    + +
    +
    + +

    ◆ get_component()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::get_component (class(coupler_components_type), intent(in) this,
    class(*), intent(out) retrieve_component 
    )
    +
    +private
    +
    + +

    Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm.

    +
    Parameters
    + + + +
    [in]thisthe coupler_components_type object
    [out]retrieve_componentrequested component to be retrieve. retrieve_component can be of type atmos_data_type, land_data_type, ice_data_type, ocean_public_type, land_ice_atmos_boundary_type, atmos_land_boundary_type, atmos_ice_boundary_type, land_ice_boundary_type, ice_ocean_boundary_type, ocean_ice_boundary_type
    +
    +
    + +
    +
    + +

    ◆ get_components_obj()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::get_components_obj (class(coupler_chksum_type), intent(in) this,
    type(coupler_components_type), intent(out) components_obj 
    )
    +
    +private
    +
    + +

    This subroutine retrieves coupler_chksum_objcomponents_obj.

    +
    Parameters
    + + + +
    [in]thiscoupler_chksum_type
    [out]components_objcoupler_components_type to be returned
    +
    +
    + +
    +
    + +

    ◆ get_coupler_chksums()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::get_coupler_chksums (class(coupler_chksum_type), intent(in) this,
    character(len=*), intent(in) id,
    integer, intent(in) timestep 
    )
    +
    +private
    +
    + +

    Print out checksums for several atm, land and ice variables.

    +
    Parameters
    + + + +
    [in]thisself
    [in]idid to label CHECKSUMS in stdout
    +
    +
    + +
    +
    + +

    ◆ get_ocean_chksums()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::get_ocean_chksums (class(coupler_chksum_type), intent(in) this,
    character(len=*), intent(in) id,
    integer, intent(in) timestep 
    )
    +
    +private
    +
    + +

    This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (ocean%is_ocean_pe) then
    call mpp_set_current_pelist(ocean%pelist)
    call ocean_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist.

    +
    Parameters
    + + + +
    [in]thisself
    [in]idID labelling the set of CHECKSUMS
    +
    +
    + +
    +
    + +

    ◆ get_slow_ice_chksums()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::get_slow_ice_chksums (class(coupler_chksum_type), intent(in) this,
    character(len=*), intent(in) id,
    integer, intent(in) timestep 
    )
    +
    +private
    +
    + +

    This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

    if (ice%slow_ice_pe) then
    call mpp_set_current_pelist(ice%slow_pelist)
    call slow_ice_chksum('MAIN_LOOP-', nc)
    endif

    If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

    call mpp_set_current_pelist()

    after you exit. This is only necessary if you need to return to the global pelist.

    +
    Parameters
    + + + +
    [in]thisself
    [in]idid to label CHECKSUMS in stdout
    +
    +
    + +
    +
    + +

    ◆ initialize_coupler_chksum_obj()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::initialize_coupler_chksum_obj (class(coupler_chksum_type), intent(inout) this,
    type(coupler_components_type), intent(in), target components_obj 
    )
    +
    +private
    +
    + +

    This subroutine associates the pointer in an object of coupler_chksum_type to the component models.

    + +
    +
    + +

    ◆ initialize_coupler_components_obj()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine full_coupler_mod::initialize_coupler_components_obj (class(coupler_components_type), intent(inout) this,
    type(atmos_data_type), intent(in), target Atm,
    type(land_data_type), intent(in), target Land,
    type(ice_data_type), intent(in), target Ice,
    type(ocean_public_type), intent(in), target Ocean,
    type(land_ice_atmos_boundary_type), intent(in), target Land_ice_atmos_boundary,
    type(atmos_land_boundary_type), intent(in), target Atmos_land_boundary,
    type(atmos_ice_boundary_type), intent(in), target Atmos_ice_boundary,
    type(land_ice_boundary_type), intent(in), target Land_ice_boundary,
    type(ice_ocean_boundary_type), intent(in), target Ice_ocean_boundary,
    type(ocean_ice_boundary_type), intent(in), target Ocean_ice_boundary 
    )
    +
    +private
    +
    + +

    This subroutine associates the pointer in an object of coupler_components_type to the model components.

    +
    Parameters
    + + +
    [in,out]thisself
    +
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ atmos_npes

    + +
    +
    + + + + +
    integer, public full_coupler_mod::atmos_npes =0
    +
    + +

    The number of MPI tasks to use for the atmosphere.

    + +
    +
    + +

    ◆ atmos_nthreads

    + +
    +
    + + + + +
    integer, public full_coupler_mod::atmos_nthreads =1
    +
    + +

    Number of OpenMP threads to use in the atmosphere.

    + +
    +
    + +

    ◆ calendar

    + +
    +
    + + + + + +
    + + + + +
    character(len=17) full_coupler_mod::calendar = ' '
    +
    +private
    +
    + +
    +
    + +

    ◆ calendar_type

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::calendar_type = INVALID_CALENDAR
    +
    +private
    +
    + +
    +
    + +

    ◆ check_stocks

    + +
    +
    + + + + +
    integer, public full_coupler_mod::check_stocks = 0
    +
    + +

    -1: never 0: at end of run only n>0: every n coupled steps

    + +
    +
    + +

    ◆ combined_ice_and_ocean

    + +
    +
    + + + + +
    logical, public full_coupler_mod::combined_ice_and_ocean =.FALSE.
    +
    + +
    +
    + +

    ◆ concurrent

    + +
    +
    + + + + +
    logical, public full_coupler_mod::concurrent =.FALSE.
    +
    + +

    If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean...

    + +
    +
    + +

    ◆ concurrent_ice

    + +
    +
    + + + + +
    logical, public full_coupler_mod::concurrent_ice =.FALSE.
    +
    + +

    If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities.

    + +
    +
    + +

    ◆ current_date

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(6) full_coupler_mod::current_date = (/ 0, 0, 0, 0, 0, 0 /)
    +
    +private
    +
    + +

    The date that the current integration starts with. (See force_date_from_namelist.)

    +

    The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' cannot be used because the time_manager's date functions are used. All values must be lower case.

    + +
    +
    + +

    ◆ date_init

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(6) full_coupler_mod::date_init = (/ 0, 0, 0, 0, 0, 0 /)
    +
    +private
    +
    + +

    coupled model initial date

    + +
    +
    + +

    ◆ days

    + +
    +
    + + + + +
    integer, public full_coupler_mod::days =0
    +
    + +

    Number of days the current integration will be run.

    + +
    +
    + +

    ◆ do_atmos

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_atmos =.true.
    +
    + +

    Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only.

    + +
    +
    + +

    ◆ do_chksum

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_chksum =.FALSE.
    +
    + +

    If .TRUE., do multiple checksums throughout the execution of the model.

    + +
    +
    + +

    ◆ do_concurrent_radiation

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_concurrent_radiation =.FALSE.
    +
    + +

    If .TRUE. then radiation is done concurrently.

    + +
    +
    + +

    ◆ do_debug

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_debug =.FALSE.
    +
    + +

    If .TRUE. print additional debugging messages.

    + +
    +
    + +

    ◆ do_endpoint_chksum

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_endpoint_chksum =.TRUE.
    +
    + +

    If .TRUE., do checksums of the initial and final states.

    + +
    +
    + +

    ◆ do_flux

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_flux =.true.
    +
    + +

    See do_atmos.

    + +
    +
    + +

    ◆ do_ice

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_ice =.true.
    +
    + +

    See do_atmos.

    + +
    +
    + +

    ◆ do_land

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_land =.true.
    +
    + +

    See do_atmos.

    + +
    +
    + +

    ◆ do_ocean

    + +
    +
    + + + + +
    logical, public full_coupler_mod::do_ocean =.true.
    +
    + +

    See do_atmos.

    + +
    +
    + +

    ◆ dt_atmos

    + +
    +
    + + + + +
    integer, public full_coupler_mod::dt_atmos = 0
    +
    + +

    Atmospheric model time step in seconds, including the fast coupling with land and sea ice.

    + +
    +
    + +

    ◆ dt_cpld

    + +
    +
    + + + + +
    integer, public full_coupler_mod::dt_cpld = 0
    +
    + +

    Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep.

    + +
    +
    + +

    ◆ force_date_from_namelist

    + +
    +
    + + + + + +
    + + + + +
    logical full_coupler_mod::force_date_from_namelist = .false.
    +
    +private
    +
    + +

    Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used.

    + +
    +
    + +

    ◆ hours

    + +
    +
    + + + + +
    integer, public full_coupler_mod::hours =0
    +
    + +

    Number of hours the current integration will be run.

    + +
    +
    + +

    ◆ ice_npes

    + +
    +
    + + + + +
    integer, public full_coupler_mod::ice_npes =0
    +
    + +

    The number of MPI tasks to use for the ice.

    + +
    +
    + +

    ◆ land_npes

    + +
    +
    + + + + +
    integer, public full_coupler_mod::land_npes =0
    +
    + +

    The number of MPI tasks to use for the land.

    + +
    +
    + +

    ◆ minutes

    + +
    +
    + + + + +
    integer, public full_coupler_mod::minutes =0
    +
    + +

    Number of minutes the current integration will be run.

    + +
    +
    + +

    ◆ mod_name

    + +
    +
    + + + + + +
    + + + + +
    character(len=48), parameter full_coupler_mod::mod_name = 'coupler_main_mod'
    +
    +private
    +
    + +
    +
    + +

    ◆ months

    + +
    +
    + + + + +
    integer, public full_coupler_mod::months =0
    +
    + +

    Number of months the current integration will be run.

    + +
    +
    + +

    ◆ ocean_npes

    + +
    +
    + + + + +
    integer, public full_coupler_mod::ocean_npes =0
    +
    + +

    The number of MPI tasks to use for the ocean.

    + +
    +
    + +

    ◆ ocean_nthreads

    + +
    +
    + + + + +
    integer, public full_coupler_mod::ocean_nthreads =1
    +
    + +

    Number of OpenMP threads to use in the ocean.

    + +
    +
    + +

    ◆ radiation_nthreads

    + +
    +
    + + + + +
    integer, public full_coupler_mod::radiation_nthreads =1
    +
    + +

    Number of threads to use for the radiation.

    + +
    +
    + +

    ◆ restart_interval

    + +
    +
    + + + + +
    integer, dimension(6), public full_coupler_mod::restart_interval = (/ 0, 0, 0, 0, 0, 0/)
    +
    + +

    namelist interface

    +

    The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out

    + +
    +
    + +

    ◆ seconds

    + +
    +
    + + + + +
    integer, public full_coupler_mod::seconds =0
    +
    + +

    Number of seconds the current integration will be run.

    + +
    +
    + +

    ◆ slow_ice_with_ocean

    + +
    +
    + + + + +
    logical, public full_coupler_mod::slow_ice_with_ocean =.FALSE.
    +
    + +

    If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice.

    +

    If true, there is a single call from the coupler to advance both the slow sea-ice and the ocean. slow_ice_with_ocean and concurrent_ice must both be true if combined_ice_and_ocean is true.

    + +
    +
    + +

    ◆ text

    + +
    +
    + + + + + +
    + + + + +
    character(len=80) full_coupler_mod::text
    +
    +private
    +
    + +
    +
    + +

    ◆ use_hyper_thread

    + +
    +
    + + + + +
    logical, public full_coupler_mod::use_hyper_thread = .false.
    +
    + +
    +
    + +

    ◆ use_lag_fluxes

    + +
    +
    + + + + +
    logical, public full_coupler_mod::use_lag_fluxes =.TRUE.
    +
    + +

    If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable.

    + +
    +
    +
    + + + + diff --git a/docs/html/namespaceice__model__mod.html b/docs/html/namespaceice__model__mod.html new file mode 100644 index 00000000..a81b335f --- /dev/null +++ b/docs/html/namespaceice__model__mod.html @@ -0,0 +1,1382 @@ + + + + + + + +FMS Coupler: ice_model_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ice_model_mod Module Reference
    +
    +
    + + + + + + +

    +Data Types

    type  atmos_ice_boundary_type
     
    type  ice_data_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public update_ice_model_fast (Atmos_boundary, Ice)
     
    subroutine, public update_ice_model_slow (Atmos_boundary, Ice)
     
    subroutine prognostic_ice (Ice)
     
    subroutine prognostic_sst (Ice)
     
    subroutine, public ice_model_init (Ice, Time_Init, Time, Time_step_fast, Time_step_slow, glon_bnd, glat_bnd, Atmos_domain)
     
    subroutine ice_register_restart (fileobj, Ice)
     
    subroutine, public ice_model_end (Ice)
     
    subroutine add_domain_dimension_data (fileobj)
     
    logical function is_latlon (lon, lat)
     
    subroutine get_cell_center (lonb, latb, lon, lat)
     
    subroutine latlon2xyz (sph_coor, xyz_coor)
     
    subroutine xyz2latlon (xyz_coor, sph_coor)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    real cmin
     
    real cmax
     
    real diff = 2.092
     
    real thickness_min = 0.10
     
    real specified_ice_thickness = 2.0
     
    real heat_capacity_ocean = 1.e07
     
    real temp_ice_freeze = -1.66
     
    real roughness_ice = 1.e-4
     
    logical mixed_layer_ocean = .false.
     
    logical use_climo_ice = .false.
     
    logical use_annual_ice = .false.
     
    logical use_climo_sst = .false.
     
    logical use_annual_sst = .false.
     
    character(len=64) ice_method = 'prognostic'
     
    character(len=64) sst_method = 'specified'
     
    character(len=64) specified
     
    character(len=64) uniform
     
    character(len=64) or
     
    character(len=64) mixed_layer
     
    real temp_ice = 270.
     
    real temp_sst = 280.
     
    real sst_anom = 0.
     
    character(len=64) interp_method = "bilinear"
     
    logical do_netcdf_restart = .true.
     
    integer is
     
    integer ie
     
    integer js
     
    integer je
     
    type(fmsamipinterp_type), save amip_ice
     
    type(fmsamipinterp_type), save amip_sst
     
    logical module_is_initialized = .false.
     
    character(len=64) fname = 'INPUT/ice_model.res.nc'
     
    character(len=128) version = '$Id$'
     
    character(len=128) tagname = '$Name$'
     
    real, parameter latent = HLV + HLF
     
    +

    Function/Subroutine Documentation

    + +

    ◆ add_domain_dimension_data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    subroutine ice_model_mod::add_domain_dimension_data (type(fmsnetcdfdomainfile_t) fileobj)
    +
    +private
    +
    +
    Parameters
    + + +
    fileobjFms2io domain decomposed fileobj
    +
    +
    + +
    +
    + +

    ◆ get_cell_center()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine ice_model_mod::get_cell_center (real, dimension(:,:), intent(in) lonb,
    real, dimension(:,:), intent(in) latb,
    real, dimension(:,:), intent(out) lon,
    real, dimension(:,:), intent(out) lat 
    )
    +
    +private
    +
    + +
    +
    + +

    ◆ ice_model_end()

    + +
    +
    + + + + + + + + +
    subroutine, public ice_model_mod::ice_model_end (type(ice_data_type), intent(inout) Ice)
    +
    + +
    +
    + +

    ◆ ice_model_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_model_mod::ice_model_init (type(ice_data_type), intent(inout) Ice,
    type(fmstime_type), intent(in) Time_Init,
    type(fmstime_type), intent(in) Time,
    type(fmstime_type), intent(in) Time_step_fast,
    type(fmstime_type), intent(in) Time_step_slow,
    real, dimension(:,:), intent(in) glon_bnd,
    real, dimension(:,:), intent(in) glat_bnd,
    type(fmsmppdomain2d), intent(in), target Atmos_domain 
    )
    +
    + +
    +
    + +

    ◆ ice_register_restart()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine ice_model_mod::ice_register_restart (type(fmsnetcdfdomainfile_t), intent(inout) fileobj,
    type(ice_data_type), intent(inout) Ice 
    )
    +
    +private
    +
    +
    Parameters
    + + + +
    [in,out]fileobjIce restart domain decomposed fileobj
    [in,out]iceIce data type
    +
    +
    + +
    +
    + +

    ◆ is_latlon()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    logical function ice_model_mod::is_latlon (real, dimension(:,:), intent(in) lon,
    real, dimension(:,:), intent(in) lat 
    )
    +
    +private
    +
    + +
    +
    + +

    ◆ latlon2xyz()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine ice_model_mod::latlon2xyz (real, dimension(2), intent(in) sph_coor,
    real, dimension(3), intent(inout) xyz_coor 
    )
    +
    +private
    +
    + +
    +
    + +

    ◆ prognostic_ice()

    + +
    +
    + + + + + +
    + + + + + + + + +
    subroutine ice_model_mod::prognostic_ice (type(ice_data_type), intent(inout) Ice)
    +
    +private
    +
    + +
    +
    + +

    ◆ prognostic_sst()

    + +
    +
    + + + + + +
    + + + + + + + + +
    subroutine ice_model_mod::prognostic_sst (type(ice_data_type), intent(inout) Ice)
    +
    +private
    +
    + +
    +
    + +

    ◆ update_ice_model_fast()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_model_mod::update_ice_model_fast (type(atmos_ice_boundary_type), intent(in) Atmos_boundary,
    type (ice_data_type), intent(inout) Ice 
    )
    +
    + +
    +
    + +

    ◆ update_ice_model_slow()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_model_mod::update_ice_model_slow (type(atmos_ice_boundary_type), intent(in) Atmos_boundary,
    type(ice_data_type), intent(inout) Ice 
    )
    +
    + +
    +
    + +

    ◆ xyz2latlon()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine ice_model_mod::xyz2latlon (real, dimension(3), intent(in) xyz_coor,
    real, dimension(2), intent(inout) sph_coor 
    )
    +
    +private
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ amip_ice

    + +
    +
    + + + + + +
    + + + + +
    type(fmsamipinterp_type), save ice_model_mod::amip_ice
    +
    +private
    +
    + +
    +
    + +

    ◆ amip_sst

    + +
    +
    + + + + + +
    + + + + +
    type(fmsamipinterp_type), save ice_model_mod::amip_sst
    +
    +private
    +
    + +
    +
    + +

    ◆ cmax

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::cmax
    +
    +private
    +
    + +
    +
    + +

    ◆ cmin

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::cmin
    +
    +private
    +
    + +
    +
    + +

    ◆ diff

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::diff = 2.092
    +
    +private
    +
    + +
    +
    + +

    ◆ do_netcdf_restart

    + +
    +
    + + + + + +
    + + + + +
    logical ice_model_mod::do_netcdf_restart = .true.
    +
    +private
    +
    + +
    +
    + +

    ◆ fname

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::fname = 'INPUT/ice_model.res.nc'
    +
    +private
    +
    + +
    +
    + +

    ◆ heat_capacity_ocean

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::heat_capacity_ocean = 1.e07
    +
    +private
    +
    + +
    +
    + +

    ◆ ice_method

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::ice_method = 'prognostic'
    +
    +private
    +
    + +
    +
    + +

    ◆ ie

    + +
    +
    + + + + + +
    + + + + +
    integer ice_model_mod::ie
    +
    +private
    +
    + +
    +
    + +

    ◆ interp_method

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::interp_method = "bilinear"
    +
    +private
    +
    + +
    +
    + +

    ◆ is

    + +
    +
    + + + + + +
    + + + + +
    integer ice_model_mod::is
    +
    +private
    +
    + +
    +
    + +

    ◆ je

    + +
    +
    + + + + + +
    + + + + +
    integer ice_model_mod::je
    +
    +private
    +
    + +
    +
    + +

    ◆ js

    + +
    +
    + + + + + +
    + + + + +
    integer ice_model_mod::js
    +
    +private
    +
    + +
    +
    + +

    ◆ latent

    + +
    +
    + + + + + +
    + + + + +
    real, parameter ice_model_mod::latent = HLV + HLF
    +
    +private
    +
    + +
    +
    + +

    ◆ mixed_layer

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::mixed_layer
    +
    +private
    +
    + +
    +
    + +

    ◆ mixed_layer_ocean

    + +
    +
    + + + + + +
    + + + + +
    logical ice_model_mod::mixed_layer_ocean = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ module_is_initialized

    + +
    +
    + + + + + +
    + + + + +
    logical ice_model_mod::module_is_initialized = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ or

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::or
    +
    +private
    +
    + +
    +
    + +

    ◆ roughness_ice

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::roughness_ice = 1.e-4
    +
    +private
    +
    + +
    +
    + +

    ◆ specified

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::specified
    +
    +private
    +
    + +
    +
    + +

    ◆ specified_ice_thickness

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::specified_ice_thickness = 2.0
    +
    +private
    +
    + +
    +
    + +

    ◆ sst_anom

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::sst_anom = 0.
    +
    +private
    +
    + +
    +
    + +

    ◆ sst_method

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::sst_method = 'specified'
    +
    +private
    +
    + +
    +
    + +

    ◆ tagname

    + +
    +
    + + + + + +
    + + + + +
    character(len=128) ice_model_mod::tagname = '$Name$'
    +
    +private
    +
    + +
    +
    + +

    ◆ temp_ice

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::temp_ice = 270.
    +
    +private
    +
    + +
    +
    + +

    ◆ temp_ice_freeze

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::temp_ice_freeze = -1.66
    +
    +private
    +
    + +
    +
    + +

    ◆ temp_sst

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::temp_sst = 280.
    +
    +private
    +
    + +
    +
    + +

    ◆ thickness_min

    + +
    +
    + + + + + +
    + + + + +
    real ice_model_mod::thickness_min = 0.10
    +
    +private
    +
    + +
    +
    + +

    ◆ uniform

    + +
    +
    + + + + + +
    + + + + +
    character(len=64) ice_model_mod::uniform
    +
    +private
    +
    + +
    +
    + +

    ◆ use_annual_ice

    + +
    +
    + + + + + +
    + + + + +
    logical ice_model_mod::use_annual_ice = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ use_annual_sst

    + +
    +
    + + + + + +
    + + + + +
    logical ice_model_mod::use_annual_sst = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ use_climo_ice

    + +
    +
    + + + + + +
    + + + + +
    logical ice_model_mod::use_climo_ice = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ use_climo_sst

    + +
    +
    + + + + + +
    + + + + +
    logical ice_model_mod::use_climo_sst = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ version

    + +
    +
    + + + + + +
    + + + + +
    character(len=128) ice_model_mod::version = '$Id$'
    +
    +private
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/namespaceice__ocean__flux__exchange__mod.html b/docs/html/namespaceice__ocean__flux__exchange__mod.html new file mode 100644 index 00000000..e3f1e5cc --- /dev/null +++ b/docs/html/namespaceice__ocean__flux__exchange__mod.html @@ -0,0 +1,851 @@ + + + + + + + +FMS Coupler: ice_ocean_flux_exchange_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ice_ocean_flux_exchange_mod Module Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public ice_ocean_flux_exchange_init (Time, Ice, Ocean, Ocean_state, ice_ocean_boundary, ocean_ice_boundary, Dt_cpl_in, debug_stocks_in, do_area_weighted_flux_in, ex_gas_fields_ice, ex_gas_fluxes, do_ocean, slow_ice_ocean_pelist_in)
     
    subroutine, public flux_ice_to_ocean (Ice, Ocean, Ice_Ocean_Boundary)
     
    subroutine, public flux_ice_to_ocean_finish (Time, Ice_Ocean_Boundary)
     flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics. More...
     
    subroutine, public flux_ocean_to_ice (Ocean, Ice, Ocean_Ice_Boundary)
     Takes the ocean model state and interpolates it onto the bottom of the ice. More...
     
    subroutine, public flux_ocean_to_ice_finish (Time, Ice, Ocean_Ice_Boundary)
     flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics. More...
     
    subroutine, public flux_ice_to_ocean_stocks (Ice)
     Updates Ice and Ocean stocks. More...
     
    subroutine, public flux_ocean_from_ice_stocks (ocean_state, Ocean, Ice_Ocean_boundary)
     Updates Ocean stocks due to input that the Ocean model gets. More...
     
    subroutine flux_ice_to_ocean_redistribute (ice, ocean, ice_data, ocn_bnd_data, type, do_area_weighted)
     Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute. More...
     
    subroutine divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine check_flux_conservation (Ice, Ocean, Ice_Ocean_Boundary)
     Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true. More...
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    integer, parameter regrid =1
     
    integer, parameter redist =2
     
    integer, parameter direct =3
     
    logical debug_stocks = .false.
     
    logical do_area_weighted_flux = .false.
     
    integer cplocnclock
     
    integer fluxoceaniceclock
     
    integer fluxiceoceanclock
     
    real dt_cpl
     
    integer, dimension(:), allocatable slow_ice_ocean_pelist
     
    +

    Function/Subroutine Documentation

    + +

    ◆ check_flux_conservation()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine ice_ocean_flux_exchange_mod::check_flux_conservation (type(ice_data_type), intent(inout) Ice,
    type(ocean_public_type), intent(inout) Ocean,
    type(ice_ocean_boundary_type), intent(inout) Ice_Ocean_Boundary 
    )
    +
    +private
    +
    + +

    Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true.

    + +
    +
    + +

    ◆ divide_by_area()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    subroutine ice_ocean_flux_exchange_mod::divide_by_area (real, dimension(:,:), intent(inout) data,
    real, dimension(:,:), intent(in) area 
    )
    +
    +private
    +
    + +

    Divide data by area while avoiding zero area elements.

    + +
    +
    + +

    ◆ flux_ice_to_ocean()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean (type(ice_data_type), intent(in) Ice,
    type(ocean_public_type), intent(in) Ocean,
    type(ice_ocean_boundary_type), intent(inout) Ice_Ocean_Boundary 
    )
    +
    +
    Parameters
    + + + + +
    [in]iceA derived data type to specify ice boundary data
    [in]oceanA derived data type to specify ocean boundary data
    [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
    +
    +
    + +
    +
    + +

    ◆ flux_ice_to_ocean_finish()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_finish (type(fmstime_type), intent(in) Time,
    type(ice_ocean_boundary_type), intent(inout) Ice_Ocean_Boundary 
    )
    +
    + +

    flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics.

    +
    Parameters
    + + + +
    [in]timeCurrent time
    [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
    +
    +
    + +
    +
    + +

    ◆ flux_ice_to_ocean_redistribute()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine ice_ocean_flux_exchange_mod::flux_ice_to_ocean_redistribute (type(ice_data_type), intent(in) ice,
    type(ocean_public_type), intent(in) ocean,
    real, dimension(:,:), intent(in) ice_data,
    real, dimension(:,:), intent(out) ocn_bnd_data,
    integer, intent(in) type,
    logical, intent(in) do_area_weighted 
    )
    +
    +private
    +
    + +

    Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute.

    +
    Note
    Should be invoked by all PEs
    + +
    +
    + +

    ◆ flux_ice_to_ocean_stocks()

    + +
    +
    + + + + + + + + +
    subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks (type(ice_data_type), intent(in) Ice)
    +
    + +

    Updates Ice and Ocean stocks.

    +

    Integrate the fluxes over the surface and in time.

    +
    Parameters
    + + +
    [in]iceA derived data type to specify ice boundary data
    +
    +
    + +
    +
    + +

    ◆ flux_ocean_from_ice_stocks()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_from_ice_stocks (type(ocean_state_type), pointer ocean_state,
    type(ocean_public_type), intent(in) Ocean,
    type(ice_ocean_boundary_type), intent(in) Ice_Ocean_boundary 
    )
    +
    + +

    Updates Ocean stocks due to input that the Ocean model gets.

    +

    This subroutine updates the stocks of Ocean by the amount of input that the Ocean gets from Ice component. Unlike subroutine flux_ice_to_ocean_stocks() that uses Icefluxes to update the stocks due to the amount of output from Ice,this subroutine uses Ice_Ocean_boundaryfluxes to calculate the amount of input to the Ocean. These fluxes are the ones that Ocean model uses internally to calculate its budgets. Hence there should be no difference between this input and what Ocean model internal diagnostics uses. This bypasses the possible mismatch in cell areas between Ice and Ocean in diagnosing the stocks of Ocean and should report a conserving Ocean component regardless of the glitches in fluxes.

    +

    The use of this subroutine in conjunction with subroutine flux_ice_to_ocean_stocks() will also allow to directly diagnose the amount "stocks lost in exchange" between Ice and Ocean

    + +
    +
    + +

    ◆ flux_ocean_to_ice()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice (type(ocean_public_type), intent(in) Ocean,
    type(ice_data_type), intent(in) Ice,
    type(ocean_ice_boundary_type), intent(inout) Ocean_Ice_Boundary 
    )
    +
    + +

    Takes the ocean model state and interpolates it onto the bottom of the ice.

    +

    The following quantities are transferred from the Ocean to the ocean_ice_boundary_type:

    +        t_surf = surface temperature (deg K)
    +        frazil = frazil fluxes since the last coupling step (J/m2)
    +        u_surf = zonal ocean current/ice motion (m/s)
    +        v_surf = meridional ocean current/ice motion (m/s)
    +        v_surf = meridional ocean current/ice motion (m/s)
    +       sea_lev = sea level used to drive ice accelerations (m)
    + 
    Exceptions
    + + +
    FATAL,Ocean_Ice_Boundary%xtype must be DIRECT or REDIST.The value of variable xtype of ice_ocean_boundary_type data must be DIRECT or REDIST.
    +
    +
    +
    Parameters
    + + + + +
    [in]oceanA derived data type to specify ocean boundary data
    [in]iceA derived data type to specify ice boundary data
    [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
    +
    +
    + +
    +
    + +

    ◆ flux_ocean_to_ice_finish()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice_finish (type(fmstime_type), intent(in) Time,
    type(ice_data_type), intent(in) Ice,
    type(ocean_ice_boundary_type), intent(inout) Ocean_Ice_Boundary 
    )
    +
    + +

    flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics.

    +
    Parameters
    + + + + +
    [in]timeCurrent time
    [in]iceA derived data type to specify ice boundary data
    [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
    +
    +
    + +
    +
    + +

    ◆ ice_ocean_flux_exchange_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public ice_ocean_flux_exchange_mod::ice_ocean_flux_exchange_init (type(fmstime_type), intent(in) Time,
    type(ice_data_type), intent(inout) Ice,
    type(ocean_public_type), intent(inout) Ocean,
    type(ocean_state_type), pointer Ocean_state,
    type(ice_ocean_boundary_type), intent(inout) ice_ocean_boundary,
    type(ocean_ice_boundary_type), intent(inout) ocean_ice_boundary,
    real, intent(in) Dt_cpl_in,
    logical, intent(in) debug_stocks_in,
    logical, intent(in) do_area_weighted_flux_in,
    type(fmscoupler1dbc_type), intent(in) ex_gas_fields_ice,
    type(fmscoupler1dbc_type), intent(in) ex_gas_fluxes,
    logical, intent(in) do_ocean,
    integer, dimension(:), intent(in) slow_ice_ocean_pelist_in 
    )
    +
    +
    Parameters
    + + + + + + +
    [in]timeThe model's current time
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]oceanA derived data type to specify ocean boundary data
    [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
    [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
    +
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ cplocnclock

    + +
    +
    + + + + + +
    + + + + +
    integer ice_ocean_flux_exchange_mod::cplocnclock
    +
    +private
    +
    + +
    +
    + +

    ◆ debug_stocks

    + +
    +
    + + + + + +
    + + + + +
    logical ice_ocean_flux_exchange_mod::debug_stocks = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ direct

    + +
    +
    + + + + + +
    + + + + +
    integer, parameter ice_ocean_flux_exchange_mod::direct =3
    +
    +private
    +
    + +
    +
    + +

    ◆ do_area_weighted_flux

    + +
    +
    + + + + + +
    + + + + +
    logical ice_ocean_flux_exchange_mod::do_area_weighted_flux = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ dt_cpl

    + +
    +
    + + + + + +
    + + + + +
    real ice_ocean_flux_exchange_mod::dt_cpl
    +
    +private
    +
    + +
    +
    + +

    ◆ fluxiceoceanclock

    + +
    +
    + + + + + +
    + + + + +
    integer ice_ocean_flux_exchange_mod::fluxiceoceanclock
    +
    +private
    +
    + +
    +
    + +

    ◆ fluxoceaniceclock

    + +
    +
    + + + + + +
    + + + + +
    integer ice_ocean_flux_exchange_mod::fluxoceaniceclock
    +
    +private
    +
    + +
    +
    + +

    ◆ redist

    + +
    +
    + + + + + +
    + + + + +
    integer, parameter ice_ocean_flux_exchange_mod::redist =2
    +
    +private
    +
    + +
    +
    + +

    ◆ regrid

    + +
    +
    + + + + + +
    + + + + +
    integer, parameter ice_ocean_flux_exchange_mod::regrid =1
    +
    +private
    +
    + +
    +
    + +

    ◆ slow_ice_ocean_pelist

    + +
    +
    + + + + + +
    + + + + +
    integer, dimension(:), allocatable ice_ocean_flux_exchange_mod::slow_ice_ocean_pelist
    +
    +private
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/namespaceland__ice__flux__exchange__mod.html b/docs/html/namespaceland__ice__flux__exchange__mod.html new file mode 100644 index 00000000..a69a6039 --- /dev/null +++ b/docs/html/namespaceland__ice__flux__exchange__mod.html @@ -0,0 +1,400 @@ + + + + + + + +FMS Coupler: land_ice_flux_exchange_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    land_ice_flux_exchange_mod Module Reference
    +
    +
    + + + + + + + +

    +Functions/Subroutines

    subroutine, public land_ice_flux_exchange_init (Land, Ice, land_ice_boundary, Dt_cpl_in, do_runoff_in, cplClock_in)
     
    subroutine, public flux_land_to_ice (Time, Land, Ice, Land_Ice_Boundary)
     Conservative transfer of water and snow discharge from the land model to sea ice/ocean model. More...
     
    + + + + + + + + + + + + + + + + + +

    +Variables

    type(fmsxgridxmap_type), save xmap_runoff
     
    integer n_xgrid_runoff =0
     
    integer x2_grid_lnd
     
    integer x2_grid_ice
     
    integer cplclock
     
    integer fluxlandiceclock
     
    logical do_runoff
     
    real dt_cpl
     
    +

    Function/Subroutine Documentation

    + +

    ◆ flux_land_to_ice()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public land_ice_flux_exchange_mod::flux_land_to_ice (type(fmstime_type), intent(in) Time,
    type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(in) Ice,
    type(land_ice_boundary_type), intent(inout) Land_Ice_Boundary 
    )
    +
    + +

    Conservative transfer of water and snow discharge from the land model to sea ice/ocean model.

    +

    The following elements are transferred from the Land to the Land_ice_boundary:

    +        discharge --> runoff (kg/m2)
    +        discharge_snow --> calving (kg/m2)
    + 
    Parameters
    + + + + + +
    [in]timeCurrent time
    [in]landA derived data type to specify land boundary data
    [in]iceA derived data type to specify ice boundary data
    [in,out]land_ice_boundaryA derived data type to specify properties and fluxes passed from land to ice
    +
    +
    + +
    +
    + +

    ◆ land_ice_flux_exchange_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public land_ice_flux_exchange_mod::land_ice_flux_exchange_init (type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_boundary_type), intent(inout) land_ice_boundary,
    real, intent(in) Dt_cpl_in,
    logical, intent(in) do_runoff_in,
    integer, intent(in) cplClock_in 
    )
    +
    +
    Parameters
    + + + + +
    [in]landA derived data type to specify land boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]land_ice_boundaryA derived data type to specify properties and fluxes passed from land to ice
    +
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ cplclock

    + +
    +
    + + + + + +
    + + + + +
    integer land_ice_flux_exchange_mod::cplclock
    +
    +private
    +
    + +
    +
    + +

    ◆ do_runoff

    + +
    +
    + + + + + +
    + + + + +
    logical land_ice_flux_exchange_mod::do_runoff
    +
    +private
    +
    + +
    +
    + +

    ◆ dt_cpl

    + +
    +
    + + + + + +
    + + + + +
    real land_ice_flux_exchange_mod::dt_cpl
    +
    +private
    +
    + +
    +
    + +

    ◆ fluxlandiceclock

    + +
    +
    + + + + + +
    + + + + +
    integer land_ice_flux_exchange_mod::fluxlandiceclock
    +
    +private
    +
    + +
    +
    + +

    ◆ n_xgrid_runoff

    + +
    +
    + + + + + +
    + + + + +
    integer land_ice_flux_exchange_mod::n_xgrid_runoff =0
    +
    +private
    +
    + +
    +
    + +

    ◆ x2_grid_ice

    + +
    +
    + + + + + +
    + + + + +
    integer land_ice_flux_exchange_mod::x2_grid_ice
    +
    +private
    +
    + +
    +
    + +

    ◆ x2_grid_lnd

    + +
    +
    + + + + + +
    + + + + +
    integer land_ice_flux_exchange_mod::x2_grid_lnd
    +
    +private
    +
    + +
    +
    + +

    ◆ xmap_runoff

    + +
    +
    + + + + + +
    + + + + +
    type(fmsxgridxmap_type), save land_ice_flux_exchange_mod::xmap_runoff
    +
    +private
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html new file mode 100644 index 00000000..c58966ab --- /dev/null +++ b/docs/html/namespacemembers.html @@ -0,0 +1,120 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - a -

    +
    + + + + diff --git a/docs/html/namespacemembers_b.html b/docs/html/namespacemembers_b.html new file mode 100644 index 00000000..459026c4 --- /dev/null +++ b/docs/html/namespacemembers_b.html @@ -0,0 +1,99 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - b -

    +
    + + + + diff --git a/docs/html/namespacemembers_c.html b/docs/html/namespacemembers_c.html new file mode 100644 index 00000000..88ea6a37 --- /dev/null +++ b/docs/html/namespacemembers_c.html @@ -0,0 +1,233 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - c -

    +
    + + + + diff --git a/docs/html/namespacemembers_d.html b/docs/html/namespacemembers_d.html new file mode 100644 index 00000000..31de063b --- /dev/null +++ b/docs/html/namespacemembers_d.html @@ -0,0 +1,221 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - d -

    +
    + + + + diff --git a/docs/html/namespacemembers_e.html b/docs/html/namespacemembers_e.html new file mode 100644 index 00000000..58e29887 --- /dev/null +++ b/docs/html/namespacemembers_e.html @@ -0,0 +1,230 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - e -

    +
    + + + + diff --git a/docs/html/namespacemembers_f.html b/docs/html/namespacemembers_f.html new file mode 100644 index 00000000..bf86f8d7 --- /dev/null +++ b/docs/html/namespacemembers_f.html @@ -0,0 +1,176 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - f -

    +
    + + + + diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html new file mode 100644 index 00000000..71325623 --- /dev/null +++ b/docs/html/namespacemembers_func.html @@ -0,0 +1,439 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    + + +

    - c -

    + + +

    - d -

    + + +

    - f -

    + + +

    - g -

    + + +

    - i -

    + + +

    - l -

    + + +

    - n -

    + + +

    - p -

    + + +

    - r -

    + + +

    - s -

    + + +

    - u -

    + + +

    - v -

    + + +

    - x -

    +
    + + + + diff --git a/docs/html/namespacemembers_g.html b/docs/html/namespacemembers_g.html new file mode 100644 index 00000000..260c3b8d --- /dev/null +++ b/docs/html/namespacemembers_g.html @@ -0,0 +1,119 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - g -

    +
    + + + + diff --git a/docs/html/namespacemembers_h.html b/docs/html/namespacemembers_h.html new file mode 100644 index 00000000..2671193e --- /dev/null +++ b/docs/html/namespacemembers_h.html @@ -0,0 +1,86 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - h -

    +
    + + + + diff --git a/docs/html/namespacemembers_i.html b/docs/html/namespacemembers_i.html new file mode 100644 index 00000000..4b3ea601 --- /dev/null +++ b/docs/html/namespacemembers_i.html @@ -0,0 +1,484 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - i -

    +
    + + + + diff --git a/docs/html/namespacemembers_j.html b/docs/html/namespacemembers_j.html new file mode 100644 index 00000000..457bf698 --- /dev/null +++ b/docs/html/namespacemembers_j.html @@ -0,0 +1,85 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - j -

    +
    + + + + diff --git a/docs/html/namespacemembers_k.html b/docs/html/namespacemembers_k.html new file mode 100644 index 00000000..ea7475b3 --- /dev/null +++ b/docs/html/namespacemembers_k.html @@ -0,0 +1,80 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - k -

    +
    + + + + diff --git a/docs/html/namespacemembers_l.html b/docs/html/namespacemembers_l.html new file mode 100644 index 00000000..9761ab04 --- /dev/null +++ b/docs/html/namespacemembers_l.html @@ -0,0 +1,89 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - l -

    +
    + + + + diff --git a/docs/html/namespacemembers_m.html b/docs/html/namespacemembers_m.html new file mode 100644 index 00000000..600dd871 --- /dev/null +++ b/docs/html/namespacemembers_m.html @@ -0,0 +1,103 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - m -

    +
    + + + + diff --git a/docs/html/namespacemembers_n.html b/docs/html/namespacemembers_n.html new file mode 100644 index 00000000..e902736e --- /dev/null +++ b/docs/html/namespacemembers_n.html @@ -0,0 +1,157 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - n -

    +
    + + + + diff --git a/docs/html/namespacemembers_o.html b/docs/html/namespacemembers_o.html new file mode 100644 index 00000000..b526766f --- /dev/null +++ b/docs/html/namespacemembers_o.html @@ -0,0 +1,89 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - o -

    +
    + + + + diff --git a/docs/html/namespacemembers_p.html b/docs/html/namespacemembers_p.html new file mode 100644 index 00000000..2317c269 --- /dev/null +++ b/docs/html/namespacemembers_p.html @@ -0,0 +1,99 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - p -

    +
    + + + + diff --git a/docs/html/namespacemembers_q.html b/docs/html/namespacemembers_q.html new file mode 100644 index 00000000..d1c8ddea --- /dev/null +++ b/docs/html/namespacemembers_q.html @@ -0,0 +1,80 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - q -

    +
    + + + + diff --git a/docs/html/namespacemembers_r.html b/docs/html/namespacemembers_r.html new file mode 100644 index 00000000..569b9e59 --- /dev/null +++ b/docs/html/namespacemembers_r.html @@ -0,0 +1,112 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - r -

    +
    + + + + diff --git a/docs/html/namespacemembers_s.html b/docs/html/namespacemembers_s.html new file mode 100644 index 00000000..d83f0726 --- /dev/null +++ b/docs/html/namespacemembers_s.html @@ -0,0 +1,131 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - s -

    +
    + + + + diff --git a/docs/html/namespacemembers_t.html b/docs/html/namespacemembers_t.html new file mode 100644 index 00000000..fbcd6ac7 --- /dev/null +++ b/docs/html/namespacemembers_t.html @@ -0,0 +1,119 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - t -

    +
    + + + + diff --git a/docs/html/namespacemembers_u.html b/docs/html/namespacemembers_u.html new file mode 100644 index 00000000..d118820c --- /dev/null +++ b/docs/html/namespacemembers_u.html @@ -0,0 +1,122 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - u -

    +
    + + + + diff --git a/docs/html/namespacemembers_v.html b/docs/html/namespacemembers_v.html new file mode 100644 index 00000000..6b15ea07 --- /dev/null +++ b/docs/html/namespacemembers_v.html @@ -0,0 +1,86 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - v -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html new file mode 100644 index 00000000..9d31c675 --- /dev/null +++ b/docs/html/namespacemembers_vars.html @@ -0,0 +1,104 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_b.html b/docs/html/namespacemembers_vars_b.html new file mode 100644 index 00000000..cbbba45f --- /dev/null +++ b/docs/html/namespacemembers_vars_b.html @@ -0,0 +1,99 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - b -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_c.html b/docs/html/namespacemembers_vars_c.html new file mode 100644 index 00000000..f7d16b8a --- /dev/null +++ b/docs/html/namespacemembers_vars_c.html @@ -0,0 +1,122 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - c -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_d.html b/docs/html/namespacemembers_vars_d.html new file mode 100644 index 00000000..fb80dcba --- /dev/null +++ b/docs/html/namespacemembers_vars_d.html @@ -0,0 +1,210 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - d -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_e.html b/docs/html/namespacemembers_vars_e.html new file mode 100644 index 00000000..6a6a6709 --- /dev/null +++ b/docs/html/namespacemembers_vars_e.html @@ -0,0 +1,230 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - e -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_f.html b/docs/html/namespacemembers_vars_f.html new file mode 100644 index 00000000..fd02bf24 --- /dev/null +++ b/docs/html/namespacemembers_vars_f.html @@ -0,0 +1,126 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - f -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_g.html b/docs/html/namespacemembers_vars_g.html new file mode 100644 index 00000000..5becd429 --- /dev/null +++ b/docs/html/namespacemembers_vars_g.html @@ -0,0 +1,89 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - g -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_h.html b/docs/html/namespacemembers_vars_h.html new file mode 100644 index 00000000..6a26a906 --- /dev/null +++ b/docs/html/namespacemembers_vars_h.html @@ -0,0 +1,86 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - h -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_i.html b/docs/html/namespacemembers_vars_i.html new file mode 100644 index 00000000..ac08b673 --- /dev/null +++ b/docs/html/namespacemembers_vars_i.html @@ -0,0 +1,460 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - i -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_j.html b/docs/html/namespacemembers_vars_j.html new file mode 100644 index 00000000..d7f7690a --- /dev/null +++ b/docs/html/namespacemembers_vars_j.html @@ -0,0 +1,85 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - j -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_k.html b/docs/html/namespacemembers_vars_k.html new file mode 100644 index 00000000..ca5d6a2f --- /dev/null +++ b/docs/html/namespacemembers_vars_k.html @@ -0,0 +1,80 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - k -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_l.html b/docs/html/namespacemembers_vars_l.html new file mode 100644 index 00000000..788eab34 --- /dev/null +++ b/docs/html/namespacemembers_vars_l.html @@ -0,0 +1,83 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - l -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_m.html b/docs/html/namespacemembers_vars_m.html new file mode 100644 index 00000000..a7a0cfe1 --- /dev/null +++ b/docs/html/namespacemembers_vars_m.html @@ -0,0 +1,103 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - m -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_n.html b/docs/html/namespacemembers_vars_n.html new file mode 100644 index 00000000..696c89ab --- /dev/null +++ b/docs/html/namespacemembers_vars_n.html @@ -0,0 +1,148 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - n -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_o.html b/docs/html/namespacemembers_vars_o.html new file mode 100644 index 00000000..acec95ad --- /dev/null +++ b/docs/html/namespacemembers_vars_o.html @@ -0,0 +1,89 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - o -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_p.html b/docs/html/namespacemembers_vars_p.html new file mode 100644 index 00000000..9832d643 --- /dev/null +++ b/docs/html/namespacemembers_vars_p.html @@ -0,0 +1,84 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - p -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_q.html b/docs/html/namespacemembers_vars_q.html new file mode 100644 index 00000000..0b0a06e7 --- /dev/null +++ b/docs/html/namespacemembers_vars_q.html @@ -0,0 +1,80 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - q -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_r.html b/docs/html/namespacemembers_vars_r.html new file mode 100644 index 00000000..8a19fd61 --- /dev/null +++ b/docs/html/namespacemembers_vars_r.html @@ -0,0 +1,109 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - r -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_s.html b/docs/html/namespacemembers_vars_s.html new file mode 100644 index 00000000..8dcfe21e --- /dev/null +++ b/docs/html/namespacemembers_vars_s.html @@ -0,0 +1,108 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - s -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_t.html b/docs/html/namespacemembers_vars_t.html new file mode 100644 index 00000000..219939eb --- /dev/null +++ b/docs/html/namespacemembers_vars_t.html @@ -0,0 +1,119 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - t -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_u.html b/docs/html/namespacemembers_vars_u.html new file mode 100644 index 00000000..aa322a20 --- /dev/null +++ b/docs/html/namespacemembers_vars_u.html @@ -0,0 +1,116 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - u -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_v.html b/docs/html/namespacemembers_vars_v.html new file mode 100644 index 00000000..810f99a8 --- /dev/null +++ b/docs/html/namespacemembers_vars_v.html @@ -0,0 +1,83 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + + diff --git a/docs/html/namespacemembers_vars_w.html b/docs/html/namespacemembers_vars_w.html new file mode 100644 index 00000000..26f635ec --- /dev/null +++ b/docs/html/namespacemembers_vars_w.html @@ -0,0 +1,80 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - w -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_x.html b/docs/html/namespacemembers_vars_x.html new file mode 100644 index 00000000..de2173e5 --- /dev/null +++ b/docs/html/namespacemembers_vars_x.html @@ -0,0 +1,98 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - x -

    +
    + + + + diff --git a/docs/html/namespacemembers_vars_z.html b/docs/html/namespacemembers_vars_z.html new file mode 100644 index 00000000..15a080fd --- /dev/null +++ b/docs/html/namespacemembers_vars_z.html @@ -0,0 +1,85 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + + diff --git a/docs/html/namespacemembers_w.html b/docs/html/namespacemembers_w.html new file mode 100644 index 00000000..ab40d311 --- /dev/null +++ b/docs/html/namespacemembers_w.html @@ -0,0 +1,80 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - w -

    +
    + + + + diff --git a/docs/html/namespacemembers_x.html b/docs/html/namespacemembers_x.html new file mode 100644 index 00000000..bf1e5276 --- /dev/null +++ b/docs/html/namespacemembers_x.html @@ -0,0 +1,101 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - x -

    +
    + + + + diff --git a/docs/html/namespacemembers_z.html b/docs/html/namespacemembers_z.html new file mode 100644 index 00000000..cd0502f5 --- /dev/null +++ b/docs/html/namespacemembers_z.html @@ -0,0 +1,85 @@ + + + + + + + +FMS Coupler: Module Members + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all module members with links to the module documentation for each member:
    + +

    - z -

    +
    + + + + diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html new file mode 100644 index 00000000..935a0b3c --- /dev/null +++ b/docs/html/namespaces.html @@ -0,0 +1,90 @@ + + + + + + + +FMS Coupler: Modules List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Modules List
    +
    +
    +
    Here is a list of all modules with brief descriptions:
    +
    + + + + diff --git a/docs/html/namespacesurface__flux__mod.html b/docs/html/namespacesurface__flux__mod.html new file mode 100644 index 00000000..c3b97495 --- /dev/null +++ b/docs/html/namespacesurface__flux__mod.html @@ -0,0 +1,2247 @@ + + + + + + + +FMS Coupler: surface_flux_mod Module Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    surface_flux_mod Module Reference
    +
    +
    + +

    Module for the calculation of fluxes on the exchange grids. +More...

    + + + + + +

    +Data Types

    interface  surface_flux
     For the calculation of fluxes on the exchange grids. More...
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine surface_flux_1d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    subroutine surface_flux_0d (t_atm_0, q_atm_0, u_atm_0, v_atm_0, p_atm_0, z_atm_0, p_surf_0, t_surf_0, t_ca_0, q_surf_0, u_surf_0, v_surf_0, rough_mom_0, rough_heat_0, rough_moist_0, rough_scale_0, gust_0, flux_t_0, flux_q_0, flux_r_0, flux_u_0, flux_v_0, cd_m_0, cd_t_0, cd_q_0, w_atm_0, u_star_0, b_star_0, q_star_0, thv_atm_0, thv_surf_0, dhdt_surf_0, dedt_surf_0, dedq_surf_0, drdt_surf_0, dhdt_atm_0, dedq_atm_0, dtaudu_atm_0, dtaudv_atm_0, dt, land_0, seawater_0, avail_0)
     
    subroutine surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    subroutine, public surface_flux_init
     Initialization of the surface flux module–reads the nml. More...
     
    subroutine ncar_ocean_fluxes (u_del, t, ts, q, qs, z, avail, cd, ch, ce, ustar, bstar)
     Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
     
    subroutine ncar_ocean_fluxes_multilevel (u_del, t, ts, q, qs, zu, zt, zq, avail, cd, ch, ce, ustar, bstar)
     Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
     
    subroutine iter_monin_obukhov_ocean (z_atm, u_atm, v_atm, w_atm, thv_atm, q_atm, u_surf, v_surf, thv_surf, q_surf0, rough_mom, rough_heat, rough_moist, cd_m, cd_t, cd_q, u_star, b_star, avail, seawater)
     Update air-sea flux variables to be consistent with the concurrent atmospheric states. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    character(len= *), parameter version = '$Id$'
     
    character(len= *), parameter tagname = '$Name$'
     
    logical module_is_initialized = .false.
     
    real, parameter d622 = rdgas/rvgas
     
    real, parameter d378 = 1.-d622
     
    real, parameter hlars = hlv/rvgas
     
    real, parameter gcp = grav/cp_air
     
    real, parameter kappa = rdgas/cp_air
     
    real d608 = d378/d622
     
    character(len=32) rough_scheme_ocean
     ocean roughness length scheme to be read from ocean_rough_nml More...
     
    logical no_neg_q = .false.
     If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0. More...
     
    logical use_virtual_temp = .true.
     If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp. More...
     
    logical alt_gustiness = .false.
     An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const. More...
     
    logical old_dtaudv = .false.
     The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency. More...
     
    logical use_mixing_ratio = .false.
     An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). More...
     
    real gust_const = 1.0
     Constant for alternative gustiness calculation. More...
     
    real gust_min = 0.0
     Minimum gustiness used when alt_gustiness is .FALSE. More...
     
    logical ncar_ocean_flux = .false.
     Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. More...
     
    logical ncar_ocean_flux_orig = .false.
     Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. More...
     
    logical ncar_ocean_flux_multilevel = .false.
     Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum. More...
     
    logical do_iter_monin_obukhov = .false.
     If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star. More...
     
    logical use_u10_neutral = .false.
     If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist. More...
     
    real bulk_zu = 10.
     Reference height for wind speed (meters) More...
     
    real bulk_zt = 10.
     Reference height for atm temperature (meters) More...
     
    real bulk_zq = 10.
     Reference height for atm humidity (meters) More...
     
    logical raoult_sat_vap = .false.
     Reduce saturation vapor pressure to account for seawater. More...
     
    logical do_simple = .false.
     
    integer niter_monin_obukhov = 5
     iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge More...
     
    +

    Detailed Description

    +

    Module for the calculation of fluxes on the exchange grids.

    +

    Function/Subroutine Documentation

    + +

    ◆ iter_monin_obukhov_ocean()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::iter_monin_obukhov_ocean (real, dimension(:), intent(in) z_atm,
    real, dimension(:), intent(in) u_atm,
    real, dimension(:), intent(in) v_atm,
    real, dimension(:), intent(in) w_atm,
    real, dimension(:), intent(in) thv_atm,
    real, dimension(:), intent(in) q_atm,
    real, dimension(:), intent(in) u_surf,
    real, dimension(:), intent(in) v_surf,
    real, dimension(:), intent(in) thv_surf,
    real, dimension(:), intent(in) q_surf0,
    real, dimension(:), intent(inout) rough_mom,
    real, dimension(:), intent(inout) rough_heat,
    real, dimension(:), intent(inout) rough_moist,
    real, dimension(:), intent(inout) cd_m,
    real, dimension(:), intent(inout) cd_t,
    real, dimension(:), intent(inout) cd_q,
    real, dimension(:), intent(inout) u_star,
    real, dimension(:), intent(inout) b_star,
    logical, dimension(:), intent(in) avail,
    logical, dimension(:), intent(in) seawater 
    )
    +
    +private
    +
    + +

    Update air-sea flux variables to be consistent with the concurrent atmospheric states.

    +
    Note
    Right now, it is only effective when ocean_rough = 'hwrf17', but this can be expanded if necessarily to incorporate other roughness schemies contact: Kun.G.nosp@m.ao@n.nosp@m.oaa.g.nosp@m.ov; Baoqi.nosp@m.ang..nosp@m.Xiang.nosp@m.@noa.nosp@m.a.gov
    +
    Parameters
    + + + + +
    [in]q_surf0Surface air humidity
    [in,out]b_starTurbulent buoyant scale
    [in]seawaterIndicates where liquid ocean water exists (.TRUE. if exchange cell is on liquid ocean water)
    +
    +
    +
    Parameters
    + + + + + + + + + + + + + + + + + + +
    z_atmHeight at the lowest atmospheric level
    u_atmZonal wind velocity at the lowest atmospheric level
    v_atmMeridional wind velocity at the lowest atmospheric level
    w_atmAbsolute wind at the lowest atmospheric level
    thv_atmSurface air theta_v
    q_atmMixing ratio at lowest atmospheric level (kg/kg)
    u_surfZonal wind velocity at the Earth's surface
    v_surfMeridional wind velocity at the Earth's surface
    thv_surfSurface theta_v
    rough_momMomentum roughness length
    rough_heatHeat roughness length
    rough_moistMoisture roughness length
    cd_mMomentum exchange coefficient
    cd_tHeat exchange coefficient
    cd_qMoisture exchange coefficient
    u_starTurbulent velocity scale
    avail.TRUE. where the exchange cell is active
    +
    +
    + +
    +
    + +

    ◆ ncar_ocean_fluxes()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::ncar_ocean_fluxes (real, dimension(:), intent(in) u_del,
    real, dimension(:), intent(in) t,
    real, dimension(:), intent(in) ts,
    real, dimension(:), intent(in) q,
    real, dimension(:), intent(in) qs,
    real, dimension(:), intent(in) z,
    logical, dimension(:), intent(in) avail,
    real, dimension(:), intent(inout) cd,
    real, dimension(:), intent(inout) ch,
    real, dimension(:), intent(inout) ce,
    real, dimension(:), intent(inout) ustar,
    real, dimension(:), intent(inout) bstar 
    )
    +
    +private
    +
    + +

    Over-ocean fluxes following Large and Yeager (used in NCAR models) !

    +

    Original code: GFDL..nosp@m.Clim.nosp@m.ate.M.nosp@m.odel.nosp@m..Info.nosp@m.@noa.nosp@m.a.gov <br > Update Jul2007: GFDL..nosp@m.Clim.nosp@m.ate.M.nosp@m.odel.nosp@m..Info.nosp@m.@noa.nosp@m.a.gov (ch and ce exchange coeff bugfix)

    + +
    +
    + +

    ◆ ncar_ocean_fluxes_multilevel()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::ncar_ocean_fluxes_multilevel (real, dimension(:), intent(in) u_del,
    real, dimension(:), intent(inout) t,
    real, dimension(:), intent(in) ts,
    real, dimension(:), intent(inout) q,
    real, dimension(:), intent(in) qs,
    real, dimension(:), intent(in) zu,
    real, dimension(:), intent(in) zt,
    real, dimension(:), intent(in) zq,
    logical, dimension(:), intent(in) avail,
    real, dimension(:), intent(out) cd,
    real, dimension(:), intent(out) ch,
    real, dimension(:), intent(out) ce,
    real, dimension(:), intent(out) ustar,
    real, dimension(:), intent(out) bstar 
    )
    +
    +private
    +
    + +

    Over-ocean fluxes following Large and Yeager (used in NCAR models) !

    +

    Original code: Multi-level capable LY2004, R. Dussin 2020 <br >

    + +
    +
    + +

    ◆ surface_flux_0d()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::surface_flux_0d (real, intent(in) t_atm_0,
    real, intent(in) q_atm_0,
    real, intent(in) u_atm_0,
    real, intent(in) v_atm_0,
    real, intent(in) p_atm_0,
    real, intent(in) z_atm_0,
    real, intent(in) p_surf_0,
    real, intent(in) t_surf_0,
    real, intent(in) t_ca_0,
    real, intent(inout) q_surf_0,
    real, intent(in) u_surf_0,
    real, intent(in) v_surf_0,
    real, intent(in) rough_mom_0,
    real, intent(in) rough_heat_0,
    real, intent(in) rough_moist_0,
    real, intent(in) rough_scale_0,
    real, intent(in) gust_0,
    real, intent(out) flux_t_0,
    real, intent(out) flux_q_0,
    real, intent(out) flux_r_0,
    real, intent(out) flux_u_0,
    real, intent(out) flux_v_0,
    real, intent(out) cd_m_0,
    real, intent(out) cd_t_0,
    real, intent(out) cd_q_0,
    real, intent(out) w_atm_0,
    real, intent(out) u_star_0,
    real, intent(out) b_star_0,
    real, intent(out) q_star_0,
    real, intent(out) thv_atm_0,
    real, intent(out) thv_surf_0,
    real, intent(out) dhdt_surf_0,
    real, intent(out) dedt_surf_0,
    real, intent(out) dedq_surf_0,
    real, intent(out) drdt_surf_0,
    real, intent(out) dhdt_atm_0,
    real, intent(out) dedq_atm_0,
    real, intent(out) dtaudu_atm_0,
    real, intent(out) dtaudv_atm_0,
    real, intent(in) dt,
    logical, intent(in) land_0,
    logical, intent(in) seawater_0,
    logical, intent(in) avail_0 
    )
    +
    +private
    +
    +
    Parameters
    + + + + + + +
    [in]avail_0.TRUE. where the exchange cell is active
    [in]gust_0Gustiness factor
    [out]cd_q_0Moisture exchange coefficient
    [in,out]q_surf_0Mixing ratio at the Earth's surface (kg/kg)
    [in]dtTime step (it is not used presently)
    +
    +
    +
    Parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    t_atm_0Air temp lowest atmospheric level.
    q_atm_0Mixing ratio at lowest atmospheric level (kg/kg).
    u_atm_0Zonal wind velocity at lowest atmospheric level.
    v_atm_0Meridional wind velocity at lowest atmospheric level.
    p_atm_0Pressure lowest atmospheric level.
    z_atm_0Height lowest atmospheric level.
    p_surf_0Pressure at the Earth's surface
    t_surf_0Temp at the Earth's surface
    t_ca_0Air temp at the canopy
    u_surf_0Zonal wind velocity at the Earth's surface
    v_surf_0Meridional wind velocity at the Earth's surface
    rough_mom_0Momentum roughness length
    rough_heat_0Heat roughness length
    rough_moist_0Moisture roughness length
    rough_scale_0Scale factor used to topographic roughness calculation
    flux_t_0Sensible heat flux
    flux_q_0Evaporative water flux
    flux_r_0Radiative energy flux
    flux_u_0Zonal momentum flux
    flux_v_0Meridional momentum flux
    cd_m_0Momentum exchange coefficient
    w_atm_0Absolute wind at the lowest atmospheric level
    u_star_0Turbulent velocity scale
    b_star_0Turbulent buoyant scale
    q_star_0Turbulent moisture scale
    dhdt_surf_0Sensible heat flux temperature sensitivity
    dedt_surf_0Moisture flux temperature sensitivity
    dedq_surf_0Moisture flux humidity sensitivity
    drdt_surf_0Radiative energy flux temperature sensitivity
    dhdt_atm_0Derivative of sensible heat flux over temp at the lowest atmos level
    dedq_atm_0Derivative of water vapor flux over temp at the lowest atmos level
    dtaudu_atm_0Derivative of zonal wind stress with respect to the lowest level zonal wind
    dtaudv_atm_0Derivative of meridional wind stress with respect to the lowest level
    land_0Indicates where land exists (.TRUE. if exchange cell is on land
    seawater_0Indicates where liquid ocean water exists
    +
    +
    + +
    +
    + +

    ◆ surface_flux_1d()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::surface_flux_1d (real, dimension(:), intent(in) t_atm,
    real, dimension(:), intent(in) q_atm_in,
    real, dimension(:), intent(in) u_atm,
    real, dimension(:), intent(in) v_atm,
    real, dimension(:), intent(in) p_atm,
    real, dimension(:), intent(in) z_atm,
    real, dimension(:), intent(in) p_surf,
    real, dimension(:), intent(in) t_surf,
    real, dimension(:), intent(in) t_ca,
    real, dimension(:), intent(inout) q_surf,
    real, dimension(:), intent(in) u_surf,
    real, dimension(:), intent(in) v_surf,
    real, dimension(:), intent(inout) rough_mom,
    real, dimension(:), intent(inout) rough_heat,
    real, dimension(:), intent(inout) rough_moist,
    real, dimension(:), intent(in) rough_scale,
    real, dimension(:), intent(in) gust,
    real, dimension(:), intent(out) flux_t,
    real, dimension(:), intent(out) flux_q,
    real, dimension(:), intent(out) flux_r,
    real, dimension(:), intent(out) flux_u,
    real, dimension(:), intent(out) flux_v,
    real, dimension(:), intent(out) cd_m,
    real, dimension(:), intent(out) cd_t,
    real, dimension(:), intent(out) cd_q,
    real, dimension(:), intent(out) w_atm,
    real, dimension(:), intent(out) u_star,
    real, dimension(:), intent(out) b_star,
    real, dimension(:), intent(out) q_star,
    real, dimension(:), intent(out) thv_atm,
    real, dimension(:), intent(out) thv_surf,
    real, dimension(:), intent(out) dhdt_surf,
    real, dimension(:), intent(out) dedt_surf,
    real, dimension(:), intent(out) dedq_surf,
    real, dimension(:), intent(out) drdt_surf,
    real, dimension(:), intent(out) dhdt_atm,
    real, dimension(:), intent(out) dedq_atm,
    real, dimension(:), intent(out) dtaudu_atm,
    real, dimension(:), intent(out) dtaudv_atm,
    real, intent(in) dt,
    logical, dimension(:), intent(in) land,
    logical, dimension(:), intent(in) seawater,
    logical, dimension(:), intent(in) avail 
    )
    +
    +private
    +
    +
    Parameters
    + + + + + + +
    [in]avail.TRUE. where the exchange cell is active
    [in]gustGustiness factor
    [out]cd_qMoisture exchange coefficient
    [in,out]rough_moistMoisture roughness length
    [in]dtTime step (it is not used presently)
    +
    +
    +
    Parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    t_atmAir temp lowest atmospheric level.
    q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
    u_atmZonal wind velocity at lowest atmospheric level.
    v_atmMeridional wind velocity at lowest atmospheric level.
    p_atmPressure lowest atmospheric level.
    z_atmHeight lowest atmospheric level.
    p_surfPressure at the Earth's surface
    t_surfTemp at the Earth's surface
    t_caAir temp at the canopy
    q_surfMixing ratio at the Earth's surface (kg/kg)
    u_surfZonal wind velocity at the Earth's surface
    v_surfMeridional wind velocity at the Earth's surface
    rough_momMomentum roughness length
    rough_heatHeat roughness length
    rough_scaleScale factor used to topographic roughness calculation
    flux_tSensible heat flux
    flux_qEvaporative water flux
    flux_rRadiative energy flux
    flux_uZonal momentum flux
    flux_vMeridional momentum flux
    cd_mMomentum exchange coefficient
    w_atmAbsolute wind at the lowest atmospheric level
    u_starTurbulent velocity scale
    b_starTurbulent buoyant scale
    q_starTurbulent moisture scale
    dhdt_surfSensible heat flux temperature sensitivity
    dedt_surfMoisture flux temperature sensitivity
    dedq_surfMoisture flux humidity sensitivity
    drdt_surfRadiative energy flux temperature sensitivity
    dhdt_atmDerivative of sensible heat flux over temp at the lowest atmos level
    dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
    dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
    dtaudv_atmDerivative of meridional wind stress with respect to the lowest
    landIndicates where land exists (.TRUE. if exchange cell is on land
    seawaterIndicates where liquid ocean water exists
    +
    +
    + +
    +
    + +

    ◆ surface_flux_2d()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine surface_flux_mod::surface_flux_2d (real, dimension(:,:), intent(in) t_atm,
    real, dimension(:,:), intent(in) q_atm_in,
    real, dimension(:,:), intent(in) u_atm,
    real, dimension(:,:), intent(in) v_atm,
    real, dimension(:,:), intent(in) p_atm,
    real, dimension(:,:), intent(in) z_atm,
    real, dimension(:,:), intent(in) p_surf,
    real, dimension(:,:), intent(in) t_surf,
    real, dimension(:,:), intent(in) t_ca,
    real, dimension(:,:), intent(inout) q_surf,
    real, dimension(:,:), intent(in) u_surf,
    real, dimension(:,:), intent(in) v_surf,
    real, dimension(:,:), intent(inout) rough_mom,
    real, dimension(:,:), intent(inout) rough_heat,
    real, dimension(:,:), intent(inout) rough_moist,
    real, dimension(:,:), intent(in) rough_scale,
    real, dimension(:,:), intent(in) gust,
    real, dimension(:,:), intent(out) flux_t,
    real, dimension(:,:), intent(out) flux_q,
    real, dimension(:,:), intent(out) flux_r,
    real, dimension(:,:), intent(out) flux_u,
    real, dimension(:,:), intent(out) flux_v,
    real, dimension(:,:), intent(out) cd_m,
    real, dimension(:,:), intent(out) cd_t,
    real, dimension(:,:), intent(out) cd_q,
    real, dimension(:,:), intent(out) w_atm,
    real, dimension(:,:), intent(out) u_star,
    real, dimension(:,:), intent(out) b_star,
    real, dimension(:,:), intent(out) q_star,
    real, dimension(:,:), intent(out) thv_atm,
    real, dimension(:,:), intent(out) thv_surf,
    real, dimension(:,:), intent(out) dhdt_surf,
    real, dimension(:,:), intent(out) dedt_surf,
    real, dimension(:,:), intent(out) dedq_surf,
    real, dimension(:,:), intent(out) drdt_surf,
    real, dimension(:,:), intent(out) dhdt_atm,
    real, dimension(:,:), intent(out) dedq_atm,
    real, dimension(:,:), intent(out) dtaudu_atm,
    real, dimension(:,:), intent(out) dtaudv_atm,
    real, intent(in) dt,
    logical, dimension(:,:), intent(in) land,
    logical, dimension(:,:), intent(in) seawater,
    logical, dimension(:,:), intent(in) avail 
    )
    +
    +private
    +
    +
    Parameters
    + + + + + + +
    [in]avail.TRUE. where the exchange cell is active
    [in]gustGustiness factor
    [out]cd_qMoisture exchange coefficient
    [in,out]rough_moistMoisture roughness length
    [in]dtTime step (it is not used presently)
    +
    +
    +
    Parameters
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    t_atmAir temp lowest atmospheric level.
    q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
    u_atmZonal wind velocity at lowest atmospheric level.
    v_atmMeridional wind velocity at lowest atmospheric level.
    p_atmPressure lowest atmospheric level.
    z_atmHeight lowest atmospheric level.
    p_surfPressure at the Earth's surface
    t_surfTemp at the Earth's surface
    t_caAir temp at the canopy
    q_surfMixing ratio at the Earth's surface (kg/kg)
    u_surfZonal wind velocity at the Earth's surface
    v_surfMeridional wind velocity at the Earth's surface
    rough_momMomentum roughness length
    rough_heatHeat roughness length
    rough_scaleScale factor used to topographic roughness calculation
    flux_tSensible heat flux
    flux_qEvaporative water flux
    flux_rRadiative energy flux
    flux_uZonal momentum flux
    flux_vMeridional momentum flux
    cd_mMomentum exchange coefficient
    w_atmAbsolute wind at the lowest atmospheric level
    u_starTurbulent velocity scale
    b_starTurbulent buoyant scale
    q_starTurbulent moisture scale
    dhdt_surfSensible heat flux temperature sensitivity
    dedt_surfMoisture flux temperature sensitivity
    dedq_surfMoisture flux humidity sensitivity
    drdt_surfRadiative energy flux temperature sensitivity
    dhdt_atmDerivative of sensible heat flux over temp at the lowest
    dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
    dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
    dtaudv_atmDerivative of meridional wind stress with respect to the lowest
    landIndicates where land exists (.TRUE. if exchange cell is on land
    seawaterIndicates where liquid ocean water exists
    +
    +
    + +
    +
    + +

    ◆ surface_flux_init()

    + +
    +
    + + + + + + + +
    subroutine, public surface_flux_mod::surface_flux_init ()
    +
    + +

    Initialization of the surface flux module–reads the nml.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ alt_gustiness

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::alt_gustiness = .false.
    +
    +private
    +
    + +

    An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const.

    + +
    +
    + +

    ◆ bulk_zq

    + +
    +
    + + + + + +
    + + + + +
    real surface_flux_mod::bulk_zq = 10.
    +
    +private
    +
    + +

    Reference height for atm humidity (meters)

    + +
    +
    + +

    ◆ bulk_zt

    + +
    +
    + + + + + +
    + + + + +
    real surface_flux_mod::bulk_zt = 10.
    +
    +private
    +
    + +

    Reference height for atm temperature (meters)

    + +
    +
    + +

    ◆ bulk_zu

    + +
    +
    + + + + + +
    + + + + +
    real surface_flux_mod::bulk_zu = 10.
    +
    +private
    +
    + +

    Reference height for wind speed (meters)

    + +
    +
    + +

    ◆ d378

    + +
    +
    + + + + + +
    + + + + +
    real, parameter surface_flux_mod::d378 = 1.-d622
    +
    +private
    +
    + +
    +
    + +

    ◆ d608

    + +
    +
    + + + + + +
    + + + + +
    real surface_flux_mod::d608 = d378/d622
    +
    +private
    +
    + +
    +
    + +

    ◆ d622

    + +
    +
    + + + + + +
    + + + + +
    real, parameter surface_flux_mod::d622 = rdgas/rvgas
    +
    +private
    +
    + +
    +
    + +

    ◆ do_iter_monin_obukhov

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::do_iter_monin_obukhov = .false.
    +
    +private
    +
    + +

    If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star.

    + +
    +
    + +

    ◆ do_simple

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::do_simple = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ gcp

    + +
    +
    + + + + + +
    + + + + +
    real, parameter surface_flux_mod::gcp = grav/cp_air
    +
    +private
    +
    + +
    +
    + +

    ◆ gust_const

    + +
    +
    + + + + + +
    + + + + +
    real surface_flux_mod::gust_const = 1.0
    +
    +private
    +
    + +

    Constant for alternative gustiness calculation.

    + +
    +
    + +

    ◆ gust_min

    + +
    +
    + + + + + +
    + + + + +
    real surface_flux_mod::gust_min = 0.0
    +
    +private
    +
    + +

    Minimum gustiness used when alt_gustiness is .FALSE.

    + +
    +
    + +

    ◆ hlars

    + +
    +
    + + + + + +
    + + + + +
    real, parameter surface_flux_mod::hlars = hlv/rvgas
    +
    +private
    +
    + +
    +
    + +

    ◆ kappa

    + +
    +
    + + + + + +
    + + + + +
    real, parameter surface_flux_mod::kappa = rdgas/cp_air
    +
    +private
    +
    + +
    +
    + +

    ◆ module_is_initialized

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::module_is_initialized = .false.
    +
    +private
    +
    + +
    +
    + +

    ◆ ncar_ocean_flux

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::ncar_ocean_flux = .false.
    +
    +private
    +
    + +

    Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004.

    + +
    +
    + +

    ◆ ncar_ocean_flux_multilevel

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::ncar_ocean_flux_multilevel = .false.
    +
    +private
    +
    + +

    Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum.

    + +
    +
    + +

    ◆ ncar_ocean_flux_orig

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::ncar_ocean_flux_orig = .false.
    +
    +private
    +
    + +

    Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments.

    + +
    +
    + +

    ◆ niter_monin_obukhov

    + +
    +
    + + + + + +
    + + + + +
    integer surface_flux_mod::niter_monin_obukhov = 5
    +
    +private
    +
    + +

    iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge

    + +
    +
    + +

    ◆ no_neg_q

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::no_neg_q = .false.
    +
    +private
    +
    + +

    If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0.

    + +
    +
    + +

    ◆ old_dtaudv

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::old_dtaudv = .false.
    +
    +private
    +
    + +

    The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency.

    + +
    +
    + +

    ◆ raoult_sat_vap

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::raoult_sat_vap = .false.
    +
    +private
    +
    + +

    Reduce saturation vapor pressure to account for seawater.

    + +
    +
    + +

    ◆ rough_scheme_ocean

    + +
    +
    + + + + + +
    + + + + +
    character(len=32) surface_flux_mod::rough_scheme_ocean
    +
    +private
    +
    + +

    ocean roughness length scheme to be read from ocean_rough_nml

    + +
    +
    + +

    ◆ tagname

    + +
    +
    + + + + + +
    + + + + +
    character(len=*), parameter surface_flux_mod::tagname = '$Name$'
    +
    +private
    +
    + +
    +
    + +

    ◆ use_mixing_ratio

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::use_mixing_ratio = .false.
    +
    +private
    +
    + +

    An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes).

    + +
    +
    + +

    ◆ use_u10_neutral

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::use_u10_neutral = .false.
    +
    +private
    +
    + +

    If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist.

    + +
    +
    + +

    ◆ use_virtual_temp

    + +
    +
    + + + + + +
    + + + + +
    logical surface_flux_mod::use_virtual_temp = .true.
    +
    +private
    +
    + +

    If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp.

    + +
    +
    + +

    ◆ version

    + +
    +
    + + + + + +
    + + + + +
    character(len=*), parameter surface_flux_mod::version = '$Id$'
    +
    +private
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/pages.html b/docs/html/pages.html new file mode 100644 index 00000000..b9999894 --- /dev/null +++ b/docs/html/pages.html @@ -0,0 +1,84 @@ + + + + + + + +FMS Coupler: Namelist Configuration + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Namelist Configuration
    +
    +
    +
    Information on namelist options to configure runs
    + + + + +
     Coupler ConfigurationCoupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables
     Flux Exchange ConfigurationFlux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables
     Surface Flux ConfigurationSurface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables
    +
    +
    + + + + diff --git a/docs/html/search/all_0.html b/docs/html/search/all_0.html new file mode 100644 index 00000000..5125b940 --- /dev/null +++ b/docs/html/search/all_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js new file mode 100644 index 00000000..165e0532 --- /dev/null +++ b/docs/html/search/all_0.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['add_5fdomain_5fdimension_5fdata',['add_domain_dimension_data',['../namespacefull__coupler__mod.html#ad3685f6bd34e431206122bde9f327dc2',1,'full_coupler_mod::add_domain_dimension_data()'],['../namespaceice__model__mod.html#afd16954e39a95d394843584000c022e4',1,'ice_model_mod::add_domain_dimension_data()']]], + ['albedo',['albedo',['../structice__model__mod_1_1ice__data__type.html#a2733a49aafbb2c427d93412ba024c3b6',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fnir_5fdif',['albedo_nir_dif',['../structice__model__mod_1_1ice__data__type.html#a24c89574df66301e6e3b686dcae7229d',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fnir_5fdir',['albedo_nir_dir',['../structice__model__mod_1_1ice__data__type.html#a99a3c37bd29100dbbea9e72ce79f08ec',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fvis_5fdif',['albedo_vis_dif',['../structice__model__mod_1_1ice__data__type.html#ad5e50ac18a25e32ce222fab20797419a',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fvis_5fdir',['albedo_vis_dir',['../structice__model__mod_1_1ice__data__type.html#a7065db4c98d81f247f30545e8202c6ba',1,'ice_model_mod::ice_data_type']]], + ['all_5fland',['all_land',['../namespaceflux__exchange__mod.html#a9f21ac3fea6a38f7959395b34a8ceb8b',1,'flux_exchange_mod']]], + ['all_5focean',['all_ocean',['../namespaceflux__exchange__mod.html#a50c09e88b3fb6646814e283404760a7d',1,'flux_exchange_mod']]], + ['alt_5fgustiness',['alt_gustiness',['../namespacesurface__flux__mod.html#a338fa27e4d5045147ebf3ee908c60e98',1,'surface_flux_mod']]], + ['amip_5fice',['amip_ice',['../namespaceice__model__mod.html#a5663c456270837d94270cb3e853b8d11',1,'ice_model_mod']]], + ['amip_5fsst',['amip_sst',['../namespaceice__model__mod.html#ad482a1238aba8004d9c21616d04163f3',1,'ice_model_mod']]], + ['atm',['atm',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a6958e428760cf729bec6fc2748104d03',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::atm()'],['../structfull__coupler__mod_1_1coupler__clock__type.html#a6c6826c6bd3bb9b6c77f265576eb4921',1,'full_coupler_mod::coupler_clock_type::atm()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a2e38920a1bf3f745decc0b056b489730',1,'full_coupler_mod::coupler_components_type::atm()']]], + ['atm_5fland_5fice_5fflux_5fexchange_2dold_2ef90',['atm_land_ice_flux_exchange-old.F90',['../atm__land__ice__flux__exchange-old_8_f90.html',1,'']]], + ['atm_5fland_5fice_5fflux_5fexchange_2ef90',['atm_land_ice_flux_exchange.F90',['../atm__land__ice__flux__exchange_8_f90.html',1,'']]], + ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#aefc839a12fc334b7685be207d2ff5452',1,'atm_land_ice_flux_exchange_mod']]], + ['atm_5fland_5fice_5fflux_5fexchange_5fmod',['atm_land_ice_flux_exchange_mod',['../namespaceatm__land__ice__flux__exchange__mod.html',1,'']]], + ['atm_5fprecip_5fnew',['atm_precip_new',['../namespaceflux__exchange__mod.html#a4133789f8990f2178df334764b71a74d',1,'flux_exchange_mod']]], + ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)'],['../namespaceatm__land__ice__flux__exchange__mod.html#aaabcd517cb4e3367fe4d9c1e8cda3a60',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)']]], + ['atmos_5fice_5fboundary',['atmos_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aaeff62295938d8d1a2b25f225afacf3e',1,'full_coupler_mod::coupler_components_type']]], + ['atmos_5fice_5fboundary_5ftype',['atmos_ice_boundary_type',['../structice__model__mod_1_1atmos__ice__boundary__type.html',1,'ice_model_mod']]], + ['atmos_5fland_5fboundary',['atmos_land_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#abf0d670a022708f880f690bf99514b5f',1,'full_coupler_mod::coupler_components_type']]], + ['atmos_5floop',['atmos_loop',['../structfull__coupler__mod_1_1coupler__clock__type.html#a800fc6631253e7d5ad649145f999264c',1,'full_coupler_mod::coupler_clock_type']]], + ['atmos_5fmodel_5finit',['atmos_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a86349958610dea7035e2e00ec6a297fb',1,'full_coupler_mod::coupler_clock_type']]], + ['atmos_5fnpes',['atmos_npes',['../namespacefull__coupler__mod.html#a85adcfb2f6ef212cc2e6415f23f0a946',1,'full_coupler_mod']]], + ['atmos_5fnthreads',['atmos_nthreads',['../namespacefull__coupler__mod.html#a83263556a358d678e6777ca4765eb767',1,'full_coupler_mod']]], + ['atmos_5focean_5fdep_5ffluxes_5fcalc',['atmos_ocean_dep_fluxes_calc',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a5880644207752e6a4873458a90f04cea',1,'atmos_ocean_dep_fluxes_calc_mod']]], + ['atmos_5focean_5fdep_5ffluxes_5fcalc_2ef90',['atmos_ocean_dep_fluxes_calc.F90',['../atmos__ocean__dep__fluxes__calc_8_f90.html',1,'']]], + ['atmos_5focean_5fdep_5ffluxes_5fcalc_5fmod',['atmos_ocean_dep_fluxes_calc_mod',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html',1,'']]], + ['atmos_5focean_5ffluxes_5fcalc',['atmos_ocean_fluxes_calc',['../namespaceatmos__ocean__fluxes__calc__mod.html#acc10568af1ebdd92581183632c4e1f74',1,'atmos_ocean_fluxes_calc_mod']]], + ['atmos_5focean_5ffluxes_5fcalc_2ef90',['atmos_ocean_fluxes_calc.F90',['../atmos__ocean__fluxes__calc_8_f90.html',1,'']]], + ['atmos_5focean_5ffluxes_5fcalc_5fmod',['atmos_ocean_fluxes_calc_mod',['../namespaceatmos__ocean__fluxes__calc__mod.html',1,'']]], + ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]], + ['atmospheric',['atmospheric',['../namespaceatm__land__ice__flux__exchange__mod.html#a7ffb89a6f8abfb4180619cecf52ed7b0',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html new file mode 100644 index 00000000..b8ff8711 --- /dev/null +++ b/docs/html/search/all_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js new file mode 100644 index 00000000..ba518a4b --- /dev/null +++ b/docs/html/search/all_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['b_5fstar',['b_star',['../namespaceflux__exchange__mod.html#aa9caedcc1bc69b6296dc5fef0c77a891',1,'flux_exchange_mod']]], + ['block_5fend',['block_end',['../namespaceatm__land__ice__flux__exchange__mod.html#af5376c2ef9475b25b0fe09811ec50950',1,'atm_land_ice_flux_exchange_mod']]], + ['block_5fstart',['block_start',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a4d0039fbafb9bcb71fbe0848710532',1,'atm_land_ice_flux_exchange_mod']]], + ['bound_5ftol',['bound_tol',['../namespaceatm__land__ice__flux__exchange__mod.html#a6e6f4ac592c8deee969b6832312e2cd5',1,'atm_land_ice_flux_exchange_mod::bound_tol()'],['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod::bound_tol()']]], + ['bulk_5fzq',['bulk_zq',['../namespacesurface__flux__mod.html#ab0430982abba672524b5a13c4b730647',1,'surface_flux_mod']]], + ['bulk_5fzt',['bulk_zt',['../namespacesurface__flux__mod.html#ac06e3e9bb1a504104ec21e0b7585e1aa',1,'surface_flux_mod']]], + ['bulk_5fzu',['bulk_zu',['../namespacesurface__flux__mod.html#ae9006d4cf180672ab7b529b22c3dbac8',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/all_10.html b/docs/html/search/all_10.html new file mode 100644 index 00000000..50bc449e --- /dev/null +++ b/docs/html/search/all_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js new file mode 100644 index 00000000..0669c353 --- /dev/null +++ b/docs/html/search/all_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['q_5fflux',['q_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd51467d1b4f9198a76130bbc6f91abe',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['q_5fsurf',['q_surf',['../namespaceflux__exchange__mod.html#afc62684e7d473718077c120c5ac6f6c0',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_11.html b/docs/html/search/all_11.html new file mode 100644 index 00000000..b35c8bf0 --- /dev/null +++ b/docs/html/search/all_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js new file mode 100644 index 00000000..9fc8c210 --- /dev/null +++ b/docs/html/search/all_11.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['radiation',['radiation',['../structfull__coupler__mod_1_1coupler__clock__type.html#adf8132dede10fbbb9ad678d829422b46',1,'full_coupler_mod::coupler_clock_type']]], + ['radiation_5fnthreads',['radiation_nthreads',['../namespacefull__coupler__mod.html#a3e853db33e426916924f2bb27d2f10a4',1,'full_coupler_mod']]], + ['raoult_5fsat_5fvap',['raoult_sat_vap',['../namespacesurface__flux__mod.html#a20457ec53d55f2819c2109515b92a79f',1,'surface_flux_mod']]], + ['read_5fnamelist',['read_namelist',['../namespaceflux__exchange__mod.html#a52e173ad7fa50e521f75eef8cd9aff95',1,'flux_exchange_mod']]], + ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a0201d6a1f3c4de84d4c5d25d7a6b84b9',1,'atm_land_ice_flux_exchange_mod']]], + ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a68840c3ed23ff9d95ffae81396ee893f',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], + ['regenclock',['regenclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a5ea8ad1958bb201b40dbba386178c8de',1,'atm_land_ice_flux_exchange_mod']]], + ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a56103b2cfc0a82f3303b9e20f25acdbe',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], + ['remap_5fmethod',['remap_method',['../namespaceatm__land__ice__flux__exchange__mod.html#a96ed2d0c9f780f120de2d1c2dd83dd09',1,'atm_land_ice_flux_exchange_mod']]], + ['restart_5finterval',['restart_interval',['../namespacefull__coupler__mod.html#ad7e959a3e2e3da70f34991150fa4711a',1,'full_coupler_mod']]], + ['rough_5fheat',['rough_heat',['../structice__model__mod_1_1ice__data__type.html#a2b0fc3f7a2b99a46539750bf685613cc',1,'ice_model_mod::ice_data_type']]], + ['rough_5fmoist',['rough_moist',['../structice__model__mod_1_1ice__data__type.html#a6dc2c978eee60e0396f5ada2d1740901',1,'ice_model_mod::ice_data_type']]], + ['rough_5fmom',['rough_mom',['../structice__model__mod_1_1ice__data__type.html#aca42b1c10d6f2e5d6f456d4efb33eb86',1,'ice_model_mod::ice_data_type']]], + ['rough_5fscheme_5focean',['rough_scheme_ocean',['../namespacesurface__flux__mod.html#a430407a9f1208154bcfacbd357e883fb',1,'surface_flux_mod']]], + ['roughness_5fice',['roughness_ice',['../namespaceice__model__mod.html#ad08a267cab9b24b3568fd86a3d50cd40',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/all_12.html b/docs/html/search/all_12.html new file mode 100644 index 00000000..fd265245 --- /dev/null +++ b/docs/html/search/all_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js new file mode 100644 index 00000000..be208a9d --- /dev/null +++ b/docs/html/search/all_12.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['s',['s',['../namespaceatm__land__ice__flux__exchange__mod.html#aff8e1c26822d0b79b15c4a11352394f4',1,'atm_land_ice_flux_exchange_mod']]], + ['scale_5fprecip_5f2d',['scale_precip_2d',['../namespaceatm__land__ice__flux__exchange__mod.html#aff59028b168f9a123112151e3f9c082b',1,'atm_land_ice_flux_exchange_mod::scale_precip_2d()'],['../namespaceflux__exchange__mod.html#ad4f0bf7fd2d4d737a0c90c919458ed6e',1,'flux_exchange_mod::scale_precip_2d()']]], + ['schmidt_5fg',['schmidt_g',['../namespaceatmos__ocean__fluxes__calc__mod.html#a7a879f540fe903119d5bb324c44f6c45',1,'atmos_ocean_fluxes_calc_mod']]], + ['seconds',['seconds',['../namespacefull__coupler__mod.html#a0d752429e35e05d13912e2d320e94950',1,'full_coupler_mod']]], + ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#aea62f09680f206912e5ba1883abb32bc',1,'atm_land_ice_flux_exchange_mod']]], + ['set_5fice_5fsurface_5fexchange',['set_ice_surface_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#aa8e8fb7bc677dd49705a5b0ed54bd3c3',1,'full_coupler_mod::coupler_clock_type']]], + ['set_5fice_5fsurface_5ffast',['set_ice_surface_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a11a6b9563d30b684d5ef31a1599f7104',1,'full_coupler_mod::coupler_clock_type']]], + ['set_5fice_5fsurface_5fslow',['set_ice_surface_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab78c1f122e35a9b77e79cb0845b6b717',1,'full_coupler_mod::coupler_clock_type']]], + ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae18b3eb2f36a1ed733b54e1e5a34c552',1,'full_coupler_mod::coupler_clock_type::sfc_boundary_layer()'],['../namespaceatm__land__ice__flux__exchange__mod.html#af6dc1ca9a9e4460748eef47dfd719d46',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], + ['sfcclock',['sfcclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a4afcbc6731e29417a8e91a70224c813c',1,'atm_land_ice_flux_exchange_mod']]], + ['slow_5fice_5focean_5fpelist',['slow_ice_ocean_pelist',['../namespaceice__ocean__flux__exchange__mod.html#a3b7a0952e69375784c15b6436be4c693',1,'ice_ocean_flux_exchange_mod']]], + ['slow_5fice_5fwith_5focean',['slow_ice_with_ocean',['../namespacefull__coupler__mod.html#aef0442d39d4bf3537b9295aee2ea2470',1,'full_coupler_mod']]], + ['specified',['specified',['../namespaceice__model__mod.html#a4cd185be5927217434e4c0f12c7025be',1,'ice_model_mod']]], + ['specified_5fice_5fthickness',['specified_ice_thickness',['../namespaceice__model__mod.html#a37d440034bece975f6373ba9abeb4cbc',1,'ice_model_mod']]], + ['sst_5fanom',['sst_anom',['../namespaceice__model__mod.html#a4051226a26d65f3be30185a85862107e',1,'ice_model_mod']]], + ['sst_5fmethod',['sst_method',['../namespaceice__model__mod.html#ae2b36fb788a968f3caf075c276bee97d',1,'ice_model_mod']]], + ['surface_5fflux',['surface_flux',['../interfacesurface__flux__mod_1_1surface__flux.html',1,'surface_flux_mod']]], + ['surface_5fflux_2ef90',['surface_flux.F90',['../surface__flux_8_f90.html',1,'']]], + ['surface_5fflux_5f0d',['surface_flux_0d',['../namespacesurface__flux__mod.html#a719077c3d9594fb8b63b3681638949eb',1,'surface_flux_mod']]], + ['surface_5fflux_5f1d',['surface_flux_1d',['../interfacesurface__flux__mod_1_1surface__flux.html#aae251f64f9ec074e3eb13cf535503e96',1,'surface_flux_mod::surface_flux::surface_flux_1d()'],['../namespacesurface__flux__mod.html#a9e30e62e73778ab168c1e1e639bc5c5b',1,'surface_flux_mod::surface_flux_1d()']]], + ['surface_5fflux_5f2d',['surface_flux_2d',['../interfacesurface__flux__mod_1_1surface__flux.html#ab3e1a25220436f1a605d89d8cb820294',1,'surface_flux_mod::surface_flux::surface_flux_2d()'],['../namespacesurface__flux__mod.html#a8e1d9d5ab64ad51dd6f60c90616b6648',1,'surface_flux_mod::surface_flux_2d()'],['../namespaceflux__exchange__mod.html#a61d0127746fc39769346765dd050d378',1,'flux_exchange_mod::surface_flux_2d()']]], + ['surface_20flux_20configuration',['Surface Flux Configuration',['../surface_flux_config.html',1,'']]], + ['surface_5fflux_5finit',['surface_flux_init',['../namespacesurface__flux__mod.html#a333b51433623e304046e80987bab0acc',1,'surface_flux_mod']]], + ['surface_5fflux_5fmod',['surface_flux_mod',['../namespacesurface__flux__mod.html',1,'']]], + ['sw_5fflux',['sw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a2bc72919689b165986c3a6d953b19ab2',1,'ice_model_mod::atmos_ice_boundary_type']]] +]; diff --git a/docs/html/search/all_13.html b/docs/html/search/all_13.html new file mode 100644 index 00000000..04f66e2f --- /dev/null +++ b/docs/html/search/all_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js new file mode 100644 index 00000000..1cc4239e --- /dev/null +++ b/docs/html/search/all_13.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['t_5fca',['t_ca',['../namespaceflux__exchange__mod.html#a9ca37680c8e8fcbf1c7cb165299cc6d5',1,'flux_exchange_mod']]], + ['t_5fflux',['t_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afa550fbb99363d6eb36e9df5612f7adc',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['t_5fsurf',['t_surf',['../structice__model__mod_1_1ice__data__type.html#a748d96d8afc6ec3efa88fe61b79bb5c5',1,'ice_model_mod::ice_data_type::t_surf()'],['../namespaceflux__exchange__mod.html#aa2ab2f31bbf1dffff5cd5dcb54b3fad3',1,'flux_exchange_mod::t_surf()']]], + ['tag',['tag',['../namespaceatm__land__ice__flux__exchange__mod.html#a4176031acaa85bc64a9ba4a7035b36ac',1,'atm_land_ice_flux_exchange_mod::tag()'],['../namespaceflux__exchange__mod.html#aba5f7ba78279ed6740597236c1930a65',1,'flux_exchange_mod::tag()']]], + ['tagname',['tagname',['../namespacesurface__flux__mod.html#a9a34cdd6148cf5dcdf01aa7020bf1973',1,'surface_flux_mod::tagname()'],['../namespaceice__model__mod.html#af2b3a99405cf45d0566a694b18b0c07b',1,'ice_model_mod::tagname()']]], + ['temp_5fice',['temp_ice',['../namespaceice__model__mod.html#a8916b1478604e2da7ecea14cf4dfdf20',1,'ice_model_mod']]], + ['temp_5fice_5ffreeze',['temp_ice_freeze',['../namespaceice__model__mod.html#a12903831181559c162e825549f139e7f',1,'ice_model_mod']]], + ['temp_5fsst',['temp_sst',['../namespaceice__model__mod.html#a04a20dcacf655c21e5f47206ae06f344',1,'ice_model_mod']]], + ['termination',['termination',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac68d174e845176ed37f58218a2b161d9',1,'full_coupler_mod::coupler_clock_type']]], + ['text',['text',['../namespacefull__coupler__mod.html#a481c6dc3126700e15926453bb0c98096',1,'full_coupler_mod']]], + ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ffa4143323bc877d98983dc83a6544c',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], + ['thickness',['thickness',['../structice__model__mod_1_1ice__data__type.html#a4fc960a59d3520d6acf290a76e0e246b',1,'ice_model_mod::ice_data_type']]], + ['thickness_5fmin',['thickness_min',['../namespaceice__model__mod.html#a753820dd4f1115554e58b0bdc566dd8d',1,'ice_model_mod']]], + ['time',['time',['../structice__model__mod_1_1ice__data__type.html#a4b225d644fe34ad3ccd00add6817f553',1,'ice_model_mod::ice_data_type']]], + ['time_5finit',['time_init',['../structice__model__mod_1_1ice__data__type.html#a911c3e51a65b58872eae6fdf3ca7baa2',1,'ice_model_mod::ice_data_type']]], + ['time_5fstep_5ffast',['time_step_fast',['../structice__model__mod_1_1ice__data__type.html#aaa44e5583639682ac142e6080eb8586a',1,'ice_model_mod::ice_data_type']]], + ['time_5fstep_5fslow',['time_step_slow',['../structice__model__mod_1_1ice__data__type.html#a4d819e4de12b4f25606af4210105ebd4',1,'ice_model_mod::ice_data_type']]], + ['timestep',['timestep',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ea2d3a3a0f6dcd849a0941e649808e4',1,'atm_land_ice_flux_exchange_mod']]], + ['tr_5ftable',['tr_table',['../namespaceatm__land__ice__flux__exchange__mod.html#ae81e1fb85dbf862e4cde596cc8c886f9',1,'atm_land_ice_flux_exchange_mod']]], + ['tr_5ftable_5fmap',['tr_table_map',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a5df9b039a007c0298c8f20581c5a6f',1,'atm_land_ice_flux_exchange_mod']]], + ['tracer_5fexch_5find_5ftype',['tracer_exch_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]], + ['tracer_5find_5ftype',['tracer_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_14.html b/docs/html/search/all_14.html new file mode 100644 index 00000000..285f34bd --- /dev/null +++ b/docs/html/search/all_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js new file mode 100644 index 00000000..0f169d15 --- /dev/null +++ b/docs/html/search/all_14.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['u_5fstar',['u_star',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6d9cd348045dcc00c5a4287662d90e54',1,'ice_model_mod::atmos_ice_boundary_type::u_star()'],['../namespaceflux__exchange__mod.html#a5f2703b2d725cae0b81f8a0c74a730fe',1,'flux_exchange_mod::u_star()']]], + ['uniform',['uniform',['../namespaceice__model__mod.html#a3fd7567f14a603db2374f95bd1f3c8ec',1,'ice_model_mod']]], + ['update_5fatmos_5fmodel_5fdown',['update_atmos_model_down',['../structfull__coupler__mod_1_1coupler__clock__type.html#a64f28aa652b93f94fe5724c5c4cdeefd',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fatmos_5fmodel_5fdynamics',['update_atmos_model_dynamics',['../structfull__coupler__mod_1_1coupler__clock__type.html#a8017a9be38d01b068dc4627b70bca1bd',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fatmos_5fmodel_5fstate',['update_atmos_model_state',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45294c1f238443b60c735e41aae82975',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fatmos_5fmodel_5fup',['update_atmos_model_up',['../structfull__coupler__mod_1_1coupler__clock__type.html#a209446238ce492535a508e7a7e2a2818',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fice_5fmodel_5ffast',['update_ice_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a59b5799e854311672c976074ebebba23',1,'full_coupler_mod::coupler_clock_type::update_ice_model_fast()'],['../namespaceice__model__mod.html#a9b939a61c6dd68819c8edecfa60a02c5',1,'ice_model_mod::update_ice_model_fast()']]], + ['update_5fice_5fmodel_5fslow',['update_ice_model_slow',['../namespaceice__model__mod.html#a378288dc3d2683fd5308ed483542fc4f',1,'ice_model_mod']]], + ['update_5fice_5fmodel_5fslow_5fexchange',['update_ice_model_slow_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae44965d709c9eecc19aacbc4cf25879a',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fice_5fmodel_5fslow_5ffast',['update_ice_model_slow_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#addddee033e22c3dc65be4a5561c7919e',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fice_5fmodel_5fslow_5fslow',['update_ice_model_slow_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5c87ab8c6abe1995dce0b6eb5f211855',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fland_5fmodel_5ffast',['update_land_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac2ee1ed8bc0f8b67d84e03f97275ee00',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fland_5fmodel_5fslow',['update_land_model_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac59f01b2ba937daed2124ee679909287',1,'full_coupler_mod::coupler_clock_type']]], + ['use_5fam3_5fonly_2ef90',['use_am3_only.f90',['../use__am3__only_8f90.html',1,'']]], + ['use_5fannual_5fice',['use_annual_ice',['../namespaceice__model__mod.html#a782cca47fdcd3876f98bf9733a4db5ab',1,'ice_model_mod']]], + ['use_5fannual_5fsst',['use_annual_sst',['../namespaceice__model__mod.html#aa0b9af1ad302c2a1ee36b791c83959c6',1,'ice_model_mod']]], + ['use_5fclimo_5fice',['use_climo_ice',['../namespaceice__model__mod.html#a49c6719259ca27e72d9237e3fd75ba10',1,'ice_model_mod']]], + ['use_5fclimo_5fsst',['use_climo_sst',['../namespaceice__model__mod.html#a4421462b5feb57f9e869908ff02baa84',1,'ice_model_mod']]], + ['use_5fexisting_5fgrid_5fspec',['use_existing_grid_spec',['../namespaceflux__exchange__mod.html#af340dcdf7b0c5c94fe4320ffda186de0',1,'flux_exchange_mod']]], + ['use_5fhyper_5fthread',['use_hyper_thread',['../namespacefull__coupler__mod.html#a1b451e1fd8ed76ad553334552917841e',1,'full_coupler_mod']]], + ['use_5flag_5ffluxes',['use_lag_fluxes',['../namespacefull__coupler__mod.html#a9a1c54998e22ffba7be908ad06c4695a',1,'full_coupler_mod']]], + ['use_5fland_5fand_5fam3_2ef90',['use_land_and_am3.f90',['../use__land__and__am3_8f90.html',1,'']]], + ['use_5fland_5fonly_2ef90',['use_land_only.f90',['../use__land__only_8f90.html',1,'']]], + ['use_5fmixing_5fratio',['use_mixing_ratio',['../namespacesurface__flux__mod.html#a9dd1f7954c70115612a940a78b0daa61',1,'surface_flux_mod']]], + ['use_5fu10_5fneutral',['use_u10_neutral',['../namespacesurface__flux__mod.html#a0dde12495da696d1c077ac6ecb7c6714',1,'surface_flux_mod']]], + ['use_5fvirtual_5ftemp',['use_virtual_temp',['../namespacesurface__flux__mod.html#a0fdcdb1d11f52c4fbe51fe6def24ea2b',1,'surface_flux_mod']]], + ['used',['used',['../namespaceflux__exchange__mod.html#acb6da04e26caeafaade68eaecd27a070',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_15.html b/docs/html/search/all_15.html new file mode 100644 index 00000000..0ed74e01 --- /dev/null +++ b/docs/html/search/all_15.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_15.js b/docs/html/search/all_15.js new file mode 100644 index 00000000..d7376845 --- /dev/null +++ b/docs/html/search/all_15.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['v_5fair',['v_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a942762290e4c14fbb89e992f736838d5',1,'atmos_ocean_fluxes_calc_mod']]], + ['version',['version',['../namespaceatm__land__ice__flux__exchange__mod.html#a7fee92e02a103e833b54331d52d76348',1,'atm_land_ice_flux_exchange_mod::version()'],['../namespaceflux__exchange__mod.html#adc32e303ec9e035ac2ba95080dce45be',1,'flux_exchange_mod::version()'],['../namespacesurface__flux__mod.html#a6ed27d1eda3e36cac58ac50b853d4906',1,'surface_flux_mod::version()'],['../namespaceice__model__mod.html#a24f5247c40b6091f3f17719d34b7f6cf',1,'ice_model_mod::version()']]] +]; diff --git a/docs/html/search/all_16.html b/docs/html/search/all_16.html new file mode 100644 index 00000000..696f0252 --- /dev/null +++ b/docs/html/search/all_16.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_16.js b/docs/html/search/all_16.js new file mode 100644 index 00000000..4c448efe --- /dev/null +++ b/docs/html/search/all_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wind',['wind',['../namespaceflux__exchange__mod.html#ac52397578086e5b8933fa0d7342191ac',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_17.html b/docs/html/search/all_17.html new file mode 100644 index 00000000..f1e14b63 --- /dev/null +++ b/docs/html/search/all_17.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_17.js b/docs/html/search/all_17.js new file mode 100644 index 00000000..6b08c026 --- /dev/null +++ b/docs/html/search/all_17.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['x1_5fgrid_5fatm',['x1_grid_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a2cc89e69ab4f4a608b6a285b042d1f5b',1,'atm_land_ice_flux_exchange_mod']]], + ['x1_5fgrid_5fice',['x1_grid_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#af67e13f05b2640af8a6bf87f9c8957a6',1,'atm_land_ice_flux_exchange_mod']]], + ['x1_5fgrid_5flnd',['x1_grid_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a6b7909bb737f98c9541529d5dde197',1,'atm_land_ice_flux_exchange_mod']]], + ['x2_5fgrid_5fice',['x2_grid_ice',['../namespaceland__ice__flux__exchange__mod.html#ab0a6ceeb532eb1e603e101ab2786a97b',1,'land_ice_flux_exchange_mod']]], + ['x2_5fgrid_5flnd',['x2_grid_lnd',['../namespaceland__ice__flux__exchange__mod.html#ac1a5883b766d5e4bcaf49aa6deca63c6',1,'land_ice_flux_exchange_mod']]], + ['xmap_5frunoff',['xmap_runoff',['../namespaceland__ice__flux__exchange__mod.html#ac514720b654b8ab562fe5a30f85b8ad2',1,'land_ice_flux_exchange_mod']]], + ['xmap_5fsfc',['xmap_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#a060404036e66ff995a7bdef403eef326',1,'atm_land_ice_flux_exchange_mod']]], + ['xtype',['xtype',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a31f026572e538b841564b9b84b20a432',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['xyz2latlon',['xyz2latlon',['../namespaceice__model__mod.html#a295831b47bffb23aaad0538f61f2d7a6',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/all_18.html b/docs/html/search/all_18.html new file mode 100644 index 00000000..2a009025 --- /dev/null +++ b/docs/html/search/all_18.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_18.js b/docs/html/search/all_18.js new file mode 100644 index 00000000..320cac47 --- /dev/null +++ b/docs/html/search/all_18.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['z_5fref_5fheat',['z_ref_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a819d92621b4dcb540310588802b8adf9',1,'atm_land_ice_flux_exchange_mod::z_ref_heat()'],['../namespaceflux__exchange__mod.html#a67568d1d617e7c1be6dbe00d7be3f4cc',1,'flux_exchange_mod::z_ref_heat()']]], + ['z_5fref_5fmom',['z_ref_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a102b456a413634905a3287946d8d3789',1,'atm_land_ice_flux_exchange_mod::z_ref_mom()'],['../namespaceflux__exchange__mod.html#a2dea7a4b0778ca1121bda4c7c6be8a9b',1,'flux_exchange_mod::z_ref_mom()']]] +]; diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html new file mode 100644 index 00000000..2f17735e --- /dev/null +++ b/docs/html/search/all_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js new file mode 100644 index 00000000..30b6fdee --- /dev/null +++ b/docs/html/search/all_2.js @@ -0,0 +1,64 @@ +var searchData= +[ + ['calc_5fka',['calc_ka',['../namespaceatmos__ocean__fluxes__calc__mod.html#ae9cb64893466d91cc87e5502d37afa12',1,'atmos_ocean_fluxes_calc_mod']]], + ['calc_5fkl',['calc_kl',['../namespaceatmos__ocean__fluxes__calc__mod.html#a5f7e073d68f160bec215202c7e1d7abe',1,'atmos_ocean_fluxes_calc_mod']]], + ['calc_5fkw',['calc_kw',['../namespaceatmos__ocean__fluxes__calc__mod.html#abf318a12a94816f9a99ccd779e028e75',1,'atmos_ocean_fluxes_calc_mod']]], + ['calendar',['calendar',['../namespacefull__coupler__mod.html#a18e3d16cb372a5f0f49e36687c7aeee9',1,'full_coupler_mod']]], + ['calendar_5ftype',['calendar_type',['../namespacefull__coupler__mod.html#a5cae24118f6f7671ff74206b3803868b',1,'full_coupler_mod']]], + ['ccc',['ccc',['../namespaceatm__land__ice__flux__exchange__mod.html#aedd101291e4737318da14ac51a2c07b0',1,'atm_land_ice_flux_exchange_mod::ccc()'],['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod::ccc()']]], + ['cd_5fm',['cd_m',['../namespaceflux__exchange__mod.html#acecf7a05415537c2ac395e6a68934628',1,'flux_exchange_mod']]], + ['cd_5ft',['cd_t',['../namespaceflux__exchange__mod.html#a53b62119a9798cdfef5cae59286254f5',1,'flux_exchange_mod']]], + ['check_5fatm_5fgrid',['check_atm_grid',['../namespaceflux__exchange__mod.html#a9b9500d8c86af3e964c1558bb7ae464e',1,'flux_exchange_mod']]], + ['check_5fflux_5fconservation',['check_flux_conservation',['../namespaceice__ocean__flux__exchange__mod.html#a82490086151d4ed5045fe1e9073163ba',1,'ice_ocean_flux_exchange_mod']]], + ['check_5fstocks',['check_stocks',['../namespacefull__coupler__mod.html#a87ccc8af0ea38216b76cb914b641fa43',1,'full_coupler_mod']]], + ['cmax',['cmax',['../namespaceice__model__mod.html#afe86741fa7aa070accd891d14ae25b89',1,'ice_model_mod']]], + ['cmin',['cmin',['../namespaceice__model__mod.html#a069d9874b6c63980a473c3a2a93a338b',1,'ice_model_mod']]], + ['combined_5fice_5fand_5focean',['combined_ice_and_ocean',['../namespacefull__coupler__mod.html#aa59cb045fb5f6eaa4ffd5116ad640dc2',1,'full_coupler_mod']]], + ['components',['components',['../structfull__coupler__mod_1_1coupler__chksum__type.html#aea10b2e4867debe7c8c8b280087b6760',1,'full_coupler_mod::coupler_chksum_type']]], + ['concurrent',['concurrent',['../namespacefull__coupler__mod.html#a5ad3045bf25e7c03c1dda87b62216389',1,'full_coupler_mod']]], + ['concurrent_5fatmos',['concurrent_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#abf004a119113d8387dcdc51df916a2d4',1,'full_coupler_mod::coupler_clock_type']]], + ['concurrent_5fice',['concurrent_ice',['../namespacefull__coupler__mod.html#ad028fe6369495ea7e76623b4382d393d',1,'full_coupler_mod']]], + ['coszen',['coszen',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a8cdc94e786674735ea0794c091e25f25',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['coupler_5fatmos_5ftracer_5fdriver_5fgather_5fdata',['coupler_atmos_tracer_driver_gather_data',['../namespacefull__coupler__mod.html#a5a028d46d98bc897bd6896fdb5755e96',1,'full_coupler_mod']]], + ['coupler_5fchksum',['coupler_chksum',['../simple_2coupler__main_8_f90.html#a84967079db4c81f7d8a653d5e37c484d',1,'coupler_main.F90']]], + ['coupler_5fchksum_5ftype',['coupler_chksum_type',['../structfull__coupler__mod_1_1coupler__chksum__type.html',1,'full_coupler_mod']]], + ['coupler_5fclock_5ftype',['coupler_clock_type',['../structfull__coupler__mod_1_1coupler__clock__type.html',1,'full_coupler_mod']]], + ['coupler_5fcomponents_5ftype',['coupler_components_type',['../structfull__coupler__mod_1_1coupler__components__type.html',1,'full_coupler_mod']]], + ['coupler_20configuration',['Coupler Configuration',['../coupler_config.html',1,'']]], + ['coupler_5fend',['coupler_end',['../namespacefull__coupler__mod.html#a2ec9738b6ff3b36e2468bdf6be894dcd',1,'full_coupler_mod::coupler_end()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90']]], + ['coupler_5fexchange_5ffast_5fto_5fslow_5fice',['coupler_exchange_fast_to_slow_ice',['../namespacefull__coupler__mod.html#adfa43bbc4b86cff9ebbf83c303c1536c',1,'full_coupler_mod']]], + ['coupler_5fexchange_5fslow_5fto_5ffast_5fice',['coupler_exchange_slow_to_fast_ice',['../namespacefull__coupler__mod.html#acc373b8c70ab51bcd1abd62a0f2cc458',1,'full_coupler_mod']]], + ['coupler_5fflux_5fatmos_5fto_5focean',['coupler_flux_atmos_to_ocean',['../namespacefull__coupler__mod.html#a5d6ec62cbf5b295aace24abd48724d72',1,'full_coupler_mod']]], + ['coupler_5fflux_5fcheck_5fstocks',['coupler_flux_check_stocks',['../namespacefull__coupler__mod.html#a0c78ac70ae6ce91467b7039912804e05',1,'full_coupler_mod']]], + ['coupler_5fflux_5fdown_5ffrom_5fatmos',['coupler_flux_down_from_atmos',['../namespacefull__coupler__mod.html#a2bbfad8acb27d074dcab777315e83020',1,'full_coupler_mod']]], + ['coupler_5fflux_5fice_5fto_5focean',['coupler_flux_ice_to_ocean',['../namespacefull__coupler__mod.html#a21ac2bd35b5e12e39409de231485fc49',1,'full_coupler_mod']]], + ['coupler_5fflux_5finit_5ffinish_5fstocks',['coupler_flux_init_finish_stocks',['../namespacefull__coupler__mod.html#aacd2b02808f6f249686b8dfda325a476',1,'full_coupler_mod']]], + ['coupler_5fflux_5fland_5fto_5fice',['coupler_flux_land_to_ice',['../namespacefull__coupler__mod.html#abf2778399410a6dc8bd900e06fb32c73',1,'full_coupler_mod']]], + ['coupler_5fflux_5focean_5fto_5fice',['coupler_flux_ocean_to_ice',['../namespacefull__coupler__mod.html#aea669a50f8bf186ab6563fc3a593727d',1,'full_coupler_mod']]], + ['coupler_5fflux_5fup_5fto_5fatmos',['coupler_flux_up_to_atmos',['../namespacefull__coupler__mod.html#a815b7cd5c923bcc6983455275e760562',1,'full_coupler_mod']]], + ['coupler_5fgenerate_5fsfc_5fxgrid',['coupler_generate_sfc_xgrid',['../namespacefull__coupler__mod.html#a5a6aad430601ef6236f0aef37ae7e8d9',1,'full_coupler_mod']]], + ['coupler_5finit',['coupler_init',['../namespacefull__coupler__mod.html#a492d05bed09bd21cfdfd552ad94a41a1',1,'full_coupler_mod::coupler_init()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90']]], + ['coupler_5fintermediate_5frestart',['coupler_intermediate_restart',['../namespacefull__coupler__mod.html#a78e63fea8e51104d42b8165c1aca632f',1,'full_coupler_mod']]], + ['coupler_5fmain',['coupler_main',['../full_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90']]], + ['coupler_5fmain_2ef90',['coupler_main.F90',['../full_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../_s_hi_e_l_d_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../simple_2coupler__main_8_f90.html',1,'(Global Namespace)']]], + ['coupler_5frestart',['coupler_restart',['../namespacefull__coupler__mod.html#acdc143216f549f73b826f2dc16d8785d',1,'full_coupler_mod::coupler_restart()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a1d53997072d4080194ed167495e1dc4e',1,'coupler_restart(): coupler_main.F90']]], + ['coupler_5fset_5fclock_5fids',['coupler_set_clock_ids',['../namespacefull__coupler__mod.html#af8e1c181167e62399ce506efc5d4466d',1,'full_coupler_mod']]], + ['coupler_5fset_5fice_5fsurface_5ffields',['coupler_set_ice_surface_fields',['../namespacefull__coupler__mod.html#abddb0d5b155dcae16de66f20ec7beb6b',1,'full_coupler_mod']]], + ['coupler_5fsfc_5fboundary_5flayer',['coupler_sfc_boundary_layer',['../namespacefull__coupler__mod.html#a229bd773fc74906d301d68606f1fa0ba',1,'full_coupler_mod']]], + ['coupler_5fsummarize_5ftimestep',['coupler_summarize_timestep',['../namespacefull__coupler__mod.html#ad43bd73adc9e5c3d58a36eb181f8ed49',1,'full_coupler_mod']]], + ['coupler_5funpack_5fland_5fice_5fboundary',['coupler_unpack_land_ice_boundary',['../namespacefull__coupler__mod.html#abaf548c80785bc86cdf6905e878beea2',1,'full_coupler_mod']]], + ['coupler_5funpack_5focean_5fice_5fboundary',['coupler_unpack_ocean_ice_boundary',['../namespacefull__coupler__mod.html#a03dfec6ce79bf87d70af81a67036d0d5',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fdown',['coupler_update_atmos_model_down',['../namespacefull__coupler__mod.html#a12b401d180e4ef450900bf99326cf7b1',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fdynamics',['coupler_update_atmos_model_dynamics',['../namespacefull__coupler__mod.html#a9870c4ebd0509e3a451918312aeab9bc',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fradiation',['coupler_update_atmos_model_radiation',['../namespacefull__coupler__mod.html#a53e78be022cbfa2705d38c357862b299',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fstate',['coupler_update_atmos_model_state',['../namespacefull__coupler__mod.html#abcc0129feb720f653d1331b74bdcc83e',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fup',['coupler_update_atmos_model_up',['../namespacefull__coupler__mod.html#a6d261ed1082536075cf038512bfb554c',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fice_5fmodel_5ffast',['coupler_update_ice_model_fast',['../namespacefull__coupler__mod.html#a16ef5e434cc41e25acca7c13c914a7dd',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fice_5fmodel_5fslow_5fand_5fstocks',['coupler_update_ice_model_slow_and_stocks',['../namespacefull__coupler__mod.html#a99772f79049c6478c178ff5936cd96f5',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fland_5fmodel_5ffast',['coupler_update_land_model_fast',['../namespacefull__coupler__mod.html#ac362087e9af50b6210abceca68bc71b4',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fland_5fmodel_5fslow',['coupler_update_land_model_slow',['../namespacefull__coupler__mod.html#a439064bbf2747a318875cd2658ee5687',1,'full_coupler_mod']]], + ['coupler_5fupdate_5focean_5fmodel',['coupler_update_ocean_model',['../namespacefull__coupler__mod.html#a2b178ae2d43ded30a97496633670b93a',1,'full_coupler_mod']]], + ['cplclock',['cplclock',['../namespaceatm__land__ice__flux__exchange__mod.html#afc1f632c6fb9d2aba8f1bb0d3e5ff993',1,'atm_land_ice_flux_exchange_mod::cplclock()'],['../namespaceflux__exchange__mod.html#a55cfce099e27ac30a8a3e3c9f48849d8',1,'flux_exchange_mod::cplclock()'],['../namespaceland__ice__flux__exchange__mod.html#a6e80f85c3ad949322df68bfda49aeb9d',1,'land_ice_flux_exchange_mod::cplclock()']]], + ['cplocnclock',['cplocnclock',['../namespaceice__ocean__flux__exchange__mod.html#a5431df541452ace1e68a6dc62c8efa4a',1,'ice_ocean_flux_exchange_mod']]], + ['current_5fdate',['current_date',['../namespacefull__coupler__mod.html#ac79f6aa8c4ad045ee4a8bc7726853457',1,'full_coupler_mod']]] +]; diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html new file mode 100644 index 00000000..a3e6f7db --- /dev/null +++ b/docs/html/search/all_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js new file mode 100644 index 00000000..0f9fdea7 --- /dev/null +++ b/docs/html/search/all_3.js @@ -0,0 +1,50 @@ +var searchData= +[ + ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#af16f9f6655fc1f37a14e967618b66a6a',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], + ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a56c1b7e4d03b228479e25241a41085c4',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], + ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a674182b17c6173f4b76511bcee534c4c',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], + ['d_5fair',['d_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a6a4a1330c1ee1043b30e4b86f462ec24',1,'atmos_ocean_fluxes_calc_mod']]], + ['data',['data',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a0e638d4b8efef050d34bb16bb637e503',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['date_5finit',['date_init',['../namespacefull__coupler__mod.html#a224eb7b4334353b002163b32235c2c37',1,'full_coupler_mod']]], + ['days',['days',['../namespacefull__coupler__mod.html#a0b42e8ed5c43a06e46c947f90f60de2e',1,'full_coupler_mod']]], + ['debug_5fstocks',['debug_stocks',['../namespaceflux__exchange__mod.html#a85a4e48184ac3df1924a4da5b3678836',1,'flux_exchange_mod::debug_stocks()'],['../namespaceice__ocean__flux__exchange__mod.html#a09c87ee132e2cfd87a1ecda83787b5bd',1,'ice_ocean_flux_exchange_mod::debug_stocks()']]], + ['dedq_5fatm',['dedq_atm',['../namespaceflux__exchange__mod.html#a64be41e9f890fd04c831656e04dea02e',1,'flux_exchange_mod']]], + ['dedq_5fsurf',['dedq_surf',['../namespaceflux__exchange__mod.html#a772a31b28741e8b8245dfb15e15077bb',1,'flux_exchange_mod']]], + ['dedt',['dedt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a351c56250820f5e145465d8a684148df',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['dedt_5fsurf',['dedt_surf',['../namespaceflux__exchange__mod.html#a4416573f338299400a7bde3b33ecce6d',1,'flux_exchange_mod']]], + ['dhdt',['dhdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd3cad887715d9239eeb2f09f1121729',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['dhdt_5fatm',['dhdt_atm',['../namespaceflux__exchange__mod.html#ada94f4e7d52c502fd946201f090c5644',1,'flux_exchange_mod']]], + ['dhdt_5fsurf',['dhdt_surf',['../namespaceflux__exchange__mod.html#adda223e3f75af374428581666b973a69',1,'flux_exchange_mod']]], + ['diag_5ffield_5finit',['diag_field_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8a26116481dffeb2f5f2ac6444c64f5',1,'atm_land_ice_flux_exchange_mod::diag_field_init()'],['../namespaceflux__exchange__mod.html#ab9537fe935b63ea2cf7f9c8f895cb8e0',1,'flux_exchange_mod::diag_field_init()']]], + ['diff',['diff',['../namespaceice__model__mod.html#a9930d4b7c4f36ba29c1494007ab9a5c4',1,'ice_model_mod']]], + ['direct',['direct',['../namespaceatm__land__ice__flux__exchange__mod.html#acd77c349aebc563e2a79a36b7c9728c7',1,'atm_land_ice_flux_exchange_mod::direct()'],['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod::direct()']]], + ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], + ['divide_5fby_5farea',['divide_by_area',['../namespaceatm__land__ice__flux__exchange__mod.html#a6dbcba7c48b5f085de6b33e9f05d6868',1,'atm_land_ice_flux_exchange_mod::divide_by_area()'],['../namespaceice__ocean__flux__exchange__mod.html#a1da352681654a7c70e1c929092357c76',1,'ice_ocean_flux_exchange_mod::divide_by_area()']]], + ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad202bbf87044b1eec5805f6875857910',1,'atm_land_ice_flux_exchange_mod::do_area_weighted_flux()'],['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], + ['do_5fatmos',['do_atmos',['../namespacefull__coupler__mod.html#ac5f115cf3ec7b2b595aee0857cabdf90',1,'full_coupler_mod']]], + ['do_5fchksum',['do_chksum',['../namespacefull__coupler__mod.html#a74ce4e2724ae9e0d2d9721cdbd9e56e2',1,'full_coupler_mod']]], + ['do_5fconcurrent_5fradiation',['do_concurrent_radiation',['../namespacefull__coupler__mod.html#a131c273c9c0e80eb8350cb6809dd4c04',1,'full_coupler_mod']]], + ['do_5fdebug',['do_debug',['../namespacefull__coupler__mod.html#a25b64a33d2e473ed4ea14076052d13d4',1,'full_coupler_mod']]], + ['do_5fendpoint_5fchksum',['do_endpoint_chksum',['../namespacefull__coupler__mod.html#aebb5148e8c1a97317a997848170c7bdc',1,'full_coupler_mod']]], + ['do_5fflux',['do_flux',['../namespacefull__coupler__mod.html#a9e75cc87d8a2a12446415c8e96020256',1,'full_coupler_mod']]], + ['do_5fforecast',['do_forecast',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5ba0610f8d66c3fea1c7f593aa87d2d',1,'atm_land_ice_flux_exchange_mod::do_forecast()'],['../namespaceflux__exchange__mod.html#a64ce07eb820491557e1c3a345afd4c26',1,'flux_exchange_mod::do_forecast()']]], + ['do_5fice',['do_ice',['../namespacefull__coupler__mod.html#a129ad943f269777da974e4b6237aca81',1,'full_coupler_mod']]], + ['do_5finit',['do_init',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d84d05097c722fd05883eee3826ccbe',1,'atm_land_ice_flux_exchange_mod::do_init()'],['../namespaceflux__exchange__mod.html#aadc375ceab862873a6185a4c206bec41',1,'flux_exchange_mod::do_init()']]], + ['do_5fiter_5fmonin_5fobukhov',['do_iter_monin_obukhov',['../namespacesurface__flux__mod.html#a6b3f019016c57aa487b01d3304625f41',1,'surface_flux_mod']]], + ['do_5fland',['do_land',['../namespacefull__coupler__mod.html#ae29c7dedacd07b876ab9a8c88f3fcb0a',1,'full_coupler_mod']]], + ['do_5fnetcdf_5frestart',['do_netcdf_restart',['../namespaceice__model__mod.html#a3b97dc02cd49d8cf87c2a01d893e7580',1,'ice_model_mod']]], + ['do_5focean',['do_ocean',['../namespacefull__coupler__mod.html#aa8de957c43ab106c9b82743daf3f8df6',1,'full_coupler_mod']]], + ['do_5fread_5fnml',['do_read_nml',['../namespaceflux__exchange__mod.html#a1b9cb50c37b77026396b80aa79d606d1',1,'flux_exchange_mod']]], + ['do_5frunoff',['do_runoff',['../namespaceflux__exchange__mod.html#ae37ea2fadd4c406881499469dca2fc3e',1,'flux_exchange_mod::do_runoff()'],['../namespaceland__ice__flux__exchange__mod.html#a22b7d08fbac612f0dc26cea5ca406d42',1,'land_ice_flux_exchange_mod::do_runoff()']]], + ['do_5fsimple',['do_simple',['../namespacesurface__flux__mod.html#a430e1f667917e25d8428390a7b4a3733',1,'surface_flux_mod']]], + ['domain',['domain',['../structice__model__mod_1_1ice__data__type.html#ae05a07368d37ccbc698fc6549fd69754',1,'ice_model_mod::ice_data_type']]], + ['drag_5fq',['drag_q',['../namespaceflux__exchange__mod.html#ada7c251b490f5d63b180b8743604b542',1,'flux_exchange_mod']]], + ['drdt',['drdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a4cf5b6717966554bc5d90949a87f5960',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], + ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], + ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], + ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], + ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], + ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], + ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html new file mode 100644 index 00000000..6452295d --- /dev/null +++ b/docs/html/search/all_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js new file mode 100644 index 00000000..149d20f5 --- /dev/null +++ b/docs/html/search/all_4.js @@ -0,0 +1,54 @@ +var searchData= +[ + ['e_5fq_5fn',['e_q_n',['../namespaceflux__exchange__mod.html#af70762b2a29dd3351d264552a69f31fd',1,'flux_exchange_mod']]], + ['e_5ft_5fn',['e_t_n',['../namespaceflux__exchange__mod.html#a99c629c06c3a52e275521209439235fb',1,'flux_exchange_mod']]], + ['epsln',['epsln',['../namespaceatmos__ocean__fluxes__calc__mod.html#a55eb8d12d0b2764e81cecf9dff4dc4d8',1,'atmos_ocean_fluxes_calc_mod']]], + ['ex_5falbedo_5ffix',['ex_albedo_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a6ce3eaf605064a25d5cc1283e0e11276',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fnir_5fdif_5ffix',['ex_albedo_nir_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a328257f3efd36a27514c76d5cf96c379',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fnir_5fdir_5ffix',['ex_albedo_nir_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a104be61b1aa14a50d997b6993b5274c9',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fvis_5fdif_5ffix',['ex_albedo_vis_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aa10f4fb058cec37b5080747c92b38ccc',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fvis_5fdir_5ffix',['ex_albedo_vis_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aad98ee1a168521649429409b391b9762',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5favail',['ex_avail',['../namespaceatm__land__ice__flux__exchange__mod.html#a58563af19b7f161084245415d793cae0',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fb_5fstar',['ex_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a0fd79bc7659c354908e2e6c325985544',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fcd_5fm',['ex_cd_m',['../namespaceatm__land__ice__flux__exchange__mod.html#a26e0b81f6ed8473af88bdec4dda23c4b',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fcd_5ft',['ex_cd_t',['../namespaceatm__land__ice__flux__exchange__mod.html#a1fc83cb6b523c05c9925f67c1bef77eb',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fcon_5fatm',['ex_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a972ea1bb3939a7b1fed1e698b182de88',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdedt_5fsurf',['ex_dedt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a50b141a6a27c86e08632eb459f39324b',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdfdtr_5fatm',['ex_dfdtr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a358eb5572e71492f7499d25dd3f20f98',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdfdtr_5fsurf',['ex_dfdtr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a166f151a722fa35f69705d680a644cff',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdrag_5fq',['ex_drag_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a06ac4914cb14f5ad8659d768f838b2ba',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdtaudv_5fatm',['ex_dtaudv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#ae3ae41712484a6829639b4cd4431dab1',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fe_5fq_5fn',['ex_e_q_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a86ed92f16c0fb112e38dd6873ca4cded',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fe_5ft_5fn',['ex_e_t_n',['../namespaceatm__land__ice__flux__exchange__mod.html#af597d6135733a6cb828cfe7a6b4189e2',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fe_5ftr_5fn',['ex_e_tr_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a62a8dccea77d1e67b22326bf6076d19f',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ff_5ft_5fdelt_5fn',['ex_f_t_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a0a94c710110b7899b37036cd305932ad',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ff_5ftr_5fdelt_5fn',['ex_f_tr_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a78022255bd2979bbd2d2ffe3a6217272',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5flw',['ex_flux_lw',['../namespaceatm__land__ice__flux__exchange__mod.html#af36a6c987c16a10e698b500396554130',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5ft',['ex_flux_t',['../namespaceatm__land__ice__flux__exchange__mod.html#ae9b13bb6dda1c9dd7d826fc60e495a7d',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5ftr',['ex_flux_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#a38000d1cf858d832de3570bbac68dc07',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5fu',['ex_flux_u',['../namespaceatm__land__ice__flux__exchange__mod.html#a5419fecfda33b11db1caab9042cf90c2',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5fv',['ex_flux_v',['../namespaceatm__land__ice__flux__exchange__mod.html#ac27b58d41879537c39e4b8bc6eac83f8',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fgas_5ffields_5fatm',['ex_gas_fields_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3266419d5fdecb4817fa06dad56056df',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_atm()'],['../namespaceflux__exchange__mod.html#a4cdfe4f5a23bfa6c4ccaffbd9ad047bb',1,'flux_exchange_mod::ex_gas_fields_atm()']]], + ['ex_5fgas_5ffields_5fice',['ex_gas_fields_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a07e2cfa8c59081b4aea8525879c304ab',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_ice()'],['../namespaceflux__exchange__mod.html#ad3a6680e20e123bfdf15e9690f52a4b8',1,'flux_exchange_mod::ex_gas_fields_ice()']]], + ['ex_5fgas_5ffluxes',['ex_gas_fluxes',['../namespaceatm__land__ice__flux__exchange__mod.html#a6c4da192e1adc05ce9f87b40e4e97b9b',1,'atm_land_ice_flux_exchange_mod::ex_gas_fluxes()'],['../namespaceflux__exchange__mod.html#a24a89015e7d63bf306c3c98bc0ecbd60',1,'flux_exchange_mod::ex_gas_fluxes()']]], + ['ex_5fland',['ex_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a2e2496900cb4751561b8111d9cd73fd3',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fold_5falbedo',['ex_old_albedo',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6f4b7e07f9aca6eb7fe2723915a2d40',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fp_5fsurf',['ex_p_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#af4fdc80a51f0145da4aa80a6317cc156',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fseawater',['ex_seawater',['../namespaceatm__land__ice__flux__exchange__mod.html#a7cc9b8d546d6589e3b2cf8a7ad6dd90c',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fslp',['ex_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#ae70d5c9a1a49eff91b2c14c1657103a6',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ft_5fca',['ex_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a11f41fbfe9ab8aa845f8337fb270f9d9',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ft_5fsurf',['ex_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b2ef838084f4e936de81bcf4acba447',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ft_5fsurf_5fmiz',['ex_t_surf_miz',['../namespaceatm__land__ice__flux__exchange__mod.html#a29071f5ae5e2772b510570b3834fe1b4',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ftr_5fcon_5fatm',['ex_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aa059a6e4b7a9798e0dddbd4d24638e11',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ftr_5fcon_5fref',['ex_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#af867f2e5e4235297c49e0c31889dc8a3',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ftr_5fsurf',['ex_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a81a6ab0bad3a81d6b057c6aa2550148e',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fu_5fstar',['ex_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a3faddc34ad457fdb55533bead75ce7f0',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fwind',['ex_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#ada77a5490b1ad25fa3ca68f3f81b9548',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fz_5fatm',['ex_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a415a43eca092359dca12e46ac24bb0de',1,'atm_land_ice_flux_exchange_mod']]], + ['exch',['exch',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#af49ff646f6c5c341f07f96eb556ca3fb',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type']]] +]; diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html new file mode 100644 index 00000000..e59e1d53 --- /dev/null +++ b/docs/html/search/all_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js new file mode 100644 index 00000000..0be17703 --- /dev/null +++ b/docs/html/search/all_5.js @@ -0,0 +1,48 @@ +var searchData= +[ + ['f_5fq_5fdelt_5fn',['f_q_delt_n',['../namespaceflux__exchange__mod.html#ac1835374d54ce5533bf87bd388444d4d',1,'flux_exchange_mod']]], + ['f_5ft_5fdelt_5fn',['f_t_delt_n',['../namespaceflux__exchange__mod.html#afd64fcaa6261af605cf0704e813fe0bb',1,'flux_exchange_mod']]], + ['final_5fflux_5fcheck_5fstocks',['final_flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5042090eb7e46f01440a762fbe55dbf8',1,'full_coupler_mod::coupler_clock_type']]], + ['first_5fstatic',['first_static',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6ec5aeec04dfbc11e9db1d496b0d276',1,'atm_land_ice_flux_exchange_mod::first_static()'],['../namespaceflux__exchange__mod.html#a6a77207b65f30f8fe2db3dd6a3cf15ea',1,'flux_exchange_mod::first_static()']]], + ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#abbc25f2b6691ab2cbe94c2b7a8e3235f',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fcheck_5fstocks',['flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6d6bae8bc10923df881c023689bdc5f3',1,'full_coupler_mod::coupler_clock_type::flux_check_stocks()'],['../namespaceflux__exchange__mod.html#a905b179ee9688d2feeef94f3417b25e5',1,'flux_exchange_mod::flux_check_stocks()']]], + ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab01f08cbfcccf5bb51e6ce8fce17c2e5',1,'full_coupler_mod::coupler_clock_type::flux_down_from_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#adbe4303a01222ce60a65246fecc1f7aa',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], + ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec6c8a5b6f66728f1d07dba27282319c',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fexchange_2ef90',['flux_exchange.F90',['../full_2flux__exchange_8_f90.html',1,'(Global Namespace)'],['../simple_2flux__exchange_8_f90.html',1,'(Global Namespace)']]], + ['flux_20exchange_20configuration',['Flux Exchange Configuration',['../flux_exchange_conf.html',1,'']]], + ['flux_5fexchange_5fend',['flux_exchange_end',['../namespaceflux__exchange__mod.html#a6485a12c7af1fed26ee7a8dac257a508',1,'flux_exchange_mod']]], + ['flux_5fexchange_5finit',['flux_exchange_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6a246dc59781d37c851e4d1ae1583001',1,'full_coupler_mod::coupler_clock_type::flux_exchange_init()'],['../namespaceflux__exchange__mod.html#aa0a4db6845eb6ba4aa2246e67c9bcc6b',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)'],['../namespaceflux__exchange__mod.html#ab2e7b7db204609a177b55f5725e57976',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)']]], + ['flux_5fexchange_5fmod',['flux_exchange_mod',['../namespaceflux__exchange__mod.html',1,'']]], + ['flux_5fice_5fto_5focean',['flux_ice_to_ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#af5781bd885d87fcde35d90052bf79f18',1,'full_coupler_mod::coupler_clock_type::flux_ice_to_ocean()'],['../namespaceice__ocean__flux__exchange__mod.html#afcc66b7731a985e1916e5ac4a303df37',1,'ice_ocean_flux_exchange_mod::flux_ice_to_ocean()']]], + ['flux_5fice_5fto_5focean_5ffinish',['flux_ice_to_ocean_finish',['../namespaceice__ocean__flux__exchange__mod.html#a1f894795596097d716f953bbfdb9dc80',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5fice_5fto_5focean_5fredistribute',['flux_ice_to_ocean_redistribute',['../namespaceice__ocean__flux__exchange__mod.html#a051fd38cfb62a7fa0b9093d39a3d1a94',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5fice_5fto_5focean_5fstocks',['flux_ice_to_ocean_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1a1e05fc71dabaaf9ab21d3828a77814',1,'full_coupler_mod::coupler_clock_type::flux_ice_to_ocean_stocks()'],['../namespaceice__ocean__flux__exchange__mod.html#ac7d12dcdb5b25d4a1bb38935360cceab',1,'ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks()']]], + ['flux_5finit_5fstocks',['flux_init_stocks',['../namespaceflux__exchange__mod.html#a8482ebe698f25da2d177b2508fa9d2b8',1,'flux_exchange_mod']]], + ['flux_5fland_5fto_5fice',['flux_land_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45af9e3925664172d82d273acecdb38f',1,'full_coupler_mod::coupler_clock_type::flux_land_to_ice()'],['../namespaceland__ice__flux__exchange__mod.html#a7430ed2b8895cbe33376aaa6315ea0da',1,'land_ice_flux_exchange_mod::flux_land_to_ice()']]], + ['flux_5flw',['flux_lw',['../namespaceflux__exchange__mod.html#ab1ee2d625de074a36d8549bca04772f7',1,'flux_exchange_mod']]], + ['flux_5focean_5ffrom_5fice_5fstocks',['flux_ocean_from_ice_stocks',['../namespaceice__ocean__flux__exchange__mod.html#ac5daa11e6f312156be99d617a705bae8',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5focean_5fto_5fice',['flux_ocean_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae50469d47f9a6f770da3d26660f81f05',1,'full_coupler_mod::coupler_clock_type::flux_ocean_to_ice()'],['../namespaceice__ocean__flux__exchange__mod.html#a5270f15d181575b7559f4664afcd987a',1,'ice_ocean_flux_exchange_mod::flux_ocean_to_ice()']]], + ['flux_5focean_5fto_5fice_5ffinish',['flux_ocean_to_ice_finish',['../namespaceice__ocean__flux__exchange__mod.html#a2af0c159f5b00bd98d7f8339761df29e',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5fq',['flux_q',['../namespaceflux__exchange__mod.html#a3c4cfa64058f3cca59b7c804cfab4d83',1,'flux_exchange_mod']]], + ['flux_5ft',['flux_t',['../namespaceflux__exchange__mod.html#ae6259f1b9fad0af0d2744ebfc7a34313',1,'flux_exchange_mod']]], + ['flux_5fu',['flux_u',['../namespaceflux__exchange__mod.html#ae36d80622db4d5f45ecf4da1f00c5b25',1,'flux_exchange_mod']]], + ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3b44642440602473e03691b68b4cdf8f',1,'full_coupler_mod::coupler_clock_type::flux_up_to_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#afff8d47bcdf69e33ea3f2df0e406373e',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]], + ['flux_5fv',['flux_v',['../namespaceflux__exchange__mod.html#a9c5e8f07060938dfc699b598621056e1',1,'flux_exchange_mod']]], + ['fluxatmdnclock',['fluxatmdnclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a33f6639238a7502d880f163e1e2b9a7d',1,'atm_land_ice_flux_exchange_mod']]], + ['fluxatmupclock',['fluxatmupclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a17bc1bc0397c5f238246e540932eb068',1,'atm_land_ice_flux_exchange_mod']]], + ['fluxiceoceanclock',['fluxiceoceanclock',['../namespaceice__ocean__flux__exchange__mod.html#a9ba54588c93b81c1cc0264d121bd380a',1,'ice_ocean_flux_exchange_mod']]], + ['fluxlandiceclock',['fluxlandiceclock',['../namespaceland__ice__flux__exchange__mod.html#a1eea545bd73b38025dc9e06351309075',1,'land_ice_flux_exchange_mod']]], + ['fluxoceaniceclock',['fluxoceaniceclock',['../namespaceice__ocean__flux__exchange__mod.html#aee6869bc407ceb33d261653edd09ea11',1,'ice_ocean_flux_exchange_mod']]], + ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange-old_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange-old_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange-old_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange-old_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange.F90']]], + ['fname',['fname',['../namespaceice__model__mod.html#a4c4ab586477d470b99a4a9475810aee5',1,'ice_model_mod']]], + ['force_5fdate_5ffrom_5fnamelist',['force_date_from_namelist',['../namespacefull__coupler__mod.html#aa387f247b7f4014a0479a4c337f6b782',1,'full_coupler_mod']]], + ['fprec',['fprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a3f6cb46f2625a4b5f2c7fb9f94d62749',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['frac_5fprecip',['frac_precip',['../namespaceatm__land__ice__flux__exchange__mod.html#a1910f9c181f13ea0b3a92437a939452b',1,'atm_land_ice_flux_exchange_mod']]], + ['full_5fcoupler_5fmod',['full_coupler_mod',['../namespacefull__coupler__mod.html',1,'']]], + ['full_5fcoupler_5fmod_2ef90',['full_coupler_mod.F90',['../full__coupler__mod_8_f90.html',1,'']]] +]; diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html new file mode 100644 index 00000000..f75a754e --- /dev/null +++ b/docs/html/search/all_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js new file mode 100644 index 00000000..9017a323 --- /dev/null +++ b/docs/html/search/all_6.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['gas_5fexchange_5finit',['gas_exchange_init',['../namespaceflux__exchange__mod.html#a9d5d9cb2721d5b49e6dfbaefa89185f8',1,'flux_exchange_mod']]], + ['gas_5ffluxes_5finitialized',['gas_fluxes_initialized',['../namespaceflux__exchange__mod.html#a5f1a23e53559d3a711cb36e25fd4ace4',1,'flux_exchange_mod']]], + ['gcp',['gcp',['../namespacesurface__flux__mod.html#a5336c38c479c44a9705f79ef59fa2884',1,'surface_flux_mod']]], + ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../structfull__coupler__mod_1_1coupler__clock__type.html#a99db2947c8e7611cc79452797333d3e2',1,'full_coupler_mod::coupler_clock_type::generate_sfc_xgrid()'],['../namespaceatm__land__ice__flux__exchange__mod.html#af73f258e9e1810ec379ea84241a032f5',1,'atm_land_ice_flux_exchange_mod::generate_sfc_xgrid()']]], + ['get_5fatmos_5fice_5fland_5fchksums',['get_atmos_ice_land_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#acd9ec31136762085212e2184eb95a896',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums()'],['../namespacefull__coupler__mod.html#ac24e45f64a2c3bd2674b5b0436107eb6',1,'full_coupler_mod::get_atmos_ice_land_chksums()']]], + ['get_5fatmos_5fice_5fland_5focean_5fchksums',['get_atmos_ice_land_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#ae519e712159d78b971a59a5e4311f61e',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums()'],['../namespacefull__coupler__mod.html#a7e2a2f28f1037117dd2e1790d99b8616',1,'full_coupler_mod::get_atmos_ice_land_ocean_chksums()']]], + ['get_5fcell_5fcenter',['get_cell_center',['../namespaceice__model__mod.html#ab2e9be6fcef2df1c9886c80ad3f8e68c',1,'ice_model_mod']]], + ['get_5fcomponent',['get_component',['../structfull__coupler__mod_1_1coupler__components__type.html#a10162a8a029cc88b38ca87161d32666e',1,'full_coupler_mod::coupler_components_type::get_component()'],['../namespacefull__coupler__mod.html#aab400c752e6c3c24deccaaccb9e14824',1,'full_coupler_mod::get_component()']]], + ['get_5fcomponents_5fobj',['get_components_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a4b6a084b36f3620a3d318548051683da',1,'full_coupler_mod::coupler_chksum_type::get_components_obj()'],['../namespacefull__coupler__mod.html#a1783033373f9ce4428522ecf8faf57f1',1,'full_coupler_mod::get_components_obj()']]], + ['get_5fcoupler_5fchksums',['get_coupler_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a3459d6bcb71439fefb2101f9d61ae876',1,'full_coupler_mod::coupler_chksum_type::get_coupler_chksums()'],['../namespacefull__coupler__mod.html#a0f4c20f64b8c9bc86f87b65430177e0f',1,'full_coupler_mod::get_coupler_chksums()']]], + ['get_5focean_5fchksums',['get_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a8d6b7a5128df28f67f94fbf5c9c22b28',1,'full_coupler_mod::coupler_chksum_type::get_ocean_chksums()'],['../namespacefull__coupler__mod.html#a50e8820366ee023111794387c3b5e7f3',1,'full_coupler_mod::get_ocean_chksums()']]], + ['get_5fslow_5fice_5fchksums',['get_slow_ice_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a745b72ab4eb3866614d86950438241f4',1,'full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums()'],['../namespacefull__coupler__mod.html#a6a8725c4efea803a26f6295adf5aa37a',1,'full_coupler_mod::get_slow_ice_chksums()']]], + ['glat',['glat',['../structice__model__mod_1_1ice__data__type.html#ae4c9474f058a55f93e5b105f25d2528b',1,'ice_model_mod::ice_data_type']]], + ['glat_5fbnd',['glat_bnd',['../structice__model__mod_1_1ice__data__type.html#a8260e71b9be3596e7114eaf50230b702',1,'ice_model_mod::ice_data_type']]], + ['glon',['glon',['../structice__model__mod_1_1ice__data__type.html#ac8053e87a05b5f99e3d2cb143a2366eb',1,'ice_model_mod::ice_data_type']]], + ['glon_5fbnd',['glon_bnd',['../structice__model__mod_1_1ice__data__type.html#a58d7dbe251c07a3cedfce9a0c4226b34',1,'ice_model_mod::ice_data_type']]], + ['gmask',['gmask',['../structice__model__mod_1_1ice__data__type.html#a6e1e34811a821de51ac334b32c07b76f',1,'ice_model_mod::ice_data_type']]], + ['gust_5fconst',['gust_const',['../namespacesurface__flux__mod.html#a9853d355943632ed31de22c32d34a196',1,'surface_flux_mod']]], + ['gust_5fmin',['gust_min',['../namespacesurface__flux__mod.html#a8562814e75fa9527bb9b50ba7ace548b',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html new file mode 100644 index 00000000..88acd946 --- /dev/null +++ b/docs/html/search/all_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js new file mode 100644 index 00000000..0abb8861 --- /dev/null +++ b/docs/html/search/all_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['heat_5fcapacity_5focean',['heat_capacity_ocean',['../namespaceice__model__mod.html#a52aca51b46bce56cf693d9e3786a2d0b',1,'ice_model_mod']]], + ['hlars',['hlars',['../namespacesurface__flux__mod.html#a6322863889ffbe01bba7edbe650d6952',1,'surface_flux_mod']]], + ['hours',['hours',['../namespacefull__coupler__mod.html#a0ac62a1ec1db940ecdbe47abdbb3e708',1,'full_coupler_mod']]] +]; diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html new file mode 100644 index 00000000..b74d5fd8 --- /dev/null +++ b/docs/html/search/all_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js new file mode 100644 index 00000000..95149585 --- /dev/null +++ b/docs/html/search/all_8.js @@ -0,0 +1,130 @@ +var searchData= +[ + ['ice',['ice',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#ac1a8724b54f20f3bf0684dba8fadc5d4',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::ice()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a48075137a8491b3de7ac690b21573d3b',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a42c9994f342ece061d297854e712cf09',1,'full_coupler_mod::coupler_components_type::ice()']]], + ['ice_5fdata_5ftype',['ice_data_type',['../structice__model__mod_1_1ice__data__type.html',1,'ice_model_mod']]], + ['ice_5fmask',['ice_mask',['../structice__model__mod_1_1ice__data__type.html#abb15bfd3d7483a4c6b18708e38622a9a',1,'ice_model_mod::ice_data_type']]], + ['ice_5fmethod',['ice_method',['../namespaceice__model__mod.html#a5e327ded7973d12fca26ee88ce90237c',1,'ice_model_mod']]], + ['ice_5fmodel_2ef90',['ice_model.F90',['../ice__model_8_f90.html',1,'']]], + ['ice_5fmodel_5fend',['ice_model_end',['../namespaceice__model__mod.html#a64ce3059a7824d9f2efc7b9f6047adec',1,'ice_model_mod']]], + ['ice_5fmodel_5finit',['ice_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1e316b944a9ba93a642d980ab0961bc8',1,'full_coupler_mod::coupler_clock_type::ice_model_init()'],['../namespaceice__model__mod.html#aa334350190e4d103f2b7c9b5b860ce0b',1,'ice_model_mod::ice_model_init()']]], + ['ice_5fmodel_5fmod',['ice_model_mod',['../namespaceice__model__mod.html',1,'']]], + ['ice_5fnpes',['ice_npes',['../namespacefull__coupler__mod.html#ad05b147d644b53ac6be5c56a85e80105',1,'full_coupler_mod']]], + ['ice_5focean_5fboundary',['ice_ocean_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#afd3de655114a2a4bb651f450d985724a',1,'full_coupler_mod::coupler_components_type']]], + ['ice_5focean_5fflux_5fexchange_2ef90',['ice_ocean_flux_exchange.F90',['../ice__ocean__flux__exchange_8_f90.html',1,'']]], + ['ice_5focean_5fflux_5fexchange_5finit',['ice_ocean_flux_exchange_init',['../namespaceice__ocean__flux__exchange__mod.html#a63be7a22389a38bfd7f7e8aafc2f81d3',1,'ice_ocean_flux_exchange_mod']]], + ['ice_5focean_5fflux_5fexchange_5fmod',['ice_ocean_flux_exchange_mod',['../namespaceice__ocean__flux__exchange__mod.html',1,'']]], + ['ice_5fregister_5frestart',['ice_register_restart',['../namespaceice__model__mod.html#a1c9b13ea971d09e2047d6025b7f112c5',1,'ice_model_mod']]], + ['ico2',['ico2',['../namespaceatm__land__ice__flux__exchange__mod.html#aaa5b59437ded633e8126dce056668b39',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5falbedo',['id_albedo',['../namespaceflux__exchange__mod.html#a15ea2ee065543703a1cea729eaa31f03',1,'flux_exchange_mod']]], + ['id_5falbedo_5fnir_5fdif',['id_albedo_nir_dif',['../namespaceflux__exchange__mod.html#a75e5d42b6aebc4f7dca8f38e3043d371',1,'flux_exchange_mod']]], + ['id_5falbedo_5fnir_5fdir',['id_albedo_nir_dir',['../namespaceflux__exchange__mod.html#a8a49ff3c234a55d9ad1fe7ed39122c35',1,'flux_exchange_mod']]], + ['id_5falbedo_5fvis_5fdif',['id_albedo_vis_dif',['../namespaceflux__exchange__mod.html#ae528350ad734a91157e635d611cc54b7',1,'flux_exchange_mod']]], + ['id_5falbedo_5fvis_5fdir',['id_albedo_vis_dir',['../namespaceflux__exchange__mod.html#a41fa678e5738fb09ebf2bf3707ed8312',1,'flux_exchange_mod']]], + ['id_5fb_5fstar',['id_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#ad67fe3e50cce306c7e0f750cbeb4a8b8',1,'atm_land_ice_flux_exchange_mod::id_b_star()'],['../namespaceflux__exchange__mod.html#a71e9c56b65499310582161139e863074',1,'flux_exchange_mod::id_b_star()']]], + ['id_5fco2_5fatm_5fdvmr',['id_co2_atm_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f117a52b85447649ab2611b915a406a',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fco2_5fbot',['id_co2_bot',['../namespaceatm__land__ice__flux__exchange__mod.html#abe4744b6ee8cc8e236be33b11254b857',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fco2_5fflux_5fpcair_5fatm',['id_co2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a24abe80c13032b56cb0127ef9fdbf801',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fco2_5fsurf_5fdvmr',['id_co2_surf_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a35ba5f517eb5645e5b4cf86d4ba72017',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fdel_5fh',['id_del_h',['../namespaceatm__land__ice__flux__exchange__mod.html#ad10f7e71514a2a732c1caff77cb96223',1,'atm_land_ice_flux_exchange_mod::id_del_h()'],['../namespaceflux__exchange__mod.html#ac70233f1c81d8583a6568077f91ccd52',1,'flux_exchange_mod::id_del_h()']]], + ['id_5fdel_5fm',['id_del_m',['../namespaceatm__land__ice__flux__exchange__mod.html#ade5a7d5ba4a4438a11355b302deff6d7',1,'atm_land_ice_flux_exchange_mod::id_del_m()'],['../namespaceflux__exchange__mod.html#a6901c7cd4e2848395f509a6abb46556a',1,'flux_exchange_mod::id_del_m()']]], + ['id_5fdel_5fq',['id_del_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a1308cfc339de1da97984284e9f9b24d8',1,'atm_land_ice_flux_exchange_mod::id_del_q()'],['../namespaceflux__exchange__mod.html#a8c9ce600b074f59620a578bc5d52c0c0',1,'flux_exchange_mod::id_del_q()']]], + ['id_5fdrag_5fheat',['id_drag_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a31719c7fb16b0dfb1c4d55b3efc31dea',1,'atm_land_ice_flux_exchange_mod::id_drag_heat()'],['../namespaceflux__exchange__mod.html#af5fd6664ced6089e4233d6e06d3e8aef',1,'flux_exchange_mod::id_drag_heat()']]], + ['id_5fdrag_5fmoist',['id_drag_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4c50286c97c254d06a959ba05f8dc54d',1,'atm_land_ice_flux_exchange_mod::id_drag_moist()'],['../namespaceflux__exchange__mod.html#ad6e99e3056f002fd30f99aa6192ebfd9',1,'flux_exchange_mod::id_drag_moist()']]], + ['id_5fdrag_5fmom',['id_drag_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#aecaecec0461747750aa7266f0f696f5d',1,'atm_land_ice_flux_exchange_mod::id_drag_mom()'],['../namespaceflux__exchange__mod.html#a920c704083ca9a0ae4df3f9470f75187',1,'flux_exchange_mod::id_drag_mom()']]], + ['id_5fevspsbl',['id_evspsbl',['../namespaceatm__land__ice__flux__exchange__mod.html#acd81f5188978df7ca167f58a63ce3b82',1,'atm_land_ice_flux_exchange_mod::id_evspsbl()'],['../namespaceflux__exchange__mod.html#aaacf35d1333efd04067972a8e15c5650',1,'flux_exchange_mod::id_evspsbl()']]], + ['id_5fevspsbl_5fg',['id_evspsbl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a315d7887dcb60530fec5af2fd6c232',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fgust',['id_gust',['../namespaceatm__land__ice__flux__exchange__mod.html#acea0f8f56aca9a40ee3d49f0ec71484f',1,'atm_land_ice_flux_exchange_mod::id_gust()'],['../namespaceflux__exchange__mod.html#ab351f867a6e2d370bce6b3a3a83d1e29',1,'flux_exchange_mod::id_gust()']]], + ['id_5fheight10m',['id_height10m',['../namespaceatm__land__ice__flux__exchange__mod.html#a94f9ecdff8925fd4a8d81902274c25f6',1,'atm_land_ice_flux_exchange_mod::id_height10m()'],['../namespaceflux__exchange__mod.html#ac769000a131617036cc85dd9eb61f431',1,'flux_exchange_mod::id_height10m()']]], + ['id_5fheight2m',['id_height2m',['../namespaceatm__land__ice__flux__exchange__mod.html#a725269d3ce9993c47458553c93c87fc8',1,'atm_land_ice_flux_exchange_mod::id_height2m()'],['../namespaceflux__exchange__mod.html#a4ec0c8f5928f2b7d672d8c2b3bad1aeb',1,'flux_exchange_mod::id_height2m()']]], + ['id_5fhfls',['id_hfls',['../namespaceatm__land__ice__flux__exchange__mod.html#a21634392fb749504bb491b63cb709a1b',1,'atm_land_ice_flux_exchange_mod::id_hfls()'],['../namespaceflux__exchange__mod.html#a110df167d79e3e96ebe3e0d5713bed32',1,'flux_exchange_mod::id_hfls()']]], + ['id_5fhfls_5fg',['id_hfls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#aa678b45e9a43a0fd9d834746c792c516',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fhfss',['id_hfss',['../namespaceatm__land__ice__flux__exchange__mod.html#ad953111f0333dad0442a995705b8c46a',1,'atm_land_ice_flux_exchange_mod::id_hfss()'],['../namespaceflux__exchange__mod.html#a600231bdd606fbfa02d1760b981942f1',1,'flux_exchange_mod::id_hfss()']]], + ['id_5fhfss_5fg',['id_hfss_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a27ced23c0e50767b78061d0b148c9138',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fhurs',['id_hurs',['../namespaceatm__land__ice__flux__exchange__mod.html#a68bfd465d951a65d6141047172a92488',1,'atm_land_ice_flux_exchange_mod::id_hurs()'],['../namespaceflux__exchange__mod.html#a7a4ad8765b8c543e740377def47bb6e6',1,'flux_exchange_mod::id_hurs()']]], + ['id_5fhuss',['id_huss',['../namespaceatm__land__ice__flux__exchange__mod.html#a5944abb0dd9dce2ae32c66c1bcd59bff',1,'atm_land_ice_flux_exchange_mod::id_huss()'],['../namespaceflux__exchange__mod.html#ae187f4114a25b952f1430db74c700b2c',1,'flux_exchange_mod::id_huss()']]], + ['id_5fhusslut_5fland',['id_husslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5a13546bf48109d63d08ca6e81a8298',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fice_5fmask',['id_ice_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#a08c7a67df8fbfdeb95f0b6de7da4b7a2',1,'atm_land_ice_flux_exchange_mod::id_ice_mask()'],['../namespaceflux__exchange__mod.html#a7491683ec01c03efff8da897b1a15cbb',1,'flux_exchange_mod::id_ice_mask()']]], + ['id_5fland_5fmask',['id_land_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#aa1777ab543636038ecaefc4656cdc91b',1,'atm_land_ice_flux_exchange_mod::id_land_mask()'],['../namespaceflux__exchange__mod.html#af93947881e267229684f12281ce0b700',1,'flux_exchange_mod::id_land_mask()']]], + ['id_5fo2_5fflux_5fpcair_5fatm',['id_o2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adeb499100d57339308ae4b676aeeaa93',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fp_5fatm',['id_p_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#af8a1447d56d28335055d81152496f7e8',1,'atm_land_ice_flux_exchange_mod::id_p_atm()'],['../namespaceflux__exchange__mod.html#a3c25e7f8bd1fa9d3b650e20671f1eb78',1,'flux_exchange_mod::id_p_atm()']]], + ['id_5fpsl',['id_psl',['../namespaceatm__land__ice__flux__exchange__mod.html#ab940b2bc9ff8b4339233507550d4a856',1,'atm_land_ice_flux_exchange_mod::id_psl()'],['../namespaceflux__exchange__mod.html#afb4061b5677fe090528f0a991abade69',1,'flux_exchange_mod::id_psl()']]], + ['id_5fq_5fatm',['id_q_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aae4693134893e6c8ddb01b0d566d3856',1,'atm_land_ice_flux_exchange_mod::id_q_atm()'],['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod::id_q_atm()']]], + ['id_5fq_5fflux',['id_q_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a1ed968c0f36351d58e7a035b37d01492',1,'atm_land_ice_flux_exchange_mod::id_q_flux()'],['../namespaceflux__exchange__mod.html#a8d635e999ae24402dd99af0657d706f9',1,'flux_exchange_mod::id_q_flux()']]], + ['id_5fq_5fflux_5fland',['id_q_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ab7c212b94ae379003d7dfed66892d059',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fq_5fref',['id_q_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a035a0187d04ed47f6b373ba207be09c9',1,'atm_land_ice_flux_exchange_mod::id_q_ref()'],['../namespaceflux__exchange__mod.html#a9b49a9b72bfb917602bf46899bbe3524',1,'flux_exchange_mod::id_q_ref()']]], + ['id_5fq_5fref_5fland',['id_q_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#af43c49c9a0d6969182207632bfc8e3bc',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fq_5fstar',['id_q_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a2b4c714ab247af5b460ed9255669c018',1,'atm_land_ice_flux_exchange_mod::id_q_star()'],['../namespaceflux__exchange__mod.html#ae58f4cc598d0dfc185b8dd9717ee5a2b',1,'flux_exchange_mod::id_q_star()']]], + ['id_5fq_5fsurf',['id_q_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a67d3af4db9c9b63bfef3c21ea17a7d9b',1,'atm_land_ice_flux_exchange_mod::id_q_surf()'],['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod::id_q_surf()']]], + ['id_5fr_5fflux',['id_r_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a082d4699eda42a0277b53b8d3b40b6',1,'atm_land_ice_flux_exchange_mod::id_r_flux()'],['../namespaceflux__exchange__mod.html#ab6d4c349f5231beb4e2f116f2f7a844d',1,'flux_exchange_mod::id_r_flux()']]], + ['id_5frh_5fref',['id_rh_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aa78a8745d3bd1c15c23ea56368a94f2f',1,'atm_land_ice_flux_exchange_mod::id_rh_ref()'],['../namespaceflux__exchange__mod.html#af2b89e05edbf76edca8d8b7056269ef8',1,'flux_exchange_mod::id_rh_ref()']]], + ['id_5frh_5fref_5fcmip',['id_rh_ref_cmip',['../namespaceatm__land__ice__flux__exchange__mod.html#ab3af14f2a483c630a814faa30860c2ea',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frh_5fref_5fland',['id_rh_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a00cbf5e8a16515a56470086456d55c2e',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frhs',['id_rhs',['../namespaceatm__land__ice__flux__exchange__mod.html#a27936d339a3e415b216d6035661892a1',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frls_5fg',['id_rls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#abb05e6ae4581739009fb99a559547aa4',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frough_5fheat',['id_rough_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a53351de906d9937f58c947f0cefbe386',1,'atm_land_ice_flux_exchange_mod::id_rough_heat()'],['../namespaceflux__exchange__mod.html#a55b1524c31defe007752c0f6fdf7e8c7',1,'flux_exchange_mod::id_rough_heat()']]], + ['id_5frough_5fmoist',['id_rough_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4e8b49a2e77ff64c80bb3fad86a01a2d',1,'atm_land_ice_flux_exchange_mod::id_rough_moist()'],['../namespaceflux__exchange__mod.html#a2195dd29178389a35f5c6480e86c2284',1,'flux_exchange_mod::id_rough_moist()']]], + ['id_5frough_5fmom',['id_rough_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a72cf1a3badd620dbad6d518c0557288b',1,'atm_land_ice_flux_exchange_mod::id_rough_mom()'],['../namespaceflux__exchange__mod.html#a7993f2a7fa1177c8fa368a2ef3fb4202',1,'flux_exchange_mod::id_rough_mom()']]], + ['id_5frough_5fscale',['id_rough_scale',['../namespaceatm__land__ice__flux__exchange__mod.html#a574ec1820b8fa73246b4d22a8d8463e8',1,'atm_land_ice_flux_exchange_mod::id_rough_scale()'],['../namespaceflux__exchange__mod.html#a5b6579ddcab9c2d5a2d91f77044d7993',1,'flux_exchange_mod::id_rough_scale()']]], + ['id_5fsfcwind',['id_sfcwind',['../namespaceatm__land__ice__flux__exchange__mod.html#abd9c7a5f313f40f3081861bfaf73920a',1,'atm_land_ice_flux_exchange_mod::id_sfcwind()'],['../namespaceflux__exchange__mod.html#a62351e257923487b8b0b50965bd7bfff',1,'flux_exchange_mod::id_sfcwind()']]], + ['id_5fsftlf',['id_sftlf',['../namespaceatm__land__ice__flux__exchange__mod.html#a18eb844975de5e7b17c3567a618c4bdd',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fsic',['id_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#a5bdaa4cffa5cf0b9610310f2cf5e24c2',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fslp',['id_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#a886c3aaadd68115ac00fbbca174a0330',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5fatm',['id_t_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adf91d25ca4f1262291c52a6952587518',1,'atm_land_ice_flux_exchange_mod::id_t_atm()'],['../namespaceflux__exchange__mod.html#a7114bbe87d459e9b24ce483beae56faa',1,'flux_exchange_mod::id_t_atm()']]], + ['id_5ft_5fca',['id_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a188de7203c962fd3586ef6bd72cec660',1,'atm_land_ice_flux_exchange_mod::id_t_ca()'],['../namespaceflux__exchange__mod.html#a8a6c5aa71e364d4c9c5979431c6378d6',1,'flux_exchange_mod::id_t_ca()']]], + ['id_5ft_5fflux',['id_t_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad3158d6930465374ebb5efc909ed71ae',1,'atm_land_ice_flux_exchange_mod::id_t_flux()'],['../namespaceflux__exchange__mod.html#ae8045e9b24c1c27a4b7db7664ef3fab8',1,'flux_exchange_mod::id_t_flux()']]], + ['id_5ft_5fflux_5fland',['id_t_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a976b7c76bb82de73c7395b577352d658',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5focean',['id_t_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#ae2d24744019fc0a2a62bf54c7bd7eb65',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5fref',['id_t_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aca247d952550b7e796118645c0b33c47',1,'atm_land_ice_flux_exchange_mod::id_t_ref()'],['../namespaceflux__exchange__mod.html#a373b24bf412bc3c5d9a8cd4b6612fc10',1,'flux_exchange_mod::id_t_ref()']]], + ['id_5ft_5fref_5fland',['id_t_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d4c4bebe361cdb91ecea469fe537709',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5fsurf',['id_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1581ecfbe3e1d1c5db56f7d76c3a333c',1,'atm_land_ice_flux_exchange_mod::id_t_surf()'],['../namespaceflux__exchange__mod.html#a534a80a92ec907c62067588d8092673c',1,'flux_exchange_mod::id_t_surf()']]], + ['id_5ftas',['id_tas',['../namespaceatm__land__ice__flux__exchange__mod.html#a1cf5d543f00afb609610ced045795cad',1,'atm_land_ice_flux_exchange_mod::id_tas()'],['../namespaceflux__exchange__mod.html#aff3b37b816a504ea71154f7aba0c815c',1,'flux_exchange_mod::id_tas()']]], + ['id_5ftas_5fg',['id_tas_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ae8beb56ee8877254cc9e82da3afe3e61',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftasl_5fg',['id_tasl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a5034052a9896f89edd3cace96fb1867b',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftaslut_5fland',['id_taslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aa6c2e87381d5a69838a6dc8a5289050e',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftauu',['id_tauu',['../namespaceatm__land__ice__flux__exchange__mod.html#a6fd3108da364faf6334b326a55a58a66',1,'atm_land_ice_flux_exchange_mod::id_tauu()'],['../namespaceflux__exchange__mod.html#a7414d25c7b0fd48301902707a9345394',1,'flux_exchange_mod::id_tauu()']]], + ['id_5ftauv',['id_tauv',['../namespaceatm__land__ice__flux__exchange__mod.html#a07d14896bb047c09cda836282fae11d7',1,'atm_land_ice_flux_exchange_mod::id_tauv()'],['../namespaceflux__exchange__mod.html#ae0c72caf4b2a0d276d0a989c694cb49c',1,'flux_exchange_mod::id_tauv()']]], + ['id_5fthv_5fatm',['id_thv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a9253b6caaa179be8ffdb91d1ba5b47',1,'atm_land_ice_flux_exchange_mod::id_thv_atm()'],['../namespaceflux__exchange__mod.html#a8bea74f845722bd6e52014a3f4e643fd',1,'flux_exchange_mod::id_thv_atm()']]], + ['id_5fthv_5fsurf',['id_thv_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#ad2e7d89158887b68df2311f4b5b130d3',1,'atm_land_ice_flux_exchange_mod::id_thv_surf()'],['../namespaceflux__exchange__mod.html#aa11efd287049dbe74600ca2d2295f2b2',1,'flux_exchange_mod::id_thv_surf()']]], + ['id_5ftos',['id_tos',['../namespaceatm__land__ice__flux__exchange__mod.html#ac86517a5ddecd4e180464b6cb80f3c99',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fatm',['id_tr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a82f48a9a822083769bcd48b427c7a749',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fatm',['id_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3700e57c52d7ba6ff7ce17de7a52f885',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fatm_5fland',['id_tr_con_atm_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aaf13f42049e3c17ce32b99e263ed19ca',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fref',['id_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#ab67aebeab080001bcc0b7df4ba4ce31d',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fref_5fland',['id_tr_con_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b0582183221d7ffb1ba6e814cdd2bd5',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fflux',['id_tr_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ae4d870d3c8b829dfedf2d721c2ee86a9',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fflux_5fland',['id_tr_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a92413e2be778482c1557dc71b7dd6961',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fmol_5fflux',['id_tr_mol_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a66181f27aac0ec30c16ee64425623b57',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fmol_5fflux0',['id_tr_mol_flux0',['../namespaceatm__land__ice__flux__exchange__mod.html#af4c241a58e2d051452ea6ac2165b605c',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fmol_5fflux_5fland',['id_tr_mol_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a75dad27ee32489cb9f2d4075a92dfffd',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fref',['id_tr_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a70c3cec5c1122ca0574f74046683b098',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fref_5fland',['id_tr_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f83a35c04b7da9207d1495bd7146f06',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fsurf',['id_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a46e4ae0a6178db2e207ffcf331988480',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fts',['id_ts',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5e1ae03f135daaf040afa91f98e1e5e',1,'atm_land_ice_flux_exchange_mod::id_ts()'],['../namespaceflux__exchange__mod.html#a134d68c4787236f032c48a961d09092a',1,'flux_exchange_mod::id_ts()']]], + ['id_5fts_5fg',['id_ts_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ac65d88399ec0dfe03b94a8b9a7b86704',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftslsi',['id_tslsi',['../namespaceatm__land__ice__flux__exchange__mod.html#a6443ee7227f5bf53c818286e461ac2a9',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fu_5fatm',['id_u_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aeea07bd389a5d7d5d25b2ddd168470ca',1,'atm_land_ice_flux_exchange_mod::id_u_atm()'],['../namespaceflux__exchange__mod.html#abf03300672880ddaad472eea1faeb236',1,'flux_exchange_mod::id_u_atm()']]], + ['id_5fu_5fflux',['id_u_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a84f055774ddca433d9b90a59f20a50ef',1,'atm_land_ice_flux_exchange_mod::id_u_flux()'],['../namespaceflux__exchange__mod.html#af269baa55b882745d2f984d0f085beb9',1,'flux_exchange_mod::id_u_flux()']]], + ['id_5fu_5fref',['id_u_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a5aa53adef651f4cf2963f55ff5d8d87c',1,'atm_land_ice_flux_exchange_mod::id_u_ref()'],['../namespaceflux__exchange__mod.html#ad12cdd143dace24e7af1c884a46a3bfa',1,'flux_exchange_mod::id_u_ref()']]], + ['id_5fu_5fref_5fland',['id_u_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a68be019ceec5fef03392e9294bd375d7',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fu_5fstar',['id_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a04cb44e014dd62c2986151f5548f7db6',1,'atm_land_ice_flux_exchange_mod::id_u_star()'],['../namespaceflux__exchange__mod.html#adb2fb9af13a61e053c74c52351a0ba02',1,'flux_exchange_mod::id_u_star()']]], + ['id_5fuas',['id_uas',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a0903b6c77849c636e5bcb7a48cc7d8',1,'atm_land_ice_flux_exchange_mod::id_uas()'],['../namespaceflux__exchange__mod.html#a477616cc55f4ee5f3760c10888f3d374',1,'flux_exchange_mod::id_uas()']]], + ['id_5fv_5fatm',['id_v_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aef1643e965ae2f81eadd680b0d5f4131',1,'atm_land_ice_flux_exchange_mod::id_v_atm()'],['../namespaceflux__exchange__mod.html#a68a451013bb15a69769140c127a4f1ff',1,'flux_exchange_mod::id_v_atm()']]], + ['id_5fv_5fflux',['id_v_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9bcab79adb87b32242c758f4151912',1,'atm_land_ice_flux_exchange_mod::id_v_flux()'],['../namespaceflux__exchange__mod.html#a4be95982d13072bb6152ca72009d1acf',1,'flux_exchange_mod::id_v_flux()']]], + ['id_5fv_5fref',['id_v_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a18b22238a6a481b7b2a007db5effdeca',1,'atm_land_ice_flux_exchange_mod::id_v_ref()'],['../namespaceflux__exchange__mod.html#a923c6fcbe668932a0d13b41bf9341b4c',1,'flux_exchange_mod::id_v_ref()']]], + ['id_5fv_5fref_5fland',['id_v_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a457592f5e27b40421f6b8a6106b79a20',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fvas',['id_vas',['../namespaceatm__land__ice__flux__exchange__mod.html#a541cf261997ecd29d2ad0c634fbcb498',1,'atm_land_ice_flux_exchange_mod::id_vas()'],['../namespaceflux__exchange__mod.html#ae0b2e834866fd77ba28b5234cf3bc36d',1,'flux_exchange_mod::id_vas()']]], + ['id_5fwind',['id_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#a043764d83e681c67454ab8f073d5d6c1',1,'atm_land_ice_flux_exchange_mod::id_wind()'],['../namespaceflux__exchange__mod.html#ac6e943ac77ba00189aa554241e759ecc',1,'flux_exchange_mod::id_wind()']]], + ['id_5fwind_5fref',['id_wind_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a8e9f9f5b4c50074a1f6d5d6a31f32193',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fz_5fatm',['id_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aca2058bf928915842f05333644374d7c',1,'atm_land_ice_flux_exchange_mod::id_z_atm()'],['../namespaceflux__exchange__mod.html#abbf375285c9f5e2d5db969ca1fffd9df',1,'flux_exchange_mod::id_z_atm()']]], + ['ie',['ie',['../namespaceflux__exchange__mod.html#ad916086216cea5dd86d0a768e91277e5',1,'flux_exchange_mod::ie()'],['../namespaceice__model__mod.html#a52955f6a81d812155d158a6758b6b2cc',1,'ice_model_mod::ie()']]], + ['inh3',['inh3',['../namespaceatm__land__ice__flux__exchange__mod.html#a4fbbecb55a808875facb743fe7fc9c62',1,'atm_land_ice_flux_exchange_mod']]], + ['initialization',['initialization',['../structfull__coupler__mod_1_1coupler__clock__type.html#a887711f282582220de642e6197afe7d9',1,'full_coupler_mod::coupler_clock_type']]], + ['initialize_5fcoupler_5fchksum_5fobj',['initialize_coupler_chksum_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a789a89bb1c9ed2eabfe7fe263f8b3807',1,'full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj()'],['../namespacefull__coupler__mod.html#a39c2e7bc7b1b6ca828ccd22f231789d9',1,'full_coupler_mod::initialize_coupler_chksum_obj()']]], + ['initialize_5fcoupler_5fcomponents_5fobj',['initialize_coupler_components_obj',['../structfull__coupler__mod_1_1coupler__components__type.html#a7f4e7c72a18c47e395fa3b27b1b11d5a',1,'full_coupler_mod::coupler_components_type::initialize_coupler_components_obj()'],['../namespacefull__coupler__mod.html#a2e71183922fd4c76a5234823f44b1056',1,'full_coupler_mod::initialize_coupler_components_obj()']]], + ['intermediate_5frestart',['intermediate_restart',['../structfull__coupler__mod_1_1coupler__clock__type.html#a69ddb73e9b3290abafbbe86953aba052',1,'full_coupler_mod::coupler_clock_type']]], + ['interp_5fmethod',['interp_method',['../namespaceice__model__mod.html#ab4315c6a6b5b71f50aa993e9dc7fbf1a',1,'ice_model_mod']]], + ['is',['is',['../namespaceflux__exchange__mod.html#a5428375ca50056a30e12ee7dbc0c7dc2',1,'flux_exchange_mod::is()'],['../namespaceice__model__mod.html#a6844bbf75e350f32240178937b96d01a',1,'ice_model_mod::is()']]], + ['is_5flatlon',['is_latlon',['../namespaceice__model__mod.html#a00d134e60955bd3f498d98fa0d2a5941',1,'ice_model_mod']]], + ['isphum',['isphum',['../namespaceatm__land__ice__flux__exchange__mod.html#adfc9bfe512cf81e9cd3e334274123a53',1,'atm_land_ice_flux_exchange_mod::isphum()'],['../namespaceflux__exchange__mod.html#ae978fc7982a42ad1418142e430e2ce77',1,'flux_exchange_mod::isphum()']]], + ['iter_5fmonin_5fobukhov_5focean',['iter_monin_obukhov_ocean',['../namespacesurface__flux__mod.html#ae6fbd060ae720e05102effeb8b044d30',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html new file mode 100644 index 00000000..95e88dd2 --- /dev/null +++ b/docs/html/search/all_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js new file mode 100644 index 00000000..debe5ef6 --- /dev/null +++ b/docs/html/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['je',['je',['../namespaceflux__exchange__mod.html#ae3abc6014e04e4b7f5ab30116aa7ae49',1,'flux_exchange_mod::je()'],['../namespaceice__model__mod.html#a98cf069c605d7abc02cbcb9db7260e4d',1,'ice_model_mod::je()']]], + ['js',['js',['../namespaceflux__exchange__mod.html#a257678c48a666cc865cd3afe1d7629d6',1,'flux_exchange_mod::js()'],['../namespaceice__model__mod.html#abff82cb395c9a49b31e9de0bdb7e9c7c',1,'ice_model_mod::js()']]] +]; diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html new file mode 100644 index 00000000..3148a8e5 --- /dev/null +++ b/docs/html/search/all_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js new file mode 100644 index 00000000..f0469842 --- /dev/null +++ b/docs/html/search/all_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kappa',['kappa',['../namespacesurface__flux__mod.html#a4d5ccaf8614f916474bf664f17c9f4c8',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html new file mode 100644 index 00000000..f2a3c8d0 --- /dev/null +++ b/docs/html/search/all_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js new file mode 100644 index 00000000..fa0478aa --- /dev/null +++ b/docs/html/search/all_b.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['land',['land',['../structfull__coupler__mod_1_1coupler__components__type.html#ae4f68fd9975159d0ae93abf919a3d5b5',1,'full_coupler_mod::coupler_components_type']]], + ['land_5fice_5fatmos_5fboundary',['land_ice_atmos_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aca4da881da2617567eda2a8b23ebbada',1,'full_coupler_mod::coupler_components_type']]], + ['land_5fice_5fboundary',['land_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#a53a7034349f0b6b3c1f358be2eb1601d',1,'full_coupler_mod::coupler_components_type']]], + ['land_5fice_5fflux_5fexchange_2ef90',['land_ice_flux_exchange.F90',['../land__ice__flux__exchange_8_f90.html',1,'']]], + ['land_5fice_5fflux_5fexchange_5finit',['land_ice_flux_exchange_init',['../namespaceland__ice__flux__exchange__mod.html#a0a8f20fe83d26714842110feea23aea6',1,'land_ice_flux_exchange_mod']]], + ['land_5fice_5fflux_5fexchange_5fmod',['land_ice_flux_exchange_mod',['../namespaceland__ice__flux__exchange__mod.html',1,'']]], + ['land_5fmodel_5finit',['land_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#ace4fb2da56ef545733a9bfb933290a40',1,'full_coupler_mod::coupler_clock_type']]], + ['land_5fnpes',['land_npes',['../namespacefull__coupler__mod.html#a113f970d00f5a7c71b1398aa9fe4757c',1,'full_coupler_mod']]], + ['lat',['lat',['../structice__model__mod_1_1ice__data__type.html#a9cf4e9c9c1e486a5a799ee5cb1c48d43',1,'ice_model_mod::ice_data_type']]], + ['lat_5fbnd',['lat_bnd',['../structice__model__mod_1_1ice__data__type.html#a36c7325aeae1c7d0004fbc72964d2171',1,'ice_model_mod::ice_data_type']]], + ['latent',['latent',['../namespaceice__model__mod.html#a4a4c3667067f2919a730828c40ad68ea',1,'ice_model_mod']]], + ['latlon2xyz',['latlon2xyz',['../namespaceice__model__mod.html#ad9523243488d1422d212abc12a8c85b8',1,'ice_model_mod']]], + ['lnd',['lnd',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a904628deb2e0ba89bd85850cd843ab79',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a038bbdf0783f9e36ecf0a54c41bf3868',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd()']]], + ['lon',['lon',['../structice__model__mod_1_1ice__data__type.html#a3bdfb5cb70bc4018cfac10de236d3024',1,'ice_model_mod::ice_data_type']]], + ['lon_5fbnd',['lon_bnd',['../structice__model__mod_1_1ice__data__type.html#a0af0e531e34ee53f3a3d9eb8725d6a59',1,'ice_model_mod::ice_data_type']]], + ['lprec',['lprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6c8eb5d3a6acfaa10fd8b5a6d3b6add2',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['lw_5fflux',['lw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6560d3ff7f3d6ace395dab365adcd691',1,'ice_model_mod::atmos_ice_boundary_type']]] +]; diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html new file mode 100644 index 00000000..63768107 --- /dev/null +++ b/docs/html/search/all_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js new file mode 100644 index 00000000..5faf5ecc --- /dev/null +++ b/docs/html/search/all_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['main',['main',['../structfull__coupler__mod_1_1coupler__clock__type.html#a394cd0ee0859684c4a23203039bcda0a',1,'full_coupler_mod::coupler_clock_type']]], + ['mask',['mask',['../structice__model__mod_1_1ice__data__type.html#ad4f7ac297bdae085c0454e08a09af5ea',1,'ice_model_mod::ice_data_type']]], + ['minutes',['minutes',['../namespacefull__coupler__mod.html#a9f5af682aa5da4ec7f798e696047b78b',1,'full_coupler_mod']]], + ['mixed_5flayer',['mixed_layer',['../namespaceice__model__mod.html#abc77bb043b104aeb0309a787d24219a0',1,'ice_model_mod']]], + ['mixed_5flayer_5focean',['mixed_layer_ocean',['../namespaceice__model__mod.html#adcb40b7a9c1a8531077d0f779e7ffebb',1,'ice_model_mod']]], + ['mod_5fname',['mod_name',['../namespaceatm__land__ice__flux__exchange__mod.html#a64ca82dba9df2806db81c86c57bd273d',1,'atm_land_ice_flux_exchange_mod::mod_name()'],['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a797fc4e4d632cba73982897b8b70563b',1,'atmos_ocean_dep_fluxes_calc_mod::mod_name()'],['../namespaceatmos__ocean__fluxes__calc__mod.html#ac9291db41140417d091d7d400d3764eb',1,'atmos_ocean_fluxes_calc_mod::mod_name()'],['../namespacefull__coupler__mod.html#acacf7a2f63b622973d2ea9911ec5b85c',1,'full_coupler_mod::mod_name()'],['../namespaceflux__exchange__mod.html#a303984a1be495e4592969bb87dc8bc64',1,'flux_exchange_mod::mod_name()']]], + ['module_5fis_5finitialized',['module_is_initialized',['../namespacesurface__flux__mod.html#a1c299d53b30a808f13cf0b0c5532041e',1,'surface_flux_mod::module_is_initialized()'],['../namespaceice__model__mod.html#aa482dd87dc4c239130f7b8f8f4e2aafd',1,'ice_model_mod::module_is_initialized()']]], + ['months',['months',['../namespacefull__coupler__mod.html#a37bda909017d0e8fc2b680c83e8b73df',1,'full_coupler_mod']]], + ['my_5fnblocks',['my_nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a22bfbb18d1071d20503054e5a56628c6',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html new file mode 100644 index 00000000..cc52c79f --- /dev/null +++ b/docs/html/search/all_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js new file mode 100644 index 00000000..089c200b --- /dev/null +++ b/docs/html/search/all_d.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['n_5fair',['n_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#acaeb4ccb8ce4e4fa5c470157420075de',1,'atmos_ocean_fluxes_calc_mod']]], + ['n_5fatm_5ftr',['n_atm_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#abe8dd7812b9263217a2cd03e3f6e5986',1,'atm_land_ice_flux_exchange_mod::n_atm_tr()'],['../namespaceflux__exchange__mod.html#afaa78870fb65620312ae0d411f17be2f',1,'flux_exchange_mod::n_atm_tr()']]], + ['n_5fatm_5ftr_5ftot',['n_atm_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#a5af2113231a04ffd8e8378903ad15d64',1,'atm_land_ice_flux_exchange_mod::n_atm_tr_tot()'],['../namespaceflux__exchange__mod.html#a5117150ab7aea4fe891cf9320710bab3',1,'flux_exchange_mod::n_atm_tr_tot()']]], + ['n_5fexch_5ftr',['n_exch_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#ae09127cdff74b500a41ad951257752d4',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5fgex_5fatm2lnd',['n_gex_atm2lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a07eee36a20b3ce665902d55c9ee42b6e',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5fgex_5flnd2atm',['n_gex_lnd2atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a9c8f2e09598dbd8d3180f4b13d05f4fc',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5flnd_5ftr',['n_lnd_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#acbcc6065e05775564c83054c42332e84',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5flnd_5ftr_5ftot',['n_lnd_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#aaefc6b7257ff1938f8fa671e0361579b',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5fxgrid_5frunoff',['n_xgrid_runoff',['../namespaceland__ice__flux__exchange__mod.html#a3faf3bf1354b5359565b04fd6e15812c',1,'land_ice_flux_exchange_mod']]], + ['n_5fxgrid_5fsfc',['n_xgrid_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec976f33bcf263db8ec930400f1b5ba6',1,'atm_land_ice_flux_exchange_mod']]], + ['nblocks',['nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b94aaeafe989d18f0e844a6a58018c7',1,'atm_land_ice_flux_exchange_mod::nblocks()'],['../namespaceflux__exchange__mod.html#a130755a7de1ad93566db2496df4f09a8',1,'flux_exchange_mod::nblocks()']]], + ['ncar_5focean_5fflux',['ncar_ocean_flux',['../namespacesurface__flux__mod.html#aa5809456b7f52a5f0a3cbbfee216d049',1,'surface_flux_mod']]], + ['ncar_5focean_5fflux_5fmultilevel',['ncar_ocean_flux_multilevel',['../namespacesurface__flux__mod.html#a7a001b64a7af7de49f02b3386b29207e',1,'surface_flux_mod']]], + ['ncar_5focean_5fflux_5forig',['ncar_ocean_flux_orig',['../namespacesurface__flux__mod.html#ab3f2c5dea16751feec4012925d936b42',1,'surface_flux_mod']]], + ['ncar_5focean_5ffluxes',['ncar_ocean_fluxes',['../namespacesurface__flux__mod.html#a4e53abf6229db4a6b3025f5333fe764d',1,'surface_flux_mod']]], + ['ncar_5focean_5ffluxes_5fmultilevel',['ncar_ocean_fluxes_multilevel',['../namespacesurface__flux__mod.html#a43e1175ff9bf4096208baf7053b2669c',1,'surface_flux_mod']]], + ['ni_5fatm',['ni_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3eca478a281245b2a1217b66917936b0',1,'atm_land_ice_flux_exchange_mod::ni_atm()'],['../namespaceflux__exchange__mod.html#a19ced8a2d78de1df319982dc8c9b2236',1,'flux_exchange_mod::ni_atm()']]], + ['niter_5fmonin_5fobukhov',['niter_monin_obukhov',['../namespacesurface__flux__mod.html#aedbfeff1dd91e58e9795a6c9d16d936a',1,'surface_flux_mod']]], + ['nj_5fatm',['nj_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f93e3452d718c2449d09cfee5174987',1,'atm_land_ice_flux_exchange_mod::nj_atm()'],['../namespaceflux__exchange__mod.html#af0530282de56c7247536aa084919fecc',1,'flux_exchange_mod::nj_atm()']]], + ['nk_5fice',['nk_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a4382a4653bce90fa50988dbf415ba7d9',1,'atm_land_ice_flux_exchange_mod']]], + ['no_5fneg_5fq',['no_neg_q',['../namespacesurface__flux__mod.html#a20a47247f850d8adec96fd50382ff353',1,'surface_flux_mod']]], + ['nxc_5fice',['nxc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a1a93322c5bc5013dead0189eb44cb92e',1,'atm_land_ice_flux_exchange_mod']]], + ['nxc_5flnd',['nxc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ab90bd2d918553aa753e88bc71217d1aa',1,'atm_land_ice_flux_exchange_mod']]], + ['nyc_5fice',['nyc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9d3bc11f1a73d8a019470b1769a156',1,'atm_land_ice_flux_exchange_mod']]], + ['nyc_5flnd',['nyc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ac39eb3c6c82add4a1d0d7e2857c5b431',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html new file mode 100644 index 00000000..85b39bd4 --- /dev/null +++ b/docs/html/search/all_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js new file mode 100644 index 00000000..ed212d3a --- /dev/null +++ b/docs/html/search/all_e.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['ocean',['ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3a95715c24b8e5542888fe9a81aca7d1',1,'full_coupler_mod::coupler_clock_type::ocean()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a74f9b44545af10ad7ad03a348898904a',1,'full_coupler_mod::coupler_components_type::ocean()']]], + ['ocean_5fice_5fboundary',['ocean_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#ad4d3a8c1b24f4086f2bfb520c0c0318c',1,'full_coupler_mod::coupler_components_type']]], + ['ocean_5fmodel_5finit',['ocean_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a32806294f0cd7e55f1e6d43af344d256',1,'full_coupler_mod::coupler_clock_type']]], + ['ocean_5fnpes',['ocean_npes',['../namespacefull__coupler__mod.html#accc0041353ee69933a1c006634b73942',1,'full_coupler_mod']]], + ['ocean_5fnthreads',['ocean_nthreads',['../namespacefull__coupler__mod.html#ae25bda27d23bc9ebe366a56d7e78c333',1,'full_coupler_mod']]], + ['old_5fdtaudv',['old_dtaudv',['../namespacesurface__flux__mod.html#a4004ece732cedb0fd110aacdb208ff87',1,'surface_flux_mod']]], + ['or',['or',['../namespaceice__model__mod.html#a98e632790d8e25d7f46222f6387ec42e',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/all_f.html b/docs/html/search/all_f.html new file mode 100644 index 00000000..89fa15a6 --- /dev/null +++ b/docs/html/search/all_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js new file mode 100644 index 00000000..ebeccb70 --- /dev/null +++ b/docs/html/search/all_f.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['p_5fair',['p_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a9c7ab4de0daccbdd49f8851ea12c1c5c',1,'atmos_ocean_fluxes_calc_mod']]], + ['p_5fsurf',['p_surf',['../namespaceflux__exchange__mod.html#af050af83a95afbfc896f4861ba4cdd1d',1,'flux_exchange_mod']]], + ['partition_5ffprec_5ffrom_5flprec',['partition_fprec_from_lprec',['../namespaceatm__land__ice__flux__exchange__mod.html#a514ebadfb8dcb7ae7bf696f6e3eae11a',1,'atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec()'],['../namespaceflux__exchange__mod.html#a2a3ce00fb63574459609d6b3ad334acb',1,'flux_exchange_mod::partition_fprec_from_lprec()']]], + ['prognostic_5fice',['prognostic_ice',['../namespaceice__model__mod.html#ac0071f9ca4cdf3279ccdc918bd77d07e',1,'ice_model_mod']]], + ['prognostic_5fsst',['prognostic_sst',['../namespaceice__model__mod.html#ad5c9ca5a5a2d863e59ab02d49a12e8e1',1,'ice_model_mod']]], + ['put_5flogical_5fto_5freal',['put_logical_to_real',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html',1,'atm_land_ice_flux_exchange_mod']]], + ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)']]], + ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)']]] +]; diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html new file mode 100644 index 00000000..e935fdf7 --- /dev/null +++ b/docs/html/search/classes_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js new file mode 100644 index 00000000..02bcb053 --- /dev/null +++ b/docs/html/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['atmos_5fice_5fboundary_5ftype',['atmos_ice_boundary_type',['../structice__model__mod_1_1atmos__ice__boundary__type.html',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/classes_1.html b/docs/html/search/classes_1.html new file mode 100644 index 00000000..3df6e80a --- /dev/null +++ b/docs/html/search/classes_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js new file mode 100644 index 00000000..6496d25c --- /dev/null +++ b/docs/html/search/classes_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['coupler_5fchksum_5ftype',['coupler_chksum_type',['../structfull__coupler__mod_1_1coupler__chksum__type.html',1,'full_coupler_mod']]], + ['coupler_5fclock_5ftype',['coupler_clock_type',['../structfull__coupler__mod_1_1coupler__clock__type.html',1,'full_coupler_mod']]], + ['coupler_5fcomponents_5ftype',['coupler_components_type',['../structfull__coupler__mod_1_1coupler__components__type.html',1,'full_coupler_mod']]] +]; diff --git a/docs/html/search/classes_2.html b/docs/html/search/classes_2.html new file mode 100644 index 00000000..028694ff --- /dev/null +++ b/docs/html/search/classes_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js new file mode 100644 index 00000000..f6cdbd11 --- /dev/null +++ b/docs/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ice_5fdata_5ftype',['ice_data_type',['../structice__model__mod_1_1ice__data__type.html',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/classes_3.html b/docs/html/search/classes_3.html new file mode 100644 index 00000000..2b1abe38 --- /dev/null +++ b/docs/html/search/classes_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js new file mode 100644 index 00000000..7ccbfca6 --- /dev/null +++ b/docs/html/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['put_5flogical_5fto_5freal',['put_logical_to_real',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/classes_4.html b/docs/html/search/classes_4.html new file mode 100644 index 00000000..87352149 --- /dev/null +++ b/docs/html/search/classes_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js new file mode 100644 index 00000000..7b8e527d --- /dev/null +++ b/docs/html/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['surface_5fflux',['surface_flux',['../interfacesurface__flux__mod_1_1surface__flux.html',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/classes_5.html b/docs/html/search/classes_5.html new file mode 100644 index 00000000..ba8b1c69 --- /dev/null +++ b/docs/html/search/classes_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_5.js b/docs/html/search/classes_5.js new file mode 100644 index 00000000..74d48702 --- /dev/null +++ b/docs/html/search/classes_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tracer_5fexch_5find_5ftype',['tracer_exch_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]], + ['tracer_5find_5ftype',['tracer_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/defines_0.html b/docs/html/search/defines_0.html new file mode 100644 index 00000000..3bffafa9 --- /dev/null +++ b/docs/html/search/defines_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/defines_0.js b/docs/html/search/defines_0.js new file mode 100644 index 00000000..e3e74a0f --- /dev/null +++ b/docs/html/search/defines_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange-old_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange-old_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange-old_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange-old_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange.F90']]] +]; diff --git a/docs/html/search/files_0.html b/docs/html/search/files_0.html new file mode 100644 index 00000000..49606c82 --- /dev/null +++ b/docs/html/search/files_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js new file mode 100644 index 00000000..b6d53269 --- /dev/null +++ b/docs/html/search/files_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['atm_5fland_5fice_5fflux_5fexchange_2dold_2ef90',['atm_land_ice_flux_exchange-old.F90',['../atm__land__ice__flux__exchange-old_8_f90.html',1,'']]], + ['atm_5fland_5fice_5fflux_5fexchange_2ef90',['atm_land_ice_flux_exchange.F90',['../atm__land__ice__flux__exchange_8_f90.html',1,'']]], + ['atmos_5focean_5fdep_5ffluxes_5fcalc_2ef90',['atmos_ocean_dep_fluxes_calc.F90',['../atmos__ocean__dep__fluxes__calc_8_f90.html',1,'']]], + ['atmos_5focean_5ffluxes_5fcalc_2ef90',['atmos_ocean_fluxes_calc.F90',['../atmos__ocean__fluxes__calc_8_f90.html',1,'']]] +]; diff --git a/docs/html/search/files_1.html b/docs/html/search/files_1.html new file mode 100644 index 00000000..c8871748 --- /dev/null +++ b/docs/html/search/files_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js new file mode 100644 index 00000000..ee8a073d --- /dev/null +++ b/docs/html/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['coupler_5fmain_2ef90',['coupler_main.F90',['../full_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../_s_hi_e_l_d_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../simple_2coupler__main_8_f90.html',1,'(Global Namespace)']]] +]; diff --git a/docs/html/search/files_2.html b/docs/html/search/files_2.html new file mode 100644 index 00000000..99bdf21c --- /dev/null +++ b/docs/html/search/files_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js new file mode 100644 index 00000000..0355a604 --- /dev/null +++ b/docs/html/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['flux_5fexchange_2ef90',['flux_exchange.F90',['../full_2flux__exchange_8_f90.html',1,'(Global Namespace)'],['../simple_2flux__exchange_8_f90.html',1,'(Global Namespace)']]], + ['full_5fcoupler_5fmod_2ef90',['full_coupler_mod.F90',['../full__coupler__mod_8_f90.html',1,'']]] +]; diff --git a/docs/html/search/files_3.html b/docs/html/search/files_3.html new file mode 100644 index 00000000..f8e543a8 --- /dev/null +++ b/docs/html/search/files_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_3.js b/docs/html/search/files_3.js new file mode 100644 index 00000000..cf8cda09 --- /dev/null +++ b/docs/html/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ice_5fmodel_2ef90',['ice_model.F90',['../ice__model_8_f90.html',1,'']]], + ['ice_5focean_5fflux_5fexchange_2ef90',['ice_ocean_flux_exchange.F90',['../ice__ocean__flux__exchange_8_f90.html',1,'']]] +]; diff --git a/docs/html/search/files_4.html b/docs/html/search/files_4.html new file mode 100644 index 00000000..2ebb46c7 --- /dev/null +++ b/docs/html/search/files_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_4.js b/docs/html/search/files_4.js new file mode 100644 index 00000000..f21c4a77 --- /dev/null +++ b/docs/html/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['land_5fice_5fflux_5fexchange_2ef90',['land_ice_flux_exchange.F90',['../land__ice__flux__exchange_8_f90.html',1,'']]] +]; diff --git a/docs/html/search/files_5.html b/docs/html/search/files_5.html new file mode 100644 index 00000000..268b7eb5 --- /dev/null +++ b/docs/html/search/files_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_5.js b/docs/html/search/files_5.js new file mode 100644 index 00000000..631e7482 --- /dev/null +++ b/docs/html/search/files_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['surface_5fflux_2ef90',['surface_flux.F90',['../surface__flux_8_f90.html',1,'']]] +]; diff --git a/docs/html/search/files_6.html b/docs/html/search/files_6.html new file mode 100644 index 00000000..98fc6666 --- /dev/null +++ b/docs/html/search/files_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_6.js b/docs/html/search/files_6.js new file mode 100644 index 00000000..9763f3de --- /dev/null +++ b/docs/html/search/files_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['use_5fam3_5fonly_2ef90',['use_am3_only.f90',['../use__am3__only_8f90.html',1,'']]], + ['use_5fland_5fand_5fam3_2ef90',['use_land_and_am3.f90',['../use__land__and__am3_8f90.html',1,'']]], + ['use_5fland_5fonly_2ef90',['use_land_only.f90',['../use__land__only_8f90.html',1,'']]] +]; diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html new file mode 100644 index 00000000..0539c8ce --- /dev/null +++ b/docs/html/search/functions_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js new file mode 100644 index 00000000..377e5a6b --- /dev/null +++ b/docs/html/search/functions_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['add_5fdomain_5fdimension_5fdata',['add_domain_dimension_data',['../namespacefull__coupler__mod.html#ad3685f6bd34e431206122bde9f327dc2',1,'full_coupler_mod::add_domain_dimension_data()'],['../namespaceice__model__mod.html#afd16954e39a95d394843584000c022e4',1,'ice_model_mod::add_domain_dimension_data()']]], + ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#aefc839a12fc334b7685be207d2ff5452',1,'atm_land_ice_flux_exchange_mod']]], + ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)'],['../namespaceatm__land__ice__flux__exchange__mod.html#aaabcd517cb4e3367fe4d9c1e8cda3a60',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)']]], + ['atmos_5focean_5fdep_5ffluxes_5fcalc',['atmos_ocean_dep_fluxes_calc',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a5880644207752e6a4873458a90f04cea',1,'atmos_ocean_dep_fluxes_calc_mod']]], + ['atmos_5focean_5ffluxes_5fcalc',['atmos_ocean_fluxes_calc',['../namespaceatmos__ocean__fluxes__calc__mod.html#acc10568af1ebdd92581183632c4e1f74',1,'atmos_ocean_fluxes_calc_mod']]] +]; diff --git a/docs/html/search/functions_1.html b/docs/html/search/functions_1.html new file mode 100644 index 00000000..4878b3d1 --- /dev/null +++ b/docs/html/search/functions_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js new file mode 100644 index 00000000..1ce39187 --- /dev/null +++ b/docs/html/search/functions_1.js @@ -0,0 +1,42 @@ +var searchData= +[ + ['calc_5fka',['calc_ka',['../namespaceatmos__ocean__fluxes__calc__mod.html#ae9cb64893466d91cc87e5502d37afa12',1,'atmos_ocean_fluxes_calc_mod']]], + ['calc_5fkl',['calc_kl',['../namespaceatmos__ocean__fluxes__calc__mod.html#a5f7e073d68f160bec215202c7e1d7abe',1,'atmos_ocean_fluxes_calc_mod']]], + ['calc_5fkw',['calc_kw',['../namespaceatmos__ocean__fluxes__calc__mod.html#abf318a12a94816f9a99ccd779e028e75',1,'atmos_ocean_fluxes_calc_mod']]], + ['check_5fatm_5fgrid',['check_atm_grid',['../namespaceflux__exchange__mod.html#a9b9500d8c86af3e964c1558bb7ae464e',1,'flux_exchange_mod']]], + ['check_5fflux_5fconservation',['check_flux_conservation',['../namespaceice__ocean__flux__exchange__mod.html#a82490086151d4ed5045fe1e9073163ba',1,'ice_ocean_flux_exchange_mod']]], + ['coupler_5fatmos_5ftracer_5fdriver_5fgather_5fdata',['coupler_atmos_tracer_driver_gather_data',['../namespacefull__coupler__mod.html#a5a028d46d98bc897bd6896fdb5755e96',1,'full_coupler_mod']]], + ['coupler_5fchksum',['coupler_chksum',['../simple_2coupler__main_8_f90.html#a84967079db4c81f7d8a653d5e37c484d',1,'coupler_main.F90']]], + ['coupler_5fend',['coupler_end',['../namespacefull__coupler__mod.html#a2ec9738b6ff3b36e2468bdf6be894dcd',1,'full_coupler_mod::coupler_end()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90']]], + ['coupler_5fexchange_5ffast_5fto_5fslow_5fice',['coupler_exchange_fast_to_slow_ice',['../namespacefull__coupler__mod.html#adfa43bbc4b86cff9ebbf83c303c1536c',1,'full_coupler_mod']]], + ['coupler_5fexchange_5fslow_5fto_5ffast_5fice',['coupler_exchange_slow_to_fast_ice',['../namespacefull__coupler__mod.html#acc373b8c70ab51bcd1abd62a0f2cc458',1,'full_coupler_mod']]], + ['coupler_5fflux_5fatmos_5fto_5focean',['coupler_flux_atmos_to_ocean',['../namespacefull__coupler__mod.html#a5d6ec62cbf5b295aace24abd48724d72',1,'full_coupler_mod']]], + ['coupler_5fflux_5fcheck_5fstocks',['coupler_flux_check_stocks',['../namespacefull__coupler__mod.html#a0c78ac70ae6ce91467b7039912804e05',1,'full_coupler_mod']]], + ['coupler_5fflux_5fdown_5ffrom_5fatmos',['coupler_flux_down_from_atmos',['../namespacefull__coupler__mod.html#a2bbfad8acb27d074dcab777315e83020',1,'full_coupler_mod']]], + ['coupler_5fflux_5fice_5fto_5focean',['coupler_flux_ice_to_ocean',['../namespacefull__coupler__mod.html#a21ac2bd35b5e12e39409de231485fc49',1,'full_coupler_mod']]], + ['coupler_5fflux_5finit_5ffinish_5fstocks',['coupler_flux_init_finish_stocks',['../namespacefull__coupler__mod.html#aacd2b02808f6f249686b8dfda325a476',1,'full_coupler_mod']]], + ['coupler_5fflux_5fland_5fto_5fice',['coupler_flux_land_to_ice',['../namespacefull__coupler__mod.html#abf2778399410a6dc8bd900e06fb32c73',1,'full_coupler_mod']]], + ['coupler_5fflux_5focean_5fto_5fice',['coupler_flux_ocean_to_ice',['../namespacefull__coupler__mod.html#aea669a50f8bf186ab6563fc3a593727d',1,'full_coupler_mod']]], + ['coupler_5fflux_5fup_5fto_5fatmos',['coupler_flux_up_to_atmos',['../namespacefull__coupler__mod.html#a815b7cd5c923bcc6983455275e760562',1,'full_coupler_mod']]], + ['coupler_5fgenerate_5fsfc_5fxgrid',['coupler_generate_sfc_xgrid',['../namespacefull__coupler__mod.html#a5a6aad430601ef6236f0aef37ae7e8d9',1,'full_coupler_mod']]], + ['coupler_5finit',['coupler_init',['../namespacefull__coupler__mod.html#a492d05bed09bd21cfdfd552ad94a41a1',1,'full_coupler_mod::coupler_init()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90']]], + ['coupler_5fintermediate_5frestart',['coupler_intermediate_restart',['../namespacefull__coupler__mod.html#a78e63fea8e51104d42b8165c1aca632f',1,'full_coupler_mod']]], + ['coupler_5fmain',['coupler_main',['../full_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90']]], + ['coupler_5frestart',['coupler_restart',['../namespacefull__coupler__mod.html#acdc143216f549f73b826f2dc16d8785d',1,'full_coupler_mod::coupler_restart()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a1d53997072d4080194ed167495e1dc4e',1,'coupler_restart(): coupler_main.F90']]], + ['coupler_5fset_5fclock_5fids',['coupler_set_clock_ids',['../namespacefull__coupler__mod.html#af8e1c181167e62399ce506efc5d4466d',1,'full_coupler_mod']]], + ['coupler_5fset_5fice_5fsurface_5ffields',['coupler_set_ice_surface_fields',['../namespacefull__coupler__mod.html#abddb0d5b155dcae16de66f20ec7beb6b',1,'full_coupler_mod']]], + ['coupler_5fsfc_5fboundary_5flayer',['coupler_sfc_boundary_layer',['../namespacefull__coupler__mod.html#a229bd773fc74906d301d68606f1fa0ba',1,'full_coupler_mod']]], + ['coupler_5fsummarize_5ftimestep',['coupler_summarize_timestep',['../namespacefull__coupler__mod.html#ad43bd73adc9e5c3d58a36eb181f8ed49',1,'full_coupler_mod']]], + ['coupler_5funpack_5fland_5fice_5fboundary',['coupler_unpack_land_ice_boundary',['../namespacefull__coupler__mod.html#abaf548c80785bc86cdf6905e878beea2',1,'full_coupler_mod']]], + ['coupler_5funpack_5focean_5fice_5fboundary',['coupler_unpack_ocean_ice_boundary',['../namespacefull__coupler__mod.html#a03dfec6ce79bf87d70af81a67036d0d5',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fdown',['coupler_update_atmos_model_down',['../namespacefull__coupler__mod.html#a12b401d180e4ef450900bf99326cf7b1',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fdynamics',['coupler_update_atmos_model_dynamics',['../namespacefull__coupler__mod.html#a9870c4ebd0509e3a451918312aeab9bc',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fradiation',['coupler_update_atmos_model_radiation',['../namespacefull__coupler__mod.html#a53e78be022cbfa2705d38c357862b299',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fstate',['coupler_update_atmos_model_state',['../namespacefull__coupler__mod.html#abcc0129feb720f653d1331b74bdcc83e',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fatmos_5fmodel_5fup',['coupler_update_atmos_model_up',['../namespacefull__coupler__mod.html#a6d261ed1082536075cf038512bfb554c',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fice_5fmodel_5ffast',['coupler_update_ice_model_fast',['../namespacefull__coupler__mod.html#a16ef5e434cc41e25acca7c13c914a7dd',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fice_5fmodel_5fslow_5fand_5fstocks',['coupler_update_ice_model_slow_and_stocks',['../namespacefull__coupler__mod.html#a99772f79049c6478c178ff5936cd96f5',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fland_5fmodel_5ffast',['coupler_update_land_model_fast',['../namespacefull__coupler__mod.html#ac362087e9af50b6210abceca68bc71b4',1,'full_coupler_mod']]], + ['coupler_5fupdate_5fland_5fmodel_5fslow',['coupler_update_land_model_slow',['../namespacefull__coupler__mod.html#a439064bbf2747a318875cd2658ee5687',1,'full_coupler_mod']]], + ['coupler_5fupdate_5focean_5fmodel',['coupler_update_ocean_model',['../namespacefull__coupler__mod.html#a2b178ae2d43ded30a97496633670b93a',1,'full_coupler_mod']]] +]; diff --git a/docs/html/search/functions_2.html b/docs/html/search/functions_2.html new file mode 100644 index 00000000..67d2a392 --- /dev/null +++ b/docs/html/search/functions_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js new file mode 100644 index 00000000..74c88b8e --- /dev/null +++ b/docs/html/search/functions_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['d_5fair',['d_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a6a4a1330c1ee1043b30e4b86f462ec24',1,'atmos_ocean_fluxes_calc_mod']]], + ['diag_5ffield_5finit',['diag_field_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8a26116481dffeb2f5f2ac6444c64f5',1,'atm_land_ice_flux_exchange_mod::diag_field_init()'],['../namespaceflux__exchange__mod.html#ab9537fe935b63ea2cf7f9c8f895cb8e0',1,'flux_exchange_mod::diag_field_init()']]], + ['divide_5fby_5farea',['divide_by_area',['../namespaceatm__land__ice__flux__exchange__mod.html#a6dbcba7c48b5f085de6b33e9f05d6868',1,'atm_land_ice_flux_exchange_mod::divide_by_area()'],['../namespaceice__ocean__flux__exchange__mod.html#a1da352681654a7c70e1c929092357c76',1,'ice_ocean_flux_exchange_mod::divide_by_area()']]] +]; diff --git a/docs/html/search/functions_3.html b/docs/html/search/functions_3.html new file mode 100644 index 00000000..1f0eedb3 --- /dev/null +++ b/docs/html/search/functions_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js new file mode 100644 index 00000000..fa7bc6da --- /dev/null +++ b/docs/html/search/functions_3.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#abbc25f2b6691ab2cbe94c2b7a8e3235f',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fcheck_5fstocks',['flux_check_stocks',['../namespaceflux__exchange__mod.html#a905b179ee9688d2feeef94f3417b25e5',1,'flux_exchange_mod']]], + ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#adbe4303a01222ce60a65246fecc1f7aa',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], + ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec6c8a5b6f66728f1d07dba27282319c',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fexchange_5fend',['flux_exchange_end',['../namespaceflux__exchange__mod.html#a6485a12c7af1fed26ee7a8dac257a508',1,'flux_exchange_mod']]], + ['flux_5fexchange_5finit',['flux_exchange_init',['../namespaceflux__exchange__mod.html#aa0a4db6845eb6ba4aa2246e67c9bcc6b',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)'],['../namespaceflux__exchange__mod.html#ab2e7b7db204609a177b55f5725e57976',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)']]], + ['flux_5fice_5fto_5focean',['flux_ice_to_ocean',['../namespaceice__ocean__flux__exchange__mod.html#afcc66b7731a985e1916e5ac4a303df37',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5fice_5fto_5focean_5ffinish',['flux_ice_to_ocean_finish',['../namespaceice__ocean__flux__exchange__mod.html#a1f894795596097d716f953bbfdb9dc80',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5fice_5fto_5focean_5fredistribute',['flux_ice_to_ocean_redistribute',['../namespaceice__ocean__flux__exchange__mod.html#a051fd38cfb62a7fa0b9093d39a3d1a94',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5fice_5fto_5focean_5fstocks',['flux_ice_to_ocean_stocks',['../namespaceice__ocean__flux__exchange__mod.html#ac7d12dcdb5b25d4a1bb38935360cceab',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5finit_5fstocks',['flux_init_stocks',['../namespaceflux__exchange__mod.html#a8482ebe698f25da2d177b2508fa9d2b8',1,'flux_exchange_mod']]], + ['flux_5fland_5fto_5fice',['flux_land_to_ice',['../namespaceland__ice__flux__exchange__mod.html#a7430ed2b8895cbe33376aaa6315ea0da',1,'land_ice_flux_exchange_mod']]], + ['flux_5focean_5ffrom_5fice_5fstocks',['flux_ocean_from_ice_stocks',['../namespaceice__ocean__flux__exchange__mod.html#ac5daa11e6f312156be99d617a705bae8',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5focean_5fto_5fice',['flux_ocean_to_ice',['../namespaceice__ocean__flux__exchange__mod.html#a5270f15d181575b7559f4664afcd987a',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5focean_5fto_5fice_5ffinish',['flux_ocean_to_ice_finish',['../namespaceice__ocean__flux__exchange__mod.html#a2af0c159f5b00bd98d7f8339761df29e',1,'ice_ocean_flux_exchange_mod']]], + ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#afff8d47bcdf69e33ea3f2df0e406373e',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]] +]; diff --git a/docs/html/search/functions_4.html b/docs/html/search/functions_4.html new file mode 100644 index 00000000..c5bf87a4 --- /dev/null +++ b/docs/html/search/functions_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js new file mode 100644 index 00000000..31fe75e7 --- /dev/null +++ b/docs/html/search/functions_4.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['gas_5fexchange_5finit',['gas_exchange_init',['../namespaceflux__exchange__mod.html#a9d5d9cb2721d5b49e6dfbaefa89185f8',1,'flux_exchange_mod']]], + ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../namespaceatm__land__ice__flux__exchange__mod.html#af73f258e9e1810ec379ea84241a032f5',1,'atm_land_ice_flux_exchange_mod']]], + ['get_5fatmos_5fice_5fland_5fchksums',['get_atmos_ice_land_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#acd9ec31136762085212e2184eb95a896',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums()'],['../namespacefull__coupler__mod.html#ac24e45f64a2c3bd2674b5b0436107eb6',1,'full_coupler_mod::get_atmos_ice_land_chksums()']]], + ['get_5fatmos_5fice_5fland_5focean_5fchksums',['get_atmos_ice_land_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#ae519e712159d78b971a59a5e4311f61e',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums()'],['../namespacefull__coupler__mod.html#a7e2a2f28f1037117dd2e1790d99b8616',1,'full_coupler_mod::get_atmos_ice_land_ocean_chksums()']]], + ['get_5fcell_5fcenter',['get_cell_center',['../namespaceice__model__mod.html#ab2e9be6fcef2df1c9886c80ad3f8e68c',1,'ice_model_mod']]], + ['get_5fcomponent',['get_component',['../structfull__coupler__mod_1_1coupler__components__type.html#a10162a8a029cc88b38ca87161d32666e',1,'full_coupler_mod::coupler_components_type::get_component()'],['../namespacefull__coupler__mod.html#aab400c752e6c3c24deccaaccb9e14824',1,'full_coupler_mod::get_component()']]], + ['get_5fcomponents_5fobj',['get_components_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a4b6a084b36f3620a3d318548051683da',1,'full_coupler_mod::coupler_chksum_type::get_components_obj()'],['../namespacefull__coupler__mod.html#a1783033373f9ce4428522ecf8faf57f1',1,'full_coupler_mod::get_components_obj()']]], + ['get_5fcoupler_5fchksums',['get_coupler_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a3459d6bcb71439fefb2101f9d61ae876',1,'full_coupler_mod::coupler_chksum_type::get_coupler_chksums()'],['../namespacefull__coupler__mod.html#a0f4c20f64b8c9bc86f87b65430177e0f',1,'full_coupler_mod::get_coupler_chksums()']]], + ['get_5focean_5fchksums',['get_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a8d6b7a5128df28f67f94fbf5c9c22b28',1,'full_coupler_mod::coupler_chksum_type::get_ocean_chksums()'],['../namespacefull__coupler__mod.html#a50e8820366ee023111794387c3b5e7f3',1,'full_coupler_mod::get_ocean_chksums()']]], + ['get_5fslow_5fice_5fchksums',['get_slow_ice_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a745b72ab4eb3866614d86950438241f4',1,'full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums()'],['../namespacefull__coupler__mod.html#a6a8725c4efea803a26f6295adf5aa37a',1,'full_coupler_mod::get_slow_ice_chksums()']]] +]; diff --git a/docs/html/search/functions_5.html b/docs/html/search/functions_5.html new file mode 100644 index 00000000..a34446ce --- /dev/null +++ b/docs/html/search/functions_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js new file mode 100644 index 00000000..914acf0b --- /dev/null +++ b/docs/html/search/functions_5.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['ice_5fmodel_5fend',['ice_model_end',['../namespaceice__model__mod.html#a64ce3059a7824d9f2efc7b9f6047adec',1,'ice_model_mod']]], + ['ice_5fmodel_5finit',['ice_model_init',['../namespaceice__model__mod.html#aa334350190e4d103f2b7c9b5b860ce0b',1,'ice_model_mod']]], + ['ice_5focean_5fflux_5fexchange_5finit',['ice_ocean_flux_exchange_init',['../namespaceice__ocean__flux__exchange__mod.html#a63be7a22389a38bfd7f7e8aafc2f81d3',1,'ice_ocean_flux_exchange_mod']]], + ['ice_5fregister_5frestart',['ice_register_restart',['../namespaceice__model__mod.html#a1c9b13ea971d09e2047d6025b7f112c5',1,'ice_model_mod']]], + ['initialize_5fcoupler_5fchksum_5fobj',['initialize_coupler_chksum_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a789a89bb1c9ed2eabfe7fe263f8b3807',1,'full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj()'],['../namespacefull__coupler__mod.html#a39c2e7bc7b1b6ca828ccd22f231789d9',1,'full_coupler_mod::initialize_coupler_chksum_obj()']]], + ['initialize_5fcoupler_5fcomponents_5fobj',['initialize_coupler_components_obj',['../structfull__coupler__mod_1_1coupler__components__type.html#a7f4e7c72a18c47e395fa3b27b1b11d5a',1,'full_coupler_mod::coupler_components_type::initialize_coupler_components_obj()'],['../namespacefull__coupler__mod.html#a2e71183922fd4c76a5234823f44b1056',1,'full_coupler_mod::initialize_coupler_components_obj()']]], + ['is_5flatlon',['is_latlon',['../namespaceice__model__mod.html#a00d134e60955bd3f498d98fa0d2a5941',1,'ice_model_mod']]], + ['iter_5fmonin_5fobukhov_5focean',['iter_monin_obukhov_ocean',['../namespacesurface__flux__mod.html#ae6fbd060ae720e05102effeb8b044d30',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/functions_6.html b/docs/html/search/functions_6.html new file mode 100644 index 00000000..6fd4b1f3 --- /dev/null +++ b/docs/html/search/functions_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js new file mode 100644 index 00000000..b72cd36e --- /dev/null +++ b/docs/html/search/functions_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['land_5fice_5fflux_5fexchange_5finit',['land_ice_flux_exchange_init',['../namespaceland__ice__flux__exchange__mod.html#a0a8f20fe83d26714842110feea23aea6',1,'land_ice_flux_exchange_mod']]], + ['latlon2xyz',['latlon2xyz',['../namespaceice__model__mod.html#ad9523243488d1422d212abc12a8c85b8',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/functions_7.html b/docs/html/search/functions_7.html new file mode 100644 index 00000000..6e09abf1 --- /dev/null +++ b/docs/html/search/functions_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js new file mode 100644 index 00000000..bc46b223 --- /dev/null +++ b/docs/html/search/functions_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['n_5fair',['n_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#acaeb4ccb8ce4e4fa5c470157420075de',1,'atmos_ocean_fluxes_calc_mod']]], + ['ncar_5focean_5ffluxes',['ncar_ocean_fluxes',['../namespacesurface__flux__mod.html#a4e53abf6229db4a6b3025f5333fe764d',1,'surface_flux_mod']]], + ['ncar_5focean_5ffluxes_5fmultilevel',['ncar_ocean_fluxes_multilevel',['../namespacesurface__flux__mod.html#a43e1175ff9bf4096208baf7053b2669c',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/functions_8.html b/docs/html/search/functions_8.html new file mode 100644 index 00000000..d59ea971 --- /dev/null +++ b/docs/html/search/functions_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js new file mode 100644 index 00000000..882e100d --- /dev/null +++ b/docs/html/search/functions_8.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['p_5fair',['p_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a9c7ab4de0daccbdd49f8851ea12c1c5c',1,'atmos_ocean_fluxes_calc_mod']]], + ['prognostic_5fice',['prognostic_ice',['../namespaceice__model__mod.html#ac0071f9ca4cdf3279ccdc918bd77d07e',1,'ice_model_mod']]], + ['prognostic_5fsst',['prognostic_sst',['../namespaceice__model__mod.html#ad5c9ca5a5a2d863e59ab02d49a12e8e1',1,'ice_model_mod']]], + ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)']]], + ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)']]] +]; diff --git a/docs/html/search/functions_9.html b/docs/html/search/functions_9.html new file mode 100644 index 00000000..5ccec429 --- /dev/null +++ b/docs/html/search/functions_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js new file mode 100644 index 00000000..684e4b06 --- /dev/null +++ b/docs/html/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['read_5fnamelist',['read_namelist',['../namespaceflux__exchange__mod.html#a52e173ad7fa50e521f75eef8cd9aff95',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/functions_a.html b/docs/html/search/functions_a.html new file mode 100644 index 00000000..3958eb7b --- /dev/null +++ b/docs/html/search/functions_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js new file mode 100644 index 00000000..2a78fca8 --- /dev/null +++ b/docs/html/search/functions_a.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['schmidt_5fg',['schmidt_g',['../namespaceatmos__ocean__fluxes__calc__mod.html#a7a879f540fe903119d5bb324c44f6c45',1,'atmos_ocean_fluxes_calc_mod']]], + ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#aea62f09680f206912e5ba1883abb32bc',1,'atm_land_ice_flux_exchange_mod']]], + ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../namespaceatm__land__ice__flux__exchange__mod.html#af6dc1ca9a9e4460748eef47dfd719d46',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], + ['surface_5fflux_5f0d',['surface_flux_0d',['../namespacesurface__flux__mod.html#a719077c3d9594fb8b63b3681638949eb',1,'surface_flux_mod']]], + ['surface_5fflux_5f1d',['surface_flux_1d',['../interfacesurface__flux__mod_1_1surface__flux.html#aae251f64f9ec074e3eb13cf535503e96',1,'surface_flux_mod::surface_flux::surface_flux_1d()'],['../namespacesurface__flux__mod.html#a9e30e62e73778ab168c1e1e639bc5c5b',1,'surface_flux_mod::surface_flux_1d()']]], + ['surface_5fflux_5f2d',['surface_flux_2d',['../interfacesurface__flux__mod_1_1surface__flux.html#ab3e1a25220436f1a605d89d8cb820294',1,'surface_flux_mod::surface_flux::surface_flux_2d()'],['../namespacesurface__flux__mod.html#a8e1d9d5ab64ad51dd6f60c90616b6648',1,'surface_flux_mod::surface_flux_2d()'],['../namespaceflux__exchange__mod.html#a61d0127746fc39769346765dd050d378',1,'flux_exchange_mod::surface_flux_2d()']]], + ['surface_5fflux_5finit',['surface_flux_init',['../namespacesurface__flux__mod.html#a333b51433623e304046e80987bab0acc',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/functions_b.html b/docs/html/search/functions_b.html new file mode 100644 index 00000000..b99b702d --- /dev/null +++ b/docs/html/search/functions_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js new file mode 100644 index 00000000..68ff0203 --- /dev/null +++ b/docs/html/search/functions_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['update_5fice_5fmodel_5ffast',['update_ice_model_fast',['../namespaceice__model__mod.html#a9b939a61c6dd68819c8edecfa60a02c5',1,'ice_model_mod']]], + ['update_5fice_5fmodel_5fslow',['update_ice_model_slow',['../namespaceice__model__mod.html#a378288dc3d2683fd5308ed483542fc4f',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/functions_c.html b/docs/html/search/functions_c.html new file mode 100644 index 00000000..3a33d874 --- /dev/null +++ b/docs/html/search/functions_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js new file mode 100644 index 00000000..59a7af66 --- /dev/null +++ b/docs/html/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['v_5fair',['v_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a942762290e4c14fbb89e992f736838d5',1,'atmos_ocean_fluxes_calc_mod']]] +]; diff --git a/docs/html/search/functions_d.html b/docs/html/search/functions_d.html new file mode 100644 index 00000000..31b75b88 --- /dev/null +++ b/docs/html/search/functions_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js new file mode 100644 index 00000000..3e829bc4 --- /dev/null +++ b/docs/html/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xyz2latlon',['xyz2latlon',['../namespaceice__model__mod.html#a295831b47bffb23aaad0538f61f2d7a6',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/namespaces_0.html b/docs/html/search/namespaces_0.html new file mode 100644 index 00000000..f55ca63a --- /dev/null +++ b/docs/html/search/namespaces_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/namespaces_0.js b/docs/html/search/namespaces_0.js new file mode 100644 index 00000000..051f69cd --- /dev/null +++ b/docs/html/search/namespaces_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['atm_5fland_5fice_5fflux_5fexchange_5fmod',['atm_land_ice_flux_exchange_mod',['../namespaceatm__land__ice__flux__exchange__mod.html',1,'']]], + ['atmos_5focean_5fdep_5ffluxes_5fcalc_5fmod',['atmos_ocean_dep_fluxes_calc_mod',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html',1,'']]], + ['atmos_5focean_5ffluxes_5fcalc_5fmod',['atmos_ocean_fluxes_calc_mod',['../namespaceatmos__ocean__fluxes__calc__mod.html',1,'']]] +]; diff --git a/docs/html/search/namespaces_1.html b/docs/html/search/namespaces_1.html new file mode 100644 index 00000000..37c816cc --- /dev/null +++ b/docs/html/search/namespaces_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/namespaces_1.js b/docs/html/search/namespaces_1.js new file mode 100644 index 00000000..5b9694ab --- /dev/null +++ b/docs/html/search/namespaces_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['flux_5fexchange_5fmod',['flux_exchange_mod',['../namespaceflux__exchange__mod.html',1,'']]], + ['full_5fcoupler_5fmod',['full_coupler_mod',['../namespacefull__coupler__mod.html',1,'']]] +]; diff --git a/docs/html/search/namespaces_2.html b/docs/html/search/namespaces_2.html new file mode 100644 index 00000000..0a916746 --- /dev/null +++ b/docs/html/search/namespaces_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/namespaces_2.js b/docs/html/search/namespaces_2.js new file mode 100644 index 00000000..91f9dedb --- /dev/null +++ b/docs/html/search/namespaces_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ice_5fmodel_5fmod',['ice_model_mod',['../namespaceice__model__mod.html',1,'']]], + ['ice_5focean_5fflux_5fexchange_5fmod',['ice_ocean_flux_exchange_mod',['../namespaceice__ocean__flux__exchange__mod.html',1,'']]] +]; diff --git a/docs/html/search/namespaces_3.html b/docs/html/search/namespaces_3.html new file mode 100644 index 00000000..9c35eb2f --- /dev/null +++ b/docs/html/search/namespaces_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/namespaces_3.js b/docs/html/search/namespaces_3.js new file mode 100644 index 00000000..120a648c --- /dev/null +++ b/docs/html/search/namespaces_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['land_5fice_5fflux_5fexchange_5fmod',['land_ice_flux_exchange_mod',['../namespaceland__ice__flux__exchange__mod.html',1,'']]] +]; diff --git a/docs/html/search/namespaces_4.html b/docs/html/search/namespaces_4.html new file mode 100644 index 00000000..38123320 --- /dev/null +++ b/docs/html/search/namespaces_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/namespaces_4.js b/docs/html/search/namespaces_4.js new file mode 100644 index 00000000..e3b92e3a --- /dev/null +++ b/docs/html/search/namespaces_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['surface_5fflux_5fmod',['surface_flux_mod',['../namespacesurface__flux__mod.html',1,'']]] +]; diff --git a/docs/html/search/pages_0.html b/docs/html/search/pages_0.html new file mode 100644 index 00000000..d7528582 --- /dev/null +++ b/docs/html/search/pages_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/pages_0.js b/docs/html/search/pages_0.js new file mode 100644 index 00000000..0fd0fcc3 --- /dev/null +++ b/docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['coupler_20configuration',['Coupler Configuration',['../coupler_config.html',1,'']]] +]; diff --git a/docs/html/search/pages_1.html b/docs/html/search/pages_1.html new file mode 100644 index 00000000..924fb482 --- /dev/null +++ b/docs/html/search/pages_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/pages_1.js b/docs/html/search/pages_1.js new file mode 100644 index 00000000..46fa05c9 --- /dev/null +++ b/docs/html/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['flux_20exchange_20configuration',['Flux Exchange Configuration',['../flux_exchange_conf.html',1,'']]] +]; diff --git a/docs/html/search/pages_2.html b/docs/html/search/pages_2.html new file mode 100644 index 00000000..ffc6d929 --- /dev/null +++ b/docs/html/search/pages_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/pages_2.js b/docs/html/search/pages_2.js new file mode 100644 index 00000000..58c99d41 --- /dev/null +++ b/docs/html/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['surface_20flux_20configuration',['Surface Flux Configuration',['../surface_flux_config.html',1,'']]] +]; diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js index f95870c9..22ef96e8 100644 --- a/docs/html/search/searchdata.js +++ b/docs/html/search/searchdata.js @@ -1,12 +1,36 @@ var indexSectionsWithContent = { + 0: "abcdefghijklmnopqrstuvwxz", + 1: "acipst", + 2: "afils", + 3: "acfilsu", + 4: "acdfgilnprsuvx", + 5: "abcdefghijklmnopqrstuvwxz", + 6: "f", + 7: "cfs" }; var indexSectionNames = { + 0: "all", + 1: "classes", + 2: "namespaces", + 3: "files", + 4: "functions", + 5: "variables", + 6: "defines", + 7: "pages" }; var indexSectionLabels = { + 0: "All", + 1: "Classes", + 2: "Namespaces", + 3: "Files", + 4: "Functions", + 5: "Variables", + 6: "Macros", + 7: "Pages" }; diff --git a/docs/html/search/variables_0.html b/docs/html/search/variables_0.html new file mode 100644 index 00000000..51f7bd6b --- /dev/null +++ b/docs/html/search/variables_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js new file mode 100644 index 00000000..0eda986d --- /dev/null +++ b/docs/html/search/variables_0.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['albedo',['albedo',['../structice__model__mod_1_1ice__data__type.html#a2733a49aafbb2c427d93412ba024c3b6',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fnir_5fdif',['albedo_nir_dif',['../structice__model__mod_1_1ice__data__type.html#a24c89574df66301e6e3b686dcae7229d',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fnir_5fdir',['albedo_nir_dir',['../structice__model__mod_1_1ice__data__type.html#a99a3c37bd29100dbbea9e72ce79f08ec',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fvis_5fdif',['albedo_vis_dif',['../structice__model__mod_1_1ice__data__type.html#ad5e50ac18a25e32ce222fab20797419a',1,'ice_model_mod::ice_data_type']]], + ['albedo_5fvis_5fdir',['albedo_vis_dir',['../structice__model__mod_1_1ice__data__type.html#a7065db4c98d81f247f30545e8202c6ba',1,'ice_model_mod::ice_data_type']]], + ['all_5fland',['all_land',['../namespaceflux__exchange__mod.html#a9f21ac3fea6a38f7959395b34a8ceb8b',1,'flux_exchange_mod']]], + ['all_5focean',['all_ocean',['../namespaceflux__exchange__mod.html#a50c09e88b3fb6646814e283404760a7d',1,'flux_exchange_mod']]], + ['alt_5fgustiness',['alt_gustiness',['../namespacesurface__flux__mod.html#a338fa27e4d5045147ebf3ee908c60e98',1,'surface_flux_mod']]], + ['amip_5fice',['amip_ice',['../namespaceice__model__mod.html#a5663c456270837d94270cb3e853b8d11',1,'ice_model_mod']]], + ['amip_5fsst',['amip_sst',['../namespaceice__model__mod.html#ad482a1238aba8004d9c21616d04163f3',1,'ice_model_mod']]], + ['atm',['atm',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a6958e428760cf729bec6fc2748104d03',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::atm()'],['../structfull__coupler__mod_1_1coupler__clock__type.html#a6c6826c6bd3bb9b6c77f265576eb4921',1,'full_coupler_mod::coupler_clock_type::atm()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a2e38920a1bf3f745decc0b056b489730',1,'full_coupler_mod::coupler_components_type::atm()']]], + ['atm_5fprecip_5fnew',['atm_precip_new',['../namespaceflux__exchange__mod.html#a4133789f8990f2178df334764b71a74d',1,'flux_exchange_mod']]], + ['atmos_5fice_5fboundary',['atmos_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aaeff62295938d8d1a2b25f225afacf3e',1,'full_coupler_mod::coupler_components_type']]], + ['atmos_5fland_5fboundary',['atmos_land_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#abf0d670a022708f880f690bf99514b5f',1,'full_coupler_mod::coupler_components_type']]], + ['atmos_5floop',['atmos_loop',['../structfull__coupler__mod_1_1coupler__clock__type.html#a800fc6631253e7d5ad649145f999264c',1,'full_coupler_mod::coupler_clock_type']]], + ['atmos_5fmodel_5finit',['atmos_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a86349958610dea7035e2e00ec6a297fb',1,'full_coupler_mod::coupler_clock_type']]], + ['atmos_5fnpes',['atmos_npes',['../namespacefull__coupler__mod.html#a85adcfb2f6ef212cc2e6415f23f0a946',1,'full_coupler_mod']]], + ['atmos_5fnthreads',['atmos_nthreads',['../namespacefull__coupler__mod.html#a83263556a358d678e6777ca4765eb767',1,'full_coupler_mod']]], + ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]], + ['atmospheric',['atmospheric',['../namespaceatm__land__ice__flux__exchange__mod.html#a7ffb89a6f8abfb4180619cecf52ed7b0',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html new file mode 100644 index 00000000..f46154d8 --- /dev/null +++ b/docs/html/search/variables_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js new file mode 100644 index 00000000..ba518a4b --- /dev/null +++ b/docs/html/search/variables_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['b_5fstar',['b_star',['../namespaceflux__exchange__mod.html#aa9caedcc1bc69b6296dc5fef0c77a891',1,'flux_exchange_mod']]], + ['block_5fend',['block_end',['../namespaceatm__land__ice__flux__exchange__mod.html#af5376c2ef9475b25b0fe09811ec50950',1,'atm_land_ice_flux_exchange_mod']]], + ['block_5fstart',['block_start',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a4d0039fbafb9bcb71fbe0848710532',1,'atm_land_ice_flux_exchange_mod']]], + ['bound_5ftol',['bound_tol',['../namespaceatm__land__ice__flux__exchange__mod.html#a6e6f4ac592c8deee969b6832312e2cd5',1,'atm_land_ice_flux_exchange_mod::bound_tol()'],['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod::bound_tol()']]], + ['bulk_5fzq',['bulk_zq',['../namespacesurface__flux__mod.html#ab0430982abba672524b5a13c4b730647',1,'surface_flux_mod']]], + ['bulk_5fzt',['bulk_zt',['../namespacesurface__flux__mod.html#ac06e3e9bb1a504104ec21e0b7585e1aa',1,'surface_flux_mod']]], + ['bulk_5fzu',['bulk_zu',['../namespacesurface__flux__mod.html#ae9006d4cf180672ab7b529b22c3dbac8',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/variables_10.html b/docs/html/search/variables_10.html new file mode 100644 index 00000000..b62b717e --- /dev/null +++ b/docs/html/search/variables_10.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_10.js b/docs/html/search/variables_10.js new file mode 100644 index 00000000..0669c353 --- /dev/null +++ b/docs/html/search/variables_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['q_5fflux',['q_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd51467d1b4f9198a76130bbc6f91abe',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['q_5fsurf',['q_surf',['../namespaceflux__exchange__mod.html#afc62684e7d473718077c120c5ac6f6c0',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_11.html b/docs/html/search/variables_11.html new file mode 100644 index 00000000..2ce8561a --- /dev/null +++ b/docs/html/search/variables_11.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_11.js b/docs/html/search/variables_11.js new file mode 100644 index 00000000..2d057c23 --- /dev/null +++ b/docs/html/search/variables_11.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['radiation',['radiation',['../structfull__coupler__mod_1_1coupler__clock__type.html#adf8132dede10fbbb9ad678d829422b46',1,'full_coupler_mod::coupler_clock_type']]], + ['radiation_5fnthreads',['radiation_nthreads',['../namespacefull__coupler__mod.html#a3e853db33e426916924f2bb27d2f10a4',1,'full_coupler_mod']]], + ['raoult_5fsat_5fvap',['raoult_sat_vap',['../namespacesurface__flux__mod.html#a20457ec53d55f2819c2109515b92a79f',1,'surface_flux_mod']]], + ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a0201d6a1f3c4de84d4c5d25d7a6b84b9',1,'atm_land_ice_flux_exchange_mod']]], + ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a68840c3ed23ff9d95ffae81396ee893f',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], + ['regenclock',['regenclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a5ea8ad1958bb201b40dbba386178c8de',1,'atm_land_ice_flux_exchange_mod']]], + ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a56103b2cfc0a82f3303b9e20f25acdbe',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], + ['remap_5fmethod',['remap_method',['../namespaceatm__land__ice__flux__exchange__mod.html#a96ed2d0c9f780f120de2d1c2dd83dd09',1,'atm_land_ice_flux_exchange_mod']]], + ['restart_5finterval',['restart_interval',['../namespacefull__coupler__mod.html#ad7e959a3e2e3da70f34991150fa4711a',1,'full_coupler_mod']]], + ['rough_5fheat',['rough_heat',['../structice__model__mod_1_1ice__data__type.html#a2b0fc3f7a2b99a46539750bf685613cc',1,'ice_model_mod::ice_data_type']]], + ['rough_5fmoist',['rough_moist',['../structice__model__mod_1_1ice__data__type.html#a6dc2c978eee60e0396f5ada2d1740901',1,'ice_model_mod::ice_data_type']]], + ['rough_5fmom',['rough_mom',['../structice__model__mod_1_1ice__data__type.html#aca42b1c10d6f2e5d6f456d4efb33eb86',1,'ice_model_mod::ice_data_type']]], + ['rough_5fscheme_5focean',['rough_scheme_ocean',['../namespacesurface__flux__mod.html#a430407a9f1208154bcfacbd357e883fb',1,'surface_flux_mod']]], + ['roughness_5fice',['roughness_ice',['../namespaceice__model__mod.html#ad08a267cab9b24b3568fd86a3d50cd40',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/variables_12.html b/docs/html/search/variables_12.html new file mode 100644 index 00000000..bba5857f --- /dev/null +++ b/docs/html/search/variables_12.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_12.js b/docs/html/search/variables_12.js new file mode 100644 index 00000000..734592a4 --- /dev/null +++ b/docs/html/search/variables_12.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['s',['s',['../namespaceatm__land__ice__flux__exchange__mod.html#aff8e1c26822d0b79b15c4a11352394f4',1,'atm_land_ice_flux_exchange_mod']]], + ['scale_5fprecip_5f2d',['scale_precip_2d',['../namespaceatm__land__ice__flux__exchange__mod.html#aff59028b168f9a123112151e3f9c082b',1,'atm_land_ice_flux_exchange_mod::scale_precip_2d()'],['../namespaceflux__exchange__mod.html#ad4f0bf7fd2d4d737a0c90c919458ed6e',1,'flux_exchange_mod::scale_precip_2d()']]], + ['seconds',['seconds',['../namespacefull__coupler__mod.html#a0d752429e35e05d13912e2d320e94950',1,'full_coupler_mod']]], + ['set_5fice_5fsurface_5fexchange',['set_ice_surface_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#aa8e8fb7bc677dd49705a5b0ed54bd3c3',1,'full_coupler_mod::coupler_clock_type']]], + ['set_5fice_5fsurface_5ffast',['set_ice_surface_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a11a6b9563d30b684d5ef31a1599f7104',1,'full_coupler_mod::coupler_clock_type']]], + ['set_5fice_5fsurface_5fslow',['set_ice_surface_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab78c1f122e35a9b77e79cb0845b6b717',1,'full_coupler_mod::coupler_clock_type']]], + ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae18b3eb2f36a1ed733b54e1e5a34c552',1,'full_coupler_mod::coupler_clock_type']]], + ['sfcclock',['sfcclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a4afcbc6731e29417a8e91a70224c813c',1,'atm_land_ice_flux_exchange_mod']]], + ['slow_5fice_5focean_5fpelist',['slow_ice_ocean_pelist',['../namespaceice__ocean__flux__exchange__mod.html#a3b7a0952e69375784c15b6436be4c693',1,'ice_ocean_flux_exchange_mod']]], + ['slow_5fice_5fwith_5focean',['slow_ice_with_ocean',['../namespacefull__coupler__mod.html#aef0442d39d4bf3537b9295aee2ea2470',1,'full_coupler_mod']]], + ['specified',['specified',['../namespaceice__model__mod.html#a4cd185be5927217434e4c0f12c7025be',1,'ice_model_mod']]], + ['specified_5fice_5fthickness',['specified_ice_thickness',['../namespaceice__model__mod.html#a37d440034bece975f6373ba9abeb4cbc',1,'ice_model_mod']]], + ['sst_5fanom',['sst_anom',['../namespaceice__model__mod.html#a4051226a26d65f3be30185a85862107e',1,'ice_model_mod']]], + ['sst_5fmethod',['sst_method',['../namespaceice__model__mod.html#ae2b36fb788a968f3caf075c276bee97d',1,'ice_model_mod']]], + ['sw_5fflux',['sw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a2bc72919689b165986c3a6d953b19ab2',1,'ice_model_mod::atmos_ice_boundary_type']]] +]; diff --git a/docs/html/search/variables_13.html b/docs/html/search/variables_13.html new file mode 100644 index 00000000..c92cbcc3 --- /dev/null +++ b/docs/html/search/variables_13.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_13.js b/docs/html/search/variables_13.js new file mode 100644 index 00000000..765ca646 --- /dev/null +++ b/docs/html/search/variables_13.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['t_5fca',['t_ca',['../namespaceflux__exchange__mod.html#a9ca37680c8e8fcbf1c7cb165299cc6d5',1,'flux_exchange_mod']]], + ['t_5fflux',['t_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afa550fbb99363d6eb36e9df5612f7adc',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['t_5fsurf',['t_surf',['../structice__model__mod_1_1ice__data__type.html#a748d96d8afc6ec3efa88fe61b79bb5c5',1,'ice_model_mod::ice_data_type::t_surf()'],['../namespaceflux__exchange__mod.html#aa2ab2f31bbf1dffff5cd5dcb54b3fad3',1,'flux_exchange_mod::t_surf()']]], + ['tag',['tag',['../namespaceatm__land__ice__flux__exchange__mod.html#a4176031acaa85bc64a9ba4a7035b36ac',1,'atm_land_ice_flux_exchange_mod::tag()'],['../namespaceflux__exchange__mod.html#aba5f7ba78279ed6740597236c1930a65',1,'flux_exchange_mod::tag()']]], + ['tagname',['tagname',['../namespacesurface__flux__mod.html#a9a34cdd6148cf5dcdf01aa7020bf1973',1,'surface_flux_mod::tagname()'],['../namespaceice__model__mod.html#af2b3a99405cf45d0566a694b18b0c07b',1,'ice_model_mod::tagname()']]], + ['temp_5fice',['temp_ice',['../namespaceice__model__mod.html#a8916b1478604e2da7ecea14cf4dfdf20',1,'ice_model_mod']]], + ['temp_5fice_5ffreeze',['temp_ice_freeze',['../namespaceice__model__mod.html#a12903831181559c162e825549f139e7f',1,'ice_model_mod']]], + ['temp_5fsst',['temp_sst',['../namespaceice__model__mod.html#a04a20dcacf655c21e5f47206ae06f344',1,'ice_model_mod']]], + ['termination',['termination',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac68d174e845176ed37f58218a2b161d9',1,'full_coupler_mod::coupler_clock_type']]], + ['text',['text',['../namespacefull__coupler__mod.html#a481c6dc3126700e15926453bb0c98096',1,'full_coupler_mod']]], + ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ffa4143323bc877d98983dc83a6544c',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], + ['thickness',['thickness',['../structice__model__mod_1_1ice__data__type.html#a4fc960a59d3520d6acf290a76e0e246b',1,'ice_model_mod::ice_data_type']]], + ['thickness_5fmin',['thickness_min',['../namespaceice__model__mod.html#a753820dd4f1115554e58b0bdc566dd8d',1,'ice_model_mod']]], + ['time',['time',['../structice__model__mod_1_1ice__data__type.html#a4b225d644fe34ad3ccd00add6817f553',1,'ice_model_mod::ice_data_type']]], + ['time_5finit',['time_init',['../structice__model__mod_1_1ice__data__type.html#a911c3e51a65b58872eae6fdf3ca7baa2',1,'ice_model_mod::ice_data_type']]], + ['time_5fstep_5ffast',['time_step_fast',['../structice__model__mod_1_1ice__data__type.html#aaa44e5583639682ac142e6080eb8586a',1,'ice_model_mod::ice_data_type']]], + ['time_5fstep_5fslow',['time_step_slow',['../structice__model__mod_1_1ice__data__type.html#a4d819e4de12b4f25606af4210105ebd4',1,'ice_model_mod::ice_data_type']]], + ['timestep',['timestep',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ea2d3a3a0f6dcd849a0941e649808e4',1,'atm_land_ice_flux_exchange_mod']]], + ['tr_5ftable',['tr_table',['../namespaceatm__land__ice__flux__exchange__mod.html#ae81e1fb85dbf862e4cde596cc8c886f9',1,'atm_land_ice_flux_exchange_mod']]], + ['tr_5ftable_5fmap',['tr_table_map',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a5df9b039a007c0298c8f20581c5a6f',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_14.html b/docs/html/search/variables_14.html new file mode 100644 index 00000000..2c462043 --- /dev/null +++ b/docs/html/search/variables_14.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_14.js b/docs/html/search/variables_14.js new file mode 100644 index 00000000..82c2674c --- /dev/null +++ b/docs/html/search/variables_14.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['u_5fstar',['u_star',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6d9cd348045dcc00c5a4287662d90e54',1,'ice_model_mod::atmos_ice_boundary_type::u_star()'],['../namespaceflux__exchange__mod.html#a5f2703b2d725cae0b81f8a0c74a730fe',1,'flux_exchange_mod::u_star()']]], + ['uniform',['uniform',['../namespaceice__model__mod.html#a3fd7567f14a603db2374f95bd1f3c8ec',1,'ice_model_mod']]], + ['update_5fatmos_5fmodel_5fdown',['update_atmos_model_down',['../structfull__coupler__mod_1_1coupler__clock__type.html#a64f28aa652b93f94fe5724c5c4cdeefd',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fatmos_5fmodel_5fdynamics',['update_atmos_model_dynamics',['../structfull__coupler__mod_1_1coupler__clock__type.html#a8017a9be38d01b068dc4627b70bca1bd',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fatmos_5fmodel_5fstate',['update_atmos_model_state',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45294c1f238443b60c735e41aae82975',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fatmos_5fmodel_5fup',['update_atmos_model_up',['../structfull__coupler__mod_1_1coupler__clock__type.html#a209446238ce492535a508e7a7e2a2818',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fice_5fmodel_5ffast',['update_ice_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a59b5799e854311672c976074ebebba23',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fice_5fmodel_5fslow_5fexchange',['update_ice_model_slow_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae44965d709c9eecc19aacbc4cf25879a',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fice_5fmodel_5fslow_5ffast',['update_ice_model_slow_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#addddee033e22c3dc65be4a5561c7919e',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fice_5fmodel_5fslow_5fslow',['update_ice_model_slow_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5c87ab8c6abe1995dce0b6eb5f211855',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fland_5fmodel_5ffast',['update_land_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac2ee1ed8bc0f8b67d84e03f97275ee00',1,'full_coupler_mod::coupler_clock_type']]], + ['update_5fland_5fmodel_5fslow',['update_land_model_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac59f01b2ba937daed2124ee679909287',1,'full_coupler_mod::coupler_clock_type']]], + ['use_5fannual_5fice',['use_annual_ice',['../namespaceice__model__mod.html#a782cca47fdcd3876f98bf9733a4db5ab',1,'ice_model_mod']]], + ['use_5fannual_5fsst',['use_annual_sst',['../namespaceice__model__mod.html#aa0b9af1ad302c2a1ee36b791c83959c6',1,'ice_model_mod']]], + ['use_5fclimo_5fice',['use_climo_ice',['../namespaceice__model__mod.html#a49c6719259ca27e72d9237e3fd75ba10',1,'ice_model_mod']]], + ['use_5fclimo_5fsst',['use_climo_sst',['../namespaceice__model__mod.html#a4421462b5feb57f9e869908ff02baa84',1,'ice_model_mod']]], + ['use_5fexisting_5fgrid_5fspec',['use_existing_grid_spec',['../namespaceflux__exchange__mod.html#af340dcdf7b0c5c94fe4320ffda186de0',1,'flux_exchange_mod']]], + ['use_5fhyper_5fthread',['use_hyper_thread',['../namespacefull__coupler__mod.html#a1b451e1fd8ed76ad553334552917841e',1,'full_coupler_mod']]], + ['use_5flag_5ffluxes',['use_lag_fluxes',['../namespacefull__coupler__mod.html#a9a1c54998e22ffba7be908ad06c4695a',1,'full_coupler_mod']]], + ['use_5fmixing_5fratio',['use_mixing_ratio',['../namespacesurface__flux__mod.html#a9dd1f7954c70115612a940a78b0daa61',1,'surface_flux_mod']]], + ['use_5fu10_5fneutral',['use_u10_neutral',['../namespacesurface__flux__mod.html#a0dde12495da696d1c077ac6ecb7c6714',1,'surface_flux_mod']]], + ['use_5fvirtual_5ftemp',['use_virtual_temp',['../namespacesurface__flux__mod.html#a0fdcdb1d11f52c4fbe51fe6def24ea2b',1,'surface_flux_mod']]], + ['used',['used',['../namespaceflux__exchange__mod.html#acb6da04e26caeafaade68eaecd27a070',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_15.html b/docs/html/search/variables_15.html new file mode 100644 index 00000000..c86a5fd6 --- /dev/null +++ b/docs/html/search/variables_15.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_15.js b/docs/html/search/variables_15.js new file mode 100644 index 00000000..32ed7f21 --- /dev/null +++ b/docs/html/search/variables_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['version',['version',['../namespaceatm__land__ice__flux__exchange__mod.html#a7fee92e02a103e833b54331d52d76348',1,'atm_land_ice_flux_exchange_mod::version()'],['../namespaceflux__exchange__mod.html#adc32e303ec9e035ac2ba95080dce45be',1,'flux_exchange_mod::version()'],['../namespacesurface__flux__mod.html#a6ed27d1eda3e36cac58ac50b853d4906',1,'surface_flux_mod::version()'],['../namespaceice__model__mod.html#a24f5247c40b6091f3f17719d34b7f6cf',1,'ice_model_mod::version()']]] +]; diff --git a/docs/html/search/variables_16.html b/docs/html/search/variables_16.html new file mode 100644 index 00000000..f6bc6a05 --- /dev/null +++ b/docs/html/search/variables_16.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_16.js b/docs/html/search/variables_16.js new file mode 100644 index 00000000..4c448efe --- /dev/null +++ b/docs/html/search/variables_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wind',['wind',['../namespaceflux__exchange__mod.html#ac52397578086e5b8933fa0d7342191ac',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_17.html b/docs/html/search/variables_17.html new file mode 100644 index 00000000..6a71407b --- /dev/null +++ b/docs/html/search/variables_17.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_17.js b/docs/html/search/variables_17.js new file mode 100644 index 00000000..bf2bff44 --- /dev/null +++ b/docs/html/search/variables_17.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['x1_5fgrid_5fatm',['x1_grid_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a2cc89e69ab4f4a608b6a285b042d1f5b',1,'atm_land_ice_flux_exchange_mod']]], + ['x1_5fgrid_5fice',['x1_grid_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#af67e13f05b2640af8a6bf87f9c8957a6',1,'atm_land_ice_flux_exchange_mod']]], + ['x1_5fgrid_5flnd',['x1_grid_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a6b7909bb737f98c9541529d5dde197',1,'atm_land_ice_flux_exchange_mod']]], + ['x2_5fgrid_5fice',['x2_grid_ice',['../namespaceland__ice__flux__exchange__mod.html#ab0a6ceeb532eb1e603e101ab2786a97b',1,'land_ice_flux_exchange_mod']]], + ['x2_5fgrid_5flnd',['x2_grid_lnd',['../namespaceland__ice__flux__exchange__mod.html#ac1a5883b766d5e4bcaf49aa6deca63c6',1,'land_ice_flux_exchange_mod']]], + ['xmap_5frunoff',['xmap_runoff',['../namespaceland__ice__flux__exchange__mod.html#ac514720b654b8ab562fe5a30f85b8ad2',1,'land_ice_flux_exchange_mod']]], + ['xmap_5fsfc',['xmap_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#a060404036e66ff995a7bdef403eef326',1,'atm_land_ice_flux_exchange_mod']]], + ['xtype',['xtype',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a31f026572e538b841564b9b84b20a432',1,'ice_model_mod::atmos_ice_boundary_type']]] +]; diff --git a/docs/html/search/variables_18.html b/docs/html/search/variables_18.html new file mode 100644 index 00000000..9f6ccdde --- /dev/null +++ b/docs/html/search/variables_18.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_18.js b/docs/html/search/variables_18.js new file mode 100644 index 00000000..320cac47 --- /dev/null +++ b/docs/html/search/variables_18.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['z_5fref_5fheat',['z_ref_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a819d92621b4dcb540310588802b8adf9',1,'atm_land_ice_flux_exchange_mod::z_ref_heat()'],['../namespaceflux__exchange__mod.html#a67568d1d617e7c1be6dbe00d7be3f4cc',1,'flux_exchange_mod::z_ref_heat()']]], + ['z_5fref_5fmom',['z_ref_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a102b456a413634905a3287946d8d3789',1,'atm_land_ice_flux_exchange_mod::z_ref_mom()'],['../namespaceflux__exchange__mod.html#a2dea7a4b0778ca1121bda4c7c6be8a9b',1,'flux_exchange_mod::z_ref_mom()']]] +]; diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html new file mode 100644 index 00000000..15275b7a --- /dev/null +++ b/docs/html/search/variables_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js new file mode 100644 index 00000000..eadc4461 --- /dev/null +++ b/docs/html/search/variables_2.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['calendar',['calendar',['../namespacefull__coupler__mod.html#a18e3d16cb372a5f0f49e36687c7aeee9',1,'full_coupler_mod']]], + ['calendar_5ftype',['calendar_type',['../namespacefull__coupler__mod.html#a5cae24118f6f7671ff74206b3803868b',1,'full_coupler_mod']]], + ['ccc',['ccc',['../namespaceatm__land__ice__flux__exchange__mod.html#aedd101291e4737318da14ac51a2c07b0',1,'atm_land_ice_flux_exchange_mod::ccc()'],['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod::ccc()']]], + ['cd_5fm',['cd_m',['../namespaceflux__exchange__mod.html#acecf7a05415537c2ac395e6a68934628',1,'flux_exchange_mod']]], + ['cd_5ft',['cd_t',['../namespaceflux__exchange__mod.html#a53b62119a9798cdfef5cae59286254f5',1,'flux_exchange_mod']]], + ['check_5fstocks',['check_stocks',['../namespacefull__coupler__mod.html#a87ccc8af0ea38216b76cb914b641fa43',1,'full_coupler_mod']]], + ['cmax',['cmax',['../namespaceice__model__mod.html#afe86741fa7aa070accd891d14ae25b89',1,'ice_model_mod']]], + ['cmin',['cmin',['../namespaceice__model__mod.html#a069d9874b6c63980a473c3a2a93a338b',1,'ice_model_mod']]], + ['combined_5fice_5fand_5focean',['combined_ice_and_ocean',['../namespacefull__coupler__mod.html#aa59cb045fb5f6eaa4ffd5116ad640dc2',1,'full_coupler_mod']]], + ['components',['components',['../structfull__coupler__mod_1_1coupler__chksum__type.html#aea10b2e4867debe7c8c8b280087b6760',1,'full_coupler_mod::coupler_chksum_type']]], + ['concurrent',['concurrent',['../namespacefull__coupler__mod.html#a5ad3045bf25e7c03c1dda87b62216389',1,'full_coupler_mod']]], + ['concurrent_5fatmos',['concurrent_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#abf004a119113d8387dcdc51df916a2d4',1,'full_coupler_mod::coupler_clock_type']]], + ['concurrent_5fice',['concurrent_ice',['../namespacefull__coupler__mod.html#ad028fe6369495ea7e76623b4382d393d',1,'full_coupler_mod']]], + ['coszen',['coszen',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a8cdc94e786674735ea0794c091e25f25',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['cplclock',['cplclock',['../namespaceatm__land__ice__flux__exchange__mod.html#afc1f632c6fb9d2aba8f1bb0d3e5ff993',1,'atm_land_ice_flux_exchange_mod::cplclock()'],['../namespaceflux__exchange__mod.html#a55cfce099e27ac30a8a3e3c9f48849d8',1,'flux_exchange_mod::cplclock()'],['../namespaceland__ice__flux__exchange__mod.html#a6e80f85c3ad949322df68bfda49aeb9d',1,'land_ice_flux_exchange_mod::cplclock()']]], + ['cplocnclock',['cplocnclock',['../namespaceice__ocean__flux__exchange__mod.html#a5431df541452ace1e68a6dc62c8efa4a',1,'ice_ocean_flux_exchange_mod']]], + ['current_5fdate',['current_date',['../namespacefull__coupler__mod.html#ac79f6aa8c4ad045ee4a8bc7726853457',1,'full_coupler_mod']]] +]; diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html new file mode 100644 index 00000000..fbc36712 --- /dev/null +++ b/docs/html/search/variables_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js new file mode 100644 index 00000000..e161c12c --- /dev/null +++ b/docs/html/search/variables_3.js @@ -0,0 +1,47 @@ +var searchData= +[ + ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#af16f9f6655fc1f37a14e967618b66a6a',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], + ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a56c1b7e4d03b228479e25241a41085c4',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], + ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a674182b17c6173f4b76511bcee534c4c',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], + ['data',['data',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a0e638d4b8efef050d34bb16bb637e503',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['date_5finit',['date_init',['../namespacefull__coupler__mod.html#a224eb7b4334353b002163b32235c2c37',1,'full_coupler_mod']]], + ['days',['days',['../namespacefull__coupler__mod.html#a0b42e8ed5c43a06e46c947f90f60de2e',1,'full_coupler_mod']]], + ['debug_5fstocks',['debug_stocks',['../namespaceflux__exchange__mod.html#a85a4e48184ac3df1924a4da5b3678836',1,'flux_exchange_mod::debug_stocks()'],['../namespaceice__ocean__flux__exchange__mod.html#a09c87ee132e2cfd87a1ecda83787b5bd',1,'ice_ocean_flux_exchange_mod::debug_stocks()']]], + ['dedq_5fatm',['dedq_atm',['../namespaceflux__exchange__mod.html#a64be41e9f890fd04c831656e04dea02e',1,'flux_exchange_mod']]], + ['dedq_5fsurf',['dedq_surf',['../namespaceflux__exchange__mod.html#a772a31b28741e8b8245dfb15e15077bb',1,'flux_exchange_mod']]], + ['dedt',['dedt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a351c56250820f5e145465d8a684148df',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['dedt_5fsurf',['dedt_surf',['../namespaceflux__exchange__mod.html#a4416573f338299400a7bde3b33ecce6d',1,'flux_exchange_mod']]], + ['dhdt',['dhdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd3cad887715d9239eeb2f09f1121729',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['dhdt_5fatm',['dhdt_atm',['../namespaceflux__exchange__mod.html#ada94f4e7d52c502fd946201f090c5644',1,'flux_exchange_mod']]], + ['dhdt_5fsurf',['dhdt_surf',['../namespaceflux__exchange__mod.html#adda223e3f75af374428581666b973a69',1,'flux_exchange_mod']]], + ['diff',['diff',['../namespaceice__model__mod.html#a9930d4b7c4f36ba29c1494007ab9a5c4',1,'ice_model_mod']]], + ['direct',['direct',['../namespaceatm__land__ice__flux__exchange__mod.html#acd77c349aebc563e2a79a36b7c9728c7',1,'atm_land_ice_flux_exchange_mod::direct()'],['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod::direct()']]], + ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], + ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad202bbf87044b1eec5805f6875857910',1,'atm_land_ice_flux_exchange_mod::do_area_weighted_flux()'],['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], + ['do_5fatmos',['do_atmos',['../namespacefull__coupler__mod.html#ac5f115cf3ec7b2b595aee0857cabdf90',1,'full_coupler_mod']]], + ['do_5fchksum',['do_chksum',['../namespacefull__coupler__mod.html#a74ce4e2724ae9e0d2d9721cdbd9e56e2',1,'full_coupler_mod']]], + ['do_5fconcurrent_5fradiation',['do_concurrent_radiation',['../namespacefull__coupler__mod.html#a131c273c9c0e80eb8350cb6809dd4c04',1,'full_coupler_mod']]], + ['do_5fdebug',['do_debug',['../namespacefull__coupler__mod.html#a25b64a33d2e473ed4ea14076052d13d4',1,'full_coupler_mod']]], + ['do_5fendpoint_5fchksum',['do_endpoint_chksum',['../namespacefull__coupler__mod.html#aebb5148e8c1a97317a997848170c7bdc',1,'full_coupler_mod']]], + ['do_5fflux',['do_flux',['../namespacefull__coupler__mod.html#a9e75cc87d8a2a12446415c8e96020256',1,'full_coupler_mod']]], + ['do_5fforecast',['do_forecast',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5ba0610f8d66c3fea1c7f593aa87d2d',1,'atm_land_ice_flux_exchange_mod::do_forecast()'],['../namespaceflux__exchange__mod.html#a64ce07eb820491557e1c3a345afd4c26',1,'flux_exchange_mod::do_forecast()']]], + ['do_5fice',['do_ice',['../namespacefull__coupler__mod.html#a129ad943f269777da974e4b6237aca81',1,'full_coupler_mod']]], + ['do_5finit',['do_init',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d84d05097c722fd05883eee3826ccbe',1,'atm_land_ice_flux_exchange_mod::do_init()'],['../namespaceflux__exchange__mod.html#aadc375ceab862873a6185a4c206bec41',1,'flux_exchange_mod::do_init()']]], + ['do_5fiter_5fmonin_5fobukhov',['do_iter_monin_obukhov',['../namespacesurface__flux__mod.html#a6b3f019016c57aa487b01d3304625f41',1,'surface_flux_mod']]], + ['do_5fland',['do_land',['../namespacefull__coupler__mod.html#ae29c7dedacd07b876ab9a8c88f3fcb0a',1,'full_coupler_mod']]], + ['do_5fnetcdf_5frestart',['do_netcdf_restart',['../namespaceice__model__mod.html#a3b97dc02cd49d8cf87c2a01d893e7580',1,'ice_model_mod']]], + ['do_5focean',['do_ocean',['../namespacefull__coupler__mod.html#aa8de957c43ab106c9b82743daf3f8df6',1,'full_coupler_mod']]], + ['do_5fread_5fnml',['do_read_nml',['../namespaceflux__exchange__mod.html#a1b9cb50c37b77026396b80aa79d606d1',1,'flux_exchange_mod']]], + ['do_5frunoff',['do_runoff',['../namespaceflux__exchange__mod.html#ae37ea2fadd4c406881499469dca2fc3e',1,'flux_exchange_mod::do_runoff()'],['../namespaceland__ice__flux__exchange__mod.html#a22b7d08fbac612f0dc26cea5ca406d42',1,'land_ice_flux_exchange_mod::do_runoff()']]], + ['do_5fsimple',['do_simple',['../namespacesurface__flux__mod.html#a430e1f667917e25d8428390a7b4a3733',1,'surface_flux_mod']]], + ['domain',['domain',['../structice__model__mod_1_1ice__data__type.html#ae05a07368d37ccbc698fc6549fd69754',1,'ice_model_mod::ice_data_type']]], + ['drag_5fq',['drag_q',['../namespaceflux__exchange__mod.html#ada7c251b490f5d63b180b8743604b542',1,'flux_exchange_mod']]], + ['drdt',['drdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a4cf5b6717966554bc5d90949a87f5960',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], + ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], + ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], + ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], + ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], + ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], + ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html new file mode 100644 index 00000000..8067e67f --- /dev/null +++ b/docs/html/search/variables_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js new file mode 100644 index 00000000..149d20f5 --- /dev/null +++ b/docs/html/search/variables_4.js @@ -0,0 +1,54 @@ +var searchData= +[ + ['e_5fq_5fn',['e_q_n',['../namespaceflux__exchange__mod.html#af70762b2a29dd3351d264552a69f31fd',1,'flux_exchange_mod']]], + ['e_5ft_5fn',['e_t_n',['../namespaceflux__exchange__mod.html#a99c629c06c3a52e275521209439235fb',1,'flux_exchange_mod']]], + ['epsln',['epsln',['../namespaceatmos__ocean__fluxes__calc__mod.html#a55eb8d12d0b2764e81cecf9dff4dc4d8',1,'atmos_ocean_fluxes_calc_mod']]], + ['ex_5falbedo_5ffix',['ex_albedo_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a6ce3eaf605064a25d5cc1283e0e11276',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fnir_5fdif_5ffix',['ex_albedo_nir_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a328257f3efd36a27514c76d5cf96c379',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fnir_5fdir_5ffix',['ex_albedo_nir_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a104be61b1aa14a50d997b6993b5274c9',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fvis_5fdif_5ffix',['ex_albedo_vis_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aa10f4fb058cec37b5080747c92b38ccc',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5falbedo_5fvis_5fdir_5ffix',['ex_albedo_vis_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aad98ee1a168521649429409b391b9762',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5favail',['ex_avail',['../namespaceatm__land__ice__flux__exchange__mod.html#a58563af19b7f161084245415d793cae0',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fb_5fstar',['ex_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a0fd79bc7659c354908e2e6c325985544',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fcd_5fm',['ex_cd_m',['../namespaceatm__land__ice__flux__exchange__mod.html#a26e0b81f6ed8473af88bdec4dda23c4b',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fcd_5ft',['ex_cd_t',['../namespaceatm__land__ice__flux__exchange__mod.html#a1fc83cb6b523c05c9925f67c1bef77eb',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fcon_5fatm',['ex_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a972ea1bb3939a7b1fed1e698b182de88',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdedt_5fsurf',['ex_dedt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a50b141a6a27c86e08632eb459f39324b',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdfdtr_5fatm',['ex_dfdtr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a358eb5572e71492f7499d25dd3f20f98',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdfdtr_5fsurf',['ex_dfdtr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a166f151a722fa35f69705d680a644cff',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdrag_5fq',['ex_drag_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a06ac4914cb14f5ad8659d768f838b2ba',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdtaudv_5fatm',['ex_dtaudv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#ae3ae41712484a6829639b4cd4431dab1',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fe_5fq_5fn',['ex_e_q_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a86ed92f16c0fb112e38dd6873ca4cded',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fe_5ft_5fn',['ex_e_t_n',['../namespaceatm__land__ice__flux__exchange__mod.html#af597d6135733a6cb828cfe7a6b4189e2',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fe_5ftr_5fn',['ex_e_tr_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a62a8dccea77d1e67b22326bf6076d19f',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ff_5ft_5fdelt_5fn',['ex_f_t_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a0a94c710110b7899b37036cd305932ad',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ff_5ftr_5fdelt_5fn',['ex_f_tr_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a78022255bd2979bbd2d2ffe3a6217272',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5flw',['ex_flux_lw',['../namespaceatm__land__ice__flux__exchange__mod.html#af36a6c987c16a10e698b500396554130',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5ft',['ex_flux_t',['../namespaceatm__land__ice__flux__exchange__mod.html#ae9b13bb6dda1c9dd7d826fc60e495a7d',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5ftr',['ex_flux_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#a38000d1cf858d832de3570bbac68dc07',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5fu',['ex_flux_u',['../namespaceatm__land__ice__flux__exchange__mod.html#a5419fecfda33b11db1caab9042cf90c2',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fflux_5fv',['ex_flux_v',['../namespaceatm__land__ice__flux__exchange__mod.html#ac27b58d41879537c39e4b8bc6eac83f8',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fgas_5ffields_5fatm',['ex_gas_fields_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3266419d5fdecb4817fa06dad56056df',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_atm()'],['../namespaceflux__exchange__mod.html#a4cdfe4f5a23bfa6c4ccaffbd9ad047bb',1,'flux_exchange_mod::ex_gas_fields_atm()']]], + ['ex_5fgas_5ffields_5fice',['ex_gas_fields_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a07e2cfa8c59081b4aea8525879c304ab',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_ice()'],['../namespaceflux__exchange__mod.html#ad3a6680e20e123bfdf15e9690f52a4b8',1,'flux_exchange_mod::ex_gas_fields_ice()']]], + ['ex_5fgas_5ffluxes',['ex_gas_fluxes',['../namespaceatm__land__ice__flux__exchange__mod.html#a6c4da192e1adc05ce9f87b40e4e97b9b',1,'atm_land_ice_flux_exchange_mod::ex_gas_fluxes()'],['../namespaceflux__exchange__mod.html#a24a89015e7d63bf306c3c98bc0ecbd60',1,'flux_exchange_mod::ex_gas_fluxes()']]], + ['ex_5fland',['ex_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a2e2496900cb4751561b8111d9cd73fd3',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fold_5falbedo',['ex_old_albedo',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6f4b7e07f9aca6eb7fe2723915a2d40',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fp_5fsurf',['ex_p_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#af4fdc80a51f0145da4aa80a6317cc156',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fseawater',['ex_seawater',['../namespaceatm__land__ice__flux__exchange__mod.html#a7cc9b8d546d6589e3b2cf8a7ad6dd90c',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fslp',['ex_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#ae70d5c9a1a49eff91b2c14c1657103a6',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ft_5fca',['ex_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a11f41fbfe9ab8aa845f8337fb270f9d9',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ft_5fsurf',['ex_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b2ef838084f4e936de81bcf4acba447',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ft_5fsurf_5fmiz',['ex_t_surf_miz',['../namespaceatm__land__ice__flux__exchange__mod.html#a29071f5ae5e2772b510570b3834fe1b4',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ftr_5fcon_5fatm',['ex_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aa059a6e4b7a9798e0dddbd4d24638e11',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ftr_5fcon_5fref',['ex_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#af867f2e5e4235297c49e0c31889dc8a3',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5ftr_5fsurf',['ex_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a81a6ab0bad3a81d6b057c6aa2550148e',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fu_5fstar',['ex_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a3faddc34ad457fdb55533bead75ce7f0',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fwind',['ex_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#ada77a5490b1ad25fa3ca68f3f81b9548',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fz_5fatm',['ex_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a415a43eca092359dca12e46ac24bb0de',1,'atm_land_ice_flux_exchange_mod']]], + ['exch',['exch',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#af49ff646f6c5c341f07f96eb556ca3fb',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type']]] +]; diff --git a/docs/html/search/variables_5.html b/docs/html/search/variables_5.html new file mode 100644 index 00000000..7e95e946 --- /dev/null +++ b/docs/html/search/variables_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js new file mode 100644 index 00000000..b25aa50c --- /dev/null +++ b/docs/html/search/variables_5.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['f_5fq_5fdelt_5fn',['f_q_delt_n',['../namespaceflux__exchange__mod.html#ac1835374d54ce5533bf87bd388444d4d',1,'flux_exchange_mod']]], + ['f_5ft_5fdelt_5fn',['f_t_delt_n',['../namespaceflux__exchange__mod.html#afd64fcaa6261af605cf0704e813fe0bb',1,'flux_exchange_mod']]], + ['final_5fflux_5fcheck_5fstocks',['final_flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5042090eb7e46f01440a762fbe55dbf8',1,'full_coupler_mod::coupler_clock_type']]], + ['first_5fstatic',['first_static',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6ec5aeec04dfbc11e9db1d496b0d276',1,'atm_land_ice_flux_exchange_mod::first_static()'],['../namespaceflux__exchange__mod.html#a6a77207b65f30f8fe2db3dd6a3cf15ea',1,'flux_exchange_mod::first_static()']]], + ['flux_5fcheck_5fstocks',['flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6d6bae8bc10923df881c023689bdc5f3',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab01f08cbfcccf5bb51e6ce8fce17c2e5',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5fexchange_5finit',['flux_exchange_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6a246dc59781d37c851e4d1ae1583001',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5fice_5fto_5focean',['flux_ice_to_ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#af5781bd885d87fcde35d90052bf79f18',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5fice_5fto_5focean_5fstocks',['flux_ice_to_ocean_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1a1e05fc71dabaaf9ab21d3828a77814',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5fland_5fto_5fice',['flux_land_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45af9e3925664172d82d273acecdb38f',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5flw',['flux_lw',['../namespaceflux__exchange__mod.html#ab1ee2d625de074a36d8549bca04772f7',1,'flux_exchange_mod']]], + ['flux_5focean_5fto_5fice',['flux_ocean_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae50469d47f9a6f770da3d26660f81f05',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5fq',['flux_q',['../namespaceflux__exchange__mod.html#a3c4cfa64058f3cca59b7c804cfab4d83',1,'flux_exchange_mod']]], + ['flux_5ft',['flux_t',['../namespaceflux__exchange__mod.html#ae6259f1b9fad0af0d2744ebfc7a34313',1,'flux_exchange_mod']]], + ['flux_5fu',['flux_u',['../namespaceflux__exchange__mod.html#ae36d80622db4d5f45ecf4da1f00c5b25',1,'flux_exchange_mod']]], + ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3b44642440602473e03691b68b4cdf8f',1,'full_coupler_mod::coupler_clock_type']]], + ['flux_5fv',['flux_v',['../namespaceflux__exchange__mod.html#a9c5e8f07060938dfc699b598621056e1',1,'flux_exchange_mod']]], + ['fluxatmdnclock',['fluxatmdnclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a33f6639238a7502d880f163e1e2b9a7d',1,'atm_land_ice_flux_exchange_mod']]], + ['fluxatmupclock',['fluxatmupclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a17bc1bc0397c5f238246e540932eb068',1,'atm_land_ice_flux_exchange_mod']]], + ['fluxiceoceanclock',['fluxiceoceanclock',['../namespaceice__ocean__flux__exchange__mod.html#a9ba54588c93b81c1cc0264d121bd380a',1,'ice_ocean_flux_exchange_mod']]], + ['fluxlandiceclock',['fluxlandiceclock',['../namespaceland__ice__flux__exchange__mod.html#a1eea545bd73b38025dc9e06351309075',1,'land_ice_flux_exchange_mod']]], + ['fluxoceaniceclock',['fluxoceaniceclock',['../namespaceice__ocean__flux__exchange__mod.html#aee6869bc407ceb33d261653edd09ea11',1,'ice_ocean_flux_exchange_mod']]], + ['fname',['fname',['../namespaceice__model__mod.html#a4c4ab586477d470b99a4a9475810aee5',1,'ice_model_mod']]], + ['force_5fdate_5ffrom_5fnamelist',['force_date_from_namelist',['../namespacefull__coupler__mod.html#aa387f247b7f4014a0479a4c337f6b782',1,'full_coupler_mod']]], + ['fprec',['fprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a3f6cb46f2625a4b5f2c7fb9f94d62749',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['frac_5fprecip',['frac_precip',['../namespaceatm__land__ice__flux__exchange__mod.html#a1910f9c181f13ea0b3a92437a939452b',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_6.html b/docs/html/search/variables_6.html new file mode 100644 index 00000000..3d398e62 --- /dev/null +++ b/docs/html/search/variables_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js new file mode 100644 index 00000000..f80e258a --- /dev/null +++ b/docs/html/search/variables_6.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['gas_5ffluxes_5finitialized',['gas_fluxes_initialized',['../namespaceflux__exchange__mod.html#a5f1a23e53559d3a711cb36e25fd4ace4',1,'flux_exchange_mod']]], + ['gcp',['gcp',['../namespacesurface__flux__mod.html#a5336c38c479c44a9705f79ef59fa2884',1,'surface_flux_mod']]], + ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../structfull__coupler__mod_1_1coupler__clock__type.html#a99db2947c8e7611cc79452797333d3e2',1,'full_coupler_mod::coupler_clock_type']]], + ['glat',['glat',['../structice__model__mod_1_1ice__data__type.html#ae4c9474f058a55f93e5b105f25d2528b',1,'ice_model_mod::ice_data_type']]], + ['glat_5fbnd',['glat_bnd',['../structice__model__mod_1_1ice__data__type.html#a8260e71b9be3596e7114eaf50230b702',1,'ice_model_mod::ice_data_type']]], + ['glon',['glon',['../structice__model__mod_1_1ice__data__type.html#ac8053e87a05b5f99e3d2cb143a2366eb',1,'ice_model_mod::ice_data_type']]], + ['glon_5fbnd',['glon_bnd',['../structice__model__mod_1_1ice__data__type.html#a58d7dbe251c07a3cedfce9a0c4226b34',1,'ice_model_mod::ice_data_type']]], + ['gmask',['gmask',['../structice__model__mod_1_1ice__data__type.html#a6e1e34811a821de51ac334b32c07b76f',1,'ice_model_mod::ice_data_type']]], + ['gust_5fconst',['gust_const',['../namespacesurface__flux__mod.html#a9853d355943632ed31de22c32d34a196',1,'surface_flux_mod']]], + ['gust_5fmin',['gust_min',['../namespacesurface__flux__mod.html#a8562814e75fa9527bb9b50ba7ace548b',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/variables_7.html b/docs/html/search/variables_7.html new file mode 100644 index 00000000..7b791460 --- /dev/null +++ b/docs/html/search/variables_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_7.js b/docs/html/search/variables_7.js new file mode 100644 index 00000000..0abb8861 --- /dev/null +++ b/docs/html/search/variables_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['heat_5fcapacity_5focean',['heat_capacity_ocean',['../namespaceice__model__mod.html#a52aca51b46bce56cf693d9e3786a2d0b',1,'ice_model_mod']]], + ['hlars',['hlars',['../namespacesurface__flux__mod.html#a6322863889ffbe01bba7edbe650d6952',1,'surface_flux_mod']]], + ['hours',['hours',['../namespacefull__coupler__mod.html#a0ac62a1ec1db940ecdbe47abdbb3e708',1,'full_coupler_mod']]] +]; diff --git a/docs/html/search/variables_8.html b/docs/html/search/variables_8.html new file mode 100644 index 00000000..8ebc5f6b --- /dev/null +++ b/docs/html/search/variables_8.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_8.js b/docs/html/search/variables_8.js new file mode 100644 index 00000000..dcceeed4 --- /dev/null +++ b/docs/html/search/variables_8.js @@ -0,0 +1,118 @@ +var searchData= +[ + ['ice',['ice',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#ac1a8724b54f20f3bf0684dba8fadc5d4',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::ice()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a48075137a8491b3de7ac690b21573d3b',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a42c9994f342ece061d297854e712cf09',1,'full_coupler_mod::coupler_components_type::ice()']]], + ['ice_5fmask',['ice_mask',['../structice__model__mod_1_1ice__data__type.html#abb15bfd3d7483a4c6b18708e38622a9a',1,'ice_model_mod::ice_data_type']]], + ['ice_5fmethod',['ice_method',['../namespaceice__model__mod.html#a5e327ded7973d12fca26ee88ce90237c',1,'ice_model_mod']]], + ['ice_5fmodel_5finit',['ice_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1e316b944a9ba93a642d980ab0961bc8',1,'full_coupler_mod::coupler_clock_type']]], + ['ice_5fnpes',['ice_npes',['../namespacefull__coupler__mod.html#ad05b147d644b53ac6be5c56a85e80105',1,'full_coupler_mod']]], + ['ice_5focean_5fboundary',['ice_ocean_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#afd3de655114a2a4bb651f450d985724a',1,'full_coupler_mod::coupler_components_type']]], + ['ico2',['ico2',['../namespaceatm__land__ice__flux__exchange__mod.html#aaa5b59437ded633e8126dce056668b39',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5falbedo',['id_albedo',['../namespaceflux__exchange__mod.html#a15ea2ee065543703a1cea729eaa31f03',1,'flux_exchange_mod']]], + ['id_5falbedo_5fnir_5fdif',['id_albedo_nir_dif',['../namespaceflux__exchange__mod.html#a75e5d42b6aebc4f7dca8f38e3043d371',1,'flux_exchange_mod']]], + ['id_5falbedo_5fnir_5fdir',['id_albedo_nir_dir',['../namespaceflux__exchange__mod.html#a8a49ff3c234a55d9ad1fe7ed39122c35',1,'flux_exchange_mod']]], + ['id_5falbedo_5fvis_5fdif',['id_albedo_vis_dif',['../namespaceflux__exchange__mod.html#ae528350ad734a91157e635d611cc54b7',1,'flux_exchange_mod']]], + ['id_5falbedo_5fvis_5fdir',['id_albedo_vis_dir',['../namespaceflux__exchange__mod.html#a41fa678e5738fb09ebf2bf3707ed8312',1,'flux_exchange_mod']]], + ['id_5fb_5fstar',['id_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#ad67fe3e50cce306c7e0f750cbeb4a8b8',1,'atm_land_ice_flux_exchange_mod::id_b_star()'],['../namespaceflux__exchange__mod.html#a71e9c56b65499310582161139e863074',1,'flux_exchange_mod::id_b_star()']]], + ['id_5fco2_5fatm_5fdvmr',['id_co2_atm_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f117a52b85447649ab2611b915a406a',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fco2_5fbot',['id_co2_bot',['../namespaceatm__land__ice__flux__exchange__mod.html#abe4744b6ee8cc8e236be33b11254b857',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fco2_5fflux_5fpcair_5fatm',['id_co2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a24abe80c13032b56cb0127ef9fdbf801',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fco2_5fsurf_5fdvmr',['id_co2_surf_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a35ba5f517eb5645e5b4cf86d4ba72017',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fdel_5fh',['id_del_h',['../namespaceatm__land__ice__flux__exchange__mod.html#ad10f7e71514a2a732c1caff77cb96223',1,'atm_land_ice_flux_exchange_mod::id_del_h()'],['../namespaceflux__exchange__mod.html#ac70233f1c81d8583a6568077f91ccd52',1,'flux_exchange_mod::id_del_h()']]], + ['id_5fdel_5fm',['id_del_m',['../namespaceatm__land__ice__flux__exchange__mod.html#ade5a7d5ba4a4438a11355b302deff6d7',1,'atm_land_ice_flux_exchange_mod::id_del_m()'],['../namespaceflux__exchange__mod.html#a6901c7cd4e2848395f509a6abb46556a',1,'flux_exchange_mod::id_del_m()']]], + ['id_5fdel_5fq',['id_del_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a1308cfc339de1da97984284e9f9b24d8',1,'atm_land_ice_flux_exchange_mod::id_del_q()'],['../namespaceflux__exchange__mod.html#a8c9ce600b074f59620a578bc5d52c0c0',1,'flux_exchange_mod::id_del_q()']]], + ['id_5fdrag_5fheat',['id_drag_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a31719c7fb16b0dfb1c4d55b3efc31dea',1,'atm_land_ice_flux_exchange_mod::id_drag_heat()'],['../namespaceflux__exchange__mod.html#af5fd6664ced6089e4233d6e06d3e8aef',1,'flux_exchange_mod::id_drag_heat()']]], + ['id_5fdrag_5fmoist',['id_drag_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4c50286c97c254d06a959ba05f8dc54d',1,'atm_land_ice_flux_exchange_mod::id_drag_moist()'],['../namespaceflux__exchange__mod.html#ad6e99e3056f002fd30f99aa6192ebfd9',1,'flux_exchange_mod::id_drag_moist()']]], + ['id_5fdrag_5fmom',['id_drag_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#aecaecec0461747750aa7266f0f696f5d',1,'atm_land_ice_flux_exchange_mod::id_drag_mom()'],['../namespaceflux__exchange__mod.html#a920c704083ca9a0ae4df3f9470f75187',1,'flux_exchange_mod::id_drag_mom()']]], + ['id_5fevspsbl',['id_evspsbl',['../namespaceatm__land__ice__flux__exchange__mod.html#acd81f5188978df7ca167f58a63ce3b82',1,'atm_land_ice_flux_exchange_mod::id_evspsbl()'],['../namespaceflux__exchange__mod.html#aaacf35d1333efd04067972a8e15c5650',1,'flux_exchange_mod::id_evspsbl()']]], + ['id_5fevspsbl_5fg',['id_evspsbl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a315d7887dcb60530fec5af2fd6c232',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fgust',['id_gust',['../namespaceatm__land__ice__flux__exchange__mod.html#acea0f8f56aca9a40ee3d49f0ec71484f',1,'atm_land_ice_flux_exchange_mod::id_gust()'],['../namespaceflux__exchange__mod.html#ab351f867a6e2d370bce6b3a3a83d1e29',1,'flux_exchange_mod::id_gust()']]], + ['id_5fheight10m',['id_height10m',['../namespaceatm__land__ice__flux__exchange__mod.html#a94f9ecdff8925fd4a8d81902274c25f6',1,'atm_land_ice_flux_exchange_mod::id_height10m()'],['../namespaceflux__exchange__mod.html#ac769000a131617036cc85dd9eb61f431',1,'flux_exchange_mod::id_height10m()']]], + ['id_5fheight2m',['id_height2m',['../namespaceatm__land__ice__flux__exchange__mod.html#a725269d3ce9993c47458553c93c87fc8',1,'atm_land_ice_flux_exchange_mod::id_height2m()'],['../namespaceflux__exchange__mod.html#a4ec0c8f5928f2b7d672d8c2b3bad1aeb',1,'flux_exchange_mod::id_height2m()']]], + ['id_5fhfls',['id_hfls',['../namespaceatm__land__ice__flux__exchange__mod.html#a21634392fb749504bb491b63cb709a1b',1,'atm_land_ice_flux_exchange_mod::id_hfls()'],['../namespaceflux__exchange__mod.html#a110df167d79e3e96ebe3e0d5713bed32',1,'flux_exchange_mod::id_hfls()']]], + ['id_5fhfls_5fg',['id_hfls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#aa678b45e9a43a0fd9d834746c792c516',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fhfss',['id_hfss',['../namespaceatm__land__ice__flux__exchange__mod.html#ad953111f0333dad0442a995705b8c46a',1,'atm_land_ice_flux_exchange_mod::id_hfss()'],['../namespaceflux__exchange__mod.html#a600231bdd606fbfa02d1760b981942f1',1,'flux_exchange_mod::id_hfss()']]], + ['id_5fhfss_5fg',['id_hfss_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a27ced23c0e50767b78061d0b148c9138',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fhurs',['id_hurs',['../namespaceatm__land__ice__flux__exchange__mod.html#a68bfd465d951a65d6141047172a92488',1,'atm_land_ice_flux_exchange_mod::id_hurs()'],['../namespaceflux__exchange__mod.html#a7a4ad8765b8c543e740377def47bb6e6',1,'flux_exchange_mod::id_hurs()']]], + ['id_5fhuss',['id_huss',['../namespaceatm__land__ice__flux__exchange__mod.html#a5944abb0dd9dce2ae32c66c1bcd59bff',1,'atm_land_ice_flux_exchange_mod::id_huss()'],['../namespaceflux__exchange__mod.html#ae187f4114a25b952f1430db74c700b2c',1,'flux_exchange_mod::id_huss()']]], + ['id_5fhusslut_5fland',['id_husslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5a13546bf48109d63d08ca6e81a8298',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fice_5fmask',['id_ice_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#a08c7a67df8fbfdeb95f0b6de7da4b7a2',1,'atm_land_ice_flux_exchange_mod::id_ice_mask()'],['../namespaceflux__exchange__mod.html#a7491683ec01c03efff8da897b1a15cbb',1,'flux_exchange_mod::id_ice_mask()']]], + ['id_5fland_5fmask',['id_land_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#aa1777ab543636038ecaefc4656cdc91b',1,'atm_land_ice_flux_exchange_mod::id_land_mask()'],['../namespaceflux__exchange__mod.html#af93947881e267229684f12281ce0b700',1,'flux_exchange_mod::id_land_mask()']]], + ['id_5fo2_5fflux_5fpcair_5fatm',['id_o2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adeb499100d57339308ae4b676aeeaa93',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fp_5fatm',['id_p_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#af8a1447d56d28335055d81152496f7e8',1,'atm_land_ice_flux_exchange_mod::id_p_atm()'],['../namespaceflux__exchange__mod.html#a3c25e7f8bd1fa9d3b650e20671f1eb78',1,'flux_exchange_mod::id_p_atm()']]], + ['id_5fpsl',['id_psl',['../namespaceatm__land__ice__flux__exchange__mod.html#ab940b2bc9ff8b4339233507550d4a856',1,'atm_land_ice_flux_exchange_mod::id_psl()'],['../namespaceflux__exchange__mod.html#afb4061b5677fe090528f0a991abade69',1,'flux_exchange_mod::id_psl()']]], + ['id_5fq_5fatm',['id_q_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aae4693134893e6c8ddb01b0d566d3856',1,'atm_land_ice_flux_exchange_mod::id_q_atm()'],['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod::id_q_atm()']]], + ['id_5fq_5fflux',['id_q_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a1ed968c0f36351d58e7a035b37d01492',1,'atm_land_ice_flux_exchange_mod::id_q_flux()'],['../namespaceflux__exchange__mod.html#a8d635e999ae24402dd99af0657d706f9',1,'flux_exchange_mod::id_q_flux()']]], + ['id_5fq_5fflux_5fland',['id_q_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ab7c212b94ae379003d7dfed66892d059',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fq_5fref',['id_q_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a035a0187d04ed47f6b373ba207be09c9',1,'atm_land_ice_flux_exchange_mod::id_q_ref()'],['../namespaceflux__exchange__mod.html#a9b49a9b72bfb917602bf46899bbe3524',1,'flux_exchange_mod::id_q_ref()']]], + ['id_5fq_5fref_5fland',['id_q_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#af43c49c9a0d6969182207632bfc8e3bc',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fq_5fstar',['id_q_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a2b4c714ab247af5b460ed9255669c018',1,'atm_land_ice_flux_exchange_mod::id_q_star()'],['../namespaceflux__exchange__mod.html#ae58f4cc598d0dfc185b8dd9717ee5a2b',1,'flux_exchange_mod::id_q_star()']]], + ['id_5fq_5fsurf',['id_q_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a67d3af4db9c9b63bfef3c21ea17a7d9b',1,'atm_land_ice_flux_exchange_mod::id_q_surf()'],['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod::id_q_surf()']]], + ['id_5fr_5fflux',['id_r_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a082d4699eda42a0277b53b8d3b40b6',1,'atm_land_ice_flux_exchange_mod::id_r_flux()'],['../namespaceflux__exchange__mod.html#ab6d4c349f5231beb4e2f116f2f7a844d',1,'flux_exchange_mod::id_r_flux()']]], + ['id_5frh_5fref',['id_rh_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aa78a8745d3bd1c15c23ea56368a94f2f',1,'atm_land_ice_flux_exchange_mod::id_rh_ref()'],['../namespaceflux__exchange__mod.html#af2b89e05edbf76edca8d8b7056269ef8',1,'flux_exchange_mod::id_rh_ref()']]], + ['id_5frh_5fref_5fcmip',['id_rh_ref_cmip',['../namespaceatm__land__ice__flux__exchange__mod.html#ab3af14f2a483c630a814faa30860c2ea',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frh_5fref_5fland',['id_rh_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a00cbf5e8a16515a56470086456d55c2e',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frhs',['id_rhs',['../namespaceatm__land__ice__flux__exchange__mod.html#a27936d339a3e415b216d6035661892a1',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frls_5fg',['id_rls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#abb05e6ae4581739009fb99a559547aa4',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5frough_5fheat',['id_rough_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a53351de906d9937f58c947f0cefbe386',1,'atm_land_ice_flux_exchange_mod::id_rough_heat()'],['../namespaceflux__exchange__mod.html#a55b1524c31defe007752c0f6fdf7e8c7',1,'flux_exchange_mod::id_rough_heat()']]], + ['id_5frough_5fmoist',['id_rough_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4e8b49a2e77ff64c80bb3fad86a01a2d',1,'atm_land_ice_flux_exchange_mod::id_rough_moist()'],['../namespaceflux__exchange__mod.html#a2195dd29178389a35f5c6480e86c2284',1,'flux_exchange_mod::id_rough_moist()']]], + ['id_5frough_5fmom',['id_rough_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a72cf1a3badd620dbad6d518c0557288b',1,'atm_land_ice_flux_exchange_mod::id_rough_mom()'],['../namespaceflux__exchange__mod.html#a7993f2a7fa1177c8fa368a2ef3fb4202',1,'flux_exchange_mod::id_rough_mom()']]], + ['id_5frough_5fscale',['id_rough_scale',['../namespaceatm__land__ice__flux__exchange__mod.html#a574ec1820b8fa73246b4d22a8d8463e8',1,'atm_land_ice_flux_exchange_mod::id_rough_scale()'],['../namespaceflux__exchange__mod.html#a5b6579ddcab9c2d5a2d91f77044d7993',1,'flux_exchange_mod::id_rough_scale()']]], + ['id_5fsfcwind',['id_sfcwind',['../namespaceatm__land__ice__flux__exchange__mod.html#abd9c7a5f313f40f3081861bfaf73920a',1,'atm_land_ice_flux_exchange_mod::id_sfcwind()'],['../namespaceflux__exchange__mod.html#a62351e257923487b8b0b50965bd7bfff',1,'flux_exchange_mod::id_sfcwind()']]], + ['id_5fsftlf',['id_sftlf',['../namespaceatm__land__ice__flux__exchange__mod.html#a18eb844975de5e7b17c3567a618c4bdd',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fsic',['id_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#a5bdaa4cffa5cf0b9610310f2cf5e24c2',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fslp',['id_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#a886c3aaadd68115ac00fbbca174a0330',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5fatm',['id_t_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adf91d25ca4f1262291c52a6952587518',1,'atm_land_ice_flux_exchange_mod::id_t_atm()'],['../namespaceflux__exchange__mod.html#a7114bbe87d459e9b24ce483beae56faa',1,'flux_exchange_mod::id_t_atm()']]], + ['id_5ft_5fca',['id_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a188de7203c962fd3586ef6bd72cec660',1,'atm_land_ice_flux_exchange_mod::id_t_ca()'],['../namespaceflux__exchange__mod.html#a8a6c5aa71e364d4c9c5979431c6378d6',1,'flux_exchange_mod::id_t_ca()']]], + ['id_5ft_5fflux',['id_t_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad3158d6930465374ebb5efc909ed71ae',1,'atm_land_ice_flux_exchange_mod::id_t_flux()'],['../namespaceflux__exchange__mod.html#ae8045e9b24c1c27a4b7db7664ef3fab8',1,'flux_exchange_mod::id_t_flux()']]], + ['id_5ft_5fflux_5fland',['id_t_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a976b7c76bb82de73c7395b577352d658',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5focean',['id_t_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#ae2d24744019fc0a2a62bf54c7bd7eb65',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5fref',['id_t_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aca247d952550b7e796118645c0b33c47',1,'atm_land_ice_flux_exchange_mod::id_t_ref()'],['../namespaceflux__exchange__mod.html#a373b24bf412bc3c5d9a8cd4b6612fc10',1,'flux_exchange_mod::id_t_ref()']]], + ['id_5ft_5fref_5fland',['id_t_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d4c4bebe361cdb91ecea469fe537709',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ft_5fsurf',['id_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1581ecfbe3e1d1c5db56f7d76c3a333c',1,'atm_land_ice_flux_exchange_mod::id_t_surf()'],['../namespaceflux__exchange__mod.html#a534a80a92ec907c62067588d8092673c',1,'flux_exchange_mod::id_t_surf()']]], + ['id_5ftas',['id_tas',['../namespaceatm__land__ice__flux__exchange__mod.html#a1cf5d543f00afb609610ced045795cad',1,'atm_land_ice_flux_exchange_mod::id_tas()'],['../namespaceflux__exchange__mod.html#aff3b37b816a504ea71154f7aba0c815c',1,'flux_exchange_mod::id_tas()']]], + ['id_5ftas_5fg',['id_tas_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ae8beb56ee8877254cc9e82da3afe3e61',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftasl_5fg',['id_tasl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a5034052a9896f89edd3cace96fb1867b',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftaslut_5fland',['id_taslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aa6c2e87381d5a69838a6dc8a5289050e',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftauu',['id_tauu',['../namespaceatm__land__ice__flux__exchange__mod.html#a6fd3108da364faf6334b326a55a58a66',1,'atm_land_ice_flux_exchange_mod::id_tauu()'],['../namespaceflux__exchange__mod.html#a7414d25c7b0fd48301902707a9345394',1,'flux_exchange_mod::id_tauu()']]], + ['id_5ftauv',['id_tauv',['../namespaceatm__land__ice__flux__exchange__mod.html#a07d14896bb047c09cda836282fae11d7',1,'atm_land_ice_flux_exchange_mod::id_tauv()'],['../namespaceflux__exchange__mod.html#ae0c72caf4b2a0d276d0a989c694cb49c',1,'flux_exchange_mod::id_tauv()']]], + ['id_5fthv_5fatm',['id_thv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a9253b6caaa179be8ffdb91d1ba5b47',1,'atm_land_ice_flux_exchange_mod::id_thv_atm()'],['../namespaceflux__exchange__mod.html#a8bea74f845722bd6e52014a3f4e643fd',1,'flux_exchange_mod::id_thv_atm()']]], + ['id_5fthv_5fsurf',['id_thv_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#ad2e7d89158887b68df2311f4b5b130d3',1,'atm_land_ice_flux_exchange_mod::id_thv_surf()'],['../namespaceflux__exchange__mod.html#aa11efd287049dbe74600ca2d2295f2b2',1,'flux_exchange_mod::id_thv_surf()']]], + ['id_5ftos',['id_tos',['../namespaceatm__land__ice__flux__exchange__mod.html#ac86517a5ddecd4e180464b6cb80f3c99',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fatm',['id_tr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a82f48a9a822083769bcd48b427c7a749',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fatm',['id_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3700e57c52d7ba6ff7ce17de7a52f885',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fatm_5fland',['id_tr_con_atm_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aaf13f42049e3c17ce32b99e263ed19ca',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fref',['id_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#ab67aebeab080001bcc0b7df4ba4ce31d',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fcon_5fref_5fland',['id_tr_con_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b0582183221d7ffb1ba6e814cdd2bd5',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fflux',['id_tr_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ae4d870d3c8b829dfedf2d721c2ee86a9',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fflux_5fland',['id_tr_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a92413e2be778482c1557dc71b7dd6961',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fmol_5fflux',['id_tr_mol_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a66181f27aac0ec30c16ee64425623b57',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fmol_5fflux0',['id_tr_mol_flux0',['../namespaceatm__land__ice__flux__exchange__mod.html#af4c241a58e2d051452ea6ac2165b605c',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fmol_5fflux_5fland',['id_tr_mol_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a75dad27ee32489cb9f2d4075a92dfffd',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fref',['id_tr_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a70c3cec5c1122ca0574f74046683b098',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fref_5fland',['id_tr_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f83a35c04b7da9207d1495bd7146f06',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftr_5fsurf',['id_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a46e4ae0a6178db2e207ffcf331988480',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fts',['id_ts',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5e1ae03f135daaf040afa91f98e1e5e',1,'atm_land_ice_flux_exchange_mod::id_ts()'],['../namespaceflux__exchange__mod.html#a134d68c4787236f032c48a961d09092a',1,'flux_exchange_mod::id_ts()']]], + ['id_5fts_5fg',['id_ts_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ac65d88399ec0dfe03b94a8b9a7b86704',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5ftslsi',['id_tslsi',['../namespaceatm__land__ice__flux__exchange__mod.html#a6443ee7227f5bf53c818286e461ac2a9',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fu_5fatm',['id_u_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aeea07bd389a5d7d5d25b2ddd168470ca',1,'atm_land_ice_flux_exchange_mod::id_u_atm()'],['../namespaceflux__exchange__mod.html#abf03300672880ddaad472eea1faeb236',1,'flux_exchange_mod::id_u_atm()']]], + ['id_5fu_5fflux',['id_u_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a84f055774ddca433d9b90a59f20a50ef',1,'atm_land_ice_flux_exchange_mod::id_u_flux()'],['../namespaceflux__exchange__mod.html#af269baa55b882745d2f984d0f085beb9',1,'flux_exchange_mod::id_u_flux()']]], + ['id_5fu_5fref',['id_u_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a5aa53adef651f4cf2963f55ff5d8d87c',1,'atm_land_ice_flux_exchange_mod::id_u_ref()'],['../namespaceflux__exchange__mod.html#ad12cdd143dace24e7af1c884a46a3bfa',1,'flux_exchange_mod::id_u_ref()']]], + ['id_5fu_5fref_5fland',['id_u_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a68be019ceec5fef03392e9294bd375d7',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fu_5fstar',['id_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a04cb44e014dd62c2986151f5548f7db6',1,'atm_land_ice_flux_exchange_mod::id_u_star()'],['../namespaceflux__exchange__mod.html#adb2fb9af13a61e053c74c52351a0ba02',1,'flux_exchange_mod::id_u_star()']]], + ['id_5fuas',['id_uas',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a0903b6c77849c636e5bcb7a48cc7d8',1,'atm_land_ice_flux_exchange_mod::id_uas()'],['../namespaceflux__exchange__mod.html#a477616cc55f4ee5f3760c10888f3d374',1,'flux_exchange_mod::id_uas()']]], + ['id_5fv_5fatm',['id_v_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aef1643e965ae2f81eadd680b0d5f4131',1,'atm_land_ice_flux_exchange_mod::id_v_atm()'],['../namespaceflux__exchange__mod.html#a68a451013bb15a69769140c127a4f1ff',1,'flux_exchange_mod::id_v_atm()']]], + ['id_5fv_5fflux',['id_v_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9bcab79adb87b32242c758f4151912',1,'atm_land_ice_flux_exchange_mod::id_v_flux()'],['../namespaceflux__exchange__mod.html#a4be95982d13072bb6152ca72009d1acf',1,'flux_exchange_mod::id_v_flux()']]], + ['id_5fv_5fref',['id_v_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a18b22238a6a481b7b2a007db5effdeca',1,'atm_land_ice_flux_exchange_mod::id_v_ref()'],['../namespaceflux__exchange__mod.html#a923c6fcbe668932a0d13b41bf9341b4c',1,'flux_exchange_mod::id_v_ref()']]], + ['id_5fv_5fref_5fland',['id_v_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a457592f5e27b40421f6b8a6106b79a20',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fvas',['id_vas',['../namespaceatm__land__ice__flux__exchange__mod.html#a541cf261997ecd29d2ad0c634fbcb498',1,'atm_land_ice_flux_exchange_mod::id_vas()'],['../namespaceflux__exchange__mod.html#ae0b2e834866fd77ba28b5234cf3bc36d',1,'flux_exchange_mod::id_vas()']]], + ['id_5fwind',['id_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#a043764d83e681c67454ab8f073d5d6c1',1,'atm_land_ice_flux_exchange_mod::id_wind()'],['../namespaceflux__exchange__mod.html#ac6e943ac77ba00189aa554241e759ecc',1,'flux_exchange_mod::id_wind()']]], + ['id_5fwind_5fref',['id_wind_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a8e9f9f5b4c50074a1f6d5d6a31f32193',1,'atm_land_ice_flux_exchange_mod']]], + ['id_5fz_5fatm',['id_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aca2058bf928915842f05333644374d7c',1,'atm_land_ice_flux_exchange_mod::id_z_atm()'],['../namespaceflux__exchange__mod.html#abbf375285c9f5e2d5db969ca1fffd9df',1,'flux_exchange_mod::id_z_atm()']]], + ['ie',['ie',['../namespaceflux__exchange__mod.html#ad916086216cea5dd86d0a768e91277e5',1,'flux_exchange_mod::ie()'],['../namespaceice__model__mod.html#a52955f6a81d812155d158a6758b6b2cc',1,'ice_model_mod::ie()']]], + ['inh3',['inh3',['../namespaceatm__land__ice__flux__exchange__mod.html#a4fbbecb55a808875facb743fe7fc9c62',1,'atm_land_ice_flux_exchange_mod']]], + ['initialization',['initialization',['../structfull__coupler__mod_1_1coupler__clock__type.html#a887711f282582220de642e6197afe7d9',1,'full_coupler_mod::coupler_clock_type']]], + ['intermediate_5frestart',['intermediate_restart',['../structfull__coupler__mod_1_1coupler__clock__type.html#a69ddb73e9b3290abafbbe86953aba052',1,'full_coupler_mod::coupler_clock_type']]], + ['interp_5fmethod',['interp_method',['../namespaceice__model__mod.html#ab4315c6a6b5b71f50aa993e9dc7fbf1a',1,'ice_model_mod']]], + ['is',['is',['../namespaceflux__exchange__mod.html#a5428375ca50056a30e12ee7dbc0c7dc2',1,'flux_exchange_mod::is()'],['../namespaceice__model__mod.html#a6844bbf75e350f32240178937b96d01a',1,'ice_model_mod::is()']]], + ['isphum',['isphum',['../namespaceatm__land__ice__flux__exchange__mod.html#adfc9bfe512cf81e9cd3e334274123a53',1,'atm_land_ice_flux_exchange_mod::isphum()'],['../namespaceflux__exchange__mod.html#ae978fc7982a42ad1418142e430e2ce77',1,'flux_exchange_mod::isphum()']]] +]; diff --git a/docs/html/search/variables_9.html b/docs/html/search/variables_9.html new file mode 100644 index 00000000..12136613 --- /dev/null +++ b/docs/html/search/variables_9.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_9.js b/docs/html/search/variables_9.js new file mode 100644 index 00000000..debe5ef6 --- /dev/null +++ b/docs/html/search/variables_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['je',['je',['../namespaceflux__exchange__mod.html#ae3abc6014e04e4b7f5ab30116aa7ae49',1,'flux_exchange_mod::je()'],['../namespaceice__model__mod.html#a98cf069c605d7abc02cbcb9db7260e4d',1,'ice_model_mod::je()']]], + ['js',['js',['../namespaceflux__exchange__mod.html#a257678c48a666cc865cd3afe1d7629d6',1,'flux_exchange_mod::js()'],['../namespaceice__model__mod.html#abff82cb395c9a49b31e9de0bdb7e9c7c',1,'ice_model_mod::js()']]] +]; diff --git a/docs/html/search/variables_a.html b/docs/html/search/variables_a.html new file mode 100644 index 00000000..24819a37 --- /dev/null +++ b/docs/html/search/variables_a.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_a.js b/docs/html/search/variables_a.js new file mode 100644 index 00000000..f0469842 --- /dev/null +++ b/docs/html/search/variables_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kappa',['kappa',['../namespacesurface__flux__mod.html#a4d5ccaf8614f916474bf664f17c9f4c8',1,'surface_flux_mod']]] +]; diff --git a/docs/html/search/variables_b.html b/docs/html/search/variables_b.html new file mode 100644 index 00000000..b306931e --- /dev/null +++ b/docs/html/search/variables_b.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_b.js b/docs/html/search/variables_b.js new file mode 100644 index 00000000..d9e92a19 --- /dev/null +++ b/docs/html/search/variables_b.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['land',['land',['../structfull__coupler__mod_1_1coupler__components__type.html#ae4f68fd9975159d0ae93abf919a3d5b5',1,'full_coupler_mod::coupler_components_type']]], + ['land_5fice_5fatmos_5fboundary',['land_ice_atmos_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aca4da881da2617567eda2a8b23ebbada',1,'full_coupler_mod::coupler_components_type']]], + ['land_5fice_5fboundary',['land_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#a53a7034349f0b6b3c1f358be2eb1601d',1,'full_coupler_mod::coupler_components_type']]], + ['land_5fmodel_5finit',['land_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#ace4fb2da56ef545733a9bfb933290a40',1,'full_coupler_mod::coupler_clock_type']]], + ['land_5fnpes',['land_npes',['../namespacefull__coupler__mod.html#a113f970d00f5a7c71b1398aa9fe4757c',1,'full_coupler_mod']]], + ['lat',['lat',['../structice__model__mod_1_1ice__data__type.html#a9cf4e9c9c1e486a5a799ee5cb1c48d43',1,'ice_model_mod::ice_data_type']]], + ['lat_5fbnd',['lat_bnd',['../structice__model__mod_1_1ice__data__type.html#a36c7325aeae1c7d0004fbc72964d2171',1,'ice_model_mod::ice_data_type']]], + ['latent',['latent',['../namespaceice__model__mod.html#a4a4c3667067f2919a730828c40ad68ea',1,'ice_model_mod']]], + ['lnd',['lnd',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a904628deb2e0ba89bd85850cd843ab79',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a038bbdf0783f9e36ecf0a54c41bf3868',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd()']]], + ['lon',['lon',['../structice__model__mod_1_1ice__data__type.html#a3bdfb5cb70bc4018cfac10de236d3024',1,'ice_model_mod::ice_data_type']]], + ['lon_5fbnd',['lon_bnd',['../structice__model__mod_1_1ice__data__type.html#a0af0e531e34ee53f3a3d9eb8725d6a59',1,'ice_model_mod::ice_data_type']]], + ['lprec',['lprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6c8eb5d3a6acfaa10fd8b5a6d3b6add2',1,'ice_model_mod::atmos_ice_boundary_type']]], + ['lw_5fflux',['lw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6560d3ff7f3d6ace395dab365adcd691',1,'ice_model_mod::atmos_ice_boundary_type']]] +]; diff --git a/docs/html/search/variables_c.html b/docs/html/search/variables_c.html new file mode 100644 index 00000000..75709df8 --- /dev/null +++ b/docs/html/search/variables_c.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_c.js b/docs/html/search/variables_c.js new file mode 100644 index 00000000..5faf5ecc --- /dev/null +++ b/docs/html/search/variables_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['main',['main',['../structfull__coupler__mod_1_1coupler__clock__type.html#a394cd0ee0859684c4a23203039bcda0a',1,'full_coupler_mod::coupler_clock_type']]], + ['mask',['mask',['../structice__model__mod_1_1ice__data__type.html#ad4f7ac297bdae085c0454e08a09af5ea',1,'ice_model_mod::ice_data_type']]], + ['minutes',['minutes',['../namespacefull__coupler__mod.html#a9f5af682aa5da4ec7f798e696047b78b',1,'full_coupler_mod']]], + ['mixed_5flayer',['mixed_layer',['../namespaceice__model__mod.html#abc77bb043b104aeb0309a787d24219a0',1,'ice_model_mod']]], + ['mixed_5flayer_5focean',['mixed_layer_ocean',['../namespaceice__model__mod.html#adcb40b7a9c1a8531077d0f779e7ffebb',1,'ice_model_mod']]], + ['mod_5fname',['mod_name',['../namespaceatm__land__ice__flux__exchange__mod.html#a64ca82dba9df2806db81c86c57bd273d',1,'atm_land_ice_flux_exchange_mod::mod_name()'],['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a797fc4e4d632cba73982897b8b70563b',1,'atmos_ocean_dep_fluxes_calc_mod::mod_name()'],['../namespaceatmos__ocean__fluxes__calc__mod.html#ac9291db41140417d091d7d400d3764eb',1,'atmos_ocean_fluxes_calc_mod::mod_name()'],['../namespacefull__coupler__mod.html#acacf7a2f63b622973d2ea9911ec5b85c',1,'full_coupler_mod::mod_name()'],['../namespaceflux__exchange__mod.html#a303984a1be495e4592969bb87dc8bc64',1,'flux_exchange_mod::mod_name()']]], + ['module_5fis_5finitialized',['module_is_initialized',['../namespacesurface__flux__mod.html#a1c299d53b30a808f13cf0b0c5532041e',1,'surface_flux_mod::module_is_initialized()'],['../namespaceice__model__mod.html#aa482dd87dc4c239130f7b8f8f4e2aafd',1,'ice_model_mod::module_is_initialized()']]], + ['months',['months',['../namespacefull__coupler__mod.html#a37bda909017d0e8fc2b680c83e8b73df',1,'full_coupler_mod']]], + ['my_5fnblocks',['my_nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a22bfbb18d1071d20503054e5a56628c6',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_d.html b/docs/html/search/variables_d.html new file mode 100644 index 00000000..34c80a48 --- /dev/null +++ b/docs/html/search/variables_d.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_d.js b/docs/html/search/variables_d.js new file mode 100644 index 00000000..c6b74e0a --- /dev/null +++ b/docs/html/search/variables_d.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['n_5fatm_5ftr',['n_atm_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#abe8dd7812b9263217a2cd03e3f6e5986',1,'atm_land_ice_flux_exchange_mod::n_atm_tr()'],['../namespaceflux__exchange__mod.html#afaa78870fb65620312ae0d411f17be2f',1,'flux_exchange_mod::n_atm_tr()']]], + ['n_5fatm_5ftr_5ftot',['n_atm_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#a5af2113231a04ffd8e8378903ad15d64',1,'atm_land_ice_flux_exchange_mod::n_atm_tr_tot()'],['../namespaceflux__exchange__mod.html#a5117150ab7aea4fe891cf9320710bab3',1,'flux_exchange_mod::n_atm_tr_tot()']]], + ['n_5fexch_5ftr',['n_exch_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#ae09127cdff74b500a41ad951257752d4',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5fgex_5fatm2lnd',['n_gex_atm2lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a07eee36a20b3ce665902d55c9ee42b6e',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5fgex_5flnd2atm',['n_gex_lnd2atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a9c8f2e09598dbd8d3180f4b13d05f4fc',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5flnd_5ftr',['n_lnd_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#acbcc6065e05775564c83054c42332e84',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5flnd_5ftr_5ftot',['n_lnd_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#aaefc6b7257ff1938f8fa671e0361579b',1,'atm_land_ice_flux_exchange_mod']]], + ['n_5fxgrid_5frunoff',['n_xgrid_runoff',['../namespaceland__ice__flux__exchange__mod.html#a3faf3bf1354b5359565b04fd6e15812c',1,'land_ice_flux_exchange_mod']]], + ['n_5fxgrid_5fsfc',['n_xgrid_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec976f33bcf263db8ec930400f1b5ba6',1,'atm_land_ice_flux_exchange_mod']]], + ['nblocks',['nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b94aaeafe989d18f0e844a6a58018c7',1,'atm_land_ice_flux_exchange_mod::nblocks()'],['../namespaceflux__exchange__mod.html#a130755a7de1ad93566db2496df4f09a8',1,'flux_exchange_mod::nblocks()']]], + ['ncar_5focean_5fflux',['ncar_ocean_flux',['../namespacesurface__flux__mod.html#aa5809456b7f52a5f0a3cbbfee216d049',1,'surface_flux_mod']]], + ['ncar_5focean_5fflux_5fmultilevel',['ncar_ocean_flux_multilevel',['../namespacesurface__flux__mod.html#a7a001b64a7af7de49f02b3386b29207e',1,'surface_flux_mod']]], + ['ncar_5focean_5fflux_5forig',['ncar_ocean_flux_orig',['../namespacesurface__flux__mod.html#ab3f2c5dea16751feec4012925d936b42',1,'surface_flux_mod']]], + ['ni_5fatm',['ni_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3eca478a281245b2a1217b66917936b0',1,'atm_land_ice_flux_exchange_mod::ni_atm()'],['../namespaceflux__exchange__mod.html#a19ced8a2d78de1df319982dc8c9b2236',1,'flux_exchange_mod::ni_atm()']]], + ['niter_5fmonin_5fobukhov',['niter_monin_obukhov',['../namespacesurface__flux__mod.html#aedbfeff1dd91e58e9795a6c9d16d936a',1,'surface_flux_mod']]], + ['nj_5fatm',['nj_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f93e3452d718c2449d09cfee5174987',1,'atm_land_ice_flux_exchange_mod::nj_atm()'],['../namespaceflux__exchange__mod.html#af0530282de56c7247536aa084919fecc',1,'flux_exchange_mod::nj_atm()']]], + ['nk_5fice',['nk_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a4382a4653bce90fa50988dbf415ba7d9',1,'atm_land_ice_flux_exchange_mod']]], + ['no_5fneg_5fq',['no_neg_q',['../namespacesurface__flux__mod.html#a20a47247f850d8adec96fd50382ff353',1,'surface_flux_mod']]], + ['nxc_5fice',['nxc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a1a93322c5bc5013dead0189eb44cb92e',1,'atm_land_ice_flux_exchange_mod']]], + ['nxc_5flnd',['nxc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ab90bd2d918553aa753e88bc71217d1aa',1,'atm_land_ice_flux_exchange_mod']]], + ['nyc_5fice',['nyc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9d3bc11f1a73d8a019470b1769a156',1,'atm_land_ice_flux_exchange_mod']]], + ['nyc_5flnd',['nyc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ac39eb3c6c82add4a1d0d7e2857c5b431',1,'atm_land_ice_flux_exchange_mod']]] +]; diff --git a/docs/html/search/variables_e.html b/docs/html/search/variables_e.html new file mode 100644 index 00000000..4a1c8a61 --- /dev/null +++ b/docs/html/search/variables_e.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_e.js b/docs/html/search/variables_e.js new file mode 100644 index 00000000..ed212d3a --- /dev/null +++ b/docs/html/search/variables_e.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['ocean',['ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3a95715c24b8e5542888fe9a81aca7d1',1,'full_coupler_mod::coupler_clock_type::ocean()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a74f9b44545af10ad7ad03a348898904a',1,'full_coupler_mod::coupler_components_type::ocean()']]], + ['ocean_5fice_5fboundary',['ocean_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#ad4d3a8c1b24f4086f2bfb520c0c0318c',1,'full_coupler_mod::coupler_components_type']]], + ['ocean_5fmodel_5finit',['ocean_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a32806294f0cd7e55f1e6d43af344d256',1,'full_coupler_mod::coupler_clock_type']]], + ['ocean_5fnpes',['ocean_npes',['../namespacefull__coupler__mod.html#accc0041353ee69933a1c006634b73942',1,'full_coupler_mod']]], + ['ocean_5fnthreads',['ocean_nthreads',['../namespacefull__coupler__mod.html#ae25bda27d23bc9ebe366a56d7e78c333',1,'full_coupler_mod']]], + ['old_5fdtaudv',['old_dtaudv',['../namespacesurface__flux__mod.html#a4004ece732cedb0fd110aacdb208ff87',1,'surface_flux_mod']]], + ['or',['or',['../namespaceice__model__mod.html#a98e632790d8e25d7f46222f6387ec42e',1,'ice_model_mod']]] +]; diff --git a/docs/html/search/variables_f.html b/docs/html/search/variables_f.html new file mode 100644 index 00000000..cc86fb59 --- /dev/null +++ b/docs/html/search/variables_f.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_f.js b/docs/html/search/variables_f.js new file mode 100644 index 00000000..51de6c41 --- /dev/null +++ b/docs/html/search/variables_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['p_5fsurf',['p_surf',['../namespaceflux__exchange__mod.html#af050af83a95afbfc896f4861ba4cdd1d',1,'flux_exchange_mod']]], + ['partition_5ffprec_5ffrom_5flprec',['partition_fprec_from_lprec',['../namespaceatm__land__ice__flux__exchange__mod.html#a514ebadfb8dcb7ae7bf696f6e3eae11a',1,'atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec()'],['../namespaceflux__exchange__mod.html#a2a3ce00fb63574459609d6b3ad334acb',1,'flux_exchange_mod::partition_fprec_from_lprec()']]] +]; diff --git a/docs/html/simple_2coupler__main_8_f90.html b/docs/html/simple_2coupler__main_8_f90.html new file mode 100644 index 00000000..c5f56749 --- /dev/null +++ b/docs/html/simple_2coupler__main_8_f90.html @@ -0,0 +1,189 @@ + + + + + + + +FMS Coupler: simple/coupler_main.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    coupler_main.F90 File Reference
    +
    +
    +

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    +

    Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90 +More...

    + + + + + + + + + + + + + +

    +Functions/Subroutines

    program coupler_main
     
    subroutine coupler_init
     reads namelist and restart files, initializes all defined exchange grids and all boundary maps More...
     
    subroutine coupler_end
     Finalizes a run and writes restart files. More...
     
    subroutine coupler_chksum (id, timestep)
     Print out checksums for several atm, land and ice variables. More...
     
    +

    Detailed Description

    +

    Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90

    +

    Function/Subroutine Documentation

    + +

    ◆ coupler_chksum()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    subroutine coupler_main::coupler_chksum (character(len=*), intent(in) id,
    integer, intent(in) timestep 
    )
    +
    + +

    Print out checksums for several atm, land and ice variables.

    + +
    +
    + +

    ◆ coupler_end()

    + +
    +
    + + + + + + + +
    subroutine coupler_main::coupler_end ()
    +
    + +

    Finalizes a run and writes restart files.

    + +
    +
    + +

    ◆ coupler_init()

    + +
    +
    + + + + + + + +
    subroutine coupler_main::coupler_init ()
    +
    + +

    reads namelist and restart files, initializes all defined exchange grids and all boundary maps

    + +
    +
    + +

    ◆ coupler_main()

    + +
    +
    + + + + + + + +
    program coupler_main ()
    +
    + +
    +
    +
    + + + + diff --git a/docs/html/simple_2flux__exchange_8_f90.html b/docs/html/simple_2flux__exchange_8_f90.html new file mode 100644 index 00000000..a83fced3 --- /dev/null +++ b/docs/html/simple_2flux__exchange_8_f90.html @@ -0,0 +1,316 @@ + + + + + + + +FMS Coupler: simple/flux_exchange.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    flux_exchange.F90 File Reference
    +
    +
    +

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    +

    Routines to handle flux exchanges through exchange grids for the simple coupler. +More...

    + + + + +

    +Modules

    module  flux_exchange_mod
     
    + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Boundary)
     
    subroutine, public flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     
    subroutine, public flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Boundary)
     
    subroutine, public flux_exchange_mod::flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)
     
    subroutine flux_exchange_mod::read_namelist
     
    subroutine flux_exchange_mod::diag_field_init (Time, atmos_axes)
     
    subroutine, public flux_exchange_mod::flux_exchange_end (Atm)
     
    subroutine flux_exchange_mod::surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    character(len=14), parameter flux_exchange_mod::mod_name = 'flux'
     
    integer flux_exchange_mod::id_drag_moist
     
    integer flux_exchange_mod::id_drag_heat
     
    integer flux_exchange_mod::id_drag_mom
     
    integer flux_exchange_mod::id_rough_moist
     
    integer flux_exchange_mod::id_rough_heat
     
    integer flux_exchange_mod::id_rough_mom
     
    integer flux_exchange_mod::id_u_star
     
    integer flux_exchange_mod::id_b_star
     
    integer flux_exchange_mod::id_q_star
     
    integer flux_exchange_mod::id_u_flux
     
    integer flux_exchange_mod::id_v_flux
     
    integer flux_exchange_mod::id_t_surf
     
    integer flux_exchange_mod::id_t_flux
     
    integer flux_exchange_mod::id_q_flux
     
    integer flux_exchange_mod::id_r_flux
     
    integer flux_exchange_mod::id_t_atm
     
    integer flux_exchange_mod::id_u_atm
     
    integer flux_exchange_mod::id_v_atm
     
    integer flux_exchange_mod::id_wind
     
    integer flux_exchange_mod::id_thv_atm
     
    integer flux_exchange_mod::id_thv_surf
     
    integer flux_exchange_mod::id_t_ref
     
    integer flux_exchange_mod::id_rh_ref
     
    integer flux_exchange_mod::id_u_ref
     
    integer flux_exchange_mod::id_v_ref
     
    integer flux_exchange_mod::id_q_ref
     
    integer flux_exchange_mod::id_del_h
     
    integer flux_exchange_mod::id_del_m
     
    integer flux_exchange_mod::id_del_q
     
    integer flux_exchange_mod::id_albedo
     
    integer flux_exchange_mod::id_gust
     
    integer flux_exchange_mod::id_t_ca
     
    integer flux_exchange_mod::id_q_surf
     
    integer flux_exchange_mod::id_q_atm
     
    integer flux_exchange_mod::id_z_atm
     
    integer flux_exchange_mod::id_p_atm
     
    integer flux_exchange_mod::id_land_mask
     
    integer flux_exchange_mod::id_ice_mask
     
    integer flux_exchange_mod::id_rough_scale
     
    integer flux_exchange_mod::id_albedo_vis_dir
     
    integer flux_exchange_mod::id_albedo_nir_dir
     
    integer flux_exchange_mod::id_albedo_vis_dif
     
    integer flux_exchange_mod::id_albedo_nir_dif
     
    integer flux_exchange_mod::id_tas
     
    integer flux_exchange_mod::id_uas
     
    integer flux_exchange_mod::id_vas
     
    integer flux_exchange_mod::id_ts
     
    integer flux_exchange_mod::id_psl
     
    integer flux_exchange_mod::id_sfcwind
     
    integer flux_exchange_mod::id_tauu
     
    integer flux_exchange_mod::id_tauv
     
    integer flux_exchange_mod::id_hurs
     
    integer flux_exchange_mod::id_huss
     
    integer flux_exchange_mod::id_evspsbl
     
    integer flux_exchange_mod::id_hfls
     
    integer flux_exchange_mod::id_hfss
     
    integer flux_exchange_mod::id_height2m
     
    integer flux_exchange_mod::id_height10m
     
    logical flux_exchange_mod::first_static = .true.
     
    logical flux_exchange_mod::do_read_nml = .true.
     
    integer flux_exchange_mod::isphum
     
    integer flux_exchange_mod::n_atm_tr_tot
     
    integer flux_exchange_mod::n_atm_tr
     
    logical flux_exchange_mod::use_existing_grid_spec = .false.
     
    logical flux_exchange_mod::all_ocean = .true.
     
    logical flux_exchange_mod::all_land = .false.
     
    integer flux_exchange_mod::is
     
    integer flux_exchange_mod::ie
     
    integer flux_exchange_mod::js
     
    integer flux_exchange_mod::je
     
    real, dimension(:,:), allocatable flux_exchange_mod::t_surf
     
    real, dimension(:,:), allocatable flux_exchange_mod::t_ca
     
    real, dimension(:,:), allocatable flux_exchange_mod::q_surf
     
    real, dimension(:,:), allocatable flux_exchange_mod::p_surf
     
    real, dimension(:,:), allocatable flux_exchange_mod::e_t_n
     
    real, dimension(:,:), allocatable flux_exchange_mod::f_t_delt_n
     
    real, dimension(:,:), allocatable flux_exchange_mod::e_q_n
     
    real, dimension(:,:), allocatable flux_exchange_mod::f_q_delt_n
     
    real, dimension(:,:), allocatable flux_exchange_mod::dhdt_surf
     
    real, dimension(:,:), allocatable flux_exchange_mod::dedt_surf
     
    real, dimension(:,:), allocatable flux_exchange_mod::dedq_surf
     
    real, dimension(:,:), allocatable flux_exchange_mod::drdt_surf
     
    real, dimension(:,:), allocatable flux_exchange_mod::dhdt_atm
     
    real, dimension(:,:), allocatable flux_exchange_mod::dedq_atm
     
    real, dimension(:,:), allocatable flux_exchange_mod::flux_t
     
    real, dimension(:,:), allocatable flux_exchange_mod::flux_q
     
    real, dimension(:,:), allocatable flux_exchange_mod::flux_lw
     
    real, dimension(:,:), allocatable flux_exchange_mod::flux_u
     
    real, dimension(:,:), allocatable flux_exchange_mod::flux_v
     
    real, dimension(:,:), allocatable flux_exchange_mod::drag_q
     
    real, dimension(:,:), allocatable flux_exchange_mod::dtaudu_atm
     
    real, dimension(:,:), allocatable flux_exchange_mod::dtaudv_atm
     
    real, dimension(:,:), allocatable flux_exchange_mod::cd_t
     
    real, dimension(:,:), allocatable flux_exchange_mod::cd_m
     
    real, dimension(:,:), allocatable flux_exchange_mod::b_star
     
    real, dimension(:,:), allocatable flux_exchange_mod::u_star
     
    real, dimension(:,:), allocatable flux_exchange_mod::wind
     
    logical flux_exchange_mod::used
     
    +

    Detailed Description

    +

    Routines to handle flux exchanges through exchange grids for the simple coupler.

    +
    + + + + diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html new file mode 100644 index 00000000..f5af7e94 --- /dev/null +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html @@ -0,0 +1,87 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    atm_land_ice_flux_exchange_mod::tracer_exch_ind_type Member List
    +
    + + + + + diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html new file mode 100644 index 00000000..8995cd40 --- /dev/null +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html @@ -0,0 +1,177 @@ + + + + + + + +FMS Coupler: atm_land_ice_flux_exchange_mod::tracer_exch_ind_type Type Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    atm_land_ice_flux_exchange_mod::tracer_exch_ind_type Type Reference
    +
    +
    + + + + + + + + + + + +

    +Private Attributes

    integer exch = 0
     exchange grid index More...
     
    integer ice = 0
     ice model index More...
     
    integer lnd = 0
     land model index More...
     
    +

    Member Data Documentation

    + +

    ◆ exch

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::exch = 0
    +
    +private
    +
    + +

    exchange grid index

    + +
    +
    + +

    ◆ ice

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice = 0
    +
    +private
    +
    + +

    ice model index

    + +
    +
    + +

    ◆ lnd

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd = 0
    +
    +private
    +
    + +

    land model index

    + +
    +
    +
    The documentation for this type was generated from the following files: +
    + + + + diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html new file mode 100644 index 00000000..e906147b --- /dev/null +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html @@ -0,0 +1,87 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    atm_land_ice_flux_exchange_mod::tracer_ind_type Member List
    +
    + + + + + diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html new file mode 100644 index 00000000..b24a2933 --- /dev/null +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html @@ -0,0 +1,178 @@ + + + + + + + +FMS Coupler: atm_land_ice_flux_exchange_mod::tracer_ind_type Type Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    atm_land_ice_flux_exchange_mod::tracer_ind_type Type Reference
    +
    +
    + + + + + + + + + + + +

    +Private Attributes

    integer atm
     tracer index in atm model More...
     
    integer ice
     tracer index in ice model More...
     
    integer lnd
     tracer index in lnd model More...
     
    +

    Member Data Documentation

    + +

    ◆ atm

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::tracer_ind_type::atm
    +
    +private
    +
    + +

    tracer index in atm model

    + +
    +
    + +

    ◆ ice

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::tracer_ind_type::ice
    +
    +private
    +
    + +

    tracer index in ice model

    + +
    +
    + +

    ◆ lnd

    + +
    +
    + + + + + +
    + + + + +
    integer atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd
    +
    +private
    +
    + +

    tracer index in lnd model

    +

    indices of the tracer in the respective models

    + +
    +
    +
    The documentation for this type was generated from the following files: +
    + + + + diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html new file mode 100644 index 00000000..4f2cf614 --- /dev/null +++ b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html @@ -0,0 +1,92 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    full_coupler_mod::coupler_chksum_type Member List
    +
    + + + + + diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html new file mode 100644 index 00000000..659c27b8 --- /dev/null +++ b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html @@ -0,0 +1,280 @@ + + + + + + + +FMS Coupler: full_coupler_mod::coupler_chksum_type Type Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    full_coupler_mod::coupler_chksum_type Type Reference
    +
    +
    + +

    The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. + More...

    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    procedure, public initialize_coupler_chksum_obj
     associates the pointers above to model components More...
     
    procedure, public get_components_obj
     subroutine to retrieve the requested component of an object of this type More...
     
    procedure, public get_atmos_ice_land_ocean_chksums
     subroutine to compute chksums for atmos - ocean More...
     
    procedure, public get_atmos_ice_land_chksums
     subroutine to compute chksums for atmos_ice_land More...
     
    procedure, public get_slow_ice_chksums
     subroutine to compute chskums for slow_ice More...
     
    procedure, public get_ocean_chksums
     subroutine to compute chksums for ocean More...
     
    procedure, public get_coupler_chksums
     subroutine to compute chksums for select fields More...
     
    + + + +

    +Private Attributes

    type(coupler_components_type), pointer components
     
    +

    Detailed Description

    +

    The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components.

    +

    Member Function/Subroutine Documentation

    + +

    ◆ get_atmos_ice_land_chksums()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums ()
    +
    + +

    subroutine to compute chksums for atmos_ice_land

    + +
    +
    + +

    ◆ get_atmos_ice_land_ocean_chksums()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums ()
    +
    + +

    subroutine to compute chksums for atmos - ocean

    + +
    +
    + +

    ◆ get_components_obj()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_chksum_type::get_components_obj ()
    +
    + +

    subroutine to retrieve the requested component of an object of this type

    + +
    +
    + +

    ◆ get_coupler_chksums()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_chksum_type::get_coupler_chksums ()
    +
    + +

    subroutine to compute chksums for select fields

    + +
    +
    + +

    ◆ get_ocean_chksums()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_chksum_type::get_ocean_chksums ()
    +
    + +

    subroutine to compute chksums for ocean

    + +
    +
    + +

    ◆ get_slow_ice_chksums()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums ()
    +
    + +

    subroutine to compute chskums for slow_ice

    + +
    +
    + +

    ◆ initialize_coupler_chksum_obj()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj ()
    +
    + +

    associates the pointers above to model components

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ components

    + +
    +
    + + + + + +
    + + + + +
    type(coupler_components_type), pointer full_coupler_mod::coupler_chksum_type::components
    +
    +private
    +
    + +
    +
    +
    The documentation for this type was generated from the following file: +
    + + + + diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html new file mode 100644 index 00000000..b909fcd9 --- /dev/null +++ b/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html @@ -0,0 +1,122 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    full_coupler_mod::coupler_clock_type Member List
    +
    +
    + +

    This is the complete list of members for full_coupler_mod::coupler_clock_type, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    atmfull_coupler_mod::coupler_clock_typeprivate
    atmos_loopfull_coupler_mod::coupler_clock_typeprivate
    atmos_model_initfull_coupler_mod::coupler_clock_typeprivate
    atmos_tracer_driver_gather_datafull_coupler_mod::coupler_clock_typeprivate
    concurrent_atmosfull_coupler_mod::coupler_clock_typeprivate
    final_flux_check_stocksfull_coupler_mod::coupler_clock_typeprivate
    flux_check_stocksfull_coupler_mod::coupler_clock_typeprivate
    flux_down_from_atmosfull_coupler_mod::coupler_clock_typeprivate
    flux_exchange_initfull_coupler_mod::coupler_clock_typeprivate
    flux_ice_to_oceanfull_coupler_mod::coupler_clock_typeprivate
    flux_ice_to_ocean_stocksfull_coupler_mod::coupler_clock_typeprivate
    flux_land_to_icefull_coupler_mod::coupler_clock_typeprivate
    flux_ocean_to_icefull_coupler_mod::coupler_clock_typeprivate
    flux_up_to_atmosfull_coupler_mod::coupler_clock_typeprivate
    generate_sfc_xgridfull_coupler_mod::coupler_clock_typeprivate
    ice_model_initfull_coupler_mod::coupler_clock_typeprivate
    initializationfull_coupler_mod::coupler_clock_typeprivate
    intermediate_restartfull_coupler_mod::coupler_clock_typeprivate
    land_model_initfull_coupler_mod::coupler_clock_typeprivate
    mainfull_coupler_mod::coupler_clock_typeprivate
    oceanfull_coupler_mod::coupler_clock_typeprivate
    ocean_model_initfull_coupler_mod::coupler_clock_typeprivate
    radiationfull_coupler_mod::coupler_clock_typeprivate
    set_ice_surface_exchangefull_coupler_mod::coupler_clock_typeprivate
    set_ice_surface_fastfull_coupler_mod::coupler_clock_typeprivate
    set_ice_surface_slowfull_coupler_mod::coupler_clock_typeprivate
    sfc_boundary_layerfull_coupler_mod::coupler_clock_typeprivate
    terminationfull_coupler_mod::coupler_clock_typeprivate
    update_atmos_model_downfull_coupler_mod::coupler_clock_typeprivate
    update_atmos_model_dynamicsfull_coupler_mod::coupler_clock_typeprivate
    update_atmos_model_statefull_coupler_mod::coupler_clock_typeprivate
    update_atmos_model_upfull_coupler_mod::coupler_clock_typeprivate
    update_ice_model_fastfull_coupler_mod::coupler_clock_typeprivate
    update_ice_model_slow_exchangefull_coupler_mod::coupler_clock_typeprivate
    update_ice_model_slow_fastfull_coupler_mod::coupler_clock_typeprivate
    update_ice_model_slow_slowfull_coupler_mod::coupler_clock_typeprivate
    update_land_model_fastfull_coupler_mod::coupler_clock_typeprivate
    update_land_model_slowfull_coupler_mod::coupler_clock_typeprivate
    + + + + diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html new file mode 100644 index 00000000..70e245a6 --- /dev/null +++ b/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html @@ -0,0 +1,1009 @@ + + + + + + + +FMS Coupler: full_coupler_mod::coupler_clock_type Type Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    full_coupler_mod::coupler_clock_type Type Reference
    +
    +
    + +

    coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. + More...

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Private Attributes

    integer initialization
     
    integer main
     
    integer generate_sfc_xgrid
     
    integer flux_ocean_to_ice
     
    integer flux_ice_to_ocean
     
    integer atm
     
    integer atmos_loop
     
    integer atmos_tracer_driver_gather_data
     
    integer sfc_boundary_layer
     
    integer update_atmos_model_dynamics
     
    integer update_atmos_model_down
     
    integer flux_down_from_atmos
     
    integer update_land_model_fast
     
    integer update_ice_model_fast
     
    integer flux_up_to_atmos
     
    integer update_atmos_model_up
     
    integer radiation
     
    integer concurrent_atmos
     
    integer update_atmos_model_state
     
    integer update_land_model_slow
     
    integer flux_land_to_ice
     
    integer set_ice_surface_fast
     
    integer update_ice_model_slow_fast
     
    integer set_ice_surface_slow
     
    integer update_ice_model_slow_slow
     
    integer flux_ice_to_ocean_stocks
     
    integer set_ice_surface_exchange
     
    integer update_ice_model_slow_exchange
     
    integer ocean
     
    integer flux_check_stocks
     
    integer intermediate_restart
     
    integer final_flux_check_stocks
     
    integer termination
     
    integer atmos_model_init
     
    integer land_model_init
     
    integer ice_model_init
     
    integer ocean_model_init
     
    integer flux_exchange_init
     
    +

    Detailed Description

    +

    coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main.

    +

    Member Data Documentation

    + +

    ◆ atm

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::atm
    +
    +private
    +
    + +
    +
    + +

    ◆ atmos_loop

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::atmos_loop
    +
    +private
    +
    + +
    +
    + +

    ◆ atmos_model_init

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::atmos_model_init
    +
    +private
    +
    + +
    +
    + +

    ◆ atmos_tracer_driver_gather_data

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::atmos_tracer_driver_gather_data
    +
    +private
    +
    + +
    +
    + +

    ◆ concurrent_atmos

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::concurrent_atmos
    +
    +private
    +
    + +
    +
    + +

    ◆ final_flux_check_stocks

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::final_flux_check_stocks
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_check_stocks

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_check_stocks
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_down_from_atmos

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_down_from_atmos
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_exchange_init

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_exchange_init
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_ice_to_ocean

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_ice_to_ocean_stocks

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean_stocks
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_land_to_ice

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_land_to_ice
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_ocean_to_ice

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_ocean_to_ice
    +
    +private
    +
    + +
    +
    + +

    ◆ flux_up_to_atmos

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::flux_up_to_atmos
    +
    +private
    +
    + +
    +
    + +

    ◆ generate_sfc_xgrid

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::generate_sfc_xgrid
    +
    +private
    +
    + +
    +
    + +

    ◆ ice_model_init

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::ice_model_init
    +
    +private
    +
    + +
    +
    + +

    ◆ initialization

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::initialization
    +
    +private
    +
    + +
    +
    + +

    ◆ intermediate_restart

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::intermediate_restart
    +
    +private
    +
    + +
    +
    + +

    ◆ land_model_init

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::land_model_init
    +
    +private
    +
    + +
    +
    + +

    ◆ main

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::main
    +
    +private
    +
    + +
    +
    + +

    ◆ ocean

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::ocean
    +
    +private
    +
    + +
    +
    + +

    ◆ ocean_model_init

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::ocean_model_init
    +
    +private
    +
    + +
    +
    + +

    ◆ radiation

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::radiation
    +
    +private
    +
    + +
    +
    + +

    ◆ set_ice_surface_exchange

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::set_ice_surface_exchange
    +
    +private
    +
    + +
    +
    + +

    ◆ set_ice_surface_fast

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::set_ice_surface_fast
    +
    +private
    +
    + +
    +
    + +

    ◆ set_ice_surface_slow

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::set_ice_surface_slow
    +
    +private
    +
    + +
    +
    + +

    ◆ sfc_boundary_layer

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::sfc_boundary_layer
    +
    +private
    +
    + +
    +
    + +

    ◆ termination

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::termination
    +
    +private
    +
    + +
    +
    + +

    ◆ update_atmos_model_down

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_atmos_model_down
    +
    +private
    +
    + +
    +
    + +

    ◆ update_atmos_model_dynamics

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_atmos_model_dynamics
    +
    +private
    +
    + +
    +
    + +

    ◆ update_atmos_model_state

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_atmos_model_state
    +
    +private
    +
    + +
    +
    + +

    ◆ update_atmos_model_up

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_atmos_model_up
    +
    +private
    +
    + +
    +
    + +

    ◆ update_ice_model_fast

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_ice_model_fast
    +
    +private
    +
    + +
    +
    + +

    ◆ update_ice_model_slow_exchange

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_exchange
    +
    +private
    +
    + +
    +
    + +

    ◆ update_ice_model_slow_fast

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_fast
    +
    +private
    +
    + +
    +
    + +

    ◆ update_ice_model_slow_slow

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_slow
    +
    +private
    +
    + +
    +
    + +

    ◆ update_land_model_fast

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_land_model_fast
    +
    +private
    +
    + +
    +
    + +

    ◆ update_land_model_slow

    + +
    +
    + + + + + +
    + + + + +
    integer full_coupler_mod::coupler_clock_type::update_land_model_slow
    +
    +private
    +
    + +
    +
    +
    The documentation for this type was generated from the following file: +
    + + + + diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html new file mode 100644 index 00000000..feafd1d5 --- /dev/null +++ b/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html @@ -0,0 +1,96 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    full_coupler_mod::coupler_components_type Member List
    +
    + + + + + diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type.html new file mode 100644 index 00000000..18f282bd --- /dev/null +++ b/docs/html/structfull__coupler__mod_1_1coupler__components__type.html @@ -0,0 +1,408 @@ + + + + + + + +FMS Coupler: full_coupler_mod::coupler_components_type Type Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    full_coupler_mod::coupler_components_type Type Reference
    +
    +
    + + + + + + + +

    +Public Member Functions

    procedure, public initialize_coupler_components_obj
     
    procedure, public get_component
     subroutine to retrieve the requested component of an object of this type More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Private Attributes

    type(atmos_data_type), pointer atm
     pointer to Atm More...
     
    type(land_data_type), pointer land
     pointer to Land More...
     
    type(ice_data_type), pointer ice
     pointer to Ice More...
     
    type(ocean_public_type), pointer ocean
     pointer to Ocean More...
     
    type(land_ice_atmos_boundary_type), pointer land_ice_atmos_boundary
     pointer to Land_ice_atmos_boundary More...
     
    type(atmos_land_boundary_type), pointer atmos_land_boundary
     pointer to Atmos_land_boundary More...
     
    type(atmos_ice_boundary_type), pointer atmos_ice_boundary
     pointer to Atmos_ice_boundary More...
     
    type(land_ice_boundary_type), pointer land_ice_boundary
     pointer to Land_ice_boundary More...
     
    type(ice_ocean_boundary_type), pointer ice_ocean_boundary
     pointer to Ice_ocean_boundary More...
     
    type(ocean_ice_boundary_type), pointer ocean_ice_boundary
     pointer to Ocean_ice_boundary More...
     
    +

    Member Function/Subroutine Documentation

    + +

    ◆ get_component()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_components_type::get_component ()
    +
    + +

    subroutine to retrieve the requested component of an object of this type

    + +
    +
    + +

    ◆ initialize_coupler_components_obj()

    + +
    +
    + + + + + + + +
    procedure, public full_coupler_mod::coupler_components_type::initialize_coupler_components_obj ()
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ atm

    + +
    +
    + + + + + +
    + + + + +
    type(atmos_data_type), pointer full_coupler_mod::coupler_components_type::atm
    +
    +private
    +
    + +

    pointer to Atm

    + +
    +
    + +

    ◆ atmos_ice_boundary

    + +
    +
    + + + + + +
    + + + + +
    type(atmos_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_ice_boundary
    +
    +private
    +
    + +

    pointer to Atmos_ice_boundary

    + +
    +
    + +

    ◆ atmos_land_boundary

    + +
    +
    + + + + + +
    + + + + +
    type(atmos_land_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_land_boundary
    +
    +private
    +
    + +

    pointer to Atmos_land_boundary

    + +
    +
    + +

    ◆ ice

    + +
    +
    + + + + + +
    + + + + +
    type(ice_data_type), pointer full_coupler_mod::coupler_components_type::ice
    +
    +private
    +
    + +

    pointer to Ice

    + +
    +
    + +

    ◆ ice_ocean_boundary

    + +
    +
    + + + + + +
    + + + + +
    type(ice_ocean_boundary_type), pointer full_coupler_mod::coupler_components_type::ice_ocean_boundary
    +
    +private
    +
    + +

    pointer to Ice_ocean_boundary

    + +
    +
    + +

    ◆ land

    + +
    +
    + + + + + +
    + + + + +
    type(land_data_type), pointer full_coupler_mod::coupler_components_type::land
    +
    +private
    +
    + +

    pointer to Land

    + +
    +
    + +

    ◆ land_ice_atmos_boundary

    + +
    +
    + + + + + +
    + + + + +
    type(land_ice_atmos_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_atmos_boundary
    +
    +private
    +
    + +

    pointer to Land_ice_atmos_boundary

    + +
    +
    + +

    ◆ land_ice_boundary

    + +
    +
    + + + + + +
    + + + + +
    type(land_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_boundary
    +
    +private
    +
    + +

    pointer to Land_ice_boundary

    + +
    +
    + +

    ◆ ocean

    + +
    +
    + + + + + +
    + + + + +
    type(ocean_public_type), pointer full_coupler_mod::coupler_components_type::ocean
    +
    +private
    +
    + +

    pointer to Ocean

    + +
    +
    + +

    ◆ ocean_ice_boundary

    + +
    +
    + + + + + +
    + + + + +
    type(ocean_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::ocean_ice_boundary
    +
    +private
    +
    + +

    pointer to Ocean_ice_boundary

    + +
    +
    +
    The documentation for this type was generated from the following file: +
    + + + + diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html new file mode 100644 index 00000000..7b5d6c30 --- /dev/null +++ b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html @@ -0,0 +1,97 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ice_model_mod::atmos_ice_boundary_type Member List
    +
    + + + + + diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html new file mode 100644 index 00000000..db936881 --- /dev/null +++ b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html @@ -0,0 +1,404 @@ + + + + + + + +FMS Coupler: ice_model_mod::atmos_ice_boundary_type Type Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ice_model_mod::atmos_ice_boundary_type Type Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Private Attributes

    real, dimension(:,:), pointer u_star =>NULL()
     
    real, dimension(:,:), pointer t_flux =>NULL()
     
    real, dimension(:,:), pointer q_flux =>NULL()
     
    real, dimension(:,:), pointer lw_flux =>NULL()
     
    real, dimension(:,:), pointer sw_flux =>NULL()
     
    real, dimension(:,:), pointer lprec =>NULL()
     
    real, dimension(:,:), pointer fprec =>NULL()
     
    real, dimension(:,:), pointer dhdt =>NULL()
     
    real, dimension(:,:), pointer dedt =>NULL()
     
    real, dimension(:,:), pointer drdt =>NULL()
     
    real, dimension(:,:), pointer coszen =>NULL()
     
    real, dimension(:,:), pointer data =>NULL()
     
    integer xtype
     
    +

    Member Data Documentation

    + +

    ◆ coszen

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::coszen =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ data

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::data =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ dedt

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dedt =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ dhdt

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dhdt =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ drdt

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::drdt =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ fprec

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::fprec =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ lprec

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lprec =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ lw_flux

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lw_flux =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ q_flux

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::q_flux =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ sw_flux

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::sw_flux =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ t_flux

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::t_flux =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ u_star

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::u_star =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ xtype

    + +
    +
    + + + + + +
    + + + + +
    integer ice_model_mod::atmos_ice_boundary_type::xtype
    +
    +private
    +
    + +
    +
    +
    The documentation for this type was generated from the following file: +
    + + + + diff --git a/docs/html/structice__model__mod_1_1ice__data__type-members.html b/docs/html/structice__model__mod_1_1ice__data__type-members.html new file mode 100644 index 00000000..f130ef8c --- /dev/null +++ b/docs/html/structice__model__mod_1_1ice__data__type-members.html @@ -0,0 +1,110 @@ + + + + + + + +FMS Coupler: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ice_model_mod::ice_data_type Member List
    +
    + + + + + diff --git a/docs/html/structice__model__mod_1_1ice__data__type.html b/docs/html/structice__model__mod_1_1ice__data__type.html new file mode 100644 index 00000000..0223fec8 --- /dev/null +++ b/docs/html/structice__model__mod_1_1ice__data__type.html @@ -0,0 +1,716 @@ + + + + + + + +FMS Coupler: ice_model_mod::ice_data_type Type Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ice_model_mod::ice_data_type Type Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Private Attributes

    type(fmsmppdomain2d), pointer domain
     
    real, dimension(:,:), pointer glon_bnd =>NULL()
     
    real, dimension(:,:), pointer glat_bnd =>NULL()
     
    real, dimension(:,:), pointer lon_bnd =>NULL()
     
    real, dimension(:,:), pointer lat_bnd =>NULL()
     
    real, dimension(:,:), pointer glon =>NULL()
     
    real, dimension(:,:), pointer glat =>NULL()
     
    real, dimension(:,:), pointer lon =>NULL()
     
    real, dimension(:,:), pointer lat =>NULL()
     
    logical, dimension(:,:), pointer gmask =>NULL()
     
    logical, dimension(:,:), pointer mask =>NULL()
     
    logical, dimension(:,:), pointer ice_mask =>NULL()
     
    real, dimension(:,:), pointer t_surf =>NULL()
     
    real, dimension(:,:), pointer albedo =>NULL()
     
    real, dimension(:,:), pointer albedo_vis_dir =>NULL()
     
    real, dimension(:,:), pointer albedo_nir_dir =>NULL()
     
    real, dimension(:,:), pointer albedo_vis_dif =>NULL()
     
    real, dimension(:,:), pointer albedo_nir_dif =>NULL()
     
    real, dimension(:,:), pointer rough_mom =>NULL()
     
    real, dimension(:,:), pointer rough_heat =>NULL()
     
    real, dimension(:,:), pointer rough_moist =>NULL()
     
    real, dimension(:,:), pointer thickness =>NULL()
     
    type(fmstime_type) time_init
     
    type(fmstime_type) time
     
    type(fmstime_type) time_step_fast
     
    type(fmstime_type) time_step_slow
     
    +

    Member Data Documentation

    + +

    ◆ albedo

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ albedo_nir_dif

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dif =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ albedo_nir_dir

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dir =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ albedo_vis_dif

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dif =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ albedo_vis_dir

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dir =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ domain

    + +
    +
    + + + + + +
    + + + + +
    type(fmsmppdomain2d), pointer ice_model_mod::ice_data_type::domain
    +
    +private
    +
    + +
    +
    + +

    ◆ glat

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ glat_bnd

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat_bnd =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ glon

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ glon_bnd

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon_bnd =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ gmask

    + +
    +
    + + + + + +
    + + + + +
    logical, dimension(:,:), pointer ice_model_mod::ice_data_type::gmask =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ ice_mask

    + +
    +
    + + + + + +
    + + + + +
    logical, dimension(:,:), pointer ice_model_mod::ice_data_type::ice_mask =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ lat

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ lat_bnd

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat_bnd =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ lon

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ lon_bnd

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon_bnd =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ mask

    + +
    +
    + + + + + +
    + + + + +
    logical, dimension(:,:), pointer ice_model_mod::ice_data_type::mask =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ rough_heat

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_heat =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ rough_moist

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_moist =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ rough_mom

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_mom =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ t_surf

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::t_surf =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ thickness

    + +
    +
    + + + + + +
    + + + + +
    real, dimension(:,:), pointer ice_model_mod::ice_data_type::thickness =>NULL()
    +
    +private
    +
    + +
    +
    + +

    ◆ time

    + +
    +
    + + + + + +
    + + + + +
    type (fmstime_type) ice_model_mod::ice_data_type::time
    +
    +private
    +
    + +
    +
    + +

    ◆ time_init

    + +
    +
    + + + + + +
    + + + + +
    type (fmstime_type) ice_model_mod::ice_data_type::time_init
    +
    +private
    +
    + +
    +
    + +

    ◆ time_step_fast

    + +
    +
    + + + + + +
    + + + + +
    type (fmstime_type) ice_model_mod::ice_data_type::time_step_fast
    +
    +private
    +
    + +
    +
    + +

    ◆ time_step_slow

    + +
    +
    + + + + + +
    + + + + +
    type (fmstime_type) ice_model_mod::ice_data_type::time_step_slow
    +
    +private
    +
    + +
    +
    +
    The documentation for this type was generated from the following file: +
    + + + + diff --git a/docs/html/surface__flux_8_f90.html b/docs/html/surface__flux_8_f90.html new file mode 100644 index 00000000..368c740a --- /dev/null +++ b/docs/html/surface__flux_8_f90.html @@ -0,0 +1,202 @@ + + + + + + + +FMS Coupler: shared/surface_flux.F90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    surface_flux.F90 File Reference
    +
    +
    +

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    +

    Handles calculation of fluxes on the exchange grids, see module page for more information. +More...

    + + + + + +

    +Data Types

    interface  surface_flux_mod::surface_flux
     For the calculation of fluxes on the exchange grids. More...
     
    + + + + +

    +Modules

    module  surface_flux_mod
     Module for the calculation of fluxes on the exchange grids.
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine surface_flux_mod::surface_flux_1d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    subroutine surface_flux_mod::surface_flux_0d (t_atm_0, q_atm_0, u_atm_0, v_atm_0, p_atm_0, z_atm_0, p_surf_0, t_surf_0, t_ca_0, q_surf_0, u_surf_0, v_surf_0, rough_mom_0, rough_heat_0, rough_moist_0, rough_scale_0, gust_0, flux_t_0, flux_q_0, flux_r_0, flux_u_0, flux_v_0, cd_m_0, cd_t_0, cd_q_0, w_atm_0, u_star_0, b_star_0, q_star_0, thv_atm_0, thv_surf_0, dhdt_surf_0, dedt_surf_0, dedq_surf_0, drdt_surf_0, dhdt_atm_0, dedq_atm_0, dtaudu_atm_0, dtaudv_atm_0, dt, land_0, seawater_0, avail_0)
     
    subroutine surface_flux_mod::surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
     
    subroutine, public surface_flux_mod::surface_flux_init
     Initialization of the surface flux module–reads the nml. More...
     
    subroutine surface_flux_mod::ncar_ocean_fluxes (u_del, t, ts, q, qs, z, avail, cd, ch, ce, ustar, bstar)
     Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
     
    subroutine surface_flux_mod::ncar_ocean_fluxes_multilevel (u_del, t, ts, q, qs, zu, zt, zq, avail, cd, ch, ce, ustar, bstar)
     Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
     
    subroutine surface_flux_mod::iter_monin_obukhov_ocean (z_atm, u_atm, v_atm, w_atm, thv_atm, q_atm, u_surf, v_surf, thv_surf, q_surf0, rough_mom, rough_heat, rough_moist, cd_m, cd_t, cd_q, u_star, b_star, avail, seawater)
     Update air-sea flux variables to be consistent with the concurrent atmospheric states. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    character(len= *), parameter surface_flux_mod::version = '$Id$'
     
    character(len= *), parameter surface_flux_mod::tagname = '$Name$'
     
    logical surface_flux_mod::module_is_initialized = .false.
     
    real, parameter surface_flux_mod::d622 = rdgas/rvgas
     
    real, parameter surface_flux_mod::d378 = 1.-d622
     
    real, parameter surface_flux_mod::hlars = hlv/rvgas
     
    real, parameter surface_flux_mod::gcp = grav/cp_air
     
    real, parameter surface_flux_mod::kappa = rdgas/cp_air
     
    real surface_flux_mod::d608 = d378/d622
     
    character(len=32) surface_flux_mod::rough_scheme_ocean
     ocean roughness length scheme to be read from ocean_rough_nml More...
     
    logical surface_flux_mod::no_neg_q = .false.
     If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0. More...
     
    logical surface_flux_mod::use_virtual_temp = .true.
     If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp. More...
     
    logical surface_flux_mod::alt_gustiness = .false.
     An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const. More...
     
    logical surface_flux_mod::old_dtaudv = .false.
     The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency. More...
     
    logical surface_flux_mod::use_mixing_ratio = .false.
     An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). More...
     
    real surface_flux_mod::gust_const = 1.0
     Constant for alternative gustiness calculation. More...
     
    real surface_flux_mod::gust_min = 0.0
     Minimum gustiness used when alt_gustiness is .FALSE. More...
     
    logical surface_flux_mod::ncar_ocean_flux = .false.
     Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. More...
     
    logical surface_flux_mod::ncar_ocean_flux_orig = .false.
     Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. More...
     
    logical surface_flux_mod::ncar_ocean_flux_multilevel = .false.
     Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum. More...
     
    logical surface_flux_mod::do_iter_monin_obukhov = .false.
     If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star. More...
     
    logical surface_flux_mod::use_u10_neutral = .false.
     If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist. More...
     
    real surface_flux_mod::bulk_zu = 10.
     Reference height for wind speed (meters) More...
     
    real surface_flux_mod::bulk_zt = 10.
     Reference height for atm temperature (meters) More...
     
    real surface_flux_mod::bulk_zq = 10.
     Reference height for atm humidity (meters) More...
     
    logical surface_flux_mod::raoult_sat_vap = .false.
     Reduce saturation vapor pressure to account for seawater. More...
     
    logical surface_flux_mod::do_simple = .false.
     
    integer surface_flux_mod::niter_monin_obukhov = 5
     iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge More...
     
    +

    Detailed Description

    +

    Handles calculation of fluxes on the exchange grids, see module page for more information.

    +
    + + + + diff --git a/docs/html/surface_flux_config.html b/docs/html/surface_flux_config.html new file mode 100644 index 00000000..c243bd6f --- /dev/null +++ b/docs/html/surface_flux_config.html @@ -0,0 +1,104 @@ + + + + + + + +FMS Coupler: Surface Flux Configuration + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    Surface Flux Configuration
    +
    +
    +

    surface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Variable Name Type Default Value Description
    no_neg_q logical .FALSE. If q_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.
    use_virtual_temp logical .TRUE. If true, use virtual potential temp to calculate the stability of the surface layer. if false, use potential temp.
    alt_gustiness logical .FALSE. An alternative formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations, with the bound equal to gust_const.
    old_dtaudv logical .FALSE. The derivative of surface wind stress w.r.t. the zonal wind and meridional wind are approximated by the same tendency.
    use_mixing_ratio logical .FALSE. An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes).
    gust_const real 1.0 Constant for alternative gustiness calculation.
    gust_min real 0.0 Minimum gustiness used when alt_gustiness = false.
    ncar_ocean_flux logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004.
    ncar_ocean_flux_orig logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments.
    raoult_sat_vap logical .FALSE. Reduce saturation vapor pressures to account for seawater salinity.
    do_simple logical .FALSE. </table
    +
    + + + + diff --git a/docs/html/use__am3__only_8f90.html b/docs/html/use__am3__only_8f90.html new file mode 100644 index 00000000..a3a276a0 --- /dev/null +++ b/docs/html/use__am3__only_8f90.html @@ -0,0 +1,162 @@ + + + + + + + +FMS Coupler: full/delete/use_am3_only.f90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    use_am3_only.f90 File Reference
    +
    +
    + +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice. +More...

    + + + + + + + + +

    +Data Types

    type  atm_land_ice_flux_exchange_mod::tracer_ind_type
     
    type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
     
    interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
     
    + + + +

    +Modules

    module  atm_land_ice_flux_exchange_mod
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    + + + + + + + + + + + + +

    +Variables

    integer atm_land_ice_flux_exchange_mod::id_q_surf
     
    integer atm_land_ice_flux_exchange_mod::id_q_atm
     
    integer atm_land_ice_flux_exchange_mod::id_t_flux_land
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drag_q
     q drag.coeff. More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::direct =3
     
    +

    Detailed Description

    +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice.

    +
    + + + + diff --git a/docs/html/use__land__and__am3_8f90.html b/docs/html/use__land__and__am3_8f90.html new file mode 100644 index 00000000..5d8c5b69 --- /dev/null +++ b/docs/html/use__land__and__am3_8f90.html @@ -0,0 +1,147 @@ + + + + + + + +FMS Coupler: full/delete/use_land_and_am3.f90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    use_land_and_am3.f90 File Reference
    +
    +
    + +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice. +More...

    + + + + + + + + +

    +Data Types

    type  atm_land_ice_flux_exchange_mod::tracer_ind_type
     
    type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
     
    interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
     
    + + + +

    +Modules

    module  atm_land_ice_flux_exchange_mod
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    +

    Detailed Description

    +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice.

    +
    + + + + diff --git a/docs/html/use__land__only_8f90.html b/docs/html/use__land__only_8f90.html new file mode 100644 index 00000000..a88cd825 --- /dev/null +++ b/docs/html/use__land__only_8f90.html @@ -0,0 +1,147 @@ + + + + + + + +FMS Coupler: full/delete/use_land_only.f90 File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FMS Coupler +  2022.03 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    use_land_only.f90 File Reference
    +
    +
    + +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice. +More...

    + + + + + + + + +

    +Data Types

    type  atm_land_ice_flux_exchange_mod::tracer_ind_type
     
    type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
     
    interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
     
    + + + +

    +Modules

    module  atm_land_ice_flux_exchange_mod
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    +

    Detailed Description

    +

    Performs flux calculations and exchange grid operations for atmosphere, land and ice.

    +
    + + + + From 04583b5a8135c2c7dd89bf2349fccd400854b924 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 24 Feb 2026 11:06:54 -0500 Subject: [PATCH 19/31] test --- .../_s_hi_e_l_d_2coupler__main_8_f90.html | 2 +- docs/html/annotated.html | 2 +- ...__land__ice__flux__exchange-old_8_f90.html | 722 --- .../atm__land__ice__flux__exchange_8_f90.html | 490 +- ...atmos__ocean__dep__fluxes__calc_8_f90.html | 2 +- .../atmos__ocean__fluxes__calc_8_f90.html | 2 +- docs/html/classes.html | 2 +- docs/html/coupler_config.html | 2 +- .../dir_1af7c1440245086f9f32c0fc5ed4b868.html | 94 - .../dir_9982052f7ce695d12571567315b2fafa.html | 2 +- .../dir_d31ef39e894be3975a1de5d6a46d3717.html | 2 +- .../dir_ec0543676189fadf8843b558a280dd29.html | 2 +- .../dir_f6406403be25082e487bde7aa9e18575.html | 10 +- docs/html/files.html | 41 +- docs/html/flux_exchange_conf.html | 2 +- docs/html/full_2coupler__main_8_f90.html | 2 +- docs/html/full_2flux__exchange_8_f90.html | 2 +- docs/html/full__coupler__mod_8_f90.html | 2 +- docs/html/functions.html | 2 +- docs/html/functions_func.html | 2 +- docs/html/functions_vars.html | 2 +- docs/html/globals.html | 20 +- docs/html/globals_defs.html | 14 +- docs/html/globals_func.html | 2 +- docs/html/ice__model_8_f90.html | 2 +- .../ice__ocean__flux__exchange_8_f90.html | 2 +- docs/html/index.html | 2 +- ...mod_1_1put__logical__to__real-members.html | 10 +- ...change__mod_1_1put__logical__to__real.html | 436 +- ...e__flux__mod_1_1surface__flux-members.html | 2 +- ...cesurface__flux__mod_1_1surface__flux.html | 2 +- .../html/land__ice__flux__exchange_8_f90.html | 2 +- ...ceatm__land__ice__flux__exchange__mod.html | 1304 +----- ...eatmos__ocean__dep__fluxes__calc__mod.html | 2 +- ...espaceatmos__ocean__fluxes__calc__mod.html | 2 +- docs/html/namespaceflux__exchange__mod.html | 2 +- docs/html/namespacefull__coupler__mod.html | 2 +- docs/html/namespaceice__model__mod.html | 2 +- ...espaceice__ocean__flux__exchange__mod.html | 2 +- ...mespaceland__ice__flux__exchange__mod.html | 2 +- docs/html/namespacemembers.html | 4 +- docs/html/namespacemembers_b.html | 5 +- docs/html/namespacemembers_c.html | 5 +- docs/html/namespacemembers_d.html | 14 +- docs/html/namespacemembers_e.html | 5 +- docs/html/namespacemembers_f.html | 8 +- docs/html/namespacemembers_func.html | 18 +- docs/html/namespacemembers_g.html | 4 +- docs/html/namespacemembers_h.html | 2 +- docs/html/namespacemembers_i.html | 11 +- docs/html/namespacemembers_j.html | 2 +- docs/html/namespacemembers_k.html | 2 +- docs/html/namespacemembers_l.html | 2 +- docs/html/namespacemembers_m.html | 2 +- docs/html/namespacemembers_n.html | 2 +- docs/html/namespacemembers_o.html | 2 +- docs/html/namespacemembers_p.html | 2 +- docs/html/namespacemembers_q.html | 2 +- docs/html/namespacemembers_r.html | 8 +- docs/html/namespacemembers_s.html | 6 +- docs/html/namespacemembers_t.html | 4 +- docs/html/namespacemembers_u.html | 2 +- docs/html/namespacemembers_v.html | 2 +- docs/html/namespacemembers_vars.html | 2 +- docs/html/namespacemembers_vars_b.html | 5 +- docs/html/namespacemembers_vars_c.html | 5 +- docs/html/namespacemembers_vars_d.html | 14 +- docs/html/namespacemembers_vars_e.html | 5 +- docs/html/namespacemembers_vars_f.html | 2 +- docs/html/namespacemembers_vars_g.html | 2 +- docs/html/namespacemembers_vars_h.html | 2 +- docs/html/namespacemembers_vars_i.html | 11 +- docs/html/namespacemembers_vars_j.html | 2 +- docs/html/namespacemembers_vars_k.html | 2 +- docs/html/namespacemembers_vars_l.html | 2 +- docs/html/namespacemembers_vars_m.html | 2 +- docs/html/namespacemembers_vars_n.html | 2 +- docs/html/namespacemembers_vars_o.html | 2 +- docs/html/namespacemembers_vars_p.html | 2 +- docs/html/namespacemembers_vars_q.html | 2 +- docs/html/namespacemembers_vars_r.html | 8 +- docs/html/namespacemembers_vars_s.html | 2 +- docs/html/namespacemembers_vars_t.html | 4 +- docs/html/namespacemembers_vars_u.html | 2 +- docs/html/namespacemembers_vars_v.html | 2 +- docs/html/namespacemembers_vars_w.html | 2 +- docs/html/namespacemembers_vars_x.html | 2 +- docs/html/namespacemembers_vars_z.html | 2 +- docs/html/namespacemembers_w.html | 2 +- docs/html/namespacemembers_x.html | 2 +- docs/html/namespacemembers_z.html | 2 +- docs/html/namespaces.html | 2 +- docs/html/namespacesurface__flux__mod.html | 2 +- docs/html/pages.html | 2 +- docs/html/search/all_0.js | 5 +- docs/html/search/all_1.js | 2 +- docs/html/search/all_11.js | 6 +- docs/html/search/all_12.js | 4 +- docs/html/search/all_13.js | 2 +- docs/html/search/all_14.js | 3 - docs/html/search/all_2.js | 2 +- docs/html/search/all_3.js | 10 +- docs/html/search/all_4.js | 1 - docs/html/search/all_5.js | 20 +- docs/html/search/all_6.js | 2 +- docs/html/search/all_8.js | 5 +- docs/html/search/all_f.js | 4 +- docs/html/search/defines_0.js | 12 +- docs/html/search/files_0.js | 1 - docs/html/search/files_6.html | 30 - docs/html/search/files_6.js | 6 - docs/html/search/functions_0.js | 4 +- docs/html/search/functions_3.js | 8 +- docs/html/search/functions_4.js | 2 +- docs/html/search/functions_8.js | 4 +- docs/html/search/functions_a.js | 4 +- docs/html/search/searchdata.js | 2 +- docs/html/search/variables_1.js | 2 +- docs/html/search/variables_11.js | 6 +- docs/html/search/variables_13.js | 2 +- docs/html/search/variables_2.js | 2 +- docs/html/search/variables_3.js | 10 +- docs/html/search/variables_4.js | 1 - docs/html/search/variables_8.js | 5 +- docs/html/simple_2coupler__main_8_f90.html | 2 +- docs/html/simple_2flux__exchange_8_f90.html | 2 +- ...od_1_1tracer__exch__ind__type-members.html | 2 +- ...hange__mod_1_1tracer__exch__ind__type.html | 8 +- ...nge__mod_1_1tracer__ind__type-members.html | 2 +- ...x__exchange__mod_1_1tracer__ind__type.html | 9 +- ..._mod_1_1coupler__chksum__type-members.html | 2 +- ...coupler__mod_1_1coupler__chksum__type.html | 2 +- ...__mod_1_1coupler__clock__type-members.html | 2 +- ..._coupler__mod_1_1coupler__clock__type.html | 2 +- ..._1_1coupler__components__type-members.html | 2 +- ...ler__mod_1_1coupler__components__type.html | 2 +- ...1_1atmos__ice__boundary__type-members.html | 2 +- ...el__mod_1_1atmos__ice__boundary__type.html | 2 +- ...model__mod_1_1ice__data__type-members.html | 2 +- ...uctice__model__mod_1_1ice__data__type.html | 2 +- docs/html/surface__flux_8_f90.html | 2 +- docs/html/surface_flux_config.html | 2 +- docs/html/use__am3__only_8f90.html | 162 - docs/html/use__land__and__am3_8f90.html | 147 - docs/html/use__land__only_8f90.html | 147 - full/atm_land_ice_flux_exchange-old | 4086 +++++++++++++++++ 146 files changed, 4994 insertions(+), 3179 deletions(-) delete mode 100644 docs/html/atm__land__ice__flux__exchange-old_8_f90.html delete mode 100644 docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html delete mode 100644 docs/html/search/files_6.html delete mode 100644 docs/html/search/files_6.js delete mode 100644 docs/html/use__am3__only_8f90.html delete mode 100644 docs/html/use__land__and__am3_8f90.html delete mode 100644 docs/html/use__land__only_8f90.html create mode 100644 full/atm_land_ice_flux_exchange-old diff --git a/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html b/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html index 2d42e83e..84a42d98 100644 --- a/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html +++ b/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html @@ -178,7 +178,7 @@

    diff --git a/docs/html/annotated.html b/docs/html/annotated.html index 49dfd6c6..a43193f9 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -86,7 +86,7 @@ diff --git a/docs/html/atm__land__ice__flux__exchange-old_8_f90.html b/docs/html/atm__land__ice__flux__exchange-old_8_f90.html deleted file mode 100644 index af86507a..00000000 --- a/docs/html/atm__land__ice__flux__exchange-old_8_f90.html +++ /dev/null @@ -1,722 +0,0 @@ - - - - - - - -FMS Coupler: full/atm_land_ice_flux_exchange-old.F90 File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FMS Coupler -  2022.03 -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    atm_land_ice_flux_exchange-old.F90 File Reference
    -
    -
    - -

    Performs flux calculations and exchange grid operations for atmosphere, land and ice. -More...

    - - - - - - - - -

    -Data Types

    type  atm_land_ice_flux_exchange_mod::tracer_ind_type
     
    type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
     
    interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
     
    - - - -

    -Modules

    module  atm_land_ice_flux_exchange_mod
     
    - - - - - - - - - - - - - -

    -Macros

    #define FMS_DATA_OVERRIDE_   fms_data_override_ug
     
    #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
     
    #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
     
    #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
     
    #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
     
    #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Variables

    character(len=128) atm_land_ice_flux_exchange_mod::version = '$Id$'
     coupler version number More...
     
    character(len=128) atm_land_ice_flux_exchange_mod::tag = '$Name$'
     coupler tag More...
     
    type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc
     holds exchange grid between different components More...
     
    integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc =0
     number of exchange grid points More...
     
    character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name = 'flux'
     module name used to register diag_manager More...
     
    integer atm_land_ice_flux_exchange_mod::id_b_star
     
    integer atm_land_ice_flux_exchange_mod::id_del_h
     
    integer atm_land_ice_flux_exchange_mod::id_del_m
     
    integer atm_land_ice_flux_exchange_mod::id_del_q
     
    integer atm_land_ice_flux_exchange_mod::id_drag_heat
     
    integer atm_land_ice_flux_exchange_mod::id_drag_moist
     
    integer atm_land_ice_flux_exchange_mod::id_drag_mom
     
    integer atm_land_ice_flux_exchange_mod::id_gust
     
    integer atm_land_ice_flux_exchange_mod::id_husslut_land
     
    integer atm_land_ice_flux_exchange_mod::id_ice_mask
     
    integer atm_land_ice_flux_exchange_mod::id_land_mask
     
    integer atm_land_ice_flux_exchange_mod::id_p_atm
     
    integer atm_land_ice_flux_exchange_mod::id_q_flux
     
    integer atm_land_ice_flux_exchange_mod::id_q_flux_land
     
    integer atm_land_ice_flux_exchange_mod::id_q_ref
     
    integer atm_land_ice_flux_exchange_mod::id_q_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_q_star
     
    integer atm_land_ice_flux_exchange_mod::id_r_flux
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_rough_heat
     
    integer atm_land_ice_flux_exchange_mod::id_rough_moist
     
    integer atm_land_ice_flux_exchange_mod::id_rough_mom
     
    integer atm_land_ice_flux_exchange_mod::id_rough_scale
     
    integer atm_land_ice_flux_exchange_mod::id_slp
     
    integer atm_land_ice_flux_exchange_mod::id_t_atm
     
    integer atm_land_ice_flux_exchange_mod::id_t_ca
     
    integer atm_land_ice_flux_exchange_mod::id_t_flux
     
    integer atm_land_ice_flux_exchange_mod::id_t_ocean
     
    integer atm_land_ice_flux_exchange_mod::id_t_ref
     
    integer atm_land_ice_flux_exchange_mod::id_t_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_t_surf
     
    integer atm_land_ice_flux_exchange_mod::id_taslut_land
     
    integer atm_land_ice_flux_exchange_mod::id_thv_atm
     
    integer atm_land_ice_flux_exchange_mod::id_thv_surf
     
    integer atm_land_ice_flux_exchange_mod::id_u_atm
     
    integer atm_land_ice_flux_exchange_mod::id_u_flux
     
    integer atm_land_ice_flux_exchange_mod::id_u_ref
     
    integer atm_land_ice_flux_exchange_mod::id_u_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_u_star
     
    integer atm_land_ice_flux_exchange_mod::id_v_atm
     
    integer atm_land_ice_flux_exchange_mod::id_v_flux
     
    integer atm_land_ice_flux_exchange_mod::id_v_ref
     
    integer atm_land_ice_flux_exchange_mod::id_v_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_wind
     
    integer atm_land_ice_flux_exchange_mod::id_wind_ref
     
    integer atm_land_ice_flux_exchange_mod::id_z_atm
     
    integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr
     
    integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr
     
    integer atm_land_ice_flux_exchange_mod::id_co2_bot
     
    integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm
     
    integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm
     deposition velocity at bottom level (atm) More...
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land
     deposition velocity at bottom level (land) More...
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref
     deposition velocity at ref height (atm) More...
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land
     deposition velocity at reference height (land) More...
     
    integer atm_land_ice_flux_exchange_mod::id_evspsbl
     
    integer atm_land_ice_flux_exchange_mod::id_height10m
     
    integer atm_land_ice_flux_exchange_mod::id_height2m
     
    integer atm_land_ice_flux_exchange_mod::id_hfls
     
    integer atm_land_ice_flux_exchange_mod::id_hfss
     
    integer atm_land_ice_flux_exchange_mod::id_hurs
     
    integer atm_land_ice_flux_exchange_mod::id_huss
     
    integer atm_land_ice_flux_exchange_mod::id_psl
     
    integer atm_land_ice_flux_exchange_mod::id_rhs
     
    integer atm_land_ice_flux_exchange_mod::id_sfcwind
     
    integer atm_land_ice_flux_exchange_mod::id_sftlf
     
    integer atm_land_ice_flux_exchange_mod::id_sic
     
    integer atm_land_ice_flux_exchange_mod::id_tas
     
    integer atm_land_ice_flux_exchange_mod::id_tauu
     
    integer atm_land_ice_flux_exchange_mod::id_tauv
     
    integer atm_land_ice_flux_exchange_mod::id_tos
     
    integer atm_land_ice_flux_exchange_mod::id_ts
     
    integer atm_land_ice_flux_exchange_mod::id_tslsi
     
    integer atm_land_ice_flux_exchange_mod::id_uas
     
    integer atm_land_ice_flux_exchange_mod::id_vas
     
    integer atm_land_ice_flux_exchange_mod::id_evspsbl_g
     
    integer atm_land_ice_flux_exchange_mod::id_hfls_g
     
    integer atm_land_ice_flux_exchange_mod::id_hfss_g
     
    integer atm_land_ice_flux_exchange_mod::id_rls_g
     
    integer atm_land_ice_flux_exchange_mod::id_tas_g
     
    integer atm_land_ice_flux_exchange_mod::id_tasl_g
     
    integer atm_land_ice_flux_exchange_mod::id_ts_g
     
    logical atm_land_ice_flux_exchange_mod::first_static = .true.
     If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
     
    logical atm_land_ice_flux_exchange_mod::do_init = .true.
     
    integer atm_land_ice_flux_exchange_mod::remap_method = 1
     
    real, parameter atm_land_ice_flux_exchange_mod::bound_tol = 1e-7
     
    real, parameter atm_land_ice_flux_exchange_mod::d622 = rdgas/rvgas
     
    real, parameter atm_land_ice_flux_exchange_mod::d378 = 1.0-d622
     
    real, parameter atm_land_ice_flux_exchange_mod::d608 = d378/d622
     
    real, parameter atm_land_ice_flux_exchange_mod::tfreeze = 273.15
     freezing point of water at 1 atm [K] More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip
     
    real atm_land_ice_flux_exchange_mod::z_ref_heat = 2.
     Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
     
    real atm_land_ice_flux_exchange_mod::z_ref_mom = 10.
     Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
     
    logical atm_land_ice_flux_exchange_mod::do_area_weighted_flux = .FALSE.
     
    logical atm_land_ice_flux_exchange_mod::do_forecast = .false.
     
    integer atm_land_ice_flux_exchange_mod::nblocks = 1
     
    logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
     option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
     
    logical atm_land_ice_flux_exchange_mod::scale_precip_2d = .false.
     
    integer atm_land_ice_flux_exchange_mod::my_nblocks = 1
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t
     drag coefficient for heat on exchange grid More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm
     deposition velocity at lowest atmospheric level on exchange grid More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf
     d(water.vap.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm
     d(sens.heat.flux)/d(T atm) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf
     d(sens.heat.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf
     d(water.vap.flux)/d(q canopy) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf
     d(LW flux)/d(T surf) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm
     d(stress)/d(u) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm
     d(stress)/d(v) More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw
     longwave radiation flux More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t
     sens heat flux More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u
     u stress on atmosphere More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v
     v stress on atmosphere More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo
     old value of albedo for downward flux calculations More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf
     surface pressure More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp
     surface pressure More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca
     near-surface (canopy) air temperature, degK More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf
     surface temperature for radiation calc, degK More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz
     miz NEED HELP More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm
     d(tracer flux)/d(atm tracer) More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf
     d(tracer flux)/d(surf tracer) More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr
     tracer fluxes More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref
     deposition velocity at reference height More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm
     deposition velocity at atmospheric height More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf
     near-surface tracer fields More...
     
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail
     true where data on exchange grid are available More...
     
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land
     true if exchange grid cell is over land More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n
     
    integer atm_land_ice_flux_exchange_mod::n_atm_tr
     number of prognostic tracers in the atmos model More...
     
    integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot
     number of prognostic tracers in the atmos model More...
     
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr
     number of prognostic tracers in the land model More...
     
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot
     number of prognostic tracers in the land model More...
     
    integer atm_land_ice_flux_exchange_mod::n_exch_tr
     number of tracers exchanged between models More...
     
    integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd
     number of gex fields exchanged between land and atmosphere More...
     
    integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm
     number of gex fields exchanged between atmosphere and land More...
     
    type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table
     table of tracers passed through flux exchange More...
     
    type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map
     map atm tracers to exchange, ice and land variables More...
     
    integer atm_land_ice_flux_exchange_mod::isphum = NO_TRACER
     tracer index for specific humidity More...
     
    integer atm_land_ice_flux_exchange_mod::ico2 = NO_TRACER
     tracer index for co2 More...
     
    integer atm_land_ice_flux_exchange_mod::inh3 = NO_TRACER
     tracer index for nh3 More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm =>NULL()
     gas fields in atm place holder for various atmospheric fields. More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice =>NULL()
     gas fields on ice More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes =>NULL()
     gas flux place holder of intermediate calculations, such as piston velocities etc. More...
     
    real, dimension(3) atm_land_ice_flux_exchange_mod::ccc
     for conservation checks !< NOT USED DELETE More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::regrid =1
     grids are physically different, pass via exchange grid More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::redist =2
     same physical grid, different decomposition, must move data around More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::redirect =3
     same physical grid, same domain decomposition, can directly copy data More...
     
    integer atm_land_ice_flux_exchange_mod::cplclock
     
    integer atm_land_ice_flux_exchange_mod::sfcclock
     FMS clock id to profile sfc_boundary_layer. More...
     
    integer atm_land_ice_flux_exchange_mod::fluxatmdnclock
     FMS clock id to profile flux down from atmosphere. More...
     
    integer atm_land_ice_flux_exchange_mod::regenclock
     FMS clock to profile exchange grid generation. More...
     
    integer atm_land_ice_flux_exchange_mod::fluxatmupclock
     FMS clock to profile flux up to atmosphere. More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_atm
     1, exchange grid index for xgrid_stock_move More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_ice
     2, exchange grid index for xgrid_stock_move More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_lnd
     3, !< exchange grid index for xgrid_stock_move More...
     
    real atm_land_ice_flux_exchange_mod::dt_atm
     atmospheric timestep [s] More...
     
    real atm_land_ice_flux_exchange_mod::dt_cpl
     coupled timestep [s] More...
     
    integer atm_land_ice_flux_exchange_mod::ni_atm
     number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer atm_land_ice_flux_exchange_mod::nj_atm
     number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer atm_land_ice_flux_exchange_mod::nxc_ice =0
     number of x points in ice compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nyc_ice =0
     number of y points in ice compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nk_ice =0
     number of vertical levels in ice More...
     
    integer atm_land_ice_flux_exchange_mod::nxc_lnd =0
     number of x points in land compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nyc_lnd =0
     number of y points in land compute domain More...
     
    -

    Detailed Description

    -

    Performs flux calculations and exchange grid operations for atmosphere, land and ice.

    -

    Macro Definition Documentation

    - -

    ◆ FMS_DATA_OVERRIDE_

    - -
    -
    - - - - -
    #define FMS_DATA_OVERRIDE_   fms_data_override_ug
    -
    - -
    -
    - -

    ◆ FMS_DIAG_REGISTER_FIELD_

    - -
    -
    - - - - -
    #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
    -
    - -
    -
    - -

    ◆ FMS_XGRID_GET_FROM_XGRID_

    - -
    -
    - - - - -
    #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
    -
    - -
    -
    - -

    ◆ FMS_XGRID_PUT_TO_XGRID_

    - -
    -
    - - - - -
    #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
    -
    - -
    -
    - -

    ◆ FMS_XGRID_SET_FRAC_AREA_

    - -
    -
    - - - - -
    #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
    -
    - -
    -
    - -

    ◆ FMS_XGRID_STOCK_MOVE_

    - -
    -
    - - - - -
    #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
    -
    - -
    -
    -
    - - - - diff --git a/docs/html/atm__land__ice__flux__exchange_8_f90.html b/docs/html/atm__land__ice__flux__exchange_8_f90.html index c65ac020..7a6311da 100644 --- a/docs/html/atm__land__ice__flux__exchange_8_f90.html +++ b/docs/html/atm__land__ice__flux__exchange_8_f90.html @@ -111,48 +111,465 @@

    (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

    - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - - - + + +

    Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
     Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
     Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND More...
     
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND More...
     
    subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run. More...
     
    subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     Divide data by area where grid cell area is not zero. More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
     compute and send fractional amount of sea ice to diag_manager buffer More...
     
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -160,6 +577,27 @@

    (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

    + + + + + + + + + + + + + + + + + + + + +

    Variables

    character(len=128) atm_land_ice_flux_exchange_mod::version = '$Id$'
     coupler version number More...
     
    character(len=128) atm_land_ice_flux_exchange_mod::tag = '$Name$'
     coupler tag More...
     
    type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc
     holds exchange grid between different components More...
     
    integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc =0
     total number of exchange grid cells More...
     
    character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name = 'flux'
     module name used to register diag_manager More...
     
    integer atm_land_ice_flux_exchange_mod::id_b_star
     
    integer atm_land_ice_flux_exchange_mod::id_del_h
     
    integer atm_land_ice_flux_exchange_mod::id_del_m
     
    integer atm_land_ice_flux_exchange_mod::id_del_q
     
    integer atm_land_ice_flux_exchange_mod::id_drag_heat
     
    integer atm_land_ice_flux_exchange_mod::id_drag_moist
     
    integer atm_land_ice_flux_exchange_mod::id_drag_mom
     
    integer atm_land_ice_flux_exchange_mod::id_gust
     
    integer atm_land_ice_flux_exchange_mod::id_husslut_land
     
    integer atm_land_ice_flux_exchange_mod::id_ice_mask
     
    integer atm_land_ice_flux_exchange_mod::id_land_mask
     
    integer atm_land_ice_flux_exchange_mod::id_p_atm
     
    integer atm_land_ice_flux_exchange_mod::id_q_flux
     
    integer atm_land_ice_flux_exchange_mod::id_q_flux_land
     
    integer atm_land_ice_flux_exchange_mod::id_q_ref
     
    integer atm_land_ice_flux_exchange_mod::id_q_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_q_star
     
    integer atm_land_ice_flux_exchange_mod::id_r_flux
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip
     
    integer atm_land_ice_flux_exchange_mod::id_rh_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_rough_heat
     
    integer atm_land_ice_flux_exchange_mod::id_rough_moist
     
    integer atm_land_ice_flux_exchange_mod::id_rough_mom
     
    integer atm_land_ice_flux_exchange_mod::id_rough_scale
     
    integer atm_land_ice_flux_exchange_mod::id_slp
     
    integer atm_land_ice_flux_exchange_mod::id_t_atm
     
    integer atm_land_ice_flux_exchange_mod::id_t_ca
     
    integer atm_land_ice_flux_exchange_mod::id_t_flux
     
    integer atm_land_ice_flux_exchange_mod::id_t_ocean
     
    integer atm_land_ice_flux_exchange_mod::id_t_ref
     
    integer atm_land_ice_flux_exchange_mod::id_t_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_t_surf
     
    integer atm_land_ice_flux_exchange_mod::id_taslut_land
     
    integer atm_land_ice_flux_exchange_mod::id_thv_atm
     
    integer atm_land_ice_flux_exchange_mod::id_thv_surf
     
    integer atm_land_ice_flux_exchange_mod::id_u_atm
     
    integer atm_land_ice_flux_exchange_mod::id_u_flux
     
    integer atm_land_ice_flux_exchange_mod::id_u_ref
     
    integer atm_land_ice_flux_exchange_mod::id_u_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_u_star
     
    integer atm_land_ice_flux_exchange_mod::id_v_atm
     
    integer atm_land_ice_flux_exchange_mod::id_v_flux
     
    integer atm_land_ice_flux_exchange_mod::id_v_ref
     
    integer atm_land_ice_flux_exchange_mod::id_v_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_wind
     
    integer atm_land_ice_flux_exchange_mod::id_wind_ref
     
    integer atm_land_ice_flux_exchange_mod::id_z_atm
     
    integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr
     
    integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr
     
    integer atm_land_ice_flux_exchange_mod::id_co2_bot
     
    integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm
     
    integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land
     
    integer atm_land_ice_flux_exchange_mod::id_evspsbl
     
    integer atm_land_ice_flux_exchange_mod::id_height10m
     
    integer atm_land_ice_flux_exchange_mod::id_height2m
     
    integer atm_land_ice_flux_exchange_mod::id_hfls
     
    integer atm_land_ice_flux_exchange_mod::id_hfss
     
    integer atm_land_ice_flux_exchange_mod::id_hurs
     
    integer atm_land_ice_flux_exchange_mod::id_huss
     
    integer atm_land_ice_flux_exchange_mod::id_psl
     
    integer atm_land_ice_flux_exchange_mod::id_rhs
     
    integer atm_land_ice_flux_exchange_mod::id_sfcwind
     
    integer atm_land_ice_flux_exchange_mod::id_sftlf
     
    integer atm_land_ice_flux_exchange_mod::id_sic
     
    integer atm_land_ice_flux_exchange_mod::id_tas
     
    integer atm_land_ice_flux_exchange_mod::id_tauu
     
    integer atm_land_ice_flux_exchange_mod::id_tauv
     
    integer atm_land_ice_flux_exchange_mod::id_tos
     
    integer atm_land_ice_flux_exchange_mod::id_ts
     
    integer atm_land_ice_flux_exchange_mod::id_tslsi
     
    integer atm_land_ice_flux_exchange_mod::id_uas
     
    integer atm_land_ice_flux_exchange_mod::id_vas
     
    integer atm_land_ice_flux_exchange_mod::id_evspsbl_g
     
    integer atm_land_ice_flux_exchange_mod::id_hfls_g
     
    integer atm_land_ice_flux_exchange_mod::id_hfss_g
     
    integer atm_land_ice_flux_exchange_mod::id_rls_g
     
    integer atm_land_ice_flux_exchange_mod::id_tas_g
     
    integer atm_land_ice_flux_exchange_mod::id_tasl_g
     
    integer atm_land_ice_flux_exchange_mod::id_ts_g
     
    logical atm_land_ice_flux_exchange_mod::first_static = .true.
     If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
     
    logical atm_land_ice_flux_exchange_mod::do_init = .true.
     
    integer atm_land_ice_flux_exchange_mod::remap_method = 1
     
    real, parameter atm_land_ice_flux_exchange_mod::d622 = rdgas/rvgas
     
    real, parameter atm_land_ice_flux_exchange_mod::d378 = 1.0-d622
     
    real, parameter atm_land_ice_flux_exchange_mod::d608 = d378/d622
     
    real, parameter atm_land_ice_flux_exchange_mod::tfreeze = 273.15
     freezing point of water at 1 atm [K] More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip
     
    real atm_land_ice_flux_exchange_mod::z_ref_heat = 2.
     
    real atm_land_ice_flux_exchange_mod::z_ref_mom = 10.
     
    logical atm_land_ice_flux_exchange_mod::do_area_weighted_flux = .FALSE.
     
    logical atm_land_ice_flux_exchange_mod::do_forecast = .false.
     
    integer atm_land_ice_flux_exchange_mod::nblocks = 1
     
    logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
     
    logical atm_land_ice_flux_exchange_mod::scale_precip_2d = .false.
     
    integer atm_land_ice_flux_exchange_mod::my_nblocks = 1
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start
     
    integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t
     drag coefficient for heat on exchange grid More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm
     deposition velocity at lowest atmospheric level on exchange grid More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz
     miz NEED HELP More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm
     d(tracer flux)/d(atm tracer) More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf
     d(tracer flux)/d(surf tracer) More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n
     coefficient in implicit scheme More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr
     tracer fluxes More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref
     deposition velocity at reference height More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm
     deposition velocity at atmospheric height More...
     
    real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf
     near-surface tracer fields More...
     
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail
     true where data on exchange grid are available More...
     
    logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land
     true if exchange grid cell is over land More...
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n
     
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n
     
    integer atm_land_ice_flux_exchange_mod::n_atm_tr
     number of prognostic tracers in the atmos model More...
     
    integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot
     number of prognostic tracers in the atmos model More...
     
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr
     number of prognostic tracers in the land model More...
     
    integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot
     number of prognostic tracers in the land model More...
     
    integer atm_land_ice_flux_exchange_mod::n_exch_tr
     number of tracers exchanged between models More...
     
    integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd
     number of gex fields exchanged between land and atmosphere More...
     
    integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm
     number of gex fields exchanged between atmosphere and land More...
     
    type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table
     table of tracers passed through flux exchange More...
     
    type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map
     map atm tracers to exchange, ice and land variables More...
     
    integer atm_land_ice_flux_exchange_mod::isphum = NO_TRACER
     tracer index for specific humidity More...
     
    integer atm_land_ice_flux_exchange_mod::ico2 = NO_TRACER
     tracer index for co2 More...
     
    integer atm_land_ice_flux_exchange_mod::inh3 = NO_TRACER
     tracer index for nh3 More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm =>NULL()
     gas fields in atm place holder for various atmospheric fields. More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice =>NULL()
     gas fields on ice More...
     
    type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes =>NULL()
     gas flux place holder of intermediate calculations, such as piston velocities etc. More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::regrid =1
     grids are physically different, pass via exchange grid More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::redist =2
     same physical grid, different decomposition, must move data around More...
     
    integer, parameter atm_land_ice_flux_exchange_mod::redirect =3
     same physical grid, same domain decomposition, can directly copy data More...
     
    integer atm_land_ice_flux_exchange_mod::cplclock
     
    integer atm_land_ice_flux_exchange_mod::sfcclock
     FMS clock id to profile sfc_boundary_layer. More...
     
    integer atm_land_ice_flux_exchange_mod::fluxatmdnclock
     FMS clock id to profile flux down from atmosphere. More...
     
    integer atm_land_ice_flux_exchange_mod::regenclock
     FMS clock to profile exchange grid generation. More...
     
    integer atm_land_ice_flux_exchange_mod::fluxatmupclock
     FMS clock to profile flux up to atmosphere. More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_atm
     =1, exchange grid index for xgrid_stock_move More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_ice
     =2, exchange grid index for xgrid_stock_move More...
     
    integer atm_land_ice_flux_exchange_mod::x1_grid_lnd
     =3 exchange grid index for xgrid_stock_move More...
     
    real atm_land_ice_flux_exchange_mod::dt_atm
     
    real atm_land_ice_flux_exchange_mod::atmospheric
     
    real atm_land_ice_flux_exchange_mod::timestep
    real atm_land_ice_flux_exchange_mod::s
     coupled timestep [s] More...
     
    integer atm_land_ice_flux_exchange_mod::ni_atm
     number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer atm_land_ice_flux_exchange_mod::nj_atm
     number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer atm_land_ice_flux_exchange_mod::nxc_ice =0
     number of x points in ice compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nyc_ice =0
     number of y points in ice compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nk_ice =0
     number of vertical levels in ice More...
     
    integer atm_land_ice_flux_exchange_mod::nxc_lnd =0
     number of x points in land compute domain More...
     
    integer atm_land_ice_flux_exchange_mod::nyc_lnd =0
     number of y points in land compute domain More...
     

    Detailed Description

    Performs flux calculations and exchange grid operations for atmosphere, land and ice.

    @@ -251,7 +689,7 @@

    diff --git a/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html index a11b8d89..db9fe884 100644 --- a/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html +++ b/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html @@ -99,7 +99,7 @@

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    diff --git a/docs/html/atmos__ocean__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__fluxes__calc_8_f90.html index b9a71ca2..4e249fd8 100644 --- a/docs/html/atmos__ocean__fluxes__calc_8_f90.html +++ b/docs/html/atmos__ocean__fluxes__calc_8_f90.html @@ -125,7 +125,7 @@

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    diff --git a/docs/html/classes.html b/docs/html/classes.html index ba639220..03304a98 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -86,7 +86,7 @@ diff --git a/docs/html/coupler_config.html b/docs/html/coupler_config.html index aeab26f9..0b0dbe7a 100644 --- a/docs/html/coupler_config.html +++ b/docs/html/coupler_config.html @@ -126,7 +126,7 @@ diff --git a/docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html b/docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html deleted file mode 100644 index 0b316275..00000000 --- a/docs/html/dir_1af7c1440245086f9f32c0fc5ed4b868.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -FMS Coupler: full/delete Directory Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FMS Coupler -  2022.03 -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    delete Directory Reference
    -
    -
    - - - - - - - - - - - -

    -Files

    file  use_am3_only.f90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    file  use_land_and_am3.f90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    file  use_land_only.f90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    -
    - - - - diff --git a/docs/html/dir_9982052f7ce695d12571567315b2fafa.html b/docs/html/dir_9982052f7ce695d12571567315b2fafa.html index bc97770d..36496268 100644 --- a/docs/html/dir_9982052f7ce695d12571567315b2fafa.html +++ b/docs/html/dir_9982052f7ce695d12571567315b2fafa.html @@ -80,7 +80,7 @@ diff --git a/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html b/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html index 45b4fa9b..2afdc76a 100644 --- a/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html +++ b/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html @@ -80,7 +80,7 @@ diff --git a/docs/html/dir_ec0543676189fadf8843b558a280dd29.html b/docs/html/dir_ec0543676189fadf8843b558a280dd29.html index 7ec0e79c..cdc214b4 100644 --- a/docs/html/dir_ec0543676189fadf8843b558a280dd29.html +++ b/docs/html/dir_ec0543676189fadf8843b558a280dd29.html @@ -86,7 +86,7 @@ diff --git a/docs/html/dir_f6406403be25082e487bde7aa9e18575.html b/docs/html/dir_f6406403be25082e487bde7aa9e18575.html index 6fc3b3a4..91f01db6 100644 --- a/docs/html/dir_f6406403be25082e487bde7aa9e18575.html +++ b/docs/html/dir_f6406403be25082e487bde7aa9e18575.html @@ -71,16 +71,8 @@
    - - - -

    -Directories

    directory  delete
     
    - - - @@ -108,7 +100,7 @@ diff --git a/docs/html/files.html b/docs/html/files.html index 732baba8..0f61a8f3 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -67,35 +67,30 @@
    Here is a list of all files with brief descriptions:
    -
    [detail level 123]

    Files

    file  atm_land_ice_flux_exchange-old.F90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    file  atm_land_ice_flux_exchange.F90
     Performs flux calculations and exchange grid operations for atmosphere, land and ice.
     
    +
    [detail level 12]
    - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
      full
      delete
     use_am3_only.f90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     use_land_and_am3.f90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     use_land_only.f90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     atm_land_ice_flux_exchange-old.F90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     atm_land_ice_flux_exchange.F90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     atmos_ocean_dep_fluxes_calc.F90Calculates ocean and atmosphere deposition gas fluxes
     atmos_ocean_fluxes_calc.F90Calculates gas fluxes for atmosphere and ocean
     coupler_main.F90Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean)
     flux_exchange.F90The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved
     full_coupler_mod.F90
     ice_ocean_flux_exchange.F90Handles flux calculations and exchange grids for ice and ocean
     land_ice_flux_exchange.F90Handles flux exchanges and exchange grids between land and ice grids
      shared
     surface_flux.F90Handles calculation of fluxes on the exchange grids, see module page for more information
      SHiELD
     coupler_main.F90Main driver program for the SHiELD model
      simple
     coupler_main.F90Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90
     flux_exchange.F90Routines to handle flux exchanges through exchange grids for the simple coupler
     ice_model.F90Handles ice component updates and time steps
     atm_land_ice_flux_exchange.F90Performs flux calculations and exchange grid operations for atmosphere, land and ice
     atmos_ocean_dep_fluxes_calc.F90Calculates ocean and atmosphere deposition gas fluxes
     atmos_ocean_fluxes_calc.F90Calculates gas fluxes for atmosphere and ocean
     coupler_main.F90Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean)
     flux_exchange.F90The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved
     full_coupler_mod.F90
     ice_ocean_flux_exchange.F90Handles flux calculations and exchange grids for ice and ocean
     land_ice_flux_exchange.F90Handles flux exchanges and exchange grids between land and ice grids
      shared
     surface_flux.F90Handles calculation of fluxes on the exchange grids, see module page for more information
      SHiELD
     coupler_main.F90Main driver program for the SHiELD model
      simple
     coupler_main.F90Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90
     flux_exchange.F90Routines to handle flux exchanges through exchange grids for the simple coupler
     ice_model.F90Handles ice component updates and time steps
    diff --git a/docs/html/flux_exchange_conf.html b/docs/html/flux_exchange_conf.html index 423345b8..1c93b64f 100644 --- a/docs/html/flux_exchange_conf.html +++ b/docs/html/flux_exchange_conf.html @@ -94,7 +94,7 @@ diff --git a/docs/html/full_2coupler__main_8_f90.html b/docs/html/full_2coupler__main_8_f90.html index 1de9508d..214b3f91 100644 --- a/docs/html/full_2coupler__main_8_f90.html +++ b/docs/html/full_2coupler__main_8_f90.html @@ -116,7 +116,7 @@

    diff --git a/docs/html/full_2flux__exchange_8_f90.html b/docs/html/full_2flux__exchange_8_f90.html index eca44005..aaffd6fd 100644 --- a/docs/html/full_2flux__exchange_8_f90.html +++ b/docs/html/full_2flux__exchange_8_f90.html @@ -329,7 +329,7 @@

    logical, dimension(:,:) :: Ocean%Data%mask & ! ocean/land mask for temperature points on the ocean
    ! DATA GRID (true for ocean)
    ocean%Data%mask_uv & ! ocean/land mask for momentum points on the ocean
    ! DATA GRID (true for ocean)
    ocean%Ocean%mask & ! ocean/land mask for temperature points on the ocean
    ! MODEL GRID (true for ocean)
    ocean%Ocean%mask_uv ! ocean/land mask for momentum points on the ocean
    ! MODEL GRID (true for ocean)
    real, dimension(:,:) :: Ocean%t_surf_data & ! surface temperature on the ocean DATA GRID (deg k)
    Ocean%t_surf & ! surface temperature on the ocean MODEL GRID (deg k)
    Ocean%u_surf & ! zonal ocean current at the surface on the ocean
    ! MODEL GRID (m/s)
    ocean%v_surf & ! meridional ocean current at the surface on the
    ! ocean MODEL GRID (m/s)
    ocean%frazil ! frazil at temperature points on the ocean model grid
    diff --git a/docs/html/full__coupler__mod_8_f90.html b/docs/html/full__coupler__mod_8_f90.html index 8d9f9504..fb441fea 100644 --- a/docs/html/full__coupler__mod_8_f90.html +++ b/docs/html/full__coupler__mod_8_f90.html @@ -336,7 +336,7 @@

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html index 60bcdca6..b73225ae 100644 --- a/docs/html/functions_func.html +++ b/docs/html/functions_func.html @@ -106,7 +106,7 @@ diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index bb66d45b..c2e22aa8 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -399,7 +399,7 @@

    - x -

    diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html index 9a7419fd..d5505d56 100644 --- a/docs/html/globals_defs.html +++ b/docs/html/globals_defs.html @@ -64,34 +64,28 @@ diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html index 3fb8918c..c2ef2dfd 100644 --- a/docs/html/globals_func.html +++ b/docs/html/globals_func.html @@ -82,7 +82,7 @@ diff --git a/docs/html/ice__model_8_f90.html b/docs/html/ice__model_8_f90.html index d9342c59..5e3ff0fd 100644 --- a/docs/html/ice__model_8_f90.html +++ b/docs/html/ice__model_8_f90.html @@ -196,7 +196,7 @@

    (ca85e563d8755ef83c2c1874519b2a111d431347)

    diff --git a/docs/html/ice__ocean__flux__exchange_8_f90.html b/docs/html/ice__ocean__flux__exchange_8_f90.html index d7c395e4..160f4562 100644 --- a/docs/html/ice__ocean__flux__exchange_8_f90.html +++ b/docs/html/ice__ocean__flux__exchange_8_f90.html @@ -142,7 +142,7 @@

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    diff --git a/docs/html/index.html b/docs/html/index.html index cf65ecf4..a81c5f14 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -100,7 +100,7 @@

    DO slow time steps(ocean)
    call flux_ocean_to_ice
    call set_ice_surface_fields
    DO fast time steps(atmos)
    call flux_calculation
    call atmos_down
    call flux_down_from_atmos
    call land_fast
    call ice_fast
    call flux_up_to_atmos
    call atmos_up
    ENDDO
    call ice_slow
    call flux_ice_to_ocean
    call ocean
    enddo
    diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html index 786b4ee2..b93f0279 100644 --- a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html +++ b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html @@ -74,19 +74,11 @@

    This is the complete list of members for atm_land_ice_flux_exchange_mod::put_logical_to_real, including all inherited members.

    - - - - - - - -
    put_logical_to_real_sg(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_sg(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_sg(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_sg(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_sg(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_ug(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_ug(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_ug(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_ug(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    put_logical_to_real_ug(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
    diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html index 65077e98..0ffd5296 100644 --- a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html +++ b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html @@ -77,239 +77,15 @@

    Private Member Functions

    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
    -  -subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
    -  -subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)  Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND More...
      subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)  Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND More...
      -subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
    -  -subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
    -  -subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
    -  -subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
    -  -subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
    -  -subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) - Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...

    Member Function/Subroutine Documentation

    -

    ◆ put_logical_to_real_sg() [1/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_sg() [2/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_sg() [3/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_sg() [4/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_sg() [5/5]

    +

    ◆ put_logical_to_real_sg()

    @@ -366,207 +142,7 @@

    -

    ◆ put_logical_to_real_ug() [1/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_ug() [2/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_ug() [3/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_ug() [4/5]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    - -
    -
    - -

    ◆ put_logical_to_real_ug() [5/5]

    +

    ◆ put_logical_to_real_ug()

    @@ -622,17 +198,13 @@

    atm_land_ice_flux_exchange-old.F90 +
    The documentation for this interface was generated from the following file:

    diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html index 11e0e8f0..f599db08 100644 --- a/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html +++ b/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html @@ -78,7 +78,7 @@
    diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux.html index 2276ac01..2d3c984e 100644 --- a/docs/html/interfacesurface__flux__mod_1_1surface__flux.html +++ b/docs/html/interfacesurface__flux__mod_1_1surface__flux.html @@ -758,7 +758,7 @@

    diff --git a/docs/html/land__ice__flux__exchange_8_f90.html b/docs/html/land__ice__flux__exchange_8_f90.html index 796725fe..8de8a80c 100644 --- a/docs/html/land__ice__flux__exchange_8_f90.html +++ b/docs/html/land__ice__flux__exchange_8_f90.html @@ -115,7 +115,7 @@

    (8003a2efda6c2fece0a209ad7b23b647db1339c0)

    diff --git a/docs/html/namespaceatm__land__ice__flux__exchange__mod.html b/docs/html/namespaceatm__land__ice__flux__exchange__mod.html index 59cc3f3b..0863859b 100644 --- a/docs/html/namespaceatm__land__ice__flux__exchange__mod.html +++ b/docs/html/namespaceatm__land__ice__flux__exchange__mod.html @@ -82,57 +82,45 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - - + + + - - - - - - - - - - - -

    Functions/Subroutines

    subroutine, public atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     Initialization routine. More...
     
    subroutine, public sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
     Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
     
    subroutine, public generate_sfc_xgrid (Land, Ice)
     Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
     
    subroutine, public flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine, public atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
     module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module More...
     
    subroutine, public sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
     Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. More...
     
    subroutine, public flux_down_from_atmos (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
     Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. More...
     
    subroutine, public generate_sfc_xgrid (Land, Ice)
     Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) More...
     
    subroutine, public flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
     Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
     
    subroutine, public flux_ex_arrays_dealloc ()
     Internal subroutine to deallocate exchange fields. More...
     
    subroutine, public flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
     Computes deposition gas fluxes between atmosphere and ocean. More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND More...
     
    subroutine diag_field_init (Time, atmos_axes, land_axes, land_pe)
     Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
     Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run. More...
     
    subroutine divide_by_area (data, area)
     Divide data by area while avoiding zero area elements. More...
     Divide data by area where grid cell area is not zero. More...
     
    subroutine, public send_ice_mask_sic (Time)
     Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
     
    subroutine, public send_ice_mask_sic (Time)
     compute and send fractional amount of sea ice to diag_manager buffer More...
     
    subroutine, public atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    subroutine, public flux_down_from_atmos (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
     Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. More...
     
    subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
     Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
     
    subroutine, public atm_stock_integrate (Atm, res)
     integrate the total precipitation in atmosphere and multipy by dt More...
     
    @@ -146,7 +134,7 @@ - + @@ -276,16 +264,12 @@ - - - - @@ -348,24 +332,20 @@ - - - - - - - - - - - + + + + + + + + + - - @@ -374,7 +354,6 @@ - @@ -405,56 +384,40 @@ - - - - - - - - - - - - - - - - @@ -544,18 +507,15 @@ - - - - - - - - - - - - + + + + + + + + + @@ -571,20 +531,23 @@ - + - + - + - - - - + + + + + + + @@ -606,34 +569,16 @@ - - - - - - - - - - - - - - - - - -

    Variables

     holds exchange grid between different components More...
     
    integer n_xgrid_sfc =0
     number of exchange grid points More...
     total number of exchange grid cells More...
     
    character(len=4), parameter mod_name = 'flux'
     module name used to register diag_manager More...
    integer, dimension(:), allocatable id_tr_mol_flux_land
     
    integer, dimension(:), allocatable id_tr_con_atm
     deposition velocity at bottom level (atm) More...
     
    integer, dimension(:), allocatable id_tr_con_atm_land
     deposition velocity at bottom level (land) More...
     
    integer, dimension(:), allocatable id_tr_con_ref
     deposition velocity at ref height (atm) More...
     
    integer, dimension(:), allocatable id_tr_con_ref_land
     deposition velocity at reference height (land) More...
     
    integer id_evspsbl
     
     
    integer remap_method = 1
     
    real, parameter bound_tol = 1e-7
     
    real, parameter d622 = rdgas/rvgas
     
    real, parameter d378 = 1.0-d622
     
    real, parameter d608 = d378/d622
     
    real, parameter tfreeze = 273.15
     freezing point of water at 1 atm [K] More...
     
    real, parameter d622 = rdgas/rvgas
     
    real, parameter d378 = 1.0-d622
     
    real, parameter d608 = d378/d622
     
    real, parameter tfreeze = 273.15
     freezing point of water at 1 atm [K] More...
     
    real, dimension(:,:), allocatable frac_precip
     
    real z_ref_heat = 2.
     Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
     
    real z_ref_mom = 10.
     Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
     
    logical do_area_weighted_flux = .FALSE.
     
    integer nblocks = 1
     
    logical partition_fprec_from_lprec = .FALSE.
     option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
     
    logical scale_precip_2d = .false.
     
     deposition velocity at lowest atmospheric level on exchange grid More...
     
    real, dimension(:), allocatable ex_dedt_surf
     d(water.vap.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable ex_dhdt_atm
     d(sens.heat.flux)/d(T atm) More...
     
    real, dimension(:), allocatable ex_dhdt_surf
     d(sens.heat.flux)/d(T canopy) More...
     
    real, dimension(:), allocatable ex_dqsatdt_surf
     d(water.vap.flux)/d(q canopy) More...
     
    real, dimension(:), allocatable ex_drdt_surf
     d(LW flux)/d(T surf) More...
     
    real, dimension(:), allocatable ex_dtaudu_atm
     d(stress)/d(u) More...
     
    real, dimension(:), allocatable ex_dtaudv_atm
     d(stress)/d(v) More...
     
    real, dimension(:), allocatable ex_e_q_n
     
    real, dimension(:), allocatable ex_flux_lw
     longwave radiation flux More...
     
    real, dimension(:), allocatable ex_flux_t
     sens heat flux More...
     
    real, dimension(:), allocatable ex_flux_u
     u stress on atmosphere More...
     
    real, dimension(:), allocatable ex_flux_v
     v stress on atmosphere More...
     
    real, dimension(:), allocatable ex_old_albedo
     old value of albedo for downward flux calculations More...
     
    real, dimension(:), allocatable ex_p_surf
     surface pressure More...
     
    real, dimension(:), allocatable ex_seawater
     
    real, dimension(:), allocatable ex_slp
     surface pressure More...
     
    real, dimension(:), allocatable ex_t_ca
     near-surface (canopy) air temperature, degK More...
     
    real, dimension(:), allocatable ex_t_surf
     surface temperature for radiation calc, degK More...
     
    real, dimension(:), allocatable ex_t_surf_miz
     miz NEED HELP More...
    type(fmscoupler1dbc_type), pointer ex_gas_fluxes =>NULL()
     gas flux place holder of intermediate calculations, such as piston velocities etc. More...
     
    real, dimension(3) ccc
     for conservation checks !< NOT USED DELETE More...
     
    integer, parameter regrid =1
     grids are physically different, pass via exchange grid More...
     
    integer, parameter redist =2
     same physical grid, different decomposition, must move data around More...
     
    integer, parameter redirect =3
     same physical grid, same domain decomposition, can directly copy data More...
     
    integer, parameter regrid =1
     grids are physically different, pass via exchange grid More...
     
    integer, parameter redist =2
     same physical grid, different decomposition, must move data around More...
     
    integer, parameter redirect =3
     same physical grid, same domain decomposition, can directly copy data More...
     
    integer cplclock
     
    integer sfcclock
     FMS clock to profile flux up to atmosphere. More...
     
    integer x1_grid_atm
     1, exchange grid index for xgrid_stock_move More...
     =1, exchange grid index for xgrid_stock_move More...
     
    integer x1_grid_ice
     2, exchange grid index for xgrid_stock_move More...
     =2, exchange grid index for xgrid_stock_move More...
     
    integer x1_grid_lnd
     3, !< exchange grid index for xgrid_stock_move More...
     =3 exchange grid index for xgrid_stock_move More...
     
    real dt_atm
     atmospheric timestep [s] More...
     
    real dt_cpl
     coupled timestep [s] More...
     
    real atmospheric
     
    real timestep
     
    real s
     coupled timestep [s] More...
     
    integer ni_atm
     number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
     
    integer nyc_lnd =0
     number of y points in land compute domain More...
     
    real atmospheric
     
    real timestep
     
    real s
     coupled timestep [s] More...
     
    integer id_q_surf
     
    integer id_q_atm
     
    integer id_t_flux_land
     
    real, dimension(:), allocatable ex_drag_q
     q drag.coeff. More...
     
    integer, parameter direct =3
     

    Function/Subroutine Documentation

    - -

    ◆ atm_land_ice_flux_exchange_init()

    + +

    ◆ atm_land_ice_flux_exchange_init()

    - + @@ -754,24 +699,9 @@

    -

    Initialization routine.

    -

    module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module

    -

    Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module.

    +

    module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module

    Parameters

    subroutine public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init ( type(fmstime_type), intent(in)  Time,
    - - - - - - - - - - - - - @@ -790,89 +720,10 @@

    [in]

    - -
    [in]timemodel's current time
    [in,out]atmderived data type to specify atmosphere boundary data
    [in]landderived data type to specify land boundary data
    [in,out]icederived data type to specify ice boundary data
    [in,out]atmos_ice_boundaryderived type to specify properties and fluxes passed from atmosphere to ice
    [in,out]land_ice_atmos_boundaryderived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice
    [in]dt_atm_inatmosphere time step in seconds
    [in]dt_cpl_incoupled time step in seconds
    [in]z_ref_heat_inreference height for temperature and relative humidity diagnostics [m]
    [in]z_ref_mom_inreference height for momentum diagnostics [m]
    [in]scale_precip_2d_inif true, rescale Atmlprec by a field from diag_table
    [in]do_area_weighted_flux_inif true, divide flux by area
    [in]do_forecast_inif true, put atmsurf_diffsst_miz on the exchange grid if AM3_physics is used
    [in]timemodel's current time
    [in,out]atmderived data type to specify atmosphere boundary data
    [in]landderived data type to specify land boundary data
    cplclock_inclock to measure processes, mainly used for development and debugging
    [in]ex_gas_fields_atm_ingas fields in Atm. Contains atmospheric surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters
    [in]ex_gas_fields_ice_ingas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters
    [in]ex_gas_fluxes_ingas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between the atmosphere and ocean. Values defined from the field table or computed during model run
    - - -

    Initializes the interpolation routines,diagnostics and boundary data

    -
    Exceptions
    - - - - - -
    FATAL,grid_spec.nc incompatible with atmosphere resolutionThe atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere resolution from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model.
    FATAL,grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc)The latitude from file grid_spec.nc is different from the latitude from atmosphere model.
    -
    -
    -
    Parameters
    - - - - - - - - - +
    [in]timeThe model's current time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in]landA derived data type to specify land boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]atmos_ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    [in]dt_atm_inAtmosphere time step in seconds
    [in]dt_cpl_inCoupled time step in seconds
    [in]ex_gas_fluxes_ingas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between the atmosphere and ocean. Values defined from the field table or computed during model run
    -

    Initialize module level variables
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - get file unit for stdout and stdlog

    -

    get the number ofatmospheric prognostic tracers and specific humidity tracer index from the tracer table

    -

    get the total number of land tracers and the number of prognostic tracers from the tracer table

    -

    Populate tr_table and tr_table_map. Atm, land, and ice models will have its own tracer index for the same tracer.

    -

    Set the number of tracers that will be exchanged between the models

    -

    Populate tracer table for ocean-atm gas fluxes where the tracer name in atm and ocean models may differ

    -

    Get tracer index for specific humidity, co2, and nh3

    -

    Assign exchange grid type and Generate surface exchange grid

    -

    Initialize fms_diag_integral for global integral quantities
    -
    -
    -
    -
    -
    -
    - call diag_integral_field_init ('prec', 'f6.3')

    -

    Initialize atmos_ice_boundary

    -

    Copy gas fluxes from exchange grid to atmosphere_ice boundary

    -

    Initialize land_ice_atmos_boundary

    -

    Allocate fields for extra tracers

    -

    Set nxc_ice and nyc_ice

    -

    Set nxc_land nyc_land

    -

    INITIALIZE MODULE LEVEL VARIABLES

    -

    GET FILE UNIT FOR STDOUT AND STDLOG

    -

    FROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LAND

    -

    ASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS

    -

    GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND HELP: WHAT IS GENERIC EXCHANGE?

    -

    SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER

    -

    GET THE TRACER INDEX OF SPECIFIC HUMIDITY

    -

    INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE

    -

    SET UP THE EXCHANGE GRID

    -

    INITIALIZE SURFACE_FLUX

    -

    INITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGER

    -

    GET THE SIZE OF THE ATM GRID

    -

    ALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZERO

    -

    ALLOCATE FIELDS FOR EXTRA FLUXES

    -

    ALLOCATE LAND_ICE_ATMOS_BOUNDARY

    -

    ALLOCATE FIELDS FOR EXTRA TRACERS

    -

    GET DIMENSION OF THE DECOMPOSED ICE DOMAIN

    -

    GET DIMENSION OF THE DECOMPOSED LAND DOMAIN

    -

    INITIALIZE CLOCKS FOR PROFILING

    INITIALIZE MODULE LEVEL VARIABLES

    GET FILE UNIT FOR STDOUT AND STDLOG

    FROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LAND

    @@ -895,14 +746,14 @@

    -

    ◆ atm_stock_integrate() [1/2]

    + +

    ◆ atm_stock_integrate()

    - + @@ -930,43 +781,6 @@

    -

    ◆ atm_stock_integrate() [2/2]

    - -
    -
    -

    subroutine public atm_land_ice_flux_exchange_mod::atm_stock_integrate subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate ( type(atmos_data_type), intent(in)  Atm,
    - - - - - - - - - - - - - - - - - -
    subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm ,
    res  
    )
    -
    - -

    integrate the total precipitation in atmosphere and multipy by dt

    -
    Parameters
    - - - -
    [in]atmderived type to holding atmosphere boundary data
    [out]resintegrated value
    -
    -
    -
    @@ -1015,9 +829,7 @@

    -

    Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module)

    Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run.

    -

    Convert diagnostic labels from integers to strings

    Convert diagnostic labels from integers to strings

    @@ -1056,23 +868,20 @@

    -

    Divide data by area while avoiding zero area elements.

    Divide data by area where grid cell area is not zero.

    check the size of data and area are the same

    -

    divide data in each grid cell by grid cell area

    -

    check the size of data and area are the same

    divide data in each grid cell by grid cell area

    - -

    ◆ flux_atmos_to_ocean()

    + +

    ◆ flux_atmos_to_ocean()

    - + @@ -1106,9 +915,6 @@

    Parameters

    subroutine public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean ( type(fmstime_type), intent(in)  Time,
    - - - @@ -1118,134 +924,12 @@

    -

    ◆ flux_down_from_atmos() [1/2]

    - -
    -
    -
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(in) Land,
    type(ice_data_type), intent(in) Ice,
    type(land_ice_atmos_boundary_type), intent(in) Atmos_boundary,
    type(atmos_land_boundary_type), intent(inout) Land_boundary,
    type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
    )
    -
    - -

    Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer.

    -

    Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, as well as the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer.

    -

    The following elements from Atmos_boundary are used as input:

    -        flux_u_atm = zonal wind stress (Pa)
    -        flux_v_atm = meridional wind stress (Pa)
    - 

    The following elements of Land_boundary are output:

    -       flux_t_land = sensible heat flux (W/m2)
    -       flux_q_land = specific humidity flux (Kg/(m2 s)
    -      flux_lw_land = net longwave flux (W/m2), uncorrected for
    -                     changes in surface temperature
    -      flux_sw_land = net shortwave flux (W/m2)
    -         dhdt_land = derivative of sensible heat flux w.r.t.
    -                     surface temperature (on land model grid)  (W/(m2 K)
    -         dedt_land = derivative of specific humidity flux w.r.t.
    -                     surface temperature (on land model grid)  (Kg/(m2 s K)
    -         drdt_land = derivative of upward longwave flux w.r.t.
    -                     surface temperature (on land model grid) (W/(m2 K)
    -        lprec_land = liquid precipitation, mass for one time step
    -                      (Kg/m2)
    -        fprec_land = frozen precipitation, mass for one time step
    -                      (Kg/m2)
    - 

    The following elements of Ice_boundary are output:

    -        flux_u_ice = zonal wind stress (Pa)
    -        flux_v_ice = meridional wind stress (Pa)
    -        coszen_ice = cosine of the zenith angle
    - 
    Parameters
    - - - - - - - - -
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in]landA derived data type to specify land boundary data
    [in]iceA derived data type to specify ice boundary data
    [in]atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice
    [in,out]land_boundaryA derived data type to specify properties and fluxes passed from atmosphere to land
    [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
    -
    -
    -

    override flux fields if fields are specified in data_table

    -

    if scale_precip_2d = .true., scale liquid precipitation by frac_precip. frac_precip should have been allocated in atm_land_ice_flux_exchange_init with scale_precip_2d_in set to .true.

    -

    if partition_fprec_from_lpec = .true., initialize frozen precition and liquid precipitation in Atm

    -

    override atm fields if fields are specified in the data_table

    -

    map atmosphere quantities onto exchange grid
    -
    -
    -
    -
    -
    -
    -
    -
    - adjust sw flux for albedo variations on exchange grid

    -

    adjust fluxes for implicit dependence on atmosphere

    -

    Map sedimentation flux on the exchange

    -

    map field from the exchange grid to the land grid

    -

    Data_override land fields if the field is specified in the data_table

    -

    map data on the exchange grid onto the Ice grid

    -

    Override ice data if data field is specified in the data_table

    -

    Compute stock changes

    -

    send data to diag_manager buffer to save data for output

    -
    -

    ◆ flux_down_from_atmos() [2/2]

    +

    ◆ flux_down_from_atmos()

    @@ -1319,14 +1003,14 @@

    -

    ◆ flux_ex_arrays_dealloc()

    + +

    ◆ flux_ex_arrays_dealloc()

    - + @@ -1338,14 +1022,14 @@

    -

    ◆ flux_up_to_atmos()

    + +

    ◆ flux_up_to_atmos()

    subroutine public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ( )
    - + @@ -1390,21 +1074,6 @@

    Parameters
    -

    subroutine public atm_land_ice_flux_exchange_mod::flux_up_to_atmos subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos ( type(fmstime_type), intent(in)  Time,
    - - - - -
    [in]timeCurrent time
    [in,out]landA derived data type to specify ice boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    - - -

    Corrects the fluxes for consistency with the new surface temperatures in land and ice models. Final increments for temperature and specific humidity in the lowest atmospheric layer are computed and returned to the atmospheric model so that it can finalize the increments in the rest of the atmosphere.

    The following elements of the land_ice_atmos_boundary_type are computed:

             dt_t  = temperature change at the lowest
                      atmospheric level (deg k)
    @@ -1427,25 +1096,18 @@ 

    -

    ◆ generate_sfc_xgrid()

    + +

    ◆ generate_sfc_xgrid()

    - + @@ -1464,27 +1126,21 @@

    -

    Optimizes the exchange grids by eliminating land and ice partitions with no data.

    -

    Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0)

    -

    Optimizes the exchange grids by eliminating land and ice partitions with no data.

    +

    Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0)

    Parameters

    subroutine public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid ( type(land_data_type), intent(in)  Land,
    - -
    [in]landA derived data type to specify land boundary data
    [in]iceA derived data type to specify ice boundary data
    [in]landA derived data type to specify land boundary data
    [in]iceA derived data type to specify ice boundary data

    update fractional areas of ice and land on the exchange grid

    -

    reset the number of exchange grid cells saved in the module

    -

    update fractional areas of ice and land on the exchange grid

    reset the number of exchange grid cells saved in the module

    -

    ◆ put_logical_to_real_sg() [1/2]

    +

    ◆ put_logical_to_real_sg()

    @@ -1529,8 +1185,7 @@

    -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    -

    Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

    +

    Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

    Parameters
    @@ -1541,8 +1196,8 @@

    -

    ◆ put_logical_to_real_sg() [2/2]

    + +

    ◆ put_logical_to_real_ug()

    @@ -1551,28 +1206,28 @@

    [in]maskland/ice mask to map to exchange grid
    - + - - + + - - + + - - + + - - + + @@ -1587,11 +1242,10 @@

    -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    -

    Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

    +

    Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

    Parameters

    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask , logical, dimension(:,:), intent(in) mask,
    id , character(len=3), intent(in) id,
    ex_mask , real, dimension(:), intent(inout) ex_mask,
    xmap  type(fmsxgridxmap_type), intent(inout) xmap 
    - +
    [in]maskland/ice mask to map to exchange grid
    [in]maskmask on component grid
    [in,out]ex_maskconverted mask on exchange grid
    @@ -1599,140 +1253,23 @@

    -

    ◆ put_logical_to_real_ug() [1/2]

    + +

    ◆ send_ice_mask_sic()

    - - - - - -
    - + - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (logical, dimension(:,:), intent(in) mask,
    character(len=3), intent(in) id,
    real, dimension(:), intent(inout) ex_mask,
    type(fmsxgridxmap_type), intent(inout) xmap 
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    -

    Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

    -
    Parameters
    - - - -
    [in]maskmask on component grid
    [in,out]ex_maskconverted mask on exchange grid
    -
    -
    - -
    -
    - -

    ◆ put_logical_to_real_ug() [2/2]

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask ,
    id ,
    ex_mask ,
    xmap  
    )
    -
    -private
    -
    - -

    Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false)

    -

    Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

    -
    Parameters
    - - - -
    [in]maskmask on component grid
    [in,out]ex_maskconverted mask on exchange grid
    -
    -
    - -
    -
    - -

    ◆ send_ice_mask_sic()

    - -
    -
    - - - - - - + +
    subroutine public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (type(fmstime_type), intent(in) Time)type(fmstime_type), intent(in) Time)
    -

    Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why?

    -

    compute and send fractional amount of sea ice to diag_manager buffer

    +

    compute and send fractional amount of sea ice to diag_manager buffer

    Parameters
    @@ -1740,280 +1277,87 @@

    -

    ◆ sfc_boundary_layer()

    - -
    -
    -

    [in]timeCurrent time
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    subroutine public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (real, intent(in) dt,
    type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Land_Ice_Atmos_Boundary 
    )
    -
    - -

    Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction.

    -

    Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction.

    -
    -   t_surf_atm: surface temperature used for radiation [K]
    -   albedo_atm: surface albedo used for radiation  [dimensionless]
    -   rough_mom_atm: surface roughness for momentum [m]
    -   land_frac_atm: fractional area of land beneath an atmospheric grid box
    -   dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)]
    -   flux_u_atm: zonal wind stress  [Pa]
    -   flux_v_atm: meridional wind stress [Pa]
    -   u_star_atm: friction velocity [m/s]
    -   b_star_atm: buoyancy scale  [m2/s]
    - 

    Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data between one component grid to another component grid. Computed fluxes can also be overwritten with calls to data_override. Note, data_override will not override data if the tracers

    Note
    u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface.
    -
    Parameters
    - - - - - - - -
    [in]dttimestep
    [in]timecurrent model time
    [in,out]atmderived type to specify atmosphere boundary data
    [in,out]landderived type to specify land boundary data
    [in,out]icederived data type to specify ice boundary data
    [in,out]land_ice_atmos_boundaryderived data type to specify properties and fluxes passed between land and ice to atmos
    -
    -
    -

    The following quantities in the land_ice_atmos_boundary_type are computed:

    -
    -         t_surf_atm = surface temperature (used for radiation)    (K)
    -         albedo_atm = surface albedo      (used for radiation)    (nondimensional)
    -      rough_mom_atm = surface roughness for momentum (m)
    -      land_frac_atm = fractional area of land beneath an atmospheric
    -                      grid box
    -         dtaudu_atm, dtaudv_atm = derivatives of wind stress w.r.t. the
    -                                  lowest level wind speed  (Pa/(m/s))
    -         flux_u_atm = zonal wind stress  (Pa)
    -         flux_v_atm = meridional wind stress (Pa)
    -         u_star_atm = friction velocity (m/s)
    -         b_star_atm = buoyancy scale    (m2/s)
    - 
    Note
    u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface.
    -
    Exceptions
    - - -
    FATAL,must call atm_land_ice_flux_exchange_init firstatm_land_ice_flux_exchange_init has not been called before calling sfc_boundary_layer.
    -
    -
    -
    Parameters
    - - - - - - - -
    [in]dtTime step
    [in]timeCurrent time
    [in,out]atmA derived data type to specify atmosphere boundary data
    [in,out]landA derived data type to specify land boundary data
    [in,out]iceA derived data type to specify ice boundary data
    [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
    -
    -
    -

    quantities on exchange grid

    -

    temporary array to hold data

    -

    temporary array to hold data

    -

    temporary array to hold data

    -

    array holding generic, non-tracer fields on exchange grid

    -

    check if module was initialized
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - allocate module level arrays to hold data on the exchange grid (deallocated in flux_up_to_atmos)

    -

    Initialize allocated arrays (does this need to be done in an OpenMP block? Can it be set during allocation?)

    -

    initialize surface pressure on exchange grid

    -

    Allocate fms/coupler type for gas field exchange between ocean and ice
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - Allocate fms/coupler type for gas field exchange with atmosphere

    -

    Allocate additional gas flux fields for intermediate calculations

    -

    override atm fields only if the field is specified in data_table

    -

    override ice fields where data is overwritten only if the field is specified in the data_table

    -

    override land fields where data is overwritten only if the field is specified in the data_table

    -

    map atmospheric fields onto the exchange grid

    -

    prefill surface values on the exchange grid with atmospheric values before putting tracers

    -

    map ice fields onto the exchange grid

    -

    Compute dynamic mask for seaice and static mask for land

    -

    map land mask onto the exchange grid

    -

    Map land fields on to the exchange grid

    -

    compute explicit fluxes and tendencies on the exchange grid

    -

    compute the zonal and meriodonal winds at the boundary layer and at the reference heights on the exchange grid

    -

    Compute tracer flux where tracer flux = (C0*u*rho)*delta_q slm: ex_dfdtr_surf(:,isphum) is set to zero over the ocean in call to surface_flux and [so it is not appropriate to use for other tracers] <- why? However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but then this whole section will have to be changed.

    -

    map ocean gas field fluxes from the exchange grid to the ocn grid, where the flux is due to exchange between atmosphere and ocean surface and exchange between top of ice and ocean surface

    -

    map intermediate fluxes from the exchange grid to the atmospheric grid
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - convert units
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - override above computed fluxes with values from data_override if tracer exists in data_table

    -

    override flux and derivatives of sensible heat flux if field is specified in data_table

    -

    override derivative of flux wrt near-surface temperature if field is specified in data_table

    -

    override derivative of flux wrt atmospheric temperature if field is specified in data_table

    -

    Note, the units of sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm";

    -

    Update fields on Land_Ice_Atmos_Boundary

    -

    update "generic", non-tracer field exchange between land and atmosphere

    -

    data_override updated Land_ice_atmos_boundary if the fields exist in data_table

    -

    albedo fix

    -

    send data to save in diag_manager buffer for outputting at the end of the simulation

    -

    land fraction

    -

    near-surface height

    -

    near-surface height

    -

    compute deposition velocity

    -

    Initialize clocks for profiling

    -

    ALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS

    -

    ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY

    -

    ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHRE

    -

    ALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDS

    -

    SET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDS

    -

    OVERRIDE ATM ATMT_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    -

    CONVERT CO2 TRACER UNITS to WET_MMR UNITS

    -

    OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLE

    -

    OVERRIDE ICET_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. OVERRIDE LANDT_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    -

    MAP ATM FIELDS ONTO THE EXCHANGE GRID

    -

    INITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYER

    -

    MAP ICE FIELDS ONTO THE EXCHANGE GRID

    -

    GENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRID

    -

    INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRID

    -

    MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID

    -

    CALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRID

    -

    COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRID

    -

    CALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRID

    -

    COMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRID

    -

    COMPUTE EXPLICIT OCEAN FLUXES

    -

    OVERRIDE LAND AND ICE TRACER FLUXES DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

    -

    COMPUTE T_SURF**4

    +
    +
    + remap ice_mask (fractional amount of sea ice) to the atm grid

    +

    send ice_mask to diag_manager buffer
    + compute sea ice area fraction for cells on atm grid that are over ocean normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean

    + +
    +
    + +

    ◆ sfc_boundary_layer()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (real, intent(in) dt,
    type(fmstime_type), intent(in) Time,
    type(atmos_data_type), intent(inout) Atm,
    type(land_data_type), intent(inout) Land,
    type(ice_data_type), intent(inout) Ice,
    type(land_ice_atmos_boundary_type), intent(inout) Land_Ice_Atmos_Boundary 
    )
    +
    + +

    Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction.

    +
    +   t_surf_atm: surface temperature used for radiation [K]
    +   albedo_atm: surface albedo used for radiation  [dimensionless]
    +   rough_mom_atm: surface roughness for momentum [m]
    +   land_frac_atm: fractional area of land beneath an atmospheric grid box
    +   dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)]
    +   flux_u_atm: zonal wind stress  [Pa]
    +   flux_v_atm: meridional wind stress [Pa]
    +   u_star_atm: friction velocity [m/s]
    +   b_star_atm: buoyancy scale  [m2/s]
    + 

    Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data between one component grid to another component grid. Computed fluxes can also be overwritten with calls to data_override. Note, data_override will not override data if the tracers

    Note
    u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface.
    +
    Parameters
    + + + + + + + +
    [in]dttimestep
    [in]timecurrent model time
    [in,out]atmderived type to specify atmosphere boundary data
    [in,out]landderived type to specify land boundary data
    [in,out]icederived data type to specify ice boundary data
    [in,out]land_ice_atmos_boundaryderived data type to specify properties and fluxes passed between land and ice to atmos
    +
    +

    Initialize clocks for profiling

    ALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS

    ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY

    @@ -2105,53 +1449,6 @@

    -

    -
    - -

    ◆ bound_tol

    - -
    -
    - - - - - -
    - - - - -
    real parameter atm_land_ice_flux_exchange_mod::bound_tol = 1e-7
    -
    -private
    -
    - -
    -
    - -

    ◆ ccc

    - -
    -
    - - - - - -
    - - - - -
    real, dimension(3) atm_land_ice_flux_exchange_mod::ccc
    -
    -private
    -
    - -

    for conservation checks !< NOT USED DELETE

    -

    for conservation checks

    -
    @@ -2176,30 +1473,8 @@

    -

    ◆ d378

    - -
    -
    - - - - - -
    - - - - -
    real parameter atm_land_ice_flux_exchange_mod::d378 = 1.0-d622
    -
    -private
    -
    - -
    -
    - -

    ◆ d608

    + +

    ◆ d378

    @@ -2720,8 +1965,6 @@

    -

    d(sens.heat.flux)/d(T canopy)

    -

    @@ -2744,32 +1987,6 @@

    -

    d(water.vap.flux)/d(q canopy)

    - -

    -
    - -

    ◆ ex_drag_q

    - -
    -
    - - - - - -
    - - - - -
    real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drag_q
    -
    -private
    -
    - -

    q drag.coeff.

    -
    @@ -2792,8 +2009,6 @@

    -

    d(LW flux)/d(T surf)

    -

    @@ -2816,8 +2031,6 @@

    -

    d(stress)/d(u)

    -
    @@ -2840,8 +2053,6 @@

    -

    d(stress)/d(v)

    -
    @@ -2978,8 +2189,6 @@

    -

    longwave radiation flux

    -
    @@ -3002,8 +2211,6 @@

    -

    sens heat flux

    -
    @@ -3050,8 +2257,6 @@

    -

    u stress on atmosphere

    -
    @@ -3074,8 +2279,6 @@

    -

    v stress on atmosphere

    -
    @@ -3099,7 +2302,6 @@

    gas fields in atm place holder for various atmospheric fields.

    -

    gas fields in atm Place holder for various atmospheric fields.

    @@ -3148,7 +2350,6 @@

    gas flux place holder of intermediate calculations, such as piston velocities etc.

    -

    Place holder of intermediate calculations, such as piston velocities etc.

    @@ -3196,8 +2397,6 @@

    -

    old value of albedo for downward flux calculations

    -
    @@ -3220,8 +2419,6 @@

    -

    surface pressure

    -
    @@ -3266,8 +2463,6 @@

    -

    surface pressure

    -
    @@ -3290,8 +2485,6 @@

    -

    near-surface (canopy) air temperature, degK

    -
    @@ -3314,8 +2507,6 @@

    -

    surface temperature for radiation calc, degK

    -
    @@ -3339,7 +2530,6 @@

    miz NEED HELP

    -

    miz

    @@ -3596,7 +2786,6 @@

    tracer index for co2

    -

    co2 tracer index

    @@ -4214,28 +3403,6 @@

    - - - -

    ◆ id_q_atm

    - -
    -
    - - - - - -
    - - - - -
    integer atm_land_ice_flux_exchange_mod::id_q_atm
    -
    -private
    -
    -
    @@ -4346,28 +3513,6 @@

    - - - -

    ◆ id_q_surf

    - -
    -
    - - - - - -
    - - - - -
    integer atm_land_ice_flux_exchange_mod::id_q_surf
    -
    -private
    -
    -
    @@ -4742,28 +3887,6 @@

    - - - -

    ◆ id_t_flux_land

    - -
    -
    - - - - - -
    - - - - -
    integer atm_land_ice_flux_exchange_mod::id_t_flux_land
    -
    -private
    -
    -
    @@ -5094,8 +4217,6 @@

    -

    deposition velocity at bottom level (atm)

    -
    @@ -5118,8 +4239,6 @@

    -

    deposition velocity at bottom level (land)

    -
    @@ -5142,8 +4261,6 @@

    -

    deposition velocity at ref height (atm)

    -
    @@ -5166,8 +4283,6 @@

    -

    deposition velocity at reference height (land)

    -
    @@ -5741,7 +4856,6 @@

    tracer index for nh3

    -

    nh3 tracer index

    @@ -5766,7 +4880,6 @@

    tracer index for specific humidity

    -

    specific humidity index

    @@ -6004,7 +5117,6 @@

    -

    number of exchange grid points

    total number of exchange grid cells

    @@ -6076,7 +5188,6 @@

    number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice

    -

    to do atmos diagnostic from flux_ocean_to_ice

    @@ -6220,12 +5331,10 @@

    -

    option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter

    - -
    -

    ◆ redirect

    + +

    ◆ redirect

    diff --git a/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html index 16e7b9c1..42c5f1c1 100644 --- a/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html +++ b/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html @@ -151,7 +151,7 @@

    diff --git a/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html index 935d0e15..ef7b839c 100644 --- a/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html +++ b/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html @@ -676,7 +676,7 @@

    diff --git a/docs/html/namespaceflux__exchange__mod.html b/docs/html/namespaceflux__exchange__mod.html index 1a895502..e57a211b 100644 --- a/docs/html/namespaceflux__exchange__mod.html +++ b/docs/html/namespaceflux__exchange__mod.html @@ -4074,7 +4074,7 @@

    diff --git a/docs/html/namespacefull__coupler__mod.html b/docs/html/namespacefull__coupler__mod.html index 1e9632a5..5316816d 100644 --- a/docs/html/namespacefull__coupler__mod.html +++ b/docs/html/namespacefull__coupler__mod.html @@ -3586,7 +3586,7 @@

    diff --git a/docs/html/namespaceice__model__mod.html b/docs/html/namespaceice__model__mod.html index a81b335f..f9adf982 100644 --- a/docs/html/namespaceice__model__mod.html +++ b/docs/html/namespaceice__model__mod.html @@ -1374,7 +1374,7 @@

    diff --git a/docs/html/namespaceice__ocean__flux__exchange__mod.html b/docs/html/namespaceice__ocean__flux__exchange__mod.html index e3f1e5cc..a976422f 100644 --- a/docs/html/namespaceice__ocean__flux__exchange__mod.html +++ b/docs/html/namespaceice__ocean__flux__exchange__mod.html @@ -843,7 +843,7 @@

    diff --git a/docs/html/namespaceland__ice__flux__exchange__mod.html b/docs/html/namespaceland__ice__flux__exchange__mod.html index a69a6039..b6f072dd 100644 --- a/docs/html/namespaceland__ice__flux__exchange__mod.html +++ b/docs/html/namespaceland__ice__flux__exchange__mod.html @@ -392,7 +392,7 @@

    diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html index c58966ab..5006f475 100644 --- a/docs/html/namespacemembers.html +++ b/docs/html/namespacemembers.html @@ -85,7 +85,7 @@

    - a -

      : ice_model_mod
    • atm_land_ice_flux_exchange_init() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
    • atm_precip_new : flux_exchange_mod @@ -112,7 +112,7 @@

      - a -

        diff --git a/docs/html/namespacemembers_b.html b/docs/html/namespacemembers_b.html index 459026c4..fa1d7b11 100644 --- a/docs/html/namespacemembers_b.html +++ b/docs/html/namespacemembers_b.html @@ -75,8 +75,7 @@

        - b -

          : atm_land_ice_flux_exchange_mod
        • bound_tol -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
        • bulk_zq : surface_flux_mod @@ -91,7 +90,7 @@

          - b -

            diff --git a/docs/html/namespacemembers_c.html b/docs/html/namespacemembers_c.html index 88ea6a37..dfae8a00 100644 --- a/docs/html/namespacemembers_c.html +++ b/docs/html/namespacemembers_c.html @@ -81,8 +81,7 @@

            - c -

              : full_coupler_mod
            • ccc -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
            • cd_m : flux_exchange_mod @@ -225,7 +224,7 @@

              - c -

                diff --git a/docs/html/namespacemembers_d.html b/docs/html/namespacemembers_d.html index 31de063b..d5289958 100644 --- a/docs/html/namespacemembers_d.html +++ b/docs/html/namespacemembers_d.html @@ -66,16 +66,16 @@

                - d -

                • d378 -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod , surface_flux_mod
                • d608 -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , surface_flux_mod
                • d622 -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod , surface_flux_mod
                • @@ -115,8 +115,7 @@

                  - d -

                    : ice_model_mod
                  • direct -: atm_land_ice_flux_exchange_mod -, ice_ocean_flux_exchange_mod +: ice_ocean_flux_exchange_mod
                  • divert_stocks_report : flux_exchange_mod @@ -195,8 +194,7 @@

                    - d -

                      : full_coupler_mod
                    • dt_cpl -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod , ice_ocean_flux_exchange_mod , land_ice_flux_exchange_mod
                    • @@ -213,7 +211,7 @@

                      - d -

                        diff --git a/docs/html/namespacemembers_e.html b/docs/html/namespacemembers_e.html index 58e29887..c0c27620 100644 --- a/docs/html/namespacemembers_e.html +++ b/docs/html/namespacemembers_e.html @@ -122,9 +122,6 @@

                        - e -

                        • ex_dqsatdt_surf : atm_land_ice_flux_exchange_mod
                        • -
                        • ex_drag_q -: atm_land_ice_flux_exchange_mod -
                        • ex_drdt_surf : atm_land_ice_flux_exchange_mod
                        • @@ -222,7 +219,7 @@

                          - e -

                            diff --git a/docs/html/namespacemembers_f.html b/docs/html/namespacemembers_f.html index bf86f8d7..b58809b7 100644 --- a/docs/html/namespacemembers_f.html +++ b/docs/html/namespacemembers_f.html @@ -76,7 +76,7 @@

                            - f -

                              , flux_exchange_mod
                            • flux_atmos_to_ocean() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                            • flux_check_stocks() : flux_exchange_mod @@ -86,7 +86,7 @@

                              - f -

                                , flux_exchange_mod
                              • flux_ex_arrays_dealloc() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                              • flux_exchange_end() : flux_exchange_mod @@ -134,7 +134,7 @@

                                - f -

                                  : flux_exchange_mod
                                • flux_up_to_atmos() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod
                                • flux_v @@ -168,7 +168,7 @@

                                  - f -

                                    diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html index 71325623..e3072bf7 100644 --- a/docs/html/namespacemembers_func.html +++ b/docs/html/namespacemembers_func.html @@ -70,7 +70,7 @@

                                    - a -

                                      , ice_model_mod
                                    • atm_land_ice_flux_exchange_init() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                    • atm_stock_integrate() : atm_land_ice_flux_exchange_mod @@ -216,17 +216,17 @@

                                      - d -

                                        - f -

                                        • flux_atmos_to_ocean() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                        • flux_check_stocks() : flux_exchange_mod
                                        • flux_down_from_atmos() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod
                                        • flux_ex_arrays_dealloc() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                        • flux_exchange_end() : flux_exchange_mod @@ -262,7 +262,7 @@

                                          - f -

                                          @@ -273,7 +273,7 @@

                                          - g -

                                            : flux_exchange_mod
                                          • generate_sfc_xgrid() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                          • get_atmos_ice_land_chksums() : full_coupler_mod @@ -384,10 +384,10 @@

                                            - s -

                                              : atmos_ocean_fluxes_calc_mod
                                            • send_ice_mask_sic() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                            • sfc_boundary_layer() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod
                                            • surface_flux_0d() @@ -431,7 +431,7 @@

                                              - x -

                                                diff --git a/docs/html/namespacemembers_g.html b/docs/html/namespacemembers_g.html index 260c3b8d..44900dde 100644 --- a/docs/html/namespacemembers_g.html +++ b/docs/html/namespacemembers_g.html @@ -75,7 +75,7 @@

                                                - g -

                                                  : surface_flux_mod
                                                • generate_sfc_xgrid() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                                • get_atmos_ice_land_chksums() : full_coupler_mod @@ -111,7 +111,7 @@

                                                  - g -

                                                    diff --git a/docs/html/namespacemembers_h.html b/docs/html/namespacemembers_h.html index 2671193e..79bf7de4 100644 --- a/docs/html/namespacemembers_h.html +++ b/docs/html/namespacemembers_h.html @@ -78,7 +78,7 @@

                                                    - h -

                                                      diff --git a/docs/html/namespacemembers_i.html b/docs/html/namespacemembers_i.html index 4b3ea601..4373dcf0 100644 --- a/docs/html/namespacemembers_i.html +++ b/docs/html/namespacemembers_i.html @@ -205,8 +205,7 @@

                                                      - i -

                                                        , flux_exchange_mod
                                                      • id_q_atm -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
                                                      • id_q_flux : atm_land_ice_flux_exchange_mod @@ -227,8 +226,7 @@

                                                        - i -

                                                          , flux_exchange_mod
                                                        • id_q_surf -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
                                                        • id_r_flux : atm_land_ice_flux_exchange_mod @@ -291,9 +289,6 @@

                                                          - i -

                                                            : atm_land_ice_flux_exchange_mod , flux_exchange_mod -
                                                          • id_t_flux_land -: atm_land_ice_flux_exchange_mod -
                                                          • id_t_ocean : atm_land_ice_flux_exchange_mod
                                                          • @@ -476,7 +471,7 @@

                                                            - i -

                                                              diff --git a/docs/html/namespacemembers_j.html b/docs/html/namespacemembers_j.html index 457bf698..08e78968 100644 --- a/docs/html/namespacemembers_j.html +++ b/docs/html/namespacemembers_j.html @@ -77,7 +77,7 @@

                                                              - j -

                                                                diff --git a/docs/html/namespacemembers_k.html b/docs/html/namespacemembers_k.html index ea7475b3..8af2cdac 100644 --- a/docs/html/namespacemembers_k.html +++ b/docs/html/namespacemembers_k.html @@ -72,7 +72,7 @@

                                                                - k -

                                                                  diff --git a/docs/html/namespacemembers_l.html b/docs/html/namespacemembers_l.html index 9761ab04..4acaa50b 100644 --- a/docs/html/namespacemembers_l.html +++ b/docs/html/namespacemembers_l.html @@ -81,7 +81,7 @@

                                                                  - l -

                                                                    diff --git a/docs/html/namespacemembers_m.html b/docs/html/namespacemembers_m.html index 600dd871..0c1d9b5c 100644 --- a/docs/html/namespacemembers_m.html +++ b/docs/html/namespacemembers_m.html @@ -95,7 +95,7 @@

                                                                    - m -

                                                                      diff --git a/docs/html/namespacemembers_n.html b/docs/html/namespacemembers_n.html index e902736e..dced7c0b 100644 --- a/docs/html/namespacemembers_n.html +++ b/docs/html/namespacemembers_n.html @@ -149,7 +149,7 @@

                                                                      - n -

                                                                        diff --git a/docs/html/namespacemembers_o.html b/docs/html/namespacemembers_o.html index b526766f..b9290d08 100644 --- a/docs/html/namespacemembers_o.html +++ b/docs/html/namespacemembers_o.html @@ -81,7 +81,7 @@

                                                                        - o -

                                                                          diff --git a/docs/html/namespacemembers_p.html b/docs/html/namespacemembers_p.html index 2317c269..144c462a 100644 --- a/docs/html/namespacemembers_p.html +++ b/docs/html/namespacemembers_p.html @@ -91,7 +91,7 @@

                                                                          - p -

                                                                            diff --git a/docs/html/namespacemembers_q.html b/docs/html/namespacemembers_q.html index d1c8ddea..9b0fa722 100644 --- a/docs/html/namespacemembers_q.html +++ b/docs/html/namespacemembers_q.html @@ -72,7 +72,7 @@

                                                                            - q -

                                                                              diff --git a/docs/html/namespacemembers_r.html b/docs/html/namespacemembers_r.html index 569b9e59..595944ce 100644 --- a/docs/html/namespacemembers_r.html +++ b/docs/html/namespacemembers_r.html @@ -75,17 +75,17 @@

                                                                              - r -

                                                                                : flux_exchange_mod
                                                                              • redirect -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                                                              • redist -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , ice_ocean_flux_exchange_mod
                                                                              • regenclock : atm_land_ice_flux_exchange_mod
                                                                              • regrid -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , ice_ocean_flux_exchange_mod
                                                                              • remap_method @@ -104,7 +104,7 @@

                                                                                - r -

                                                                                  diff --git a/docs/html/namespacemembers_s.html b/docs/html/namespacemembers_s.html index d83f0726..6301cfbd 100644 --- a/docs/html/namespacemembers_s.html +++ b/docs/html/namespacemembers_s.html @@ -79,10 +79,10 @@

                                                                                  - s -

                                                                                    : full_coupler_mod
                                                                                  • send_ice_mask_sic() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                                                                  • sfc_boundary_layer() -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod
                                                                                  • sfcclock @@ -123,7 +123,7 @@

                                                                                    - s -

                                                                                      diff --git a/docs/html/namespacemembers_t.html b/docs/html/namespacemembers_t.html index fbcd6ac7..97400ad5 100644 --- a/docs/html/namespacemembers_t.html +++ b/docs/html/namespacemembers_t.html @@ -92,7 +92,7 @@

                                                                                      - t -

                                                                                        : full_coupler_mod
                                                                                      • tfreeze -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod
                                                                                      • thickness_min @@ -111,7 +111,7 @@

                                                                                        - t -

                                                                                          diff --git a/docs/html/namespacemembers_u.html b/docs/html/namespacemembers_u.html index d118820c..691332a2 100644 --- a/docs/html/namespacemembers_u.html +++ b/docs/html/namespacemembers_u.html @@ -114,7 +114,7 @@

                                                                                          - u -

                                                                                            diff --git a/docs/html/namespacemembers_v.html b/docs/html/namespacemembers_v.html index 6b15ea07..a9f863f7 100644 --- a/docs/html/namespacemembers_v.html +++ b/docs/html/namespacemembers_v.html @@ -78,7 +78,7 @@

                                                                                            - v -

                                                                                              diff --git a/docs/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html index 9d31c675..44123176 100644 --- a/docs/html/namespacemembers_vars.html +++ b/docs/html/namespacemembers_vars.html @@ -96,7 +96,7 @@

                                                                                              - a -

                                                                                                diff --git a/docs/html/namespacemembers_vars_b.html b/docs/html/namespacemembers_vars_b.html index cbbba45f..0826dbdd 100644 --- a/docs/html/namespacemembers_vars_b.html +++ b/docs/html/namespacemembers_vars_b.html @@ -75,8 +75,7 @@

                                                                                                - b -

                                                                                                  : atm_land_ice_flux_exchange_mod
                                                                                                • bound_tol -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
                                                                                                • bulk_zq : surface_flux_mod @@ -91,7 +90,7 @@

                                                                                                  - b -

                                                                                                    diff --git a/docs/html/namespacemembers_vars_c.html b/docs/html/namespacemembers_vars_c.html index f7d16b8a..7dd652d2 100644 --- a/docs/html/namespacemembers_vars_c.html +++ b/docs/html/namespacemembers_vars_c.html @@ -72,8 +72,7 @@

                                                                                                    - c -

                                                                                                      : full_coupler_mod
                                                                                                    • ccc -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
                                                                                                    • cd_m : flux_exchange_mod @@ -114,7 +113,7 @@

                                                                                                      - c -

                                                                                                        diff --git a/docs/html/namespacemembers_vars_d.html b/docs/html/namespacemembers_vars_d.html index fb80dcba..5ec47ab2 100644 --- a/docs/html/namespacemembers_vars_d.html +++ b/docs/html/namespacemembers_vars_d.html @@ -66,16 +66,16 @@

                                                                                                        - d -

                                                                                                        • d378 -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod , surface_flux_mod
                                                                                                        • d608 -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , surface_flux_mod
                                                                                                        • d622 -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod , surface_flux_mod
                                                                                                        • @@ -108,8 +108,7 @@

                                                                                                          - d -

                                                                                                            : ice_model_mod
                                                                                                          • direct -: atm_land_ice_flux_exchange_mod -, ice_ocean_flux_exchange_mod +: ice_ocean_flux_exchange_mod
                                                                                                          • divert_stocks_report : flux_exchange_mod @@ -184,8 +183,7 @@

                                                                                                            - d -

                                                                                                              : full_coupler_mod
                                                                                                            • dt_cpl -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod , ice_ocean_flux_exchange_mod , land_ice_flux_exchange_mod
                                                                                                            • @@ -202,7 +200,7 @@

                                                                                                              - d -

                                                                                                                diff --git a/docs/html/namespacemembers_vars_e.html b/docs/html/namespacemembers_vars_e.html index 6a6a6709..7834122d 100644 --- a/docs/html/namespacemembers_vars_e.html +++ b/docs/html/namespacemembers_vars_e.html @@ -122,9 +122,6 @@

                                                                                                                - e -

                                                                                                                • ex_dqsatdt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                • -
                                                                                                                • ex_drag_q -: atm_land_ice_flux_exchange_mod -
                                                                                                                • ex_drdt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                • @@ -222,7 +219,7 @@

                                                                                                                  - e -

                                                                                                                    diff --git a/docs/html/namespacemembers_vars_f.html b/docs/html/namespacemembers_vars_f.html index fd02bf24..4e3b4020 100644 --- a/docs/html/namespacemembers_vars_f.html +++ b/docs/html/namespacemembers_vars_f.html @@ -118,7 +118,7 @@

                                                                                                                    - f -

                                                                                                                      diff --git a/docs/html/namespacemembers_vars_g.html b/docs/html/namespacemembers_vars_g.html index 5becd429..a195561c 100644 --- a/docs/html/namespacemembers_vars_g.html +++ b/docs/html/namespacemembers_vars_g.html @@ -81,7 +81,7 @@

                                                                                                                      - g -

                                                                                                                        diff --git a/docs/html/namespacemembers_vars_h.html b/docs/html/namespacemembers_vars_h.html index 6a26a906..964163e1 100644 --- a/docs/html/namespacemembers_vars_h.html +++ b/docs/html/namespacemembers_vars_h.html @@ -78,7 +78,7 @@

                                                                                                                        - h -

                                                                                                                          diff --git a/docs/html/namespacemembers_vars_i.html b/docs/html/namespacemembers_vars_i.html index ac08b673..adfdf663 100644 --- a/docs/html/namespacemembers_vars_i.html +++ b/docs/html/namespacemembers_vars_i.html @@ -193,8 +193,7 @@

                                                                                                                          - i -

                                                                                                                            , flux_exchange_mod
                                                                                                                          • id_q_atm -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
                                                                                                                          • id_q_flux : atm_land_ice_flux_exchange_mod @@ -215,8 +214,7 @@

                                                                                                                            - i -

                                                                                                                              , flux_exchange_mod
                                                                                                                            • id_q_surf -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod
                                                                                                                            • id_r_flux : atm_land_ice_flux_exchange_mod @@ -279,9 +277,6 @@

                                                                                                                              - i -

                                                                                                                                : atm_land_ice_flux_exchange_mod , flux_exchange_mod -
                                                                                                                              • id_t_flux_land -: atm_land_ice_flux_exchange_mod -
                                                                                                                              • id_t_ocean : atm_land_ice_flux_exchange_mod
                                                                                                                              • @@ -452,7 +447,7 @@

                                                                                                                                - i -

                                                                                                                                  diff --git a/docs/html/namespacemembers_vars_j.html b/docs/html/namespacemembers_vars_j.html index d7f7690a..6406b16b 100644 --- a/docs/html/namespacemembers_vars_j.html +++ b/docs/html/namespacemembers_vars_j.html @@ -77,7 +77,7 @@

                                                                                                                                  - j -

                                                                                                                                    diff --git a/docs/html/namespacemembers_vars_k.html b/docs/html/namespacemembers_vars_k.html index ca5d6a2f..620478ec 100644 --- a/docs/html/namespacemembers_vars_k.html +++ b/docs/html/namespacemembers_vars_k.html @@ -72,7 +72,7 @@

                                                                                                                                    - k -

                                                                                                                                      diff --git a/docs/html/namespacemembers_vars_l.html b/docs/html/namespacemembers_vars_l.html index 788eab34..210f4b9f 100644 --- a/docs/html/namespacemembers_vars_l.html +++ b/docs/html/namespacemembers_vars_l.html @@ -75,7 +75,7 @@

                                                                                                                                      - l -

                                                                                                                                        diff --git a/docs/html/namespacemembers_vars_m.html b/docs/html/namespacemembers_vars_m.html index a7a0cfe1..1cbe8fd8 100644 --- a/docs/html/namespacemembers_vars_m.html +++ b/docs/html/namespacemembers_vars_m.html @@ -95,7 +95,7 @@

                                                                                                                                        - m -

                                                                                                                                          diff --git a/docs/html/namespacemembers_vars_n.html b/docs/html/namespacemembers_vars_n.html index 696c89ab..f7365af7 100644 --- a/docs/html/namespacemembers_vars_n.html +++ b/docs/html/namespacemembers_vars_n.html @@ -140,7 +140,7 @@

                                                                                                                                          - n -

                                                                                                                                            diff --git a/docs/html/namespacemembers_vars_o.html b/docs/html/namespacemembers_vars_o.html index acec95ad..a39044e1 100644 --- a/docs/html/namespacemembers_vars_o.html +++ b/docs/html/namespacemembers_vars_o.html @@ -81,7 +81,7 @@

                                                                                                                                            - o -

                                                                                                                                              diff --git a/docs/html/namespacemembers_vars_p.html b/docs/html/namespacemembers_vars_p.html index 9832d643..befea022 100644 --- a/docs/html/namespacemembers_vars_p.html +++ b/docs/html/namespacemembers_vars_p.html @@ -76,7 +76,7 @@

                                                                                                                                              - p -

                                                                                                                                                diff --git a/docs/html/namespacemembers_vars_q.html b/docs/html/namespacemembers_vars_q.html index 0b0a06e7..77f301a7 100644 --- a/docs/html/namespacemembers_vars_q.html +++ b/docs/html/namespacemembers_vars_q.html @@ -72,7 +72,7 @@

                                                                                                                                                - q -

                                                                                                                                                  diff --git a/docs/html/namespacemembers_vars_r.html b/docs/html/namespacemembers_vars_r.html index 8a19fd61..0c8f1b1f 100644 --- a/docs/html/namespacemembers_vars_r.html +++ b/docs/html/namespacemembers_vars_r.html @@ -72,17 +72,17 @@

                                                                                                                                                  - r -

                                                                                                                                                    : surface_flux_mod
                                                                                                                                                  • redirect -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod
                                                                                                                                                  • redist -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , ice_ocean_flux_exchange_mod
                                                                                                                                                  • regenclock : atm_land_ice_flux_exchange_mod
                                                                                                                                                  • regrid -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , ice_ocean_flux_exchange_mod
                                                                                                                                                  • remap_method @@ -101,7 +101,7 @@

                                                                                                                                                    - r -

                                                                                                                                                      diff --git a/docs/html/namespacemembers_vars_s.html b/docs/html/namespacemembers_vars_s.html index 8dcfe21e..020799f0 100644 --- a/docs/html/namespacemembers_vars_s.html +++ b/docs/html/namespacemembers_vars_s.html @@ -100,7 +100,7 @@

                                                                                                                                                      - s -

                                                                                                                                                        diff --git a/docs/html/namespacemembers_vars_t.html b/docs/html/namespacemembers_vars_t.html index 219939eb..c39f7a5f 100644 --- a/docs/html/namespacemembers_vars_t.html +++ b/docs/html/namespacemembers_vars_t.html @@ -92,7 +92,7 @@

                                                                                                                                                        - t -

                                                                                                                                                          : full_coupler_mod
                                                                                                                                                        • tfreeze -: atm_land_ice_flux_exchange_mod +: atm_land_ice_flux_exchange_mod , flux_exchange_mod
                                                                                                                                                        • thickness_min @@ -111,7 +111,7 @@

                                                                                                                                                          - t -

                                                                                                                                                            diff --git a/docs/html/namespacemembers_vars_u.html b/docs/html/namespacemembers_vars_u.html index aa322a20..56a38935 100644 --- a/docs/html/namespacemembers_vars_u.html +++ b/docs/html/namespacemembers_vars_u.html @@ -108,7 +108,7 @@

                                                                                                                                                            - u -

                                                                                                                                                              diff --git a/docs/html/namespacemembers_vars_v.html b/docs/html/namespacemembers_vars_v.html index 810f99a8..210711cf 100644 --- a/docs/html/namespacemembers_vars_v.html +++ b/docs/html/namespacemembers_vars_v.html @@ -75,7 +75,7 @@

                                                                                                                                                              - v -

                                                                                                                                                                diff --git a/docs/html/namespacemembers_vars_w.html b/docs/html/namespacemembers_vars_w.html index 26f635ec..16559b73 100644 --- a/docs/html/namespacemembers_vars_w.html +++ b/docs/html/namespacemembers_vars_w.html @@ -72,7 +72,7 @@

                                                                                                                                                                - w -

                                                                                                                                                                  diff --git a/docs/html/namespacemembers_vars_x.html b/docs/html/namespacemembers_vars_x.html index de2173e5..6b972863 100644 --- a/docs/html/namespacemembers_vars_x.html +++ b/docs/html/namespacemembers_vars_x.html @@ -90,7 +90,7 @@

                                                                                                                                                                  - x -

                                                                                                                                                                    diff --git a/docs/html/namespacemembers_vars_z.html b/docs/html/namespacemembers_vars_z.html index 15a080fd..55e9b799 100644 --- a/docs/html/namespacemembers_vars_z.html +++ b/docs/html/namespacemembers_vars_z.html @@ -77,7 +77,7 @@

                                                                                                                                                                    - z -

                                                                                                                                                                      diff --git a/docs/html/namespacemembers_w.html b/docs/html/namespacemembers_w.html index ab40d311..63a6ab17 100644 --- a/docs/html/namespacemembers_w.html +++ b/docs/html/namespacemembers_w.html @@ -72,7 +72,7 @@

                                                                                                                                                                      - w -

                                                                                                                                                                        diff --git a/docs/html/namespacemembers_x.html b/docs/html/namespacemembers_x.html index bf1e5276..84fe972d 100644 --- a/docs/html/namespacemembers_x.html +++ b/docs/html/namespacemembers_x.html @@ -93,7 +93,7 @@

                                                                                                                                                                        - x -

                                                                                                                                                                          diff --git a/docs/html/namespacemembers_z.html b/docs/html/namespacemembers_z.html index cd0502f5..eabf00bf 100644 --- a/docs/html/namespacemembers_z.html +++ b/docs/html/namespacemembers_z.html @@ -77,7 +77,7 @@

                                                                                                                                                                          - z -

                                                                                                                                                                            diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html index 935a0b3c..3d5fe6e1 100644 --- a/docs/html/namespaces.html +++ b/docs/html/namespaces.html @@ -82,7 +82,7 @@ diff --git a/docs/html/namespacesurface__flux__mod.html b/docs/html/namespacesurface__flux__mod.html index c3b97495..d2f15dbf 100644 --- a/docs/html/namespacesurface__flux__mod.html +++ b/docs/html/namespacesurface__flux__mod.html @@ -2239,7 +2239,7 @@

                                                                                                                                                                            diff --git a/docs/html/pages.html b/docs/html/pages.html index b9999894..bce4a381 100644 --- a/docs/html/pages.html +++ b/docs/html/pages.html @@ -76,7 +76,7 @@ diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js index 165e0532..963f4bd8 100644 --- a/docs/html/search/all_0.js +++ b/docs/html/search/all_0.js @@ -12,12 +12,11 @@ var searchData= ['amip_5fice',['amip_ice',['../namespaceice__model__mod.html#a5663c456270837d94270cb3e853b8d11',1,'ice_model_mod']]], ['amip_5fsst',['amip_sst',['../namespaceice__model__mod.html#ad482a1238aba8004d9c21616d04163f3',1,'ice_model_mod']]], ['atm',['atm',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a6958e428760cf729bec6fc2748104d03',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::atm()'],['../structfull__coupler__mod_1_1coupler__clock__type.html#a6c6826c6bd3bb9b6c77f265576eb4921',1,'full_coupler_mod::coupler_clock_type::atm()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a2e38920a1bf3f745decc0b056b489730',1,'full_coupler_mod::coupler_components_type::atm()']]], - ['atm_5fland_5fice_5fflux_5fexchange_2dold_2ef90',['atm_land_ice_flux_exchange-old.F90',['../atm__land__ice__flux__exchange-old_8_f90.html',1,'']]], ['atm_5fland_5fice_5fflux_5fexchange_2ef90',['atm_land_ice_flux_exchange.F90',['../atm__land__ice__flux__exchange_8_f90.html',1,'']]], - ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#aefc839a12fc334b7685be207d2ff5452',1,'atm_land_ice_flux_exchange_mod']]], + ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ab8675556ecdbebfb8b3093fadbe11cde',1,'atm_land_ice_flux_exchange_mod']]], ['atm_5fland_5fice_5fflux_5fexchange_5fmod',['atm_land_ice_flux_exchange_mod',['../namespaceatm__land__ice__flux__exchange__mod.html',1,'']]], ['atm_5fprecip_5fnew',['atm_precip_new',['../namespaceflux__exchange__mod.html#a4133789f8990f2178df334764b71a74d',1,'flux_exchange_mod']]], - ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)'],['../namespaceatm__land__ice__flux__exchange__mod.html#aaabcd517cb4e3367fe4d9c1e8cda3a60',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)']]], + ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod']]], ['atmos_5fice_5fboundary',['atmos_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aaeff62295938d8d1a2b25f225afacf3e',1,'full_coupler_mod::coupler_components_type']]], ['atmos_5fice_5fboundary_5ftype',['atmos_ice_boundary_type',['../structice__model__mod_1_1atmos__ice__boundary__type.html',1,'ice_model_mod']]], ['atmos_5fland_5fboundary',['atmos_land_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#abf0d670a022708f880f690bf99514b5f',1,'full_coupler_mod::coupler_components_type']]], diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js index ba518a4b..98eb8006 100644 --- a/docs/html/search/all_1.js +++ b/docs/html/search/all_1.js @@ -3,7 +3,7 @@ var searchData= ['b_5fstar',['b_star',['../namespaceflux__exchange__mod.html#aa9caedcc1bc69b6296dc5fef0c77a891',1,'flux_exchange_mod']]], ['block_5fend',['block_end',['../namespaceatm__land__ice__flux__exchange__mod.html#af5376c2ef9475b25b0fe09811ec50950',1,'atm_land_ice_flux_exchange_mod']]], ['block_5fstart',['block_start',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a4d0039fbafb9bcb71fbe0848710532',1,'atm_land_ice_flux_exchange_mod']]], - ['bound_5ftol',['bound_tol',['../namespaceatm__land__ice__flux__exchange__mod.html#a6e6f4ac592c8deee969b6832312e2cd5',1,'atm_land_ice_flux_exchange_mod::bound_tol()'],['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod::bound_tol()']]], + ['bound_5ftol',['bound_tol',['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod']]], ['bulk_5fzq',['bulk_zq',['../namespacesurface__flux__mod.html#ab0430982abba672524b5a13c4b730647',1,'surface_flux_mod']]], ['bulk_5fzt',['bulk_zt',['../namespacesurface__flux__mod.html#ac06e3e9bb1a504104ec21e0b7585e1aa',1,'surface_flux_mod']]], ['bulk_5fzu',['bulk_zu',['../namespacesurface__flux__mod.html#ae9006d4cf180672ab7b529b22c3dbac8',1,'surface_flux_mod']]] diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js index 9fc8c210..3969b69d 100644 --- a/docs/html/search/all_11.js +++ b/docs/html/search/all_11.js @@ -4,10 +4,10 @@ var searchData= ['radiation_5fnthreads',['radiation_nthreads',['../namespacefull__coupler__mod.html#a3e853db33e426916924f2bb27d2f10a4',1,'full_coupler_mod']]], ['raoult_5fsat_5fvap',['raoult_sat_vap',['../namespacesurface__flux__mod.html#a20457ec53d55f2819c2109515b92a79f',1,'surface_flux_mod']]], ['read_5fnamelist',['read_namelist',['../namespaceflux__exchange__mod.html#a52e173ad7fa50e521f75eef8cd9aff95',1,'flux_exchange_mod']]], - ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a0201d6a1f3c4de84d4c5d25d7a6b84b9',1,'atm_land_ice_flux_exchange_mod']]], - ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a68840c3ed23ff9d95ffae81396ee893f',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], + ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a056bbf92b7605811c7ff570c45ebafd6',1,'atm_land_ice_flux_exchange_mod']]], + ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a9d21a4be462dd340e9f192cc66627d54',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], ['regenclock',['regenclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a5ea8ad1958bb201b40dbba386178c8de',1,'atm_land_ice_flux_exchange_mod']]], - ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a56103b2cfc0a82f3303b9e20f25acdbe',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], + ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d21fff836af698eb07aea029290cc4b',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], ['remap_5fmethod',['remap_method',['../namespaceatm__land__ice__flux__exchange__mod.html#a96ed2d0c9f780f120de2d1c2dd83dd09',1,'atm_land_ice_flux_exchange_mod']]], ['restart_5finterval',['restart_interval',['../namespacefull__coupler__mod.html#ad7e959a3e2e3da70f34991150fa4711a',1,'full_coupler_mod']]], ['rough_5fheat',['rough_heat',['../structice__model__mod_1_1ice__data__type.html#a2b0fc3f7a2b99a46539750bf685613cc',1,'ice_model_mod::ice_data_type']]], diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js index be208a9d..6522e16b 100644 --- a/docs/html/search/all_12.js +++ b/docs/html/search/all_12.js @@ -4,11 +4,11 @@ var searchData= ['scale_5fprecip_5f2d',['scale_precip_2d',['../namespaceatm__land__ice__flux__exchange__mod.html#aff59028b168f9a123112151e3f9c082b',1,'atm_land_ice_flux_exchange_mod::scale_precip_2d()'],['../namespaceflux__exchange__mod.html#ad4f0bf7fd2d4d737a0c90c919458ed6e',1,'flux_exchange_mod::scale_precip_2d()']]], ['schmidt_5fg',['schmidt_g',['../namespaceatmos__ocean__fluxes__calc__mod.html#a7a879f540fe903119d5bb324c44f6c45',1,'atmos_ocean_fluxes_calc_mod']]], ['seconds',['seconds',['../namespacefull__coupler__mod.html#a0d752429e35e05d13912e2d320e94950',1,'full_coupler_mod']]], - ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#aea62f09680f206912e5ba1883abb32bc',1,'atm_land_ice_flux_exchange_mod']]], + ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#af00a10abb94ffaa2f305e00de92362bc',1,'atm_land_ice_flux_exchange_mod']]], ['set_5fice_5fsurface_5fexchange',['set_ice_surface_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#aa8e8fb7bc677dd49705a5b0ed54bd3c3',1,'full_coupler_mod::coupler_clock_type']]], ['set_5fice_5fsurface_5ffast',['set_ice_surface_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a11a6b9563d30b684d5ef31a1599f7104',1,'full_coupler_mod::coupler_clock_type']]], ['set_5fice_5fsurface_5fslow',['set_ice_surface_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab78c1f122e35a9b77e79cb0845b6b717',1,'full_coupler_mod::coupler_clock_type']]], - ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae18b3eb2f36a1ed733b54e1e5a34c552',1,'full_coupler_mod::coupler_clock_type::sfc_boundary_layer()'],['../namespaceatm__land__ice__flux__exchange__mod.html#af6dc1ca9a9e4460748eef47dfd719d46',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], + ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae18b3eb2f36a1ed733b54e1e5a34c552',1,'full_coupler_mod::coupler_clock_type::sfc_boundary_layer()'],['../namespaceatm__land__ice__flux__exchange__mod.html#ae7a53520e8a084f5fa930c5c18c85b54',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], ['sfcclock',['sfcclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a4afcbc6731e29417a8e91a70224c813c',1,'atm_land_ice_flux_exchange_mod']]], ['slow_5fice_5focean_5fpelist',['slow_ice_ocean_pelist',['../namespaceice__ocean__flux__exchange__mod.html#a3b7a0952e69375784c15b6436be4c693',1,'ice_ocean_flux_exchange_mod']]], ['slow_5fice_5fwith_5focean',['slow_ice_with_ocean',['../namespacefull__coupler__mod.html#aef0442d39d4bf3537b9295aee2ea2470',1,'full_coupler_mod']]], diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js index 1cc4239e..7199845c 100644 --- a/docs/html/search/all_13.js +++ b/docs/html/search/all_13.js @@ -10,7 +10,7 @@ var searchData= ['temp_5fsst',['temp_sst',['../namespaceice__model__mod.html#a04a20dcacf655c21e5f47206ae06f344',1,'ice_model_mod']]], ['termination',['termination',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac68d174e845176ed37f58218a2b161d9',1,'full_coupler_mod::coupler_clock_type']]], ['text',['text',['../namespacefull__coupler__mod.html#a481c6dc3126700e15926453bb0c98096',1,'full_coupler_mod']]], - ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ffa4143323bc877d98983dc83a6544c',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], + ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f36d7021f66e3fa87247d3f45450519',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], ['thickness',['thickness',['../structice__model__mod_1_1ice__data__type.html#a4fc960a59d3520d6acf290a76e0e246b',1,'ice_model_mod::ice_data_type']]], ['thickness_5fmin',['thickness_min',['../namespaceice__model__mod.html#a753820dd4f1115554e58b0bdc566dd8d',1,'ice_model_mod']]], ['time',['time',['../structice__model__mod_1_1ice__data__type.html#a4b225d644fe34ad3ccd00add6817f553',1,'ice_model_mod::ice_data_type']]], diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js index 0f169d15..1e3ba831 100644 --- a/docs/html/search/all_14.js +++ b/docs/html/search/all_14.js @@ -13,7 +13,6 @@ var searchData= ['update_5fice_5fmodel_5fslow_5fslow',['update_ice_model_slow_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5c87ab8c6abe1995dce0b6eb5f211855',1,'full_coupler_mod::coupler_clock_type']]], ['update_5fland_5fmodel_5ffast',['update_land_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac2ee1ed8bc0f8b67d84e03f97275ee00',1,'full_coupler_mod::coupler_clock_type']]], ['update_5fland_5fmodel_5fslow',['update_land_model_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac59f01b2ba937daed2124ee679909287',1,'full_coupler_mod::coupler_clock_type']]], - ['use_5fam3_5fonly_2ef90',['use_am3_only.f90',['../use__am3__only_8f90.html',1,'']]], ['use_5fannual_5fice',['use_annual_ice',['../namespaceice__model__mod.html#a782cca47fdcd3876f98bf9733a4db5ab',1,'ice_model_mod']]], ['use_5fannual_5fsst',['use_annual_sst',['../namespaceice__model__mod.html#aa0b9af1ad302c2a1ee36b791c83959c6',1,'ice_model_mod']]], ['use_5fclimo_5fice',['use_climo_ice',['../namespaceice__model__mod.html#a49c6719259ca27e72d9237e3fd75ba10',1,'ice_model_mod']]], @@ -21,8 +20,6 @@ var searchData= ['use_5fexisting_5fgrid_5fspec',['use_existing_grid_spec',['../namespaceflux__exchange__mod.html#af340dcdf7b0c5c94fe4320ffda186de0',1,'flux_exchange_mod']]], ['use_5fhyper_5fthread',['use_hyper_thread',['../namespacefull__coupler__mod.html#a1b451e1fd8ed76ad553334552917841e',1,'full_coupler_mod']]], ['use_5flag_5ffluxes',['use_lag_fluxes',['../namespacefull__coupler__mod.html#a9a1c54998e22ffba7be908ad06c4695a',1,'full_coupler_mod']]], - ['use_5fland_5fand_5fam3_2ef90',['use_land_and_am3.f90',['../use__land__and__am3_8f90.html',1,'']]], - ['use_5fland_5fonly_2ef90',['use_land_only.f90',['../use__land__only_8f90.html',1,'']]], ['use_5fmixing_5fratio',['use_mixing_ratio',['../namespacesurface__flux__mod.html#a9dd1f7954c70115612a940a78b0daa61',1,'surface_flux_mod']]], ['use_5fu10_5fneutral',['use_u10_neutral',['../namespacesurface__flux__mod.html#a0dde12495da696d1c077ac6ecb7c6714',1,'surface_flux_mod']]], ['use_5fvirtual_5ftemp',['use_virtual_temp',['../namespacesurface__flux__mod.html#a0fdcdb1d11f52c4fbe51fe6def24ea2b',1,'surface_flux_mod']]], diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js index 30b6fdee..8954c9e5 100644 --- a/docs/html/search/all_2.js +++ b/docs/html/search/all_2.js @@ -5,7 +5,7 @@ var searchData= ['calc_5fkw',['calc_kw',['../namespaceatmos__ocean__fluxes__calc__mod.html#abf318a12a94816f9a99ccd779e028e75',1,'atmos_ocean_fluxes_calc_mod']]], ['calendar',['calendar',['../namespacefull__coupler__mod.html#a18e3d16cb372a5f0f49e36687c7aeee9',1,'full_coupler_mod']]], ['calendar_5ftype',['calendar_type',['../namespacefull__coupler__mod.html#a5cae24118f6f7671ff74206b3803868b',1,'full_coupler_mod']]], - ['ccc',['ccc',['../namespaceatm__land__ice__flux__exchange__mod.html#aedd101291e4737318da14ac51a2c07b0',1,'atm_land_ice_flux_exchange_mod::ccc()'],['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod::ccc()']]], + ['ccc',['ccc',['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod']]], ['cd_5fm',['cd_m',['../namespaceflux__exchange__mod.html#acecf7a05415537c2ac395e6a68934628',1,'flux_exchange_mod']]], ['cd_5ft',['cd_t',['../namespaceflux__exchange__mod.html#a53b62119a9798cdfef5cae59286254f5',1,'flux_exchange_mod']]], ['check_5fatm_5fgrid',['check_atm_grid',['../namespaceflux__exchange__mod.html#a9b9500d8c86af3e964c1558bb7ae464e',1,'flux_exchange_mod']]], diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js index 0f9fdea7..358f1722 100644 --- a/docs/html/search/all_3.js +++ b/docs/html/search/all_3.js @@ -1,8 +1,8 @@ var searchData= [ - ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#af16f9f6655fc1f37a14e967618b66a6a',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], - ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a56c1b7e4d03b228479e25241a41085c4',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], - ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a674182b17c6173f4b76511bcee534c4c',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], + ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#aa77dede0d3c2c5408143f748933f68a2',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], + ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a8cf3f5dece449a034a9e4643d31b8c',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], + ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f6ee7f59b0dcbd45caa8957f2eb5b34',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], ['d_5fair',['d_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a6a4a1330c1ee1043b30e4b86f462ec24',1,'atmos_ocean_fluxes_calc_mod']]], ['data',['data',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a0e638d4b8efef050d34bb16bb637e503',1,'ice_model_mod::atmos_ice_boundary_type']]], ['date_5finit',['date_init',['../namespacefull__coupler__mod.html#a224eb7b4334353b002163b32235c2c37',1,'full_coupler_mod']]], @@ -17,7 +17,7 @@ var searchData= ['dhdt_5fsurf',['dhdt_surf',['../namespaceflux__exchange__mod.html#adda223e3f75af374428581666b973a69',1,'flux_exchange_mod']]], ['diag_5ffield_5finit',['diag_field_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8a26116481dffeb2f5f2ac6444c64f5',1,'atm_land_ice_flux_exchange_mod::diag_field_init()'],['../namespaceflux__exchange__mod.html#ab9537fe935b63ea2cf7f9c8f895cb8e0',1,'flux_exchange_mod::diag_field_init()']]], ['diff',['diff',['../namespaceice__model__mod.html#a9930d4b7c4f36ba29c1494007ab9a5c4',1,'ice_model_mod']]], - ['direct',['direct',['../namespaceatm__land__ice__flux__exchange__mod.html#acd77c349aebc563e2a79a36b7c9728c7',1,'atm_land_ice_flux_exchange_mod::direct()'],['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod::direct()']]], + ['direct',['direct',['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod']]], ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], ['divide_5fby_5farea',['divide_by_area',['../namespaceatm__land__ice__flux__exchange__mod.html#a6dbcba7c48b5f085de6b33e9f05d6868',1,'atm_land_ice_flux_exchange_mod::divide_by_area()'],['../namespaceice__ocean__flux__exchange__mod.html#a1da352681654a7c70e1c929092357c76',1,'ice_ocean_flux_exchange_mod::divide_by_area()']]], ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad202bbf87044b1eec5805f6875857910',1,'atm_land_ice_flux_exchange_mod::do_area_weighted_flux()'],['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], @@ -43,7 +43,7 @@ var searchData= ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], - ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], + ['dt_5fcpl',['dt_cpl',['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js index 149d20f5..87d27cfc 100644 --- a/docs/html/search/all_4.js +++ b/docs/html/search/all_4.js @@ -19,7 +19,6 @@ var searchData= ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdrag_5fq',['ex_drag_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a06ac4914cb14f5ad8659d768f838b2ba',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdtaudv_5fatm',['ex_dtaudv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#ae3ae41712484a6829639b4cd4431dab1',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js index 0be17703..09d635b9 100644 --- a/docs/html/search/all_5.js +++ b/docs/html/search/all_5.js @@ -4,10 +4,10 @@ var searchData= ['f_5ft_5fdelt_5fn',['f_t_delt_n',['../namespaceflux__exchange__mod.html#afd64fcaa6261af605cf0704e813fe0bb',1,'flux_exchange_mod']]], ['final_5fflux_5fcheck_5fstocks',['final_flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5042090eb7e46f01440a762fbe55dbf8',1,'full_coupler_mod::coupler_clock_type']]], ['first_5fstatic',['first_static',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6ec5aeec04dfbc11e9db1d496b0d276',1,'atm_land_ice_flux_exchange_mod::first_static()'],['../namespaceflux__exchange__mod.html#a6a77207b65f30f8fe2db3dd6a3cf15ea',1,'flux_exchange_mod::first_static()']]], - ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#abbc25f2b6691ab2cbe94c2b7a8e3235f',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b47968fcb9188a68db2b7b8e1ea7a0f',1,'atm_land_ice_flux_exchange_mod']]], ['flux_5fcheck_5fstocks',['flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6d6bae8bc10923df881c023689bdc5f3',1,'full_coupler_mod::coupler_clock_type::flux_check_stocks()'],['../namespaceflux__exchange__mod.html#a905b179ee9688d2feeef94f3417b25e5',1,'flux_exchange_mod::flux_check_stocks()']]], - ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab01f08cbfcccf5bb51e6ce8fce17c2e5',1,'full_coupler_mod::coupler_clock_type::flux_down_from_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#adbe4303a01222ce60a65246fecc1f7aa',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], - ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec6c8a5b6f66728f1d07dba27282319c',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab01f08cbfcccf5bb51e6ce8fce17c2e5',1,'full_coupler_mod::coupler_clock_type::flux_down_from_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos()'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], + ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8716ce7e07543b081c151bd0b24d7d1',1,'atm_land_ice_flux_exchange_mod']]], ['flux_5fexchange_2ef90',['flux_exchange.F90',['../full_2flux__exchange_8_f90.html',1,'(Global Namespace)'],['../simple_2flux__exchange_8_f90.html',1,'(Global Namespace)']]], ['flux_20exchange_20configuration',['Flux Exchange Configuration',['../flux_exchange_conf.html',1,'']]], ['flux_5fexchange_5fend',['flux_exchange_end',['../namespaceflux__exchange__mod.html#a6485a12c7af1fed26ee7a8dac257a508',1,'flux_exchange_mod']]], @@ -26,19 +26,19 @@ var searchData= ['flux_5fq',['flux_q',['../namespaceflux__exchange__mod.html#a3c4cfa64058f3cca59b7c804cfab4d83',1,'flux_exchange_mod']]], ['flux_5ft',['flux_t',['../namespaceflux__exchange__mod.html#ae6259f1b9fad0af0d2744ebfc7a34313',1,'flux_exchange_mod']]], ['flux_5fu',['flux_u',['../namespaceflux__exchange__mod.html#ae36d80622db4d5f45ecf4da1f00c5b25',1,'flux_exchange_mod']]], - ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3b44642440602473e03691b68b4cdf8f',1,'full_coupler_mod::coupler_clock_type::flux_up_to_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#afff8d47bcdf69e33ea3f2df0e406373e',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]], + ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3b44642440602473e03691b68b4cdf8f',1,'full_coupler_mod::coupler_clock_type::flux_up_to_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a9ff1868e71257630777ac2d9c8b6180c',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]], ['flux_5fv',['flux_v',['../namespaceflux__exchange__mod.html#a9c5e8f07060938dfc699b598621056e1',1,'flux_exchange_mod']]], ['fluxatmdnclock',['fluxatmdnclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a33f6639238a7502d880f163e1e2b9a7d',1,'atm_land_ice_flux_exchange_mod']]], ['fluxatmupclock',['fluxatmupclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a17bc1bc0397c5f238246e540932eb068',1,'atm_land_ice_flux_exchange_mod']]], ['fluxiceoceanclock',['fluxiceoceanclock',['../namespaceice__ocean__flux__exchange__mod.html#a9ba54588c93b81c1cc0264d121bd380a',1,'ice_ocean_flux_exchange_mod']]], ['fluxlandiceclock',['fluxlandiceclock',['../namespaceland__ice__flux__exchange__mod.html#a1eea545bd73b38025dc9e06351309075',1,'land_ice_flux_exchange_mod']]], ['fluxoceaniceclock',['fluxoceaniceclock',['../namespaceice__ocean__flux__exchange__mod.html#aee6869bc407ceb33d261653edd09ea11',1,'ice_ocean_flux_exchange_mod']]], - ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange-old_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange-old_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange-old_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange-old_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange.F90']]], + ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'atm_land_ice_flux_exchange.F90']]], ['fname',['fname',['../namespaceice__model__mod.html#a4c4ab586477d470b99a4a9475810aee5',1,'ice_model_mod']]], ['force_5fdate_5ffrom_5fnamelist',['force_date_from_namelist',['../namespacefull__coupler__mod.html#aa387f247b7f4014a0479a4c337f6b782',1,'full_coupler_mod']]], ['fprec',['fprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a3f6cb46f2625a4b5f2c7fb9f94d62749',1,'ice_model_mod::atmos_ice_boundary_type']]], diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js index 9017a323..fde1f119 100644 --- a/docs/html/search/all_6.js +++ b/docs/html/search/all_6.js @@ -3,7 +3,7 @@ var searchData= ['gas_5fexchange_5finit',['gas_exchange_init',['../namespaceflux__exchange__mod.html#a9d5d9cb2721d5b49e6dfbaefa89185f8',1,'flux_exchange_mod']]], ['gas_5ffluxes_5finitialized',['gas_fluxes_initialized',['../namespaceflux__exchange__mod.html#a5f1a23e53559d3a711cb36e25fd4ace4',1,'flux_exchange_mod']]], ['gcp',['gcp',['../namespacesurface__flux__mod.html#a5336c38c479c44a9705f79ef59fa2884',1,'surface_flux_mod']]], - ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../structfull__coupler__mod_1_1coupler__clock__type.html#a99db2947c8e7611cc79452797333d3e2',1,'full_coupler_mod::coupler_clock_type::generate_sfc_xgrid()'],['../namespaceatm__land__ice__flux__exchange__mod.html#af73f258e9e1810ec379ea84241a032f5',1,'atm_land_ice_flux_exchange_mod::generate_sfc_xgrid()']]], + ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../structfull__coupler__mod_1_1coupler__clock__type.html#a99db2947c8e7611cc79452797333d3e2',1,'full_coupler_mod::coupler_clock_type::generate_sfc_xgrid()'],['../namespaceatm__land__ice__flux__exchange__mod.html#ae90760b8fd57a82bc54db9ece86486ba',1,'atm_land_ice_flux_exchange_mod::generate_sfc_xgrid()']]], ['get_5fatmos_5fice_5fland_5fchksums',['get_atmos_ice_land_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#acd9ec31136762085212e2184eb95a896',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums()'],['../namespacefull__coupler__mod.html#ac24e45f64a2c3bd2674b5b0436107eb6',1,'full_coupler_mod::get_atmos_ice_land_chksums()']]], ['get_5fatmos_5fice_5fland_5focean_5fchksums',['get_atmos_ice_land_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#ae519e712159d78b971a59a5e4311f61e',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums()'],['../namespacefull__coupler__mod.html#a7e2a2f28f1037117dd2e1790d99b8616',1,'full_coupler_mod::get_atmos_ice_land_ocean_chksums()']]], ['get_5fcell_5fcenter',['get_cell_center',['../namespaceice__model__mod.html#ab2e9be6fcef2df1c9886c80ad3f8e68c',1,'ice_model_mod']]], diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js index 95149585..3bf8f237 100644 --- a/docs/html/search/all_8.js +++ b/docs/html/search/all_8.js @@ -48,13 +48,13 @@ var searchData= ['id_5fo2_5fflux_5fpcair_5fatm',['id_o2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adeb499100d57339308ae4b676aeeaa93',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fp_5fatm',['id_p_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#af8a1447d56d28335055d81152496f7e8',1,'atm_land_ice_flux_exchange_mod::id_p_atm()'],['../namespaceflux__exchange__mod.html#a3c25e7f8bd1fa9d3b650e20671f1eb78',1,'flux_exchange_mod::id_p_atm()']]], ['id_5fpsl',['id_psl',['../namespaceatm__land__ice__flux__exchange__mod.html#ab940b2bc9ff8b4339233507550d4a856',1,'atm_land_ice_flux_exchange_mod::id_psl()'],['../namespaceflux__exchange__mod.html#afb4061b5677fe090528f0a991abade69',1,'flux_exchange_mod::id_psl()']]], - ['id_5fq_5fatm',['id_q_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aae4693134893e6c8ddb01b0d566d3856',1,'atm_land_ice_flux_exchange_mod::id_q_atm()'],['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod::id_q_atm()']]], + ['id_5fq_5fatm',['id_q_atm',['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod']]], ['id_5fq_5fflux',['id_q_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a1ed968c0f36351d58e7a035b37d01492',1,'atm_land_ice_flux_exchange_mod::id_q_flux()'],['../namespaceflux__exchange__mod.html#a8d635e999ae24402dd99af0657d706f9',1,'flux_exchange_mod::id_q_flux()']]], ['id_5fq_5fflux_5fland',['id_q_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ab7c212b94ae379003d7dfed66892d059',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fq_5fref',['id_q_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a035a0187d04ed47f6b373ba207be09c9',1,'atm_land_ice_flux_exchange_mod::id_q_ref()'],['../namespaceflux__exchange__mod.html#a9b49a9b72bfb917602bf46899bbe3524',1,'flux_exchange_mod::id_q_ref()']]], ['id_5fq_5fref_5fland',['id_q_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#af43c49c9a0d6969182207632bfc8e3bc',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fq_5fstar',['id_q_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a2b4c714ab247af5b460ed9255669c018',1,'atm_land_ice_flux_exchange_mod::id_q_star()'],['../namespaceflux__exchange__mod.html#ae58f4cc598d0dfc185b8dd9717ee5a2b',1,'flux_exchange_mod::id_q_star()']]], - ['id_5fq_5fsurf',['id_q_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a67d3af4db9c9b63bfef3c21ea17a7d9b',1,'atm_land_ice_flux_exchange_mod::id_q_surf()'],['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod::id_q_surf()']]], + ['id_5fq_5fsurf',['id_q_surf',['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod']]], ['id_5fr_5fflux',['id_r_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a082d4699eda42a0277b53b8d3b40b6',1,'atm_land_ice_flux_exchange_mod::id_r_flux()'],['../namespaceflux__exchange__mod.html#ab6d4c349f5231beb4e2f116f2f7a844d',1,'flux_exchange_mod::id_r_flux()']]], ['id_5frh_5fref',['id_rh_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aa78a8745d3bd1c15c23ea56368a94f2f',1,'atm_land_ice_flux_exchange_mod::id_rh_ref()'],['../namespaceflux__exchange__mod.html#af2b89e05edbf76edca8d8b7056269ef8',1,'flux_exchange_mod::id_rh_ref()']]], ['id_5frh_5fref_5fcmip',['id_rh_ref_cmip',['../namespaceatm__land__ice__flux__exchange__mod.html#ab3af14f2a483c630a814faa30860c2ea',1,'atm_land_ice_flux_exchange_mod']]], @@ -72,7 +72,6 @@ var searchData= ['id_5ft_5fatm',['id_t_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adf91d25ca4f1262291c52a6952587518',1,'atm_land_ice_flux_exchange_mod::id_t_atm()'],['../namespaceflux__exchange__mod.html#a7114bbe87d459e9b24ce483beae56faa',1,'flux_exchange_mod::id_t_atm()']]], ['id_5ft_5fca',['id_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a188de7203c962fd3586ef6bd72cec660',1,'atm_land_ice_flux_exchange_mod::id_t_ca()'],['../namespaceflux__exchange__mod.html#a8a6c5aa71e364d4c9c5979431c6378d6',1,'flux_exchange_mod::id_t_ca()']]], ['id_5ft_5fflux',['id_t_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad3158d6930465374ebb5efc909ed71ae',1,'atm_land_ice_flux_exchange_mod::id_t_flux()'],['../namespaceflux__exchange__mod.html#ae8045e9b24c1c27a4b7db7664ef3fab8',1,'flux_exchange_mod::id_t_flux()']]], - ['id_5ft_5fflux_5fland',['id_t_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a976b7c76bb82de73c7395b577352d658',1,'atm_land_ice_flux_exchange_mod']]], ['id_5ft_5focean',['id_t_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#ae2d24744019fc0a2a62bf54c7bd7eb65',1,'atm_land_ice_flux_exchange_mod']]], ['id_5ft_5fref',['id_t_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aca247d952550b7e796118645c0b33c47',1,'atm_land_ice_flux_exchange_mod::id_t_ref()'],['../namespaceflux__exchange__mod.html#a373b24bf412bc3c5d9a8cd4b6612fc10',1,'flux_exchange_mod::id_t_ref()']]], ['id_5ft_5fref_5fland',['id_t_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d4c4bebe361cdb91ecea469fe537709',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js index ebeccb70..70e56eae 100644 --- a/docs/html/search/all_f.js +++ b/docs/html/search/all_f.js @@ -6,6 +6,6 @@ var searchData= ['prognostic_5fice',['prognostic_ice',['../namespaceice__model__mod.html#ac0071f9ca4cdf3279ccdc918bd77d07e',1,'ice_model_mod']]], ['prognostic_5fsst',['prognostic_sst',['../namespaceice__model__mod.html#ad5c9ca5a5a2d863e59ab02d49a12e8e1',1,'ice_model_mod']]], ['put_5flogical_5fto_5freal',['put_logical_to_real',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html',1,'atm_land_ice_flux_exchange_mod']]], - ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)']]], - ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)']]] + ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg()']]], + ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug()']]] ]; diff --git a/docs/html/search/defines_0.js b/docs/html/search/defines_0.js index e3e74a0f..29b57d83 100644 --- a/docs/html/search/defines_0.js +++ b/docs/html/search/defines_0.js @@ -1,9 +1,9 @@ var searchData= [ - ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange-old_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'FMS_DATA_OVERRIDE_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange-old_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'FMS_DIAG_REGISTER_FIELD_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'FMS_XGRID_GET_FROM_XGRID_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange-old_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'FMS_XGRID_PUT_TO_XGRID_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange-old_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'FMS_XGRID_SET_FRAC_AREA_(): atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange-old_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange-old.F90'],['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'FMS_XGRID_STOCK_MOVE_(): atm_land_ice_flux_exchange.F90']]] + ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'atm_land_ice_flux_exchange.F90']]], + ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'atm_land_ice_flux_exchange.F90']]] ]; diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js index b6d53269..b1dd76f7 100644 --- a/docs/html/search/files_0.js +++ b/docs/html/search/files_0.js @@ -1,6 +1,5 @@ var searchData= [ - ['atm_5fland_5fice_5fflux_5fexchange_2dold_2ef90',['atm_land_ice_flux_exchange-old.F90',['../atm__land__ice__flux__exchange-old_8_f90.html',1,'']]], ['atm_5fland_5fice_5fflux_5fexchange_2ef90',['atm_land_ice_flux_exchange.F90',['../atm__land__ice__flux__exchange_8_f90.html',1,'']]], ['atmos_5focean_5fdep_5ffluxes_5fcalc_2ef90',['atmos_ocean_dep_fluxes_calc.F90',['../atmos__ocean__dep__fluxes__calc_8_f90.html',1,'']]], ['atmos_5focean_5ffluxes_5fcalc_2ef90',['atmos_ocean_fluxes_calc.F90',['../atmos__ocean__fluxes__calc_8_f90.html',1,'']]] diff --git a/docs/html/search/files_6.html b/docs/html/search/files_6.html deleted file mode 100644 index 98fc6666..00000000 --- a/docs/html/search/files_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                            -
                                                                                                                                                                            Loading...
                                                                                                                                                                            -
                                                                                                                                                                            - -
                                                                                                                                                                            Searching...
                                                                                                                                                                            -
                                                                                                                                                                            No Matches
                                                                                                                                                                            - -
                                                                                                                                                                            - - diff --git a/docs/html/search/files_6.js b/docs/html/search/files_6.js deleted file mode 100644 index 9763f3de..00000000 --- a/docs/html/search/files_6.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['use_5fam3_5fonly_2ef90',['use_am3_only.f90',['../use__am3__only_8f90.html',1,'']]], - ['use_5fland_5fand_5fam3_2ef90',['use_land_and_am3.f90',['../use__land__and__am3_8f90.html',1,'']]], - ['use_5fland_5fonly_2ef90',['use_land_only.f90',['../use__land__only_8f90.html',1,'']]] -]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js index 377e5a6b..328d85c2 100644 --- a/docs/html/search/functions_0.js +++ b/docs/html/search/functions_0.js @@ -1,8 +1,8 @@ var searchData= [ ['add_5fdomain_5fdimension_5fdata',['add_domain_dimension_data',['../namespacefull__coupler__mod.html#ad3685f6bd34e431206122bde9f327dc2',1,'full_coupler_mod::add_domain_dimension_data()'],['../namespaceice__model__mod.html#afd16954e39a95d394843584000c022e4',1,'ice_model_mod::add_domain_dimension_data()']]], - ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#aefc839a12fc334b7685be207d2ff5452',1,'atm_land_ice_flux_exchange_mod']]], - ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)'],['../namespaceatm__land__ice__flux__exchange__mod.html#aaabcd517cb4e3367fe4d9c1e8cda3a60',1,'atm_land_ice_flux_exchange_mod::atm_stock_integrate(Atm, res)']]], + ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ab8675556ecdbebfb8b3093fadbe11cde',1,'atm_land_ice_flux_exchange_mod']]], + ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod']]], ['atmos_5focean_5fdep_5ffluxes_5fcalc',['atmos_ocean_dep_fluxes_calc',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a5880644207752e6a4873458a90f04cea',1,'atmos_ocean_dep_fluxes_calc_mod']]], ['atmos_5focean_5ffluxes_5fcalc',['atmos_ocean_fluxes_calc',['../namespaceatmos__ocean__fluxes__calc__mod.html#acc10568af1ebdd92581183632c4e1f74',1,'atmos_ocean_fluxes_calc_mod']]] ]; diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js index fa7bc6da..1779f9b2 100644 --- a/docs/html/search/functions_3.js +++ b/docs/html/search/functions_3.js @@ -1,9 +1,9 @@ var searchData= [ - ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#abbc25f2b6691ab2cbe94c2b7a8e3235f',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b47968fcb9188a68db2b7b8e1ea7a0f',1,'atm_land_ice_flux_exchange_mod']]], ['flux_5fcheck_5fstocks',['flux_check_stocks',['../namespaceflux__exchange__mod.html#a905b179ee9688d2feeef94f3417b25e5',1,'flux_exchange_mod']]], - ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#adbe4303a01222ce60a65246fecc1f7aa',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], - ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec6c8a5b6f66728f1d07dba27282319c',1,'atm_land_ice_flux_exchange_mod']]], + ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos()'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], + ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8716ce7e07543b081c151bd0b24d7d1',1,'atm_land_ice_flux_exchange_mod']]], ['flux_5fexchange_5fend',['flux_exchange_end',['../namespaceflux__exchange__mod.html#a6485a12c7af1fed26ee7a8dac257a508',1,'flux_exchange_mod']]], ['flux_5fexchange_5finit',['flux_exchange_init',['../namespaceflux__exchange__mod.html#aa0a4db6845eb6ba4aa2246e67c9bcc6b',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)'],['../namespaceflux__exchange__mod.html#ab2e7b7db204609a177b55f5725e57976',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)']]], ['flux_5fice_5fto_5focean',['flux_ice_to_ocean',['../namespaceice__ocean__flux__exchange__mod.html#afcc66b7731a985e1916e5ac4a303df37',1,'ice_ocean_flux_exchange_mod']]], @@ -15,5 +15,5 @@ var searchData= ['flux_5focean_5ffrom_5fice_5fstocks',['flux_ocean_from_ice_stocks',['../namespaceice__ocean__flux__exchange__mod.html#ac5daa11e6f312156be99d617a705bae8',1,'ice_ocean_flux_exchange_mod']]], ['flux_5focean_5fto_5fice',['flux_ocean_to_ice',['../namespaceice__ocean__flux__exchange__mod.html#a5270f15d181575b7559f4664afcd987a',1,'ice_ocean_flux_exchange_mod']]], ['flux_5focean_5fto_5fice_5ffinish',['flux_ocean_to_ice_finish',['../namespaceice__ocean__flux__exchange__mod.html#a2af0c159f5b00bd98d7f8339761df29e',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#afff8d47bcdf69e33ea3f2df0e406373e',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]] + ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ff1868e71257630777ac2d9c8b6180c',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]] ]; diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js index 31fe75e7..34c8ca8a 100644 --- a/docs/html/search/functions_4.js +++ b/docs/html/search/functions_4.js @@ -1,7 +1,7 @@ var searchData= [ ['gas_5fexchange_5finit',['gas_exchange_init',['../namespaceflux__exchange__mod.html#a9d5d9cb2721d5b49e6dfbaefa89185f8',1,'flux_exchange_mod']]], - ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../namespaceatm__land__ice__flux__exchange__mod.html#af73f258e9e1810ec379ea84241a032f5',1,'atm_land_ice_flux_exchange_mod']]], + ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../namespaceatm__land__ice__flux__exchange__mod.html#ae90760b8fd57a82bc54db9ece86486ba',1,'atm_land_ice_flux_exchange_mod']]], ['get_5fatmos_5fice_5fland_5fchksums',['get_atmos_ice_land_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#acd9ec31136762085212e2184eb95a896',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums()'],['../namespacefull__coupler__mod.html#ac24e45f64a2c3bd2674b5b0436107eb6',1,'full_coupler_mod::get_atmos_ice_land_chksums()']]], ['get_5fatmos_5fice_5fland_5focean_5fchksums',['get_atmos_ice_land_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#ae519e712159d78b971a59a5e4311f61e',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums()'],['../namespacefull__coupler__mod.html#a7e2a2f28f1037117dd2e1790d99b8616',1,'full_coupler_mod::get_atmos_ice_land_ocean_chksums()']]], ['get_5fcell_5fcenter',['get_cell_center',['../namespaceice__model__mod.html#ab2e9be6fcef2df1c9886c80ad3f8e68c',1,'ice_model_mod']]], diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js index 882e100d..d611949d 100644 --- a/docs/html/search/functions_8.js +++ b/docs/html/search/functions_8.js @@ -3,6 +3,6 @@ var searchData= ['p_5fair',['p_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a9c7ab4de0daccbdd49f8851ea12c1c5c',1,'atmos_ocean_fluxes_calc_mod']]], ['prognostic_5fice',['prognostic_ice',['../namespaceice__model__mod.html#ac0071f9ca4cdf3279ccdc918bd77d07e',1,'ice_model_mod']]], ['prognostic_5fsst',['prognostic_sst',['../namespaceice__model__mod.html#ad5c9ca5a5a2d863e59ab02d49a12e8e1',1,'ice_model_mod']]], - ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg(mask, id, ex_mask, xmap)']]], - ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug(mask, id, ex_mask, xmap)']]] + ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg()']]], + ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug()']]] ]; diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js index 2a78fca8..f32f86b3 100644 --- a/docs/html/search/functions_a.js +++ b/docs/html/search/functions_a.js @@ -1,8 +1,8 @@ var searchData= [ ['schmidt_5fg',['schmidt_g',['../namespaceatmos__ocean__fluxes__calc__mod.html#a7a879f540fe903119d5bb324c44f6c45',1,'atmos_ocean_fluxes_calc_mod']]], - ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#aea62f09680f206912e5ba1883abb32bc',1,'atm_land_ice_flux_exchange_mod']]], - ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../namespaceatm__land__ice__flux__exchange__mod.html#af6dc1ca9a9e4460748eef47dfd719d46',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], + ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#af00a10abb94ffaa2f305e00de92362bc',1,'atm_land_ice_flux_exchange_mod']]], + ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../namespaceatm__land__ice__flux__exchange__mod.html#ae7a53520e8a084f5fa930c5c18c85b54',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], ['surface_5fflux_5f0d',['surface_flux_0d',['../namespacesurface__flux__mod.html#a719077c3d9594fb8b63b3681638949eb',1,'surface_flux_mod']]], ['surface_5fflux_5f1d',['surface_flux_1d',['../interfacesurface__flux__mod_1_1surface__flux.html#aae251f64f9ec074e3eb13cf535503e96',1,'surface_flux_mod::surface_flux::surface_flux_1d()'],['../namespacesurface__flux__mod.html#a9e30e62e73778ab168c1e1e639bc5c5b',1,'surface_flux_mod::surface_flux_1d()']]], ['surface_5fflux_5f2d',['surface_flux_2d',['../interfacesurface__flux__mod_1_1surface__flux.html#ab3e1a25220436f1a605d89d8cb820294',1,'surface_flux_mod::surface_flux::surface_flux_2d()'],['../namespacesurface__flux__mod.html#a8e1d9d5ab64ad51dd6f60c90616b6648',1,'surface_flux_mod::surface_flux_2d()'],['../namespaceflux__exchange__mod.html#a61d0127746fc39769346765dd050d378',1,'flux_exchange_mod::surface_flux_2d()']]], diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js index 22ef96e8..ee3c3be2 100644 --- a/docs/html/search/searchdata.js +++ b/docs/html/search/searchdata.js @@ -3,7 +3,7 @@ var indexSectionsWithContent = 0: "abcdefghijklmnopqrstuvwxz", 1: "acipst", 2: "afils", - 3: "acfilsu", + 3: "acfils", 4: "acdfgilnprsuvx", 5: "abcdefghijklmnopqrstuvwxz", 6: "f", diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js index ba518a4b..98eb8006 100644 --- a/docs/html/search/variables_1.js +++ b/docs/html/search/variables_1.js @@ -3,7 +3,7 @@ var searchData= ['b_5fstar',['b_star',['../namespaceflux__exchange__mod.html#aa9caedcc1bc69b6296dc5fef0c77a891',1,'flux_exchange_mod']]], ['block_5fend',['block_end',['../namespaceatm__land__ice__flux__exchange__mod.html#af5376c2ef9475b25b0fe09811ec50950',1,'atm_land_ice_flux_exchange_mod']]], ['block_5fstart',['block_start',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a4d0039fbafb9bcb71fbe0848710532',1,'atm_land_ice_flux_exchange_mod']]], - ['bound_5ftol',['bound_tol',['../namespaceatm__land__ice__flux__exchange__mod.html#a6e6f4ac592c8deee969b6832312e2cd5',1,'atm_land_ice_flux_exchange_mod::bound_tol()'],['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod::bound_tol()']]], + ['bound_5ftol',['bound_tol',['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod']]], ['bulk_5fzq',['bulk_zq',['../namespacesurface__flux__mod.html#ab0430982abba672524b5a13c4b730647',1,'surface_flux_mod']]], ['bulk_5fzt',['bulk_zt',['../namespacesurface__flux__mod.html#ac06e3e9bb1a504104ec21e0b7585e1aa',1,'surface_flux_mod']]], ['bulk_5fzu',['bulk_zu',['../namespacesurface__flux__mod.html#ae9006d4cf180672ab7b529b22c3dbac8',1,'surface_flux_mod']]] diff --git a/docs/html/search/variables_11.js b/docs/html/search/variables_11.js index 2d057c23..d8443b3e 100644 --- a/docs/html/search/variables_11.js +++ b/docs/html/search/variables_11.js @@ -3,10 +3,10 @@ var searchData= ['radiation',['radiation',['../structfull__coupler__mod_1_1coupler__clock__type.html#adf8132dede10fbbb9ad678d829422b46',1,'full_coupler_mod::coupler_clock_type']]], ['radiation_5fnthreads',['radiation_nthreads',['../namespacefull__coupler__mod.html#a3e853db33e426916924f2bb27d2f10a4',1,'full_coupler_mod']]], ['raoult_5fsat_5fvap',['raoult_sat_vap',['../namespacesurface__flux__mod.html#a20457ec53d55f2819c2109515b92a79f',1,'surface_flux_mod']]], - ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a0201d6a1f3c4de84d4c5d25d7a6b84b9',1,'atm_land_ice_flux_exchange_mod']]], - ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a68840c3ed23ff9d95ffae81396ee893f',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], + ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a056bbf92b7605811c7ff570c45ebafd6',1,'atm_land_ice_flux_exchange_mod']]], + ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a9d21a4be462dd340e9f192cc66627d54',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], ['regenclock',['regenclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a5ea8ad1958bb201b40dbba386178c8de',1,'atm_land_ice_flux_exchange_mod']]], - ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a56103b2cfc0a82f3303b9e20f25acdbe',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], + ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d21fff836af698eb07aea029290cc4b',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], ['remap_5fmethod',['remap_method',['../namespaceatm__land__ice__flux__exchange__mod.html#a96ed2d0c9f780f120de2d1c2dd83dd09',1,'atm_land_ice_flux_exchange_mod']]], ['restart_5finterval',['restart_interval',['../namespacefull__coupler__mod.html#ad7e959a3e2e3da70f34991150fa4711a',1,'full_coupler_mod']]], ['rough_5fheat',['rough_heat',['../structice__model__mod_1_1ice__data__type.html#a2b0fc3f7a2b99a46539750bf685613cc',1,'ice_model_mod::ice_data_type']]], diff --git a/docs/html/search/variables_13.js b/docs/html/search/variables_13.js index 765ca646..dd9b1199 100644 --- a/docs/html/search/variables_13.js +++ b/docs/html/search/variables_13.js @@ -10,7 +10,7 @@ var searchData= ['temp_5fsst',['temp_sst',['../namespaceice__model__mod.html#a04a20dcacf655c21e5f47206ae06f344',1,'ice_model_mod']]], ['termination',['termination',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac68d174e845176ed37f58218a2b161d9',1,'full_coupler_mod::coupler_clock_type']]], ['text',['text',['../namespacefull__coupler__mod.html#a481c6dc3126700e15926453bb0c98096',1,'full_coupler_mod']]], - ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ffa4143323bc877d98983dc83a6544c',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], + ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f36d7021f66e3fa87247d3f45450519',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], ['thickness',['thickness',['../structice__model__mod_1_1ice__data__type.html#a4fc960a59d3520d6acf290a76e0e246b',1,'ice_model_mod::ice_data_type']]], ['thickness_5fmin',['thickness_min',['../namespaceice__model__mod.html#a753820dd4f1115554e58b0bdc566dd8d',1,'ice_model_mod']]], ['time',['time',['../structice__model__mod_1_1ice__data__type.html#a4b225d644fe34ad3ccd00add6817f553',1,'ice_model_mod::ice_data_type']]], diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js index eadc4461..fc55518a 100644 --- a/docs/html/search/variables_2.js +++ b/docs/html/search/variables_2.js @@ -2,7 +2,7 @@ var searchData= [ ['calendar',['calendar',['../namespacefull__coupler__mod.html#a18e3d16cb372a5f0f49e36687c7aeee9',1,'full_coupler_mod']]], ['calendar_5ftype',['calendar_type',['../namespacefull__coupler__mod.html#a5cae24118f6f7671ff74206b3803868b',1,'full_coupler_mod']]], - ['ccc',['ccc',['../namespaceatm__land__ice__flux__exchange__mod.html#aedd101291e4737318da14ac51a2c07b0',1,'atm_land_ice_flux_exchange_mod::ccc()'],['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod::ccc()']]], + ['ccc',['ccc',['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod']]], ['cd_5fm',['cd_m',['../namespaceflux__exchange__mod.html#acecf7a05415537c2ac395e6a68934628',1,'flux_exchange_mod']]], ['cd_5ft',['cd_t',['../namespaceflux__exchange__mod.html#a53b62119a9798cdfef5cae59286254f5',1,'flux_exchange_mod']]], ['check_5fstocks',['check_stocks',['../namespacefull__coupler__mod.html#a87ccc8af0ea38216b76cb914b641fa43',1,'full_coupler_mod']]], diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js index e161c12c..a315ccad 100644 --- a/docs/html/search/variables_3.js +++ b/docs/html/search/variables_3.js @@ -1,8 +1,8 @@ var searchData= [ - ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#af16f9f6655fc1f37a14e967618b66a6a',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], - ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a56c1b7e4d03b228479e25241a41085c4',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], - ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a674182b17c6173f4b76511bcee534c4c',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], + ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#aa77dede0d3c2c5408143f748933f68a2',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], + ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a8cf3f5dece449a034a9e4643d31b8c',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], + ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f6ee7f59b0dcbd45caa8957f2eb5b34',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], ['data',['data',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a0e638d4b8efef050d34bb16bb637e503',1,'ice_model_mod::atmos_ice_boundary_type']]], ['date_5finit',['date_init',['../namespacefull__coupler__mod.html#a224eb7b4334353b002163b32235c2c37',1,'full_coupler_mod']]], ['days',['days',['../namespacefull__coupler__mod.html#a0b42e8ed5c43a06e46c947f90f60de2e',1,'full_coupler_mod']]], @@ -15,7 +15,7 @@ var searchData= ['dhdt_5fatm',['dhdt_atm',['../namespaceflux__exchange__mod.html#ada94f4e7d52c502fd946201f090c5644',1,'flux_exchange_mod']]], ['dhdt_5fsurf',['dhdt_surf',['../namespaceflux__exchange__mod.html#adda223e3f75af374428581666b973a69',1,'flux_exchange_mod']]], ['diff',['diff',['../namespaceice__model__mod.html#a9930d4b7c4f36ba29c1494007ab9a5c4',1,'ice_model_mod']]], - ['direct',['direct',['../namespaceatm__land__ice__flux__exchange__mod.html#acd77c349aebc563e2a79a36b7c9728c7',1,'atm_land_ice_flux_exchange_mod::direct()'],['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod::direct()']]], + ['direct',['direct',['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod']]], ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad202bbf87044b1eec5805f6875857910',1,'atm_land_ice_flux_exchange_mod::do_area_weighted_flux()'],['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], ['do_5fatmos',['do_atmos',['../namespacefull__coupler__mod.html#ac5f115cf3ec7b2b595aee0857cabdf90',1,'full_coupler_mod']]], @@ -40,7 +40,7 @@ var searchData= ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], - ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], + ['dt_5fcpl',['dt_cpl',['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js index 149d20f5..87d27cfc 100644 --- a/docs/html/search/variables_4.js +++ b/docs/html/search/variables_4.js @@ -19,7 +19,6 @@ var searchData= ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdrag_5fq',['ex_drag_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a06ac4914cb14f5ad8659d768f838b2ba',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdtaudv_5fatm',['ex_dtaudv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#ae3ae41712484a6829639b4cd4431dab1',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/search/variables_8.js b/docs/html/search/variables_8.js index dcceeed4..6eeec6b2 100644 --- a/docs/html/search/variables_8.js +++ b/docs/html/search/variables_8.js @@ -40,13 +40,13 @@ var searchData= ['id_5fo2_5fflux_5fpcair_5fatm',['id_o2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adeb499100d57339308ae4b676aeeaa93',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fp_5fatm',['id_p_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#af8a1447d56d28335055d81152496f7e8',1,'atm_land_ice_flux_exchange_mod::id_p_atm()'],['../namespaceflux__exchange__mod.html#a3c25e7f8bd1fa9d3b650e20671f1eb78',1,'flux_exchange_mod::id_p_atm()']]], ['id_5fpsl',['id_psl',['../namespaceatm__land__ice__flux__exchange__mod.html#ab940b2bc9ff8b4339233507550d4a856',1,'atm_land_ice_flux_exchange_mod::id_psl()'],['../namespaceflux__exchange__mod.html#afb4061b5677fe090528f0a991abade69',1,'flux_exchange_mod::id_psl()']]], - ['id_5fq_5fatm',['id_q_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aae4693134893e6c8ddb01b0d566d3856',1,'atm_land_ice_flux_exchange_mod::id_q_atm()'],['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod::id_q_atm()']]], + ['id_5fq_5fatm',['id_q_atm',['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod']]], ['id_5fq_5fflux',['id_q_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a1ed968c0f36351d58e7a035b37d01492',1,'atm_land_ice_flux_exchange_mod::id_q_flux()'],['../namespaceflux__exchange__mod.html#a8d635e999ae24402dd99af0657d706f9',1,'flux_exchange_mod::id_q_flux()']]], ['id_5fq_5fflux_5fland',['id_q_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ab7c212b94ae379003d7dfed66892d059',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fq_5fref',['id_q_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a035a0187d04ed47f6b373ba207be09c9',1,'atm_land_ice_flux_exchange_mod::id_q_ref()'],['../namespaceflux__exchange__mod.html#a9b49a9b72bfb917602bf46899bbe3524',1,'flux_exchange_mod::id_q_ref()']]], ['id_5fq_5fref_5fland',['id_q_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#af43c49c9a0d6969182207632bfc8e3bc',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fq_5fstar',['id_q_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a2b4c714ab247af5b460ed9255669c018',1,'atm_land_ice_flux_exchange_mod::id_q_star()'],['../namespaceflux__exchange__mod.html#ae58f4cc598d0dfc185b8dd9717ee5a2b',1,'flux_exchange_mod::id_q_star()']]], - ['id_5fq_5fsurf',['id_q_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a67d3af4db9c9b63bfef3c21ea17a7d9b',1,'atm_land_ice_flux_exchange_mod::id_q_surf()'],['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod::id_q_surf()']]], + ['id_5fq_5fsurf',['id_q_surf',['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod']]], ['id_5fr_5fflux',['id_r_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a082d4699eda42a0277b53b8d3b40b6',1,'atm_land_ice_flux_exchange_mod::id_r_flux()'],['../namespaceflux__exchange__mod.html#ab6d4c349f5231beb4e2f116f2f7a844d',1,'flux_exchange_mod::id_r_flux()']]], ['id_5frh_5fref',['id_rh_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aa78a8745d3bd1c15c23ea56368a94f2f',1,'atm_land_ice_flux_exchange_mod::id_rh_ref()'],['../namespaceflux__exchange__mod.html#af2b89e05edbf76edca8d8b7056269ef8',1,'flux_exchange_mod::id_rh_ref()']]], ['id_5frh_5fref_5fcmip',['id_rh_ref_cmip',['../namespaceatm__land__ice__flux__exchange__mod.html#ab3af14f2a483c630a814faa30860c2ea',1,'atm_land_ice_flux_exchange_mod']]], @@ -64,7 +64,6 @@ var searchData= ['id_5ft_5fatm',['id_t_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adf91d25ca4f1262291c52a6952587518',1,'atm_land_ice_flux_exchange_mod::id_t_atm()'],['../namespaceflux__exchange__mod.html#a7114bbe87d459e9b24ce483beae56faa',1,'flux_exchange_mod::id_t_atm()']]], ['id_5ft_5fca',['id_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a188de7203c962fd3586ef6bd72cec660',1,'atm_land_ice_flux_exchange_mod::id_t_ca()'],['../namespaceflux__exchange__mod.html#a8a6c5aa71e364d4c9c5979431c6378d6',1,'flux_exchange_mod::id_t_ca()']]], ['id_5ft_5fflux',['id_t_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad3158d6930465374ebb5efc909ed71ae',1,'atm_land_ice_flux_exchange_mod::id_t_flux()'],['../namespaceflux__exchange__mod.html#ae8045e9b24c1c27a4b7db7664ef3fab8',1,'flux_exchange_mod::id_t_flux()']]], - ['id_5ft_5fflux_5fland',['id_t_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a976b7c76bb82de73c7395b577352d658',1,'atm_land_ice_flux_exchange_mod']]], ['id_5ft_5focean',['id_t_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#ae2d24744019fc0a2a62bf54c7bd7eb65',1,'atm_land_ice_flux_exchange_mod']]], ['id_5ft_5fref',['id_t_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aca247d952550b7e796118645c0b33c47',1,'atm_land_ice_flux_exchange_mod::id_t_ref()'],['../namespaceflux__exchange__mod.html#a373b24bf412bc3c5d9a8cd4b6612fc10',1,'flux_exchange_mod::id_t_ref()']]], ['id_5ft_5fref_5fland',['id_t_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d4c4bebe361cdb91ecea469fe537709',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/simple_2coupler__main_8_f90.html b/docs/html/simple_2coupler__main_8_f90.html index c5f56749..449d44bc 100644 --- a/docs/html/simple_2coupler__main_8_f90.html +++ b/docs/html/simple_2coupler__main_8_f90.html @@ -181,7 +181,7 @@

                                                                                                                                                                            diff --git a/docs/html/simple_2flux__exchange_8_f90.html b/docs/html/simple_2flux__exchange_8_f90.html index a83fced3..dd742aba 100644 --- a/docs/html/simple_2flux__exchange_8_f90.html +++ b/docs/html/simple_2flux__exchange_8_f90.html @@ -308,7 +308,7 @@

                                                                                                                                                                            (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                            diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html index f5af7e94..a8862959 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html @@ -79,7 +79,7 @@ diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html index 8995cd40..7629869d 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html @@ -159,17 +159,13 @@

                                                                                                                                                                            atm_land_ice_flux_exchange-old.F90 +
                                                                                                                                                                            The documentation for this type was generated from the following file: diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html index e906147b..e5f5b92d 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html @@ -79,7 +79,7 @@ diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html index b24a2933..3697d372 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html @@ -156,21 +156,16 @@

                                                                                                                                                                            tracer index in lnd model

                                                                                                                                                                            -

                                                                                                                                                                            indices of the tracer in the respective models

                                                                                                                                                                            -
                                                                                                                                                                            The documentation for this type was generated from the following files:
                                                                                                                                                                              -
                                                                                                                                                                            • full/atm_land_ice_flux_exchange-old.F90
                                                                                                                                                                            • +
                                                                                                                                                                              The documentation for this type was generated from the following file: diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html index 4f2cf614..3c449b7e 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html @@ -84,7 +84,7 @@ diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html index 659c27b8..9fcc9c76 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html @@ -272,7 +272,7 @@

                                                                                                                                                                              diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html index b909fcd9..90f0ff42 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html @@ -114,7 +114,7 @@ diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html index 70e245a6..3d9f60b0 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html @@ -1001,7 +1001,7 @@

                                                                                                                                                                              diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html index feafd1d5..a71f07e8 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html @@ -88,7 +88,7 @@ diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type.html index 18f282bd..f1da30c2 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__components__type.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__components__type.html @@ -400,7 +400,7 @@

                                                                                                                                                                              diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html index 7b5d6c30..23d1c767 100644 --- a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html +++ b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html @@ -89,7 +89,7 @@ diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html index db936881..d787e636 100644 --- a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html +++ b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html @@ -396,7 +396,7 @@

                                                                                                                                                                              diff --git a/docs/html/structice__model__mod_1_1ice__data__type-members.html b/docs/html/structice__model__mod_1_1ice__data__type-members.html index f130ef8c..07666763 100644 --- a/docs/html/structice__model__mod_1_1ice__data__type-members.html +++ b/docs/html/structice__model__mod_1_1ice__data__type-members.html @@ -102,7 +102,7 @@ diff --git a/docs/html/structice__model__mod_1_1ice__data__type.html b/docs/html/structice__model__mod_1_1ice__data__type.html index 0223fec8..38307941 100644 --- a/docs/html/structice__model__mod_1_1ice__data__type.html +++ b/docs/html/structice__model__mod_1_1ice__data__type.html @@ -708,7 +708,7 @@

                                                                                                                                                                              diff --git a/docs/html/surface__flux_8_f90.html b/docs/html/surface__flux_8_f90.html index 368c740a..4336f679 100644 --- a/docs/html/surface__flux_8_f90.html +++ b/docs/html/surface__flux_8_f90.html @@ -194,7 +194,7 @@

                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                              diff --git a/docs/html/surface_flux_config.html b/docs/html/surface_flux_config.html index c243bd6f..87d14673 100644 --- a/docs/html/surface_flux_config.html +++ b/docs/html/surface_flux_config.html @@ -96,7 +96,7 @@ diff --git a/docs/html/use__am3__only_8f90.html b/docs/html/use__am3__only_8f90.html deleted file mode 100644 index a3a276a0..00000000 --- a/docs/html/use__am3__only_8f90.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - -FMS Coupler: full/delete/use_am3_only.f90 File Reference - - - - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              - - -
                                                                                                                                                                              - -
                                                                                                                                                                              - - -
                                                                                                                                                                              -
                                                                                                                                                                              - -
                                                                                                                                                                              -
                                                                                                                                                                              use_am3_only.f90 File Reference
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - -

                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice. -More...

                                                                                                                                                                              - - - - - - - - -

                                                                                                                                                                              -Data Types

                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_ind_type
                                                                                                                                                                               
                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
                                                                                                                                                                               
                                                                                                                                                                              interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
                                                                                                                                                                               
                                                                                                                                                                              - - - -

                                                                                                                                                                              -Modules

                                                                                                                                                                              module  atm_land_ice_flux_exchange_mod
                                                                                                                                                                               
                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
                                                                                                                                                                               Initialization routine. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
                                                                                                                                                                               Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                               Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
                                                                                                                                                                               Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                               Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
                                                                                                                                                                               Internal subroutine to deallocate exchange fields. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
                                                                                                                                                                               Computes deposition gas fluxes between atmosphere and ocean. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
                                                                                                                                                                               Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
                                                                                                                                                                               Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
                                                                                                                                                                               Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
                                                                                                                                                                               Divide data by area while avoiding zero area elements. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
                                                                                                                                                                               Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
                                                                                                                                                                               integrate the total precipitation in atmosphere and multipy by dt More...
                                                                                                                                                                               
                                                                                                                                                                              - - - - - - - - - - - - -

                                                                                                                                                                              -Variables

                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_surf
                                                                                                                                                                               
                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_atm
                                                                                                                                                                               
                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_flux_land
                                                                                                                                                                               
                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drag_q
                                                                                                                                                                               q drag.coeff. More...
                                                                                                                                                                               
                                                                                                                                                                              integer, parameter atm_land_ice_flux_exchange_mod::direct =3
                                                                                                                                                                               
                                                                                                                                                                              -

                                                                                                                                                                              Detailed Description

                                                                                                                                                                              -

                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice.

                                                                                                                                                                              -
                                                                                                                                                                              - - - - diff --git a/docs/html/use__land__and__am3_8f90.html b/docs/html/use__land__and__am3_8f90.html deleted file mode 100644 index 5d8c5b69..00000000 --- a/docs/html/use__land__and__am3_8f90.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -FMS Coupler: full/delete/use_land_and_am3.f90 File Reference - - - - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              - - -
                                                                                                                                                                              - -
                                                                                                                                                                              - - -
                                                                                                                                                                              -
                                                                                                                                                                              - -
                                                                                                                                                                              -
                                                                                                                                                                              use_land_and_am3.f90 File Reference
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - -

                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice. -More...

                                                                                                                                                                              - - - - - - - - -

                                                                                                                                                                              -Data Types

                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_ind_type
                                                                                                                                                                               
                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
                                                                                                                                                                               
                                                                                                                                                                              interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
                                                                                                                                                                               
                                                                                                                                                                              - - - -

                                                                                                                                                                              -Modules

                                                                                                                                                                              module  atm_land_ice_flux_exchange_mod
                                                                                                                                                                               
                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
                                                                                                                                                                               Initialization routine. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
                                                                                                                                                                               Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                               Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
                                                                                                                                                                               Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                               Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
                                                                                                                                                                               Internal subroutine to deallocate exchange fields. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
                                                                                                                                                                               Computes deposition gas fluxes between atmosphere and ocean. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
                                                                                                                                                                               Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
                                                                                                                                                                               Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
                                                                                                                                                                               Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
                                                                                                                                                                               Divide data by area while avoiding zero area elements. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
                                                                                                                                                                               Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
                                                                                                                                                                               integrate the total precipitation in atmosphere and multipy by dt More...
                                                                                                                                                                               
                                                                                                                                                                              -

                                                                                                                                                                              Detailed Description

                                                                                                                                                                              -

                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice.

                                                                                                                                                                              -
                                                                                                                                                                              - - - - diff --git a/docs/html/use__land__only_8f90.html b/docs/html/use__land__only_8f90.html deleted file mode 100644 index a88cd825..00000000 --- a/docs/html/use__land__only_8f90.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -FMS Coupler: full/delete/use_land_only.f90 File Reference - - - - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                              -
                                                                                                                                                                              - - -
                                                                                                                                                                              - -
                                                                                                                                                                              - - -
                                                                                                                                                                              -
                                                                                                                                                                              - -
                                                                                                                                                                              -
                                                                                                                                                                              use_land_only.f90 File Reference
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - -

                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice. -More...

                                                                                                                                                                              - - - - - - - - -

                                                                                                                                                                              -Data Types

                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_ind_type
                                                                                                                                                                               
                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
                                                                                                                                                                               
                                                                                                                                                                              interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
                                                                                                                                                                               
                                                                                                                                                                              - - - -

                                                                                                                                                                              -Modules

                                                                                                                                                                              module  atm_land_ice_flux_exchange_mod
                                                                                                                                                                               
                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
                                                                                                                                                                               Initialization routine. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
                                                                                                                                                                               Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                               Returns fluxes and derivatives corrected for the implicit treatment of atmospheric diffusive fluxes, and the increments in the temperature and specific humidity of the lowest atmospheric layer due to all explicit processes as well as the diffusive fluxes through the top of this layer. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
                                                                                                                                                                               Optimizes the exchange grids by eliminating land and ice partitions with no data. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                               Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
                                                                                                                                                                               Internal subroutine to deallocate exchange fields. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
                                                                                                                                                                               Computes deposition gas fluxes between atmosphere and ocean. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
                                                                                                                                                                               Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
                                                                                                                                                                               Puts land or ice model masks (with partitions) onto the exchange grid as a real array (1.=true, 0.=false) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
                                                                                                                                                                               Initializes diagnostic fields that may be output from this module (the ID numbers may be referenced anywhere in this module) More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
                                                                                                                                                                               Divide data by area while avoiding zero area elements. More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
                                                                                                                                                                               Send out the ice_mask and/or sic data. This was called inside flux_ocean_to_ice. Why? More...
                                                                                                                                                                               
                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
                                                                                                                                                                               integrate the total precipitation in atmosphere and multipy by dt More...
                                                                                                                                                                               
                                                                                                                                                                              -

                                                                                                                                                                              Detailed Description

                                                                                                                                                                              -

                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice.

                                                                                                                                                                              -
                                                                                                                                                                              - - - - diff --git a/full/atm_land_ice_flux_exchange-old b/full/atm_land_ice_flux_exchange-old new file mode 100644 index 00000000..8c56d01a --- /dev/null +++ b/full/atm_land_ice_flux_exchange-old @@ -0,0 +1,4086 @@ +!*********************************************************************** +!* GNU Lesser General Public License +!* +!* This file is part of the GFDL Flexible Modeling System (FMS) Coupler. +!* +!* FMS Coupler is free software: you can redistribute it and/or modify +!* it under the terms of the GNU Lesser General Public License as +!* published by the Free Software Foundation, either version 3 of the +!* License, or (at your option) any later version. +!* +!* FMS Coupler is distributed in the hope that it will be useful, but +!* WITHOUT ANY WARRANTY; without even the implied warranty of +!* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +!* General Public License for more details. +!* +!* You should have received a copy of the GNU Lesser General Public +!* License along with FMS Coupler. +!* If not, see . +!*********************************************************************** +!> \file +!> \brief Performs flux calculations and exchange grid operations for atmosphere, land and ice + +#undef FMS_DATA_OVERRIDE_ +#undef FMS_XGRID_PUT_TO_XGRID_ +#undef FMS_XGRID_STOCK_MOVE_ +#undef FMS_XGRID_SET_FRAC_AREA_ +#undef FMS_XGRID_GET_FROM_XGRID_ +#undef FMS_DIAG_REGISTER_FIELD_ + +#ifndef _USE_LEGACY_LAND_ +#define FMS_DATA_OVERRIDE_ fms_data_override_ug +#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug +#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug +#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug +#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid_ug +#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field +#else +#define FMS_DATA_OVERRIDE_ fms_data_override +#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid +#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move +#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area +#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid +#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field +#endif + +module atm_land_ice_flux_exchange_mod + + ! atmos_drivers + use atmos_model_mod, only: & + atm_stock_pe, & ! subroutine to compute the total stock in the atmospheric model + atmos_data_type, & ! derived type containing fields needed for flux exchange between components + land_ice_atmos_boundary_type ! derived type containing quantities going from land and ice to atmos + + ! FMSCoupler/full + use atmos_ocean_dep_fluxes_calc_mod, only: & + atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes + + ! FMSCoupler/full + use atmos_ocean_fluxes_calc_mod, only: & + atmos_ocean_fluxes_calc ! subroutine to computes gas fluxes for atmosphere and ocean + + ! FMS/coupler + use atmos_ocean_fluxes_mod, only: & + atmos_ocean_fluxes_init ! subroutine initializes gas fluxes in coupler derived types + + ! am5_phys + use atmos_tracer_driver_mod, only: & + atmos_tracer_flux_init ! subroutine to initialize atmos_tracer_driver_mod + + ! MOM6/SIS2 + use ice_model_mod, only: & + atmos_ice_boundary_type, & ! derived type for flux exchange between atmosphere and sea ice + ice_data_type, & ! derived type holding ice model data + ice_stock_pe, & ! subroutine to compute stocks of heat, water, etc for conservation checks + land_ice_boundary_type, & ! derived type for flux exchange between land and sea ice + ocean_ice_boundary_type, & ! derived type for flux exchange between ocean and sea ice + update_ice_atm_deposition_flux ! updates fluxes of type "air_sea_deposition" + + ! Land_lad2 + use land_model_mod, only: & + atmos_land_boundary_type, & ! derived type to pass information from atmosphere to land + land_data_type, & ! derived type to pass information from land to atmosphere + lnd_stock_pe ! subroutine to compute stocks of conservative land quantities + + ! If not _USE_LEGACY_LAND_, use land_lad2/land_tile_diag_mod instead of FMS/diag_manager +#ifndef _USE_LEGACY_LAND_ + use land_model_mod, only: & + dump_tile_diag_fields, & ! subroutine for workaround with Intel compilers and OpenMP + register_tiled_diag_field, & ! subroutine to register diag field within the land model + send_tile_data, & ! subroutine to save data in buffer within the land model for the registered field + set_default_diag_filter ! subroutine to set default tile diagnostic selector +#endif + + ! MOM6 + use ocean_model_mod, only: & + ice_ocean_boundary_type, & !derived type containing the forcings + ocean_model_init_sfc, & ! subroutine to extracts surface properties from the ocean's internal state + ocean_model_data_get, & ! interface procedure to extract scalar fields from ocean surface or ocean_public type + ocean_model_flux_init, & ! subroutine to initializes the properties from air-sea fluxes + ocean_public_type, & ! derived type used in FMScoupler to communicate with other model components + ocean_state_type, & ! derived type containing the state of the ocean + Ocean_stock_pe ! subroutine to computes integrated stocks of heat, water, etc. for conservation checks + + ! FMSCoupler/shared + use surface_flux_mod, only: & + surface_flux, & ! subroutine to compute fluxes on exchange grids + surface_flux_init ! subroutine to initialize surface_flux_mod + + ! am5_phys +#ifndef use_AM3_physics + use atmos_cmip_diag_mod, only: & + register_cmip_diag_field_2d !function to register CMIP diagnostic data + use atmos_global_diag_mod, only: & + get_global_diag_field_id, & ! function to retrieve internally-tracked id of the global diag field + register_global_diag_field, & ! function that calls FMS/register_diag_field for globally averaged data + send_global_diag ! function that calls FMS/diag_manager/send_data for global fields + use atmos_tracer_driver_mod, only & + atmos_tracer_has_surf_setl_flux, & + !function returns True of tracer sedimentation flux > 0 at bottom of the atmosphere + get_atmos_tracer_surf_setl_flux, & + !subroutine to retrieve tracer sedimentation flux at bottom of the atmosphere + atmos_tracer_driver_gather_data_down +#ifndef _USE_LEGACY_LAND_ + use land_model_mod, only: & + send_global_land_diag ! function to save land model field on unstructured grid for global integral +#endif +#endif + + ! option to override various surface boundary conditions for SCM +#ifdef SCM + use scm_forc_mod, only: & + ALBEDO_OBS, & + do_specified_albedo, & + do_specified_land, & + do_specified_rough_leng, & + do_specified_tskin, & + do_specified_flux, & + ROUGH_MOM, & + ROUGH_HEAT, & + scm_surface_flux, & + TSKIN +#endif + +use FMS +use FMSconstants, only: & + cp_air, & ! RDGAS/KAPPA , specific heat capacity of dry air at constant pressure [J/kg/deg] + CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] + EPSLN, & ! 1.0e-40, a small number to prevent divide by zero exceptions + GRAV, & ! 9.80, acceleration due to gravity [m/s^2] + HLF, & ! 3.34e5, latent heat of fusion [J/kg] + HLV, & ! 2.500e6, latent heat of evaporation [J/kg] + PI, & ! 3.14159265358979323846 + Radius, & ! 6371.0e+3, radius of the Earth [m] + rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] + rvgas, & ! 461.50, gas constant for water vapor + stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] + WTMC, & ! 12.00000, molecular weight of carbon [amu] + WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [amu] + WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] + WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [amu] + + implicit none + private + + public :: & + atm_land_ice_flux_exchange_init, & + atm_stock_integrate, & + flux_atmos_to_ocean, & + flux_down_from_atmos, & + flux_ex_arrays_dealloc,& + flux_up_to_atmos, & + generate_sfc_xgrid, & + send_ice_mask_sic, & + sfc_boundary_layer + + character(len=128) :: version = '$Id$' + character(len=128) :: tag = '$Name$' + + type(FmsXgridXmap_type), save :: xmap_sfc + integer :: n_xgrid_sfc=0 !< number of exchange grid points + + !-------- namelist (for diagnostics) ------ + + character(len=4), parameter :: mod_name = 'flux' + + ! returned ids from registering diagnostic field with diag_manager + integer :: & + id_b_star, & ! bouyancy scale + id_del_h, & ! ref height interp factor for heat + id_del_m, & ! ref height for interp factor for momentum + id_del_q, & ! ref height interp factor for moisture + id_drag_heat, & ! drag coefficient for heat + id_drag_moist, & ! drag coefficient for moisture + id_drag_mom, & ! drag coefficient for momentum + id_gust, & ! gust scale + id_hussLut_land, & ! near-surface specific humidity on land use tile + id_ice_mask, & ! fractional amount of land + id_land_mask, & ! fractional amount of sea ice + id_p_atm, & ! pressure at lowest atmospheric level + id_q_flux, & ! evaporation rate + id_q_flux_land, & ! evaporation rate over land + id_q_ref, & !specific humidity at z_ref_heat + id_q_ref_land, & ! specific humidity at z_ref_heat over land + id_q_star, & ! moisture scale + id_r_flux, & ! net (down-up) longwave flux + id_rh_ref, & ! relative humidity at z_ref_heat + id_rh_ref_cmip, & ! relative humidity at z_ref_heat + id_rh_ref_land, & ! relative humidity at z_ref_heat over land + id_rough_heat, & !surface roughness for heat + id_rough_moist, & ! surface roughness for moisture + id_rough_mom, & ! surface roughness for momentum + id_rough_scale, & ! topographic scaling fractor for momentum drag + id_slp, & ! sea level pressure + id_t_atm, & ! temperature at lowest atmospheric level + id_t_ca, & ! canopy air temperature + id_t_flux, & !sensible heat flux + id_t_ocean, & ! surface temperature from ocean output + id_t_ref, & ! temperature at z_ref_heat + id_t_ref_land, & !temperature at z_ref_heat over land + id_t_surf, & ! surface temperature + id_tasLut_land, & ! near-surface air temperature z_ref_heat above displacement height on land-use tile + id_thv_atm, & ! surface air virtual potential temperature + id_thv_surf, & ! surface virtual potential temperature + id_u_atm, & ! u wind component at lowest atmospheric level + id_u_flux, & ! zonal wind stress + id_u_ref, & ! zonal wind component at z_ref_mom + id_u_ref_land, & ! zonal wind component at z_ref_mom over land + id_u_star, & ! friction velocity + id_v_atm, & ! v wind component at lowest atmospheric level + id_v_flux, & ! meridional wind stress + id_v_ref, & ! meridional wind component at z_ref_mom + id_v_ref_land, & ! meridional wind component at z_ref_mom over land + id_wind, & ! wind speed for flux calculations + id_wind_ref, & ! absolute value of wind at z_ref_mom + id_z_atm, & ! height of lowest atmospheric level + id_co2_atm_dvmr, & ! co2 dry volume mixing ratio at lowest atmospheric level + id_co2_surf_dvmr & ! c02 dry volume mixing ratio at surface + ! 2017/08/15 jgj added + id_co2_bot, & ! concentration of co2 to be passed to land/photosynthesis + id_co2_flux_pcair_atm, & ! concentration of co2 to be passed to ocean NEED HELP + id_o2_flux_pcair_atm ! concentration of o2 to be passed to to ocean NEED HELP + + ! arrays for holding ids returned from registering diag_fields with diag_manager for tracers + integer, allocatable :: & + id_tr_atm(:), & ! value of tracer at lowest atmospheric level NEED HELP + id_tr_surf(:), & ! value of tracer at surface NEED HELP + id_tr_flux(:), & ! tracer fluxes + id_tr_mol_flux(:), & ! flux of co2 concentration in [mol/m2*s] + id_tr_ref(:), & ! value of tracer at z_ref_heat + id_tr_ref_land(:), & ! tracer flux at z_ref_heat over land NEED HELP + !f1p + id_tr_mol_flux0(:), & ! gross flux of tracer concentration over land in [mol/m2*s] + id_tr_flux_land(:), & ! flux of tracer concentration over land in [kg/m2*s] + id_tr_mol_flux_land(:), & ! flux of tracer concentration over land in [mol/m2*s] + ! used with _USE_LEGACY_LAND_ + id_tr_con_atm(:), & ! deposition velocity at lowest atmospheric level (atm) + id_tr_con_atm_land(:), & ! deposition velocity at lowest atmospheric level over land + id_tr_con_ref(:), & ! deposition velocity at reference height (atm) + id_tr_con_ref_land(:) ! deposition velocity at reference height over land + + ! id's for cmip specific fields + integer :: & + id_evspsbl, & ! water evaporation flux + id_height10m, & ! near surface height + id_height2m, & ! near surface height + id_hfls, & ! surface upward latent heat flux + id_hfss, & ! surface upward sensible heat flux + id_hurs, & ! near-surface relative humidty + id_huss, & ! near-surface specific humidity + id_psl, & ! air pressure at sea level + id_rhs, & ! near-surface relative humidty + id_sfcWind, & ! near-surface wind speed + id_sftlf, & ! fraction of the grid cell occupied by land + id_sic, & ! sea ice area fraction + id_tas, & ! near-surface air temperature + id_tauu, & ! surface downward eastward wind stress + id_tauv, & ! surface downward northward wind stress + id_tos, & ! sea surface temperature + id_ts, & ! surface temperature + id_tslsi, & ! surface temperature on land or sea ice + id_uas, & ! eastward near-surface wind + id_vas !northward near-surface wind + + ! globally averaged diagnostics + integer :: & + id_evspsbl_g, & ! global integral of water evaporation flux + id_hfls_g, & ! global integral of surface upward latent heat flux + id_hfss_g, & ! global integral of surface upward sensible heat flux + id_rls_g, & ! global integral of near-surface relative humidty + id_tas_g, & ! global integral of near-surface air temperature + id_tasl_g, & ! global integral of near-surface air temperature on land only + id_ts_g ! global integral of surface temperature + + logical :: first_static = .true. ! If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer + logical :: do_init = .true. ! true if atm_land_ice_flux_exchnge_init has been called + integer :: remap_method = 1 ! first or second order conservative remapping onto exchange grid + + real, parameter :: bound_tol = 1e-7 ! NOT USED DELETE + + real, parameter :: d622 = rdgas/rvgas ! NOT USED DELETE + real, parameter :: d378 = 1.0-d622 ! NOT USED DELETE + real, parameter :: d608 = d378/d622 ! CHANGE TO 1.0-d622/(rdgas/rvgas) + real, parameter :: tfreeze = 273.15 ! freezing point of water at 1 atm [K] + real, allocatable, dimension(:,:) :: frac_precip ! NEED HELP + + !--- the following is from flux_exchange_nml + real :: z_ref_heat = 2. + ! Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q + real :: z_ref_mom = 10. + ! Reference height [m] for momentum diagnostics u_ref, v_ref, and del_m + + logical :: do_area_weighted_flux = .FALSE. ! NOT USED DELETE + logical :: do_forecast = .false. ! NEED HELP + integer :: nblocks = 1 !OpenMP number of threads + logical :: partition_fprec_from_lprec = .FALSE. + ! If true, convert liquid precip to snow when t_ref < tfreeze + ! Used for atm override experiments where liquid and frozen precip are combined + logical :: scale_precip_2d = .false. ! If true, scale mass of liqud preciptation + + integer :: my_nblocks = 1 ! Initializing OpenMP parameter + integer, allocatable :: & + block_start(:), & ! starting do loop indices for OpenMP thread + block_end(:) ! ending do loop indices for OpenMP thread + + real, allocatable, dimension(:) :: & + ! NOTE: T canopy is only differet from t_surf over vegetated land + ex_albedo_fix, & ! NEED HELP + ex_albedo_nir_dif_fix, & ! NEED HELP + ex_albedo_nir_dir_fix, & ! NEED HELP + ex_albedo_vis_dif_fix, & ! NEED HELP + ex_albedo_vis_dir_fix, & ! NEED HELP + ex_b_star, & ! boyuancy scale on exchange grid + ex_cd_m, & ! drag coefficient for momentum on exchange grid + ex_cd_t, & !< drag coefficient for heat on exchange grid + ex_con_atm, & !< deposition velocity at lowest atmospheric level on exchange grid + ex_dedt_surf, & ! d(water.vap.flux)/d(T canopy) + ex_dhdt_atm, & ! d(sens.heat.flux)/d(T atm) + ex_dhdt_surf, & ! d(sens.heat.flux)/d(T canopy) + ex_dqsatdt_surf, & ! d(water.vap.flux)/d(q canopy) + ex_drdt_surf, & ! d(LW flux)/d(T surf) + ex_dtaudu_atm, & ! d(stress)/d(u) + ex_dtaudv_atm, & ! d(stress)/d(v) + ex_e_q_n, & ! dt/mass * dedet_surf * gamma + ex_flux_lw, & ! longwave radiation flux + ex_flux_t, & ! sens heat flux + ex_flux_u, & ! u stress on atmosphere + ex_flux_v, & ! v stress on atmosphere + ex_old_albedo, & ! old value of albedo for downward flux calculations + ex_p_surf, & ! surface pressure on exchange grid + ex_seawater, & ! mask array of seaice fractions + ex_slp, & ! surface pressure on exchange grid + ex_t_ca, & ! near-surface (canopy) air temperature on exchange grid [K] + ex_t_surf, & ! surface temperature for radiation calc on exchange grid [K] + ex_t_surf_miz, & !< miz NEED HELP + ex_u_star, & ! friction velocity on exchange grid + ex_wind, & ! wind speed on exchange grid + ex_z_atm ! height of lowest atmospheric level on exchange grid + +#ifdef SCM + real, allocatable, dimension(:) :: & + ex_dhdt_surf_forland, & + ex_dedt_surf_forland, & + ex_dedq_surf_forland +#endif + + real, allocatable, dimension(:,:) :: & + ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) + ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) + ex_e_tr_n, & !< coefficient in implicit scheme + ex_f_tr_delt_n, & !< coefficient in implicit scheme + ex_flux_tr, & !< tracer fluxes + ex_tr_con_ref, & !< deposition velocity at reference height + ex_tr_con_atm, & !< deposition velocity at atmospheric height + ex_tr_surf !< near-surface tracer fields + + logical, allocatable, dimension(:) :: & + ex_avail, & !< true where data on exchange grid are available + ex_land !< true if exchange grid cell is over land + real, allocatable, dimension(:) :: & + ex_e_t_n, & + ex_f_t_delt_n + + integer :: n_atm_tr !< number of prognostic tracers in the atmos model + integer :: n_atm_tr_tot !< number of prognostic tracers in the atmos model + integer :: n_lnd_tr !< number of prognostic tracers in the land model + integer :: n_lnd_tr_tot !< number of prognostic tracers in the land model + integer :: n_exch_tr !< number of tracers exchanged between models + integer :: n_gex_atm2lnd !< number of gex fields exchanged between land and atmosphere + integer :: n_gex_lnd2atm !< number of gex fields exchanged between atmosphere and land + + type :: tracer_ind_type + integer :: atm !< tracer index in atm model + integer :: ice !< tracer index in ice model + integer :: lnd !< tracer index in lnd model + end type tracer_ind_type + type(tracer_ind_type), allocatable :: tr_table(:) !< table of tracers passed through flux exchange + + type :: tracer_exch_ind_type + integer :: exch = 0 !< exchange grid index + integer :: ice = 0 !< ice model index + integer :: lnd = 0 !< land model index + end type tracer_exch_ind_type + + type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< map atm tracers to exchange, ice and land variables + + integer :: isphum = NO_TRACER !< tracer index for specific humidity + integer :: ico2 = NO_TRACER !< tracer index for co2 + integer :: inh3 = NO_TRACER !< tracer index for nh3 + + type(fmscoupler1dbc_type), pointer :: ex_gas_fields_atm=>NULL() + !< gas fields in atm place holder for various atmospheric fields. + type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() + !< gas fields on ice + type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() + !< gas flux place holder of intermediate calculations, such as piston velocities etc. + + interface put_logical_to_real + module procedure put_logical_to_real_sg + module procedure put_logical_to_real_ug + end interface put_logical_to_real + + real, dimension(3) :: ccc !< for conservation checks !< NOT USED DELETE + + !balaji, sets boundary_type%xtype + integer, parameter :: & + regrid=1, & !< grids are physically different, pass via exchange grid + redist=2, & !< same physical grid, different decomposition, must move data around + redirect=3 !< same physical grid, same domain decomposition, can directly copy data + + integer :: & + cplClock, & + sfcClock, & !< FMS clock id to profile sfc_boundary_layer + fluxAtmDnClock, & !< FMS clock id to profile flux down from atmosphere + regenClock, & !< FMS clock to profile exchange grid generation + fluxAtmUpClock !< FMS clock to profile flux up to atmosphere + + integer :: & + X1_GRID_ATM, & !< 1, exchange grid index for xgrid_stock_move + X1_GRID_ICE, & !< 2, exchange grid index for xgrid_stock_move + X1_GRID_LND !< 3, !< exchange grid index for xgrid_stock_move + + real :: & + Dt_atm, & !< atmospheric timestep [s] + Dt_cpl !< coupled timestep [s] + + integer :: & + ni_atm, & !< number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice + nj_atm !< number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice + + integer :: & + nxc_ice=0, & !< number of x points in ice compute domain + nyc_ice=0, & !< number of y points in ice compute domain + nk_ice=0 !< number of vertical levels in ice + + integer :: & + nxc_lnd=0, & !< number of x points in land compute domain + nyc_lnd=0 !< number of y points in land compute domain + +contains + + !####################################################################### + !> \brief Initialization routine + !! + !! Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and + !! module level variables. The subroutine must be called before calling public subroutines + !! in this module. + + subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & + Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, & + do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, & + nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in) + + implicit none + type(FmsTime_type), intent(in) :: Time + !< model's current time + type(atmos_data_type), intent(inout) :: Atm + !< derived data type to specify atmosphere boundary data + type(land_data_type), intent(in) :: Land + !< derived data type to specify land boundary data + type(ice_data_type), intent(inout) :: Ice + !< derived data type to specify ice boundary data + type(atmos_ice_boundary_type), intent(inout) :: atmos_ice_boundary + !< derived type to specify properties and fluxes passed from atmosphere to ice + type(land_ice_atmos_boundary_type), intent(inout) :: land_ice_atmos_boundary + !< derived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice + real, intent(in) :: Dt_atm_in + !< atmosphere time step in seconds + real, intent(in) :: Dt_cpl_in + !< coupled time step in seconds + real, intent(in) :: z_ref_heat_in + !< reference height for temperature and relative humidity diagnostics [m] + real, intent(in) :: z_ref_mom_in + !< reference height for momentum diagnostics [m] + logical, intent(in) :: scale_precip_2d_in + !< if true, rescale Atm%lprec by a field from diag_table + logical, intent(in) :: do_area_weighted_flux_in + !< if true, divide flux by area + logical, intent(in) :: do_forecast_in + !< if true, put atm%surf_diff%sst_miz on the exchange grid if AM3_physics is used + logical, intent(in) :: partition_fprec_from_lprec_in + !! if true, will convert liquid precip to snow when t_ref < tfreeze + integer, intent(in) :: nblocks_in + !! divide the surface exchange grid to nblocks for OpenMP parallelizatio + integer, intent(in) :: cplClock_in + !! clock to measure processes, mainly used for development and debugging + type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in + !! gas fields in Atm. Contains atmospheric surface variables that are used to compute + !! atmosphere-ocean gas fluxes and flux-regulating parameters + type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_ice_in + !! gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used + !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters + type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in + !! gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between + !! the atmosphere and ocean. Values defined from the field table or computed during model run + + character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' + character(len=256), parameter :: & + note_header = '==>Note from '//trim(module_name)//'(atm_land_ice_flux_exchange_init):' + + integer :: & + i, & !< temporary index do loop + n !< temporary index for counting + integer :: & + outunit, & !< ! returned value from fms_mpp_stdout() + logunit !< returned value from fms_mpp_stdlog() + integer :: & + is, & !< starting x-index on compute domain + ie, & !< ending x-index on compute domain + js, & !< starting y-index on compute domain + je, & !< ending y-index on compute domain + kd !< number of levels in the z direction + character(32) :: tr_name !< dummy variable to hold name of tracers + logical :: found !< dummy variable to search through tracer index in ex_gas_fluxes + + !> Initialize module level variables + Dt_atm = Dt_atm_in + Dt_cpl = Dt_cpl_in + z_ref_heat = z_ref_heat_in + z_ref_mom = z_ref_mom_in + do_area_weighted_flux = do_area_weighted_flux_in + do_forecast = do_forecast_in + partition_fprec_from_lprec = partition_fprec_from_lprec_in + scale_precip_2d = scale_precip_2d_in + nblocks = nblocks_in + cplClock = cplClock_in + ex_gas_fields_atm => ex_gas_fields_atm_in + ex_gas_fields_ice => ex_gas_fields_ice_in + ex_gas_fluxes => ex_gas_fluxes_in + + !> get file unit for stdout and stdlog + outunit = fms_mpp_stdout() + logunit = fms_mpp_stdlog() + + allocate(block_start(nblocks), block_end(nblocks)) + + !> get the number ofatmospheric prognostic tracers and specific humidity tracer index from the tracer table + call fms_tracer_manager_get_number_tracers (MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) + + !> get the total number of land tracers and the number of prognostic tracers from the tracer table + call fms_tracer_manager_get_number_tracers (MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) + + ! assemble the table of tracer number translation by matching names of + ! prognostic tracers in the atmosphere and surface models; skip all atmos. + ! tracers that have no corresponding surface tracers. + + !> Populate tr_table and tr_table_map. Atm, land, and ice models will have its + !! own tracer index for the same tracer. + allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) + n = 1 + do i = 1,n_atm_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, i, tr_name ) + tr_table(n)%atm = i + tr_table(n)%ice = fms_tracer_manager_get_tracer_index ( MODEL_ICE, tr_name ) + tr_table_map(i)%ice = tr_table(n)%ice + tr_table(n)%lnd = fms_tracer_manager_get_tracer_index ( MODEL_LAND, tr_name ) + tr_table_map(i)%lnd = tr_table(n)%lnd + if(tr_table(n)%ice/=NO_TRACER.or.tr_table(n)%lnd/=NO_TRACER) then + tr_table_map(i)%exch = n + n = n + 1 + endif + enddo + + !> Set the number of tracers that will be exchanged between the models + n_exch_tr = n - 1 + + + !> Populate tracer table for ocean-atm gas fluxes where the tracer name in atm and ocean models may differ + + n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) + if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_atm2lnd + + n_gex_lnd2atm = fms_gex_get_n_ex(MODEL_LAND,MODEL_ATMOS) + if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_lnd2atm + + do n = 1, ex_gas_fluxes%num_bcs + if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then + found = .false. + do i = 1, n_exch_tr + if (ex_gas_fluxes%bc(n)%atm_tr_index .eq. tr_table(i)%atm) then + found = .true. + exit + endif + enddo + if (.not. found) then + n_exch_tr = n_exch_tr + 1 + tr_table(n_exch_tr)%atm = ex_gas_fluxes%bc(n)%atm_tr_index + tr_table(n_exch_tr)%ice = NO_TRACER ! because ocean-atm gas fluxes are not held in the ice model as tracers + tr_table(n_exch_tr)%lnd = NO_TRACER ! because this would have been found above + tr_table_map(n_exch_tr)%exch = n_exch_tr + tr_table_map(n_exch_tr)%ice = tr_table(n_exch_tr)%ice + tr_table_map(n_exch_tr)%lnd = tr_table(n_exch_tr)%lnd + endif + endif + enddo + write(outunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr + write(logunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr + + do i = 1,n_exch_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) + write(outunit,*)'Tracer field name :'//trim(tr_name) + write(logunit,*)'Tracer field name :'//trim(tr_name) + enddo + + ! REMOVE + ! +fix-me-slm+ specific humidity may not be present if we are running with + ! dry atmosphere. Besides, model may use mixing ratio ('mix_rat') (?). However, + ! some atmos code also assumes 'sphum' is present, so for now the following + ! code may be good enough. + + !> Get tracer index for specific humidity, co2, and nh3 + do i = 1,n_exch_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) + if(fms_mpp_lowercase(tr_name)=='sphum') then + isphum = i + endif + ! jgj: get tracer index for co2 REMOVE + if(fms_mpp_lowercase(tr_name)=='co2') then + ico2 = i + write(outunit,*)'Exchange tracer index for '//trim(tr_name),' : ',ico2 + endif + if(fms_mpp_lowercase(tr_name)=='nh3') then + inh3 = i + write(outunit,*)'Exchange tracer index for '//trim(tr_name),' : ',inh3 + endif + enddo + + if (isphum==NO_TRACER) call fms_error_mesg(module_name, 'tracer "sphum" must be present in the atmosphere', FATAL) + if (ico2==NO_TRACER) call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) + + call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) + + if (scale_precip_2d) allocate(frac_precip(is:ie,js:je), source=0.0) + + call fms_xgrid_init(remap_method) + + call fms_xgrid_setup_xmap( & + xmap_sfc, & + ['ATM', 'OCN', 'LND'], & + [Atm%Domain, Ice%Domain, Land%Domain], & + "INPUT/grid_spec.nc", & + Atm%grid, & +#ifndef _USE_LEGACY_LAND_ + lnd_ug_domain=Land%ug_domain, & +#endif + ) + + !> Assign exchange grid type and Generate surface exchange grid + X1_GRID_ATM = 1 + X1_GRID_ICE = 2 + X1_GRID_LND = 3 + call generate_sfc_xgrid( Land, Ice ) + + if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' + + call surface_flux_init() + + !> Initialize fms_diag_integral for global integral quantities + !! call diag_integral_field_init ('prec', 'f6.3') + call fms_diag_integral_field_init ('evap', 'f6.3') +#ifndef use_AM3_physics + call fms_diag_integral_field_init ('t_surf', 'f10.3') !miz + call fms_diag_integral_field_init ('t_ref', 'f10.3') !miz +#endif + + !----------------------------------------------------------------------- + !----- initialize diagnostic fields ----- + !----- all fields will be output on the atmospheric grid ----- + + call diag_field_init ( Time, Atm%axes(1:2), Land%axes, Land%pe ) + ni_atm = size(Atm%lon_bnd,1)-1 ! to dimension "diag_atm" + nj_atm = size(Atm%lon_bnd,2)-1 ! in flux_ocean_to_ice + + !Balaji + + !> Initialize atmos_ice_boundary + call fms_mpp_domains_get_compute_domain( Ice%domain, is, ie, js, je ) + kd = size(Ice%part_size,3) + allocate( atmos_ice_boundary%u_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%v_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%u_star(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%t_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%q_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%lw_flux(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%lprec(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%fprec(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%dedt(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%drdt(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%coszen(is:ie,js:je,kd), source=0.0 ) + allocate( atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0 ) + ! initialize boundary values for override experiments (mjh) + + !> Copy gas fluxes from exchange grid to atmosphere_ice boundary + call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & + mod_name, Ice%axes, Time, suffix = '_atm_ice') + + ! Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two + ! coupler_type_copy calls are moved from ice_ocean_flux_init to here. + if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) then + call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, [is,is,ie,ie], [js,js,je,je], [1, kd], & + suffix = '_ice') + end if + + call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) + + !> Initialize land_ice_atmos_boundary + call fms_mpp_domains_get_compute_domain( Atm%domain, is, ie, js, je ) + allocate( land_ice_atmos_boundary%t(is:ie,js:je), source=273.0 ) + allocate( land_ice_atmos_boundary%t_ocean(is:ie,js:je), source=200.0 )! Joseph: surf ocean temp + allocate( land_ice_atmos_boundary%u_ref(is:ie,js:je), source=0.0 )! bqx + allocate( land_ice_atmos_boundary%v_ref(is:ie,js:je), source=0.0 ) ! bqx + allocate( land_ice_atmos_boundary%t_ref(is:ie,js:je), source=273.0 ) ! cjg: PBL depth mods + allocate( land_ice_atmos_boundary%q_ref(is:ie,js:je), source=0.0 ) ! cjg: PBL depth mods + allocate( land_ice_atmos_boundary%albedo(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%land_frac(is:ie,js:je, source=0.0) ) + allocate( land_ice_atmos_boundary%dt_t(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr), source=0.0 ) + allocate( land_ice_atmos_boundary%u_flux(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%v_flux(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%dtaudu(is:ie,js:je), source=0.0) + allocate( land_ice_atmos_boundary%dtaudv(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%u_star(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%b_star(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%q_star(is:ie,js:je), source=0.0 ) +#ifndef use_AM3_physics + allocate( land_ice_atmos_boundary%shflx(is:ie,js:je), source=0.0 )!miz + allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je), source=0.0 )!miz +#endif + allocate( land_ice_atmos_boundary%wind(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%thv_atm(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%thv_surf(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%rough_mom(is:ie,js:je), source=0.01 ) + allocate( land_ice_atmos_boundary%rough_heat(is:ie,js:je), surce=0.01 ) ! Kun + allocate( land_ice_atmos_boundary%frac_open_sea(is:ie,js:je), source=0.0 ) + allocate( land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0 ) + + + !> Allocate fields for extra tracers + call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & + mod_name, Atm%axes(1:2), Time, suffix = '_atm') + + !> Set nxc_ice and nyc_ice + if( Ice%pe) then + call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) + nk_ice = size(Ice%part_size,3) + endif + + !> Set nxc_land nyc_land + if( Land%pe) then + call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) + endif + + !Balaji: clocks on atm%pe only + sfcClock = fms_mpp_clock_id( 'SFC boundary layer', flags=fms_clock_flag_default, grain=CLOCK_SUBCOMPONENT ) + fluxAtmDnClock = fms_mpp_clock_id( 'Flux DN from atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) + regenClock = fms_mpp_clock_id( 'XGrid generation', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) + fluxAtmUpClock = fms_mpp_clock_id( 'Flux UP to atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) + + do_init = .false. + + end subroutine atm_land_ice_flux_exchange_init + + !####################################################################### + !> \brief Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. + !! + !!
                                                                                                                                                                              +  !!   t_surf_atm: surface temperature used for radiation [K]
                                                                                                                                                                              +  !!   albedo_atm: surface albedo used for radiation  [dimensionless]
                                                                                                                                                                              +  !!   rough_mom_atm: surface roughness for momentum [m]
                                                                                                                                                                              +  !!   land_frac_atm: fractional area of land beneath an atmospheric grid box
                                                                                                                                                                              +  !!   dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)]
                                                                                                                                                                              +  !!   flux_u_atm: zonal wind stress  [Pa]
                                                                                                                                                                              +  !!   flux_v_atm: meridional wind stress [Pa]
                                                                                                                                                                              +  !!   u_star_atm: friction velocity [m/s]
                                                                                                                                                                              +  !!   b_star_atm: buoyancy scale  [m2/s]
                                                                                                                                                                              +  !! 
                                                                                                                                                                              + !! + !! Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data + !! between one component grid to another component grid. Computed fluxes can also be overwritten + !! with calls to data_override. Note, data_override will not override data if the tracers + !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude + !! of surface stress divided by density of air at the surface, + !! and `u_star*b_star` is the buoyancy flux at the surface. + subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ) + + implicit none + real, intent(in) :: dt + !< timestep + type(FmsTime_type), intent(in) :: Time + !< current model time + type(atmos_data_type), intent(inout) :: Atm + !< derived type to specify atmosphere boundary data + type(land_data_type), intent(inout) :: Land + !< derived type to specify land boundary data + type(ice_data_type), intent(inout) :: Ice + !< derived data type to specify ice boundary data + type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary + !< derived data type to specify properties and fluxes passed between land and ice to atmos + + !> quantities on exchange grid + real, dimension(n_xgrid_sfc) :: & + ex_albedo, & ! albedo + ex_albedo_vis_dir, & ! albedo for light with wavelength in visible region of the solar spectrum + ex_albedo_nir_dir, & ! albedo for light with wavelength in near-ir region of the solar spectrum + ex_albedo_vis_dif, & ! difference in albedo for light with wavelength in visible region of the solar spectrum + ex_albedo_nir_dif, & ! difference in albedo for light with wavelength in near-ir region of the solar spectrum + ex_land_frac, & ! fractional area of land in grid cell + ex_t_atm, & ! air temperature at the lowest atmospheric level + ex_p_atm, & ! pressure at the lowest atmospheric level + ex_u_atm, & ! u wind component at the lowest atmospheric level + ex_v_atm, & ! v wind component at the lowest atmospheric level + ex_gust, & ! gust scale + ex_t_surf4, & ! (surface temperature) ** 4 + ex_u_surf, & ! u wind component at Earth's surface + ex_v_surf, & ! v wind component at Earth's surface + ex_rough_mom, & ! momentum roughness length + ex_rough_heat, & ! heat roughness length + ex_rough_moist, & ! moisture roughness length + ex_rough_scale, & ! scale factor for topographic roughness calculation + ex_q_star, & ! turbulent moisture scale + ex_thv_atm, & ! surface area theta_v + ex_thv_surf, & ! surface theta_v + ex_cd_q, & ! moisture exchange coefficient + ex_ref, &! specific humidity at z_ref_heat + ex_ref_u, & ! zonal wind component at z_ref_mom + ex_ref_v, & ! meridional wind component at z_ref_mom + ex_u10, & !< zonal wind speed at 10m above the surface + ex_ref2, & ! + ex_t_ref, & + ex_qs_ref, & + ex_qs_ref_cmip, & ! + ex_del_m, & ! reference height for interpolation factor for momentum + ex_del_h, & ! reference height interpolation factor for heat + ex_del_q, & ! reference height interpation factor for moisture + ex_frac_open_sea ! open-water mask, not used? + + real :: rho + + real, dimension(n_xgrid_sfc,n_exch_tr) :: & + ex_tr_atm, & !< amount of tracer [mol?] at lowest atmospheric level on exchange grid + ex_tr_ref !< amount of tracer [mol?] at reference height on exchange grid + + real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic + + !> temporary array to hold data + real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm + +#ifndef _USE_LEGACY_LAND_ + real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2)) :: diag_land + real, dimension(size(Land%t_ca, 1)) :: diag_land_ug, tile_size_ug + real, dimension(nxc_lnd, nyc_lnd) :: diag_land_sg, tile_size_sg + logical, dimension(size(Land%t_ca, 1)) :: mask_ug + logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg + integer :: k +#else + !> temporary array to hold data + real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land +#endif + + !> temporary array to hold data + real, dimension(size(Ice%t_surf,1), size(Ice%t_surf,2), size(Ice%t_surf,3)) :: sea + real, dimension(size(Ice%albedo,1), size(Ice%albedo,2), size(Ice%albedo,3)) :: tmp_open_sea + + real :: & + zrefm, & ! reference height for computing surface fluxes from Monin-Obukhov similarity theory + zrefh ! reference height for computing surface fluxes from Monin-Obukhov similarity theory + + logical :: used !< returned value from data_override. if true, data was overwritten + + character(32) :: & + tr_name, & !< tracer name as stored in tracer_manager (from tracer_table) + tr_units ! tracer unit as stored in tracer_manager + + integer :: tr, n, m ! tracer indices + + integer :: is, ie, isc, iec, jsc, jec !< domain indices + integer :: l, j, i, n_gex !< counters + + !> array holding generic, non-tracer fields on exchange grid + real, dimension(n_xgrid_sfc, n_gex_lnd2atm) :: ex_gex_lnd2atm + + !> check if module was initialized + if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & + 'must call atm_land_ice_flux_exchange_init first', FATAL) + + !Balaji, start clocks for profiling + call fms_mpp_clock_begin(cplClock) + call fms_mpp_clock_begin(sfcClock) + + !> allocate module level arrays to hold data on the exchange grid (deallocated in flux_up_to_atmos) + allocate ( & + ex_t_surf(n_xgrid_sfc), & + ex_t_surf_miz(n_xgrid_sfc), & + ex_p_surf(n_xgrid_sfc), & + ex_slp(n_xgrid_sfc), & + ex_t_ca(n_xgrid_sfc), & + ex_dhdt_surf(n_xgrid_sfc), & + ex_dedt_surf(n_xgrid_sfc), & + ex_dqsatdt_surf(n_xgrid_sfc), & + ex_drdt_surf(n_xgrid_sfc), & + ex_dhdt_atm(n_xgrid_sfc), & + ex_flux_t(n_xgrid_sfc), & + ex_flux_lw(n_xgrid_sfc), & + ex_drag_q(n_xgrid_sfc), & + ex_avail(n_xgrid_sfc), & + ex_f_t_delt_n(n_xgrid_sfc), & + ex_tr_surf(n_xgrid_sfc, n_exch_tr), & + ex_dfdtr_surf(n_xgrid_sfc, n_exch_tr), & + ex_dfdtr_atm(n_xgrid_sfc, n_exch_tr), & + ex_flux_tr(n_xgrid_sfc, n_exch_tr), & + ex_f_tr_delt_n(n_xgrid_sfc, n_exch_tr), & + ex_e_tr_n(n_xgrid_sfc, n_exch_tr), & + ex_con_atm(n_xgrid_sfc), & + ex_tr_con_ref(n_xgrid_sfc, n_exch_tr), & + ex_tr_con_atm(n_xgrid_sfc, n_exch_tr), & + ex_flux_u(n_xgrid_sfc), & + ex_flux_v(n_xgrid_sfc), & + ex_dtaudu_atm(n_xgrid_sfc), & + ex_dtaudv_atm(n_xgrid_sfc), & + ex_seawater(n_xgrid_sfc), & + ! values added for LM3 + !{ + ex_cd_t(n_xgrid_sfc), & + ex_cd_m(n_xgrid_sfc), & + ex_b_star(n_xgrid_sfc), & + ex_u_star(n_xgrid_sfc), & + ex_wind(n_xgrid_sfc), & + ex_z_atm(n_xgrid_sfc), & + ex_e_t_n(n_xgrid_sfc), & + ex_e_q_n(n_xgrid_sfc), & + ex_land(n_xgrid_sfc) & + !} + ) + +#ifdef SCM + allocate ( & + ex_dhdt_surf_forland(n_xgrid_sfc), & + ex_dedt_surf_forland(n_xgrid_sfc), & + ex_dedq_surf_forland(n_xgrid_sfc) & + ) +#endif + + !> Initialize allocated arrays (does this need to be done in an OpenMP block? Can it be set during + !! allocation?) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & + !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, ex_albedo_vis_dif,ex_albedo_nir_dif,& + !$OMP ex_cd_t,ex_cd_m, ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) private(is,ie,n_gex) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + ex_t_surf(i) = 200. + ex_u_surf(i) = 0. + ex_v_surf(i) = 0. + ex_albedo(i) = 0. ! bw + ex_albedo_vis_dir(i) = 0. + ex_albedo_nir_dir(i) = 0. + ex_albedo_vis_dif(i) = 0. + ex_albedo_nir_dif(i) = 0. + + ! do not use if relax time /= 0 + !{ + ex_cd_t(i) = 0.0 + ex_cd_m(i) = 0.0 + ex_cd_q(i) = 0.0 + ex_frac_open_sea(i) = 0. + !} + end do + do n_gex = 1, n_gex_lnd2atm + do i = is, ie + ex_gex_lnd2atm(i,n_gex) = 0.0 + enddo + enddo + enddo + + + !> initialize surface pressure on exchange grid + ex_p_surf = 1.0 + + + !> Allocate fms/coupler type for gas field exchange between ocean and ice + do n = 1, ex_gas_fields_ice%num_bcs + do m = 1, ex_gas_fields_ice%bc(n)%num_fields + if(associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then + call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.') + endif + allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) + enddo + enddo + + !> Allocate fms/coupler type for gas field exchange with atmosphere + do n = 1, ex_gas_fields_atm%num_bcs + do m = 1, ex_gas_fields_atm%bc(n)%num_fields + if (associated(ex_gas_fields_atm%bc(n)%field(m)%values)) then + call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.') + endif + allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) + enddo + enddo + + !> Allocate additional gas flux fields for intermediate calculations + do n = 1, ex_gas_fluxes%num_bcs + do m = 1, ex_gas_fluxes%bc(n)%num_fields + if (associated(ex_gas_fluxes%bc(n)%field(m)%values)) then + call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.') + endif + allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) + enddo + enddo + + !> override atm fields only if the field is specified in data_table + !{ + call fms_data_override ('ATM', 't_bot', Atm%t_bot , Time) + call fms_data_override ('ATM', 'z_bot', Atm%z_bot , Time) + call fms_data_override ('ATM', 'p_bot', Atm%p_bot , Time) + call fms_data_override ('ATM', 'u_bot', Atm%u_bot , Time) + call fms_data_override ('ATM', 'v_bot', Atm%v_bot , Time) + call fms_data_override ('ATM', 'p_surf', Atm%p_surf, Time) + call fms_data_override ('ATM', 'slp', Atm%slp, Time) + call fms_data_override ('ATM', 'gust', Atm%gust, Time) + + do tr = 1, n_atm_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr, tr_name ) + call fms_data_override('ATM', trim(tr_name)//'_bot', Atm%tr_bot(:,:,tr), Time, override=used) + if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then + ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units for atmosphere-land exchange + if(id_co2_bot > 0) used = fms_diag_send_data(id_co2_bot, Atm%tr_bot(:,:,tr), Time) + + isc = lbound(Atm%tr_bot,1); iec = ubound(Atm%tr_bot,1) + jsc = lbound(Atm%tr_bot,2); jec = ubound(Atm%tr_bot,2) + !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Atm,tr,isphum) + do j = jsc, jec + do i = isc, iec + ! After overriding co2 tracer data, convert units from + ! volume mixing ratio [mol of co2]/[mol of air] to mass mixing ratio [kg of co2]/[kg of air] + ! and convert from dry mass mixing ratio to wet mas mixing ratio via + ! co2mmr = (wco2/wair) * co2vmr and wet_mmr = dry_mmr * (1-Q) where Q is specific humidity + Atm%tr_bot(i,j,tr) = Atm%tr_bot(i,j,tr) * (WTMCO2/WTMAIR) * & + (1.0 - Atm%tr_bot(i,j,isphum)) + enddo + enddo + end if + enddo + + do n = 1, atm%fields%num_bcs + do m = 1, atm%fields%bc(n)%num_fields + + call fms_data_override('ATM', atm%fields%bc(n)%field(m)%name, & + atm%fields%bc(n)%field(m)%values, Time, override = atm%fields%bc(n)%field(m)%override) + + ex_gas_fields_atm%bc(n)%field(m)%override = atm%fields%bc(n)%field(m)%override + + ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before + ! atmosphere-ocean exchange + if(atm%fields%bc(n)%field(m)%override .and. & + fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'co2_flux_pcair_atm') then + if(id_co2_flux_pcair_atm > 0) & + used = fms_diag_send_data(id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) + endif + + ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before + ! atmosphere-ocean exchange + if(atm%fields%bc(n)%field(m)%override .and. & + fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'o2_flux_pcair_atm') then + if(id_o2_flux_pcair_atm > 0) & + used = fms_diag_send_data(id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) + endif + enddo + enddo + + do n = 1, atm%fields%num_bcs + if (atm%fields%bc(n)%use_atm_pressure) then + if (.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then + atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values = Atm%p_surf + endif + endif + enddo + !} + + !> override ice fields where data is overwritten only if the field is specified in the data_table + !{ + call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time) + call fms_data_override ('ICE', 'rough_mom', Ice%rough_mom, Time) + call fms_data_override ('ICE', 'rough_heat', Ice%rough_heat, Time) + call fms_data_override ('ICE', 'rough_moist',Ice%rough_moist, Time) + call fms_data_override ('ICE', 'albedo', Ice%albedo, Time) + call fms_data_override ('ICE', 'albedo_vis_dir', Ice%albedo_vis_dir, Time) + call fms_data_override ('ICE', 'albedo_nir_dir', Ice%albedo_nir_dir, Time) + call fms_data_override ('ICE', 'albedo_vis_dif', Ice%albedo_vis_dif, Time) + call fms_data_override ('ICE', 'albedo_nir_dif', Ice%albedo_nir_dif, Time) + call fms_data_override ('ICE', 'u_surf', Ice%u_surf, Time) + call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time) + call fms_coupler_type_data_override('ICE', Ice%ocean_fields, Time) + call fms_coupler_type_send_data(Ice%ocean_fields, Time) + !} + + !> override land fields where data is overwritten only if the field is specified in the data_table + !{ + call FMS_DATA_OVERRIDE_ ('LND', 't_surf', Land%t_surf, Time) + call FMS_DATA_OVERRIDE_ ('LND', 't_ca', Land%t_ca, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'rough_mom', Land%rough_mom, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'rough_heat', Land%rough_heat, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo', Land%albedo, Time) + do tr = 1, n_lnd_tr + call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) +#ifndef _USE_LEGACY_LAND_ + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) +#else + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) +#endif + enddo + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dir', Land%albedo_vis_dir, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time) + call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) + !} + + !> map atmospheric fields onto the exchange grid + !{ +#ifdef use_AM3_physics + if (do_forecast) then + call fms_xgrid_put_to_xgrid (Atm%Surf_diff%sst_miz, 'ATM', ex_t_surf_miz, & + xmap_sfc, remap_method=remap_method, complete=.false.) + endif +#endif + + do tr = 1,n_exch_tr + call fms_xgrid_put_to_xgrid (Atm%tr_bot(:,:,tr_table(tr)%atm), 'ATM', ex_tr_atm(:,tr), xmap_sfc, & + remap_method=remap_method, complete=.false.) + enddo + + do n = 1, Atm%fields%num_bcs + if(ex_gas_fields_atm%bc(n)%flux_type .ne. 'air_sea_deposition') then + do m = 1, Atm%fields%bc(n)%num_fields !{ + call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & + ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.) + enddo + endif + enddo + + call fms_xgrid_put_to_xgrid (Atm%t_bot , 'ATM', ex_t_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%z_bot , 'ATM', ex_z_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%p_bot , 'ATM', ex_p_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%u_bot , 'ATM', ex_u_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%v_bot , 'ATM', ex_v_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) + !} + + !> prefill surface values on the exchange grid with atmospheric values before putting tracers + ! from ice or land, so that gradient is 0 if tracers are not filled + ex_tr_surf = ex_tr_atm + + !> map ice fields onto the exchange grid + !{ + ! (assume that ocean quantites are stored in no ice partition) + ! (note: ex_avail is true at ice and ocean points) + call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_moist, 'OCN', ex_rough_moist, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo, 'OCN', ex_albedo, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dir, 'OCN', ex_albedo_vis_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dir, 'OCN', ex_albedo_nir_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dif, 'OCN', ex_albedo_vis_dif, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dif, 'OCN', ex_albedo_nir_dif, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc) + + tmp_open_sea = 0. + tmp_open_sea(:,:,1) = 1. + call fms_xgrid_put_to_xgrid ( tmp_open_sea, 'OCN', ex_frac_open_sea, xmap_sfc) + + do n = 1, ice%ocean_fields%num_bcs + do m = 1, ice%ocean_fields%bc(n)%num_fields + call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', & + ex_gas_fields_ice%bc(n)%field(m)%values, xmap_sfc) + enddo + enddo + !} + + !> Compute dynamic mask for seaice and static mask for land + !{ + ! Initialize open-water mask where each OCN grid cells is open water set to mask value of 1.0 + sea = 0.0 + sea(:,:,1) = 1.0 + + ! Generate dynamic ex_seawater wet mask that will be used to limit the air-sea flux exchange to areas + ! that are not totally covered by seaice. Note, xmap_sfc between land and ice is dynamic and changes + ! as seaice fraction changes during the model run [link to coupler_main]. Below call takes the updated + ! xmap_sfc and mark all open-water cells to be 1.0 + ex_seawater = 0.0 + call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) + + ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean + + !> map land mask onto the exchange grid + call fms_xgrid_some(xmap_sfc, ex_land, 'LND') + !} + + !> Map land fields on to the exchange grid + !{ +#ifdef use_AM3_physics + if (do_forecast) then + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) + ex_t_ca(:) = ex_t_surf_miz(:) + end if +#endif + + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo, 'LND', ex_albedo, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) + + ex_rough_scale = ex_rough_mom + call FMS_XGRID_PUT_TO_XGRID_(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) + + do n_gex=1,n_gex_lnd2atm + call FMS_XGRID_PUT_TO_XGRID_ (Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc) + end do + + do tr = 1,n_exch_tr + n = tr_table(tr)%lnd + if(n /= NO_TRACER ) then +#ifndef _USE_LEGACY_LAND_ + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) +#else + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) +#endif + else + ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore fluxes will be 0 + endif + enddo + + ex_land_frac = 0.0 + call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) + !} + +#ifdef SCM + if (do_specified_land) then + if (do_specified_albedo) then + ex_albedo = ALBEDO_OBS + ex_albedo_vis_dir = ALBEDO_OBS + ex_albedo_nir_dir = ALBEDO_OBS + ex_albedo_vis_dif = ALBEDO_OBS + ex_albedo_nir_dif = ALBEDO_OBS + endif + if (do_specified_tskin) then + ex_t_surf = TSKIN + ex_t_ca = TSKIN + ex_tr_surf(:,isphum) = 15.e-3 + endif + if (do_specified_rough_leng) then + ex_rough_mom = ROUGH_MOM + ex_rough_heat = ROUGH_HEAT + ex_rough_moist = ROUGH_HEAT + endif + endif +#endif + +#ifdef use_AM3_physics + if (do_forecast) then + ex_t_surf = ex_t_surf_miz + end if +#endif + + !> compute explicit fluxes and tendencies on the exchange grid + call fms_xgrid_some(xmap_sfc, ex_avail) + !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, & + !$OMP ex_p_atm, ex_z_atm, ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf, ex_u_surf, ex_v_surf, ex_rough_mom, & + !$OMP ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, ex_flux_t, ex_flux_tr, ex_flux_lw, & + !$OMP ex_flux_u, ex_flux_v, ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & + !$OMP ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf, ex_drdt_surf, ex_dhdt_atm, & + !$OMP ex_dfdtr_atm, ex_dtaudu_atm, ex_dtaudv_atm, dt, ex_land, ex_seawater, ex_avail, block_start, & + !$OMP block_end,isphum) private(is,ie) + do l = 1, my_nblocks + is=block_start(l) + ie=block_end(l) + call surface_flux (& + ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), & + ex_z_atm(is:ie), ex_p_surf(is:ie), ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), & + ex_u_surf(is:ie), ex_v_surf(is:ie), ex_rough_mom(is:ie), ex_rough_heat(is:ie), & + ex_rough_moist(is:ie), ex_rough_scale(is:ie), ex_gust(is:ie), ex_flux_t(is:ie), & + ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), & + ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), ex_wind(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), & + ex_q_star(is:ie), ex_thv_atm(is:ie), ex_thv_surf(is:ie), ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), & + ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), & + ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), dt, ex_land(is:ie), & + (ex_seawater(is:ie) .gt. 0.0), ex_avail(is:ie) & + ) + enddo + +#ifdef SCM + ! Option to override surface fluxes for SCM + if (do_specified_flux) then + call scm_surface_flux ( & + ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm, ex_p_atm, ex_z_atm, & + ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf(:,isphum), ex_u_surf, ex_v_surf, & + ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, & + ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, & + ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & + ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf(:,isphum), ex_drdt_surf, & + ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, dt, & + (ex_land, ex_seawater .gt. 0.0, ex_avail), ex_dhdt_surf_forland, ex_dedt_surf_forland, & + ex_dedq_surf_forland & + ) + endif +#endif + + !> compute the zonal and meriodonal winds at the boundary layer and at the reference heights on the + !! exchange grid + zrefm = 10.0 + zrefh = z_ref_heat + !$OMP parallel do default(shared) private(is,ie) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + call fms_monin_obukhov_mo_profile(zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & + ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & + ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) + do i = is,ie + ex_u10(i) = 0. + if(ex_avail(i)) then + ex_ref_u(i) = ex_u_surf(i) + (ex_u_atm(i)-ex_u_surf(i)) * ex_del_m(i) + ex_ref_v(i) = ex_v_surf(i) + (ex_v_atm(i)-ex_v_surf(i)) * ex_del_m(i) + ex_u10(i) = sqrt(ex_ref_u(i)**2 + ex_ref_v(i)**2) + endif + enddo + do n = 1, ex_gas_fields_atm%num_bcs + if (atm%fields%bc(n)%use_10m_wind_speed) then + if (.not. ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override) then + do i = is,ie + ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i) = ex_u10(i) + enddo + endif + endif + enddo + + !f1p: calculate atmospheric conductance to send to the land model + do i=is,ie + ex_con_atm(i) = ex_wind(i)*ex_cd_q(i) + end do + + !> Compute tracer flux where tracer flux = (C0*u*rho)*delta_q + !! slm: ex_dfdtr_surf(:,isphum) is set to zero over the ocean in call to surface_flux + !! and [so it is not appropriate to use for other tracers] <- why? + !! However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative + !! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux + !! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but + !! then this whole section will have to be changed. + do tr = 1,n_exch_tr + if (tr==isphum) cycle + do i = is,ie + ex_dfdtr_atm(i, tr) = ex_dfdtr_atm(i, isphum) + ex_dfdtr_surf(i, tr) = -ex_dfdtr_atm(i, isphum) + ex_flux_tr(i,tr) = ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) + enddo + enddo + enddo + + ! Combine explicit ocean flux and implicit land flux of extra flux fields. + + !> map ocean gas field fluxes from the exchange grid to the ocn grid, where the + !! flux is due to exchange between atmosphere and ocean surface and exchange between top of ice and ocean surface + call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) + + !> map intermediate fluxes from the exchange grid to the atmospheric grid + do n = 1, ex_gas_fluxes%num_bcs + if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then + m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch + if (id_tr_mol_flux0(m) .gt. 0) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:), xmap_sfc) + used = fms_diag_send_data(id_tr_mol_flux0(m), diag_atm, Time) + end if + end if + end do + + !> convert units + ! ex_flux_tr(:,itracer) = ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) + ! where(ex_seawater.gt.0) ex_flux_tr(:,itracer) = F_ocn + !$OMP parallel do default(shared) private(is,ie,m,tr_units,tr_name) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do n = 1, ex_gas_fluxes%num_bcs + if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then + m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, & + tr_name, units=tr_units) + do i = is,ie + if (ex_land(i)) cycle ! over land, don't do anything + ex_dfdtr_atm(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives + ex_dfdtr_surf(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives + if (ex_seawater(i)>0.0) then + if (fms_mpp_lowercase(trim(tr_units)).eq."vmr") then + ! if units in ambient "vmr*kg/m2/s" (as in land model), convert to mol/m2/s + ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & + * 1.0e-3*WTMAIR*WTMH2O/((1.-ex_tr_atm(i,isphum))*WTMH2O + ex_tr_atm(i,isphum)*WTMAIR) + else + ! jgj: convert to kg co2/m2/sec for atm + ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & + * ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03 + end if + else + ex_flux_tr(i,m) = 0.0 ! pure ice exchange cell + endif + enddo + endif + enddo + enddo + + !> override above computed fluxes with values from data_override if tracer exists in data_table + do tr = 1,n_exch_tr + if( tr_table(tr)%atm == NO_TRACER ) cycle ! it should never happen, though + + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) + + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) + if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) + + call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc ) + + ! [5.2.2] override derivative of flux wrt surface concentration + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) + if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) + + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc ) + + ! [5.2.3] override derivative of flux wrt atmospheric concentration + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) + if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) + + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) + enddo + + !> override flux and derivatives of sensible heat flux if field is specified in data_table + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) + if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_t, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) + + !> override derivative of flux wrt near-surface temperature if field is specified in data_table + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) + if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) + + !> override derivative of flux wrt atmospheric temperature if field is specified in data_table + call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) + if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) + + !> Note, the units of sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm"; + ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and W/(m2 degK) respectively + + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_avail, & + !$OMP ex_drag_q, ex_wind, ex_cd_q, ex_t_surf4, ex_t_surf ) private(is,ie) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + if(ex_avail(i)) ex_drag_q(i) = ex_wind(i)*ex_cd_q(i) !! get mean quantities on atmosphere grid + ex_t_surf4(i) = ex_t_surf(i) ** 4 !! compute t surf for radiation + enddo + enddo + + !> Update fields on Land_Ice_Atmos_Boundary + !{ + call fms_xgrid_get_from_xgrid(Land_Icee_Boundary%t_ocean, 'ATM', ex_t_surf , xmap_sfc, complete=.false.) !joseph + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%frac_open_sea,'ATM', ex_frac_open_sea, xmap_sfc) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dir, & + 'ATM', ex_albedo_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dir, & + 'ATM', ex_albedo_nir_dir, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dif, & + 'ATM', ex_albedo_vis_dif, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & + ex_albedo_nir_dif, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_mom, 'ATM', ex_rough_mom, xmap_sfc, complete=.false.) + !{ kgao + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_heat,'ATM', ex_rough_heat, xmap_sfc, complete=.false.) + !} + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_flux, 'ATM', ex_flux_u, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_flux, 'ATM', ex_flux_v, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudu, 'ATM', ex_dtaudu_atm, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudv, 'ATM', ex_dtaudv_atm, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_star, 'ATM', ex_u_star, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%b_star, 'ATM', ex_b_star, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%q_star, 'ATM', ex_q_star, xmap_sfc, complete=.true.) + + !> update "generic", non-tracer field exchange between land and atmosphere + do n_gex=1, n_gex_lnd2atm + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), & + 'ATM', ex_gex_lnd2atm(:, n_gex), xmap_sfc, complete=.false.) + end do + + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u, xmap_sfc, complete=.false.) !bqx + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v, xmap_sfc, complete=.true.) !bqx + +#ifndef use_AM3_physics + ! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc, complete=.true.) +#endif + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind , xmap_sfc) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_atm, 'ATM', ex_thv_atm, xmap_sfc) + call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_surf, 'ATM', ex_thv_surf, xmap_sfc) + +#ifdef use_AM3_physics + if (do_forecast) then + call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) + end if +#endif + + call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec) + !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary ) private(is,ie) + do j = jsc, jec + do i = isc, iec + Land_Ice_Atmos_Boundary%t(i,j) = Land_Ice_Atmos_Boundary%t(i,j) ** 0.25 + enddo + enddo + !} + + !> data_override updated Land_ice_atmos_boundary if the fields exist in data_table + !{ + call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) + call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) + + call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) + call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) + call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) + call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) + call fms_data_override('ATM', 'land_frac', Land_Ice_Atmos_Boundary%land_frac, Time) + call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) + do tr=1,n_atm_tr + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr, tr_name) + call fms_data_override('ATM', 'dt_'//trim(tr_name), Land_Ice_Atmos_Boundary%dt_tr(:,:,tr), Time) + enddo + call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) + call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) + call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) + call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) + call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) + call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) + ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) + call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) + !} + + !> albedo fix + ! save atmos albedo fix and old albedo (for downward SW flux calculations) on exchange grid + ! STILL NEEDED ???? IS THIS CORRECT ?? + allocate(ex_albedo_fix(n_xgrid_sfc)) + allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) + allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) + allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc)) + allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc)) + + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, & + !$OMP ex_albedo_vis_dir_fix, ex_albedo_nir_dir_fix, ex_albedo_vis_dif_fix, ex_albedo_nir_dif_fix ) private(is,ie) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + ex_albedo_fix(i) = 0. + ex_albedo_vis_dir_fix(i) = 0. + ex_albedo_nir_dir_fix(i) = 0. + ex_albedo_vis_dif_fix(i) = 0. + ex_albedo_nir_dif_fix(i) = 0. + enddo + enddo + + call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo_fix, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & + ex_albedo_vis_dir_fix, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', & + ex_albedo_nir_dir_fix, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dif, 'ATM', & + ex_albedo_vis_dif_fix, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & + ex_albedo_nir_dif_fix, xmap_sfc, complete=.true.) + + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & + !$OMP ex_albedo, ex_albedo_vis_dir_fix, ex_albedo_vis_dir, ex_albedo_nir_dir,ex_albedo_nir_dir_fix, & + !$OMP ex_albedo_vis_dif_fix, ex_albedo_vis_dif, ex_albedo_nir_dif_fix, ex_albedo_nir_dif) private(is,ie) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + ex_albedo_fix(i) = (1.0-ex_albedo(i)) / (1.0-ex_albedo_fix(i)) + ex_albedo_vis_dir_fix(i) = (1.0-ex_albedo_vis_dir(i)) / (1.0-ex_albedo_vis_dir_fix(i)) + ex_albedo_nir_dir_fix(i) = (1.0-ex_albedo_nir_dir(i)) / (1.0-ex_albedo_nir_dir_fix(i)) + ex_albedo_vis_dif_fix(i) = (1.0-ex_albedo_vis_dif(i)) / (1.0-ex_albedo_vis_dif_fix(i)) + ex_albedo_nir_dif_fix(i) = (1.0-ex_albedo_nir_dif(i)) / (1.0-ex_albedo_nir_dif_fix(i)) + enddo + enddo + +#ifdef SCM + if (do_specified_albedo .and. do_specified_land) then + ex_albedo_fix = 1. + ex_albedo_vis_dir_fix = 1. + ex_albedo_vis_dif_fix = 1. + ex_albedo_nir_dir_fix = 1. + ex_albedo_nir_dif_fix = 1. + endif +#endif + !} + + + !> send data to save in diag_manager buffer for outputting at the end of the simulation + !{ + ! save static fields, if first_static == true, send to diag_manager once + if (first_static) then + if ( id_land_mask > 0 ) then + used = fms_diag_send_data(id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time) !> land fraction + endif + if ( id_sftlf > 0 ) then + used = fms_diag_send_data(id_sftlf, Land_Ice_Atmos_Boundary%land_frac, Time) + endif + if(id_height2m > 0) used = fms_diag_send_data(id_height2m, z_ref_heat, Time) !> near-surface height + if(id_height10m > 0) used = fms_diag_send_data(id_height10m, z_ref_mom, Time) !> near-surface height + first_static = .false. + endif + + ! send_data for atm fields + do n = 1, Atm%fields%num_bcs + do m = 1, Atm%fields%bc(n)%num_fields + if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then + if (atm%fields%bc(n)%use_10m_wind_speed .and. m .eq. fms_coupler_ind_u10 .and. & + .not. Atm%fields%bc(n)%field(m)%override) then + call fms_xgrid_get_from_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & + ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc) + endif + if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then + used = fms_diag_send_data(Atm%fields%bc(n)%field(m)%id_diag, Atm%fields%bc(n)%field(m)%values, Time ) + endif + endif + enddo + enddo + + if ( id_wind > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_wind, xmap_sfc) + used = fms_diag_send_data ( id_wind, diag_atm, Time ) + endif + + if ( id_drag_moist > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_q, xmap_sfc) + used = fms_diag_send_data ( id_drag_moist, diag_atm, Time ) + endif + + if ( id_drag_heat > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_t, xmap_sfc) + used = fms_diag_send_data ( id_drag_heat, diag_atm, Time ) + endif + + if ( id_drag_mom > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_m, xmap_sfc) + used = fms_diag_send_data ( id_drag_mom, diag_atm, Time ) + endif + + if ( id_rough_moist > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_moist, xmap_sfc) + used = fms_diag_send_data ( id_rough_moist, diag_atm, Time ) + endif + + if ( id_rough_heat > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_heat, xmap_sfc) + used = fms_diag_send_data ( id_rough_heat, diag_atm, Time ) + endif + + used = fms_diag_send_data ( id_rough_mom, Land_Ice_Atmos_Boundary%rough_mom, Time ) + used = fms_diag_send_data ( id_u_star, Land_Ice_Atmos_Boundary%u_star, Time ) + used = fms_diag_send_data ( id_b_star, Land_Ice_Atmos_Boundary%b_star, Time ) + used = fms_diag_send_data ( id_q_star, Land_Ice_Atmos_Boundary%q_star, Time ) + used = fms_diag_send_data ( id_thv_atm, Land_Ice_Atmos_Boundary%thv_atm, Time ) + used = fms_diag_send_data ( id_thv_surf, Land_Ice_Atmos_Boundary%thv_surf, Time ) + + if ( id_t_atm > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_atm, xmap_sfc) + used = fms_diag_send_data ( id_t_atm, diag_atm, Time ) + endif + + if ( id_u_atm > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_u_atm, xmap_sfc) + used = fms_diag_send_data ( id_u_atm, diag_atm, Time ) + endif + + if ( id_v_atm > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_v_atm, xmap_sfc) + used = fms_diag_send_data ( id_v_atm, diag_atm, Time ) + endif + + do tr = 1,n_exch_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) + if ( id_tr_atm(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_atm(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_atm(tr), diag_atm, Time ) + endif + !!jgj: add dryvmr co2_atm + ! - slm Mar 25 2010: moved to resolve interdependence of diagnostic fields + if ( id_co2_atm_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then + ex_co2_atm_dvmr = (ex_tr_atm(:,tr) / (1.0 - ex_tr_atm(:,isphum))) * WTMAIR/WTMCO2 + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_co2_atm_dvmr, xmap_sfc) + used = fms_diag_send_data ( id_co2_atm_dvmr, diag_atm, Time ) + endif + enddo + + if ( id_p_atm > 0 ) then + ! - slm, Mar 25, 2002 + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_p_atm, xmap_sfc) + used = fms_diag_send_data ( id_p_atm, diag_atm, Time ) + endif + + if ( id_z_atm > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_z_atm, xmap_sfc) + used = fms_diag_send_data ( id_z_atm, diag_atm, Time ) + endif + + if ( id_gust > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_gust, xmap_sfc) + used = fms_diag_send_data ( id_gust, diag_atm, Time ) + endif + + if ( id_slp > 0 .or. id_psl > 0 ) then + ! - bw, Sep 17, 2007 + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_slp, xmap_sfc) + if ( id_slp > 0 ) used = fms_diag_send_data ( id_slp, diag_atm, Time ) + if ( id_psl > 0 ) used = fms_diag_send_data ( id_psl, diag_atm, Time ) + endif + + if ( id_t_ocean > 0 ) then + used = fms_diag_send_data ( id_t_ocean, Land_Ice_Atmos_Boundary%t_ocean, Time ) + endif + !} + + zrefm = z_ref_mom + zrefh = z_ref_heat + + !> compute deposition velocity + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm, & + !$OMP ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_u_star, ex_b_star, ex_q_star, ex_del_m, ex_del_h, ex_del_q, & + !$OMP ex_tr_ref, n_exch_tr, id_tr_ref, id_tr_ref_land, ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & + !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum, & + !$OMP ex_flux_tr,ex_t_atm,ex_p_surf) private(is,ie,rho) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & + ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & + ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) + + do i = is,ie + ex_ref(i) = 1.0e-06 + ex_tr_ref(i,:) = 1.e-20 + if (ex_avail(i) .and. ex_rough_moist(i) > 0.) then + ex_ref(i) = ex_tr_surf(i,isphum) + (ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum)) * ex_del_q(i) + rho = ex_p_surf(i)/(rdgas * ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) + do tr=1, n_exch_tr + if (id_tr_ref(tr).gt.0 & + .or. id_tr_ref_land(tr).gt.0 & + .or. id_tr_con_ref(tr).gt.0 & + .or. id_tr_con_ref_land(tr).gt.0) then + ex_tr_ref(i,tr) = ex_tr_surf(i,tr) + (ex_tr_atm(i,tr)-ex_tr_surf(i,tr)) * ex_del_q(i) + ex_tr_con_ref(i,tr) = -ex_flux_tr(i,tr)/max(ex_tr_ref(i,tr)*rho,epsln) + end if + if (id_tr_con_atm(tr).gt.0 .or. id_tr_con_atm_land(tr).gt.0) then + ex_tr_con_atm(i,tr) = -ex_flux_tr(i,tr)/max(ex_tr_atm(i,tr)*rho,epsln) + end if + end do + end if + enddo + enddo + + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_ref, 'ATM', ex_ref, xmap_sfc) ! cjg + if(id_q_ref > 0) then + used = fms_diag_send_data(id_q_ref,Land_Ice_Atmos_Boundary%q_ref,Time) + endif + if(id_huss > 0) then + used = fms_diag_send_data(id_huss,Land_Ice_Atmos_Boundary%q_ref,Time) + endif + if(id_q_ref_land > 0 .or.id_hussLut_land > 0) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + !duplicate send_tile_data. We may remove id_q_ref_land in the future. + call send_tile_data (id_q_ref_land, diag_land) + call send_tile_data (id_hussLut_land, diag_land) +#else + used = fms_diag_send_tile_averaged_data(id_q_ref_land, diag_land, & + Land%tile_size, Time, mask=Land%mask) +#endif + endif + + do tr=1,n_exch_tr + if (id_tr_ref(tr)>0) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_ref(:,tr), xmap_sfc) ! cjg + if(id_tr_ref(tr) > 0) then + used = fms_diag_send_data(id_tr_ref(tr),diag_atm,Time) + endif + end if + + if(id_tr_ref_land(tr) > 0) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call send_tile_data (id_tr_ref_land(tr), diag_land) +#else + used = fms_diag_send_tile_averaged_data(id_tr_ref_land(tr), diag_land, & + Land%tile_size, Time, mask=Land%mask) +#endif + endif + end do + + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail, & + !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2 ) private(is,ie) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is,ie + ex_t_ref(i) = 200. + if ( ex_avail(i) .and. ex_rough_heat(i) > 0. ) & + ex_t_ref(i) = ex_t_ca(i) + (ex_t_atm(i)-ex_t_ca(i)) * ex_del_h(i) + enddo + call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref(is:ie), q = ex_ref(is:ie)) + call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref_cmip(is:ie), & + q = ex_ref(is:ie), es_over_liq_and_ice = .true.) + do i = is,ie + if(ex_avail(i)) then + ex_ref2(i) = 100.*ex_ref(i)/ex_qs_ref_cmip(i) + ex_ref(i) = 100.*ex_ref(i)/ex_qs_ref(i) + endif + enddo + enddo + + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ref, 'ATM', ex_t_ref, xmap_sfc) ! cjg + + if ( id_rh_ref_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land,'LND', ex_ref, xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call send_tile_data (id_rh_ref_land, diag_land) +#else + used = fms_diag_send_tile_averaged_data ( id_rh_ref_land, diag_land, & + Land%tile_size, Time, mask = Land%mask ) +#endif + endif + + if(id_rh_ref > 0) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) + used = fms_diag_send_data ( id_rh_ref, diag_atm, Time ) + endif + + if(id_rh_ref_cmip > 0 .or. id_hurs > 0 .or. id_rhs > 0) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref2, xmap_sfc) + if (id_rh_ref_cmip > 0) used = fms_diag_send_data ( id_rh_ref_cmip, diag_atm, Time ) + if (id_hurs > 0) used = fms_diag_send_data ( id_hurs, diag_atm, Time ) + if (id_rhs > 0) used = fms_diag_send_data ( id_rhs, diag_atm, Time ) + endif + !cjg endif + + ! ------- reference temp ----------- +#ifdef use_AM3_physics + if ( id_t_ref > 0 .or. id_t_ref_land > 0 .or. id_tasLut_land > 0 ) then + where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h + if (id_t_ref_land > 0.or.id_tasLut_land > 0) then + call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_ref, xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) + if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) +#else + if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & + Land%tile_size, Time, mask = Land%mask ) +#endif + endif + if ( id_t_ref > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) + used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) + endif + endif +#else + if (id_t_ref_land > 0 .or. id_tasLut_land > 0 .or. id_tasl_g > 0) then + where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h + ! t_ref diagnostic at land points only + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) + if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) + if (id_tasl_g > 0) then + used = send_global_land_diag ( get_global_diag_field_id(id_tasl_g), & + diag_land, Time, Land%tile_size, Land%mask, Land ) + endif +#else + if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & + Land%tile_size, Time, mask = Land%mask ) +#endif + endif + + ! t_ref diagnostic at all atmos points + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) + if ( id_t_ref > 0 ) used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) + if ( id_tas > 0 ) used = fms_diag_send_data ( id_tas, diag_atm, Time ) + call fms_sum_diag_integral_field ('t_ref', diag_atm) + if ( id_tas_g > 0 ) used = send_global_diag ( id_tas_g, diag_atm, Time ) +#endif + + ! ------- reference u comp ----------- + if ( id_u_ref > 0 .or. id_u_ref_land > 0 .or. id_uas > 0) then + where (ex_avail) ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m + if ( id_u_ref_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) +#ifndef _USE_LEGACY_LAND_ + call send_tile_data ( id_u_ref_land, diag_land ) +#else + used = fms_diag_send_tile_averaged_data ( id_u_ref_land, diag_land, & + Land%tile_size, Time, mask = Land%mask ) +#endif + endif + if ( id_u_ref > 0 .or. id_uas > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) + if ( id_u_ref > 0 ) used = fms_diag_send_data ( id_u_ref, diag_atm, Time ) + if ( id_uas > 0 ) used = fms_diag_send_data ( id_uas, diag_atm, Time ) + endif + endif + + ! ------- reference v comp ----------- + if ( id_v_ref > 0 .or. id_v_ref_land > 0 .or. id_vas > 0 ) then + where (ex_avail) & + ex_ref = ex_v_surf + (ex_v_atm-ex_v_surf) * ex_del_m + if ( id_v_ref_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) +#ifndef _USE_LEGACY_LAND_ + call send_tile_data ( id_v_ref_land, diag_land ) +#else + used = fms_diag_send_tile_averaged_data ( id_v_ref_land, diag_land, & + Land%tile_size, Time, mask = Land%mask ) +#endif + endif + if ( id_v_ref > 0 .or. id_vas > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) + if ( id_v_ref > 0 ) used = fms_diag_send_data ( id_v_ref, diag_atm, Time ) + if ( id_vas > 0 ) used = fms_diag_send_data ( id_vas, diag_atm, Time ) + endif + endif + + ! ------- reference-level absolute wind ----------- + if ( id_wind_ref > 0 .or. id_sfcWind > 0 ) then + where (ex_avail) & + ex_ref = sqrt((ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m)**2 & + +(ex_v_surf + (ex_v_atm-ex_v_surf) * ex_del_m)**2) + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) + if ( id_wind_ref > 0 ) used = fms_diag_send_data ( id_wind_ref, diag_atm, Time ) + if ( id_sfcWind > 0 ) used = fms_diag_send_data ( id_sfcWind, diag_atm, Time ) + endif + + ! ------- interp factor for heat ------ + if ( id_del_h > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_del_h, xmap_sfc) + used = fms_diag_send_data ( id_del_h, diag_atm, Time ) + endif + + ! ------- interp factor for momentum ------ + if ( id_del_m > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_del_m, xmap_sfc) + used = fms_diag_send_data ( id_del_m, diag_atm, Time ) + endif + + ! ------- interp factor for moisture ------ + if ( id_del_q > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_del_q, xmap_sfc) + used = fms_diag_send_data ( id_del_q, diag_atm, Time ) + endif + + !cjg endif + ! topographic roughness scale + if(id_rough_scale>0) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM',& + (log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2, xmap_sfc) + used = fms_diag_send_data(id_rough_scale, diag_atm, Time) + endif + + !Balaji + call fms_mpp_clock_end(sfcClock) + call fms_mpp_clock_end(cplClock) + + !======================================================================= + + end subroutine sfc_boundary_layer + + !####################################################################### + + !> Returns fluxes and derivatives corrected for the implicit treatment of atmospheric + !! diffusive fluxes, and the increments in the temperature and specific humidity + !! of the lowest atmospheric layer due to all explicit processes as well as the diffusive + !! fluxes through the top of this layer. + !! + !! + !! The following elements from Atmos_boundary are used as input: + !!
                                                                                                                                                                              +  !!        flux_u_atm = zonal wind stress (Pa)
                                                                                                                                                                              +  !!        flux_v_atm = meridional wind stress (Pa)
                                                                                                                                                                              +  !! 
                                                                                                                                                                              + !! + !! The following elements of Land_boundary are output: + !!
                                                                                                                                                                              +  !!       flux_t_land = sensible heat flux (W/m2)
                                                                                                                                                                              +  !!       flux_q_land = specific humidity flux (Kg/(m2 s)
                                                                                                                                                                              +  !!      flux_lw_land = net longwave flux (W/m2), uncorrected for
                                                                                                                                                                              +  !!                     changes in surface temperature
                                                                                                                                                                              +  !!      flux_sw_land = net shortwave flux (W/m2)
                                                                                                                                                                              +  !!         dhdt_land = derivative of sensible heat flux w.r.t.
                                                                                                                                                                              +  !!                     surface temperature (on land model grid)  (W/(m2 K)
                                                                                                                                                                              +  !!         dedt_land = derivative of specific humidity flux w.r.t.
                                                                                                                                                                              +  !!                     surface temperature (on land model grid)  (Kg/(m2 s K)
                                                                                                                                                                              +  !!         drdt_land = derivative of upward longwave flux w.r.t.
                                                                                                                                                                              +  !!                     surface temperature (on land model grid) (W/(m2 K)
                                                                                                                                                                              +  !!        lprec_land = liquid precipitation, mass for one time step
                                                                                                                                                                              +  !!                      (Kg/m2)
                                                                                                                                                                              +  !!        fprec_land = frozen precipitation, mass for one time step
                                                                                                                                                                              +  !!                      (Kg/m2)
                                                                                                                                                                              +  !! 
                                                                                                                                                                              + !! + !! The following elements of Ice_boundary are output: + !!
                                                                                                                                                                              +  !!        flux_u_ice = zonal wind stress (Pa)
                                                                                                                                                                              +  !!        flux_v_ice = meridional wind stress (Pa)
                                                                                                                                                                              +  !!        coszen_ice = cosine of the zenith angle
                                                                                                                                                                              +  !! 
                                                                                                                                                                              + subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary ) + type(FmsTime_type), intent(in) :: Time + !< Current time + type(atmos_data_type), intent(inout) :: Atm + !< A derived data type to specify atmosphere boundary data + type(land_data_type), intent(in) :: Land + !< A derived data type to specify land boundary data + type(ice_data_type), intent(in) :: Ice + !< A derived data type to specify ice boundary data + type(land_ice_atmos_boundary_type), intent(in) :: Atmos_boundary + !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice + type(atmos_land_boundary_type), intent(inout):: Land_boundary + !< A derived data type to specify properties and fluxes passed from atmosphere to land + type(atmos_ice_boundary_type), intent(inout):: Ice_boundary + !< A derived data type to specify properties and fluxes passed from atmosphere to ice + + real, dimension(n_xgrid_sfc) :: & + ex_flux_sw, ex_flux_lwd, & + ex_flux_sw_dir, & + ex_flux_sw_dif, & + ex_flux_sw_down_vis_dir, & + ex_flux_sw_down_total_dir, & + ex_flux_sw_down_vis_dif, & + ex_flux_sw_down_total_dif, & + ex_flux_sw_vis, & + ex_flux_sw_vis_dir, & + ex_flux_sw_vis_dif, & + ex_lprec, & + ex_fprec, & + ex_tprec, & ! temperature of precipitation, currently equal to atm T + ex_u_star_smooth, & +#ifdef use_AM3_physics + ex_coszen +#else + ex_coszen, & + ex_setl_flux, & ! tracer sedimentation flux from the lowest atm layer (positive down) + ex_dsetl_dtr ! and its derivative w.r.t. the tracer concentration +#endif + real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) + real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) + + real, dimension(n_xgrid_sfc) :: & + ex_gamma, & + ex_dtmass, & + ex_delta_t, & + ex_delta_u, & + ex_delta_v, & + ex_dflux_t + + real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd + + real, dimension(n_xgrid_sfc,n_exch_tr) :: & + ex_delta_tr, & ! tracer tendencies + ex_dflux_tr ! fracer flux change + + real :: cp_inv + logical :: used + logical :: ov + integer :: ier + integer :: is_atm, ie_atm, js_atm, je_atm, j + + character(32) :: tr_name ! name of the tracer + integer :: tr, n, m ! tracer indices + integer :: is, ie, l, i + integer :: n_gex + + call fms_mpp_clock_begin(cplClock) + call fms_mpp_clock_begin(fluxAtmDnClock) + ov = .FALSE. + + !> override flux fields if fields are specified in data_table + call fms_data_override ('ATM', 'flux_sw', Atm%flux_sw, Time) + call fms_data_override ('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) + call fms_data_override ('ATM', 'flux_sw_dif', Atm%flux_sw_dif, Time) + call fms_data_override ('ATM', 'flux_sw_down_vis_dir', Atm%flux_sw_down_vis_dir, Time) + call fms_data_override ('ATM', 'flux_sw_down_vis_dif', Atm%flux_sw_down_vis_dif, Time) + call fms_data_override ('ATM', 'flux_sw_down_total_dir', Atm%flux_sw_down_total_dir, Time) + call fms_data_override ('ATM', 'flux_sw_down_total_dif', Atm%flux_sw_down_total_dif, Time) + call fms_data_override ('ATM', 'flux_sw_vis', Atm%flux_sw_vis, Time) + call fms_data_override ('ATM', 'flux_sw_vis_dir', Atm%flux_sw_vis_dir, Time) + call fms_data_override ('ATM', 'flux_sw_vis_dif', Atm%flux_sw_vis_dif, Time) + call fms_data_override ('ATM', 'flux_lw', Atm%flux_lw, Time) + call fms_data_override ('ATM', 'lprec', Atm%lprec, Time) + + !> if scale_precip_2d = .true., scale liquid precipitation by frac_precip. + !! frac_precip should have been allocated in atm_land_ice_flux_exchange_init + !! with scale_precip_2d_in set to .true. + if (scale_precip_2d) then + call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) + call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) + do j=js_atm,je_atm + do i=is_atm, ie_atm + Atm%lprec(i,j) = Atm%lprec(i,j)*frac_precip(i,j) + enddo + enddo + endif + + !> if partition_fprec_from_lpec = .true., initialize frozen precition and + !! liquid precipitation in Atm + allocate atm%fprec and atm%lprec fields + !! and initially set atm%fprec = atm%lprec + if (partition_fprec_from_lprec .and. Atm%pe) then + call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) + do j=js_atm,je_atm + do i=is_atm, ie_atm + if (Atm%t_bot(i,j) < tfreeze) then + Atm%fprec(i,j) = Atm%lprec(i,j) + Atm%lprec(i,j) = 0.0 + endif + enddo + enddo + endif + + !> override atm fields if fields are specified in the data_table + call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) + call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) + call fms_data_override ('ATM', 'dtmass', Atm%Surf_Diff%dtmass, Time) + call fms_data_override ('ATM', 'delta_t', Atm%Surf_Diff%delta_t, Time) + call fms_data_override ('ATM', 'dflux_t', Atm%Surf_Diff%dflux_t, Time) + do tr = 1,n_atm_tr + call fms_tracer_manager_get_tracer_names(MODEL_ATMOS,tr,tr_name) + call fms_data_override ('ATM', 'delta_'//trim(tr_name), Atm%Surf_Diff%delta_tr(:,:,tr), Time) + call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) + enddo + + !> map atmosphere quantities onto exchange grid + !{ + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & + !$OMP ex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u, ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v, & + !$OMP ex_gex_atm2lnd,n_gex_atm2lnd) private(is,ie,n_gex) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + ex_flux_sw_dir(i) = 0.0 + ex_flux_sw_vis_dir(i) = 0.0 + ex_flux_sw_dif(i) = 0.0 + ex_flux_sw_vis_dif(i) = 0.0 + ex_flux_lwd(i) = 0.0 + ex_delta_u(i) = 0.0 + ex_delta_v(i) = 0.0 + enddo + do n_gex = 1, n_gex_atm2lnd + do i = is, ie + ex_gex_atm2lnd(i,n_gex) = 0.0 + end do + end do + enddo + call fms_xgrid_put_to_xgrid(Atm%flux_sw_dir, 'ATM', ex_flux_sw_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dir, 'ATM', ex_flux_sw_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_dif, 'ATM', ex_flux_sw_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dif, 'ATM', ex_flux_sw_vis_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dir, 'ATM', ex_flux_sw_down_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) + + do n_gex=1,n_gex_atm2lnd + call fms_xgrid_put_to_xgrid (Atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) + end do + + call fms_xgrid_put_to_xgrid(Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) + call fms_xgrid_put_to_xgrid(Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) + + ! MOD changed the following two lines to put Atmos%surf_diff%delta_u and v + ! on exchange grid instead of the stresses themselves so that only the + ! implicit corrections are filtered through the atmospheric grid not the stresses themselves + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_u, 'ATM', ex_delta_u, xmap_sfc, remap_method=remap_method, & + complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & + complete=.true.) + + ! MOD update stresses using atmos delta's but derivatives on exchange grid + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u, & + !$OMP ex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v ) private(is,ie) + do l = 1, my_nblocks + is=block_start(l) + ie=block_end(l) + do i = is, ie + ex_flux_u(i) = ex_flux_u(i) + ex_delta_u(i)*ex_dtaudu_atm(i) + ex_flux_v(i) = ex_flux_v(i) + ex_delta_v(i)*ex_dtaudv_atm(i) + enddo + enddo + + + !> adjust sw flux for albedo variations on exchange grid + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & + !$OMP ex_flux_sw_vis_dir,ex_albedo_nir_dir_fix, ex_albedo_vis_dir_fix,ex_flux_sw_dif, & + !$OMP ex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw, ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix) & + !$OMP private(is,ie) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) - ex_flux_sw_vis_dir(i) ! temporarily nir/dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) * ex_albedo_nir_dir_fix(i) ! fix nir/dir + ex_flux_sw_vis_dir(i) = ex_flux_sw_vis_dir(i) * ex_albedo_vis_dir_fix(i) ! fix vis/dir + ex_flux_sw_dir(i) = ex_flux_sw_dir(i) + ex_flux_sw_vis_dir(i) ! back to total dir + + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) - ex_flux_sw_vis_dif(i) ! temporarily nir/dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) * ex_albedo_nir_dif_fix(i) ! fix nir/dif + ex_flux_sw_vis_dif(i) = ex_flux_sw_vis_dif(i) * ex_albedo_vis_dif_fix(i) ! fix vis/dif + ex_flux_sw_dif(i) = ex_flux_sw_dif(i) + ex_flux_sw_vis_dif(i) ! back to total dif + + ex_flux_sw_vis(i) = ex_flux_sw_vis_dir(i) + ex_flux_sw_vis_dif(i) ! legacy, remove later + ex_flux_sw(i) = ex_flux_sw_dir(i) + ex_flux_sw_dif(i) ! legacy, remove later + enddo + enddo + + deallocate(ex_albedo_fix) + deallocate(ex_albedo_vis_dir_fix) + deallocate(ex_albedo_nir_dir_fix) + deallocate(ex_albedo_vis_dif_fix) + deallocate(ex_albedo_nir_dif_fix) + + + !> adjust fluxes for implicit dependence on atmosphere + do tr = 1,n_exch_tr + n = tr_table(tr)%atm + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_tr(:,:,n), 'ATM', ex_delta_tr(:,tr), xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dflux_tr(:,:,n), 'ATM', ex_dflux_tr(:,tr), xmap_sfc, complete=.false.) + enddo + + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dtmass , 'ATM', ex_dtmass , xmap_sfc, complete=.false. ) + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_t, 'ATM', ex_delta_t, xmap_sfc, complete=.false. ) + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dflux_t, 'ATM', ex_dflux_t, xmap_sfc, complete=.true. ) + +#ifndef use_AM3_physics + !> Map sedimentation flux on the exchange + do tr = 1,n_exch_tr + if (atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm)) then + call get_atmos_tracer_surf_setl_flux (tr_table(tr)%atm, setl_flux, dsetl_dtr) + call fms_xgrid_put_to_xgrid(setl_flux, 'ATM', ex_setl_flux, xmap_sfc) + call fms_xgrid_put_to_xgrid(dsetl_dtr, 'ATM', ex_dsetl_dtr, xmap_sfc) + where (ex_avail) + ! minus sign is because sedimentation is positive down + ex_flux_tr(:,tr) = ex_flux_tr(:,tr) - ex_setl_flux(:) + ex_dfdtr_atm(:,tr) = ex_dfdtr_atm(:,tr) - ex_dsetl_dtr(:) + end where + endif + enddo +#endif + + cp_inv = 1.0/cp_air + + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd, & + !$OMP ex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm, cp_inv,ex_e_t_n,ex_dhdt_surf,ex_f_t_delt_n,& + !$OMP ex_delta_t, ex_flux_t,ex_dflux_tr,isphum,ex_dfdtr_atm,ex_e_q_n, ex_dedt_surf,n_exch_tr,& + !$OMP ex_e_tr_n,ex_dfdtr_surf, ex_f_tr_delt_n,ex_delta_tr,ex_flux_tr) private(is,ie) + do l = 1, my_nblocks + is = block_start(l) + ie = block_end(l) + do i = is, ie + !----- compute net longwave flux (down-up) ----- + ! (note: lw up already in ex_flux_lw) + ex_flux_lw(i) = ex_flux_lwd(i) - ex_flux_lw(i) + if (ex_avail(i) ) then + ! temperature + ex_gamma(i) = 1./ (1.0 - ex_dtmass(i)*(ex_dflux_t(i) + ex_dhdt_atm(i)*cp_inv)) + ex_e_t_n(i) = ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) + ex_f_t_delt_n(i) = (ex_delta_t(i) + ex_dtmass(i) * ex_flux_t(i)*cp_inv) * ex_gamma(i) + + ex_flux_t (i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) + ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) + + ! moisture + ! ex_gamma = 1./ (1.0 - ex_dtmass*(ex_dflux_q + ex_dedq_atm)) + ! here it looks like two derivatives with different units are added together, + ! but in fact they are not: ex_dedt_surf and ex_dedq_surf defined in complimentary + ! regions of exchange grid, so that if one of them is not zero the other is, and + ! vice versa. + ! ex_e_q_n = ex_dtmass*(ex_dedt_surf+ex_dedq_surf) * ex_gamma + ! ex_f_q_delt_n = (ex_delta_q + ex_dtmass * ex_flux_q) * ex_gamma + ! ex_flux_q = ex_flux_q + ex_dedq_atm * ex_f_q_delt_n + ! ex_dedt_surf = ex_dedt_surf + ex_dedq_atm * ex_e_q_n + ! ex_dedq_surf = ex_dedq_surf + ex_dedq_atm * ex_e_q_n + ! moisture vs. surface temperture, assuming saturation + ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,isphum) + ex_dfdtr_atm(i,isphum))) + ex_e_q_n(i) = ex_dtmass(i) * ex_dedt_surf(i) * ex_gamma(i) + ex_dedt_surf(i) = ex_dedt_surf(i) + ex_dfdtr_atm(i,isphum) * ex_e_q_n(i) + do tr = 1,n_exch_tr + ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,tr) + ex_dfdtr_atm(i,tr))) + ex_e_tr_n(i,tr) = ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) + ex_f_tr_delt_n(i,tr) = (ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) + ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) + ex_dfdtr_surf(i,tr) = ex_dfdtr_surf(i,tr) + ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) + enddo + endif + enddo + enddo + + !> map field from the exchange grid to the land grid + !{ + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) +#ifdef SCM + if (do_specified_land .and. do_specified_flux) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) + else + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + endif +#else + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) +#endif + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) + + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) + + if(associated(Land_boundary%drag_q)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'drag_q', Land_boundary%drag_q, Time ) + endif + if(associated(Land_boundary%lwdn_flux)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) + endif + if(associated(Land_boundary%cd_m)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'cd_m', Land_boundary%cd_m, Time ) + endif + if(associated(Land_boundary%cd_t)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'cd_t', Land_boundary%cd_t, Time ) + endif + if(associated(Land_boundary%bstar)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'bstar', Land_boundary%bstar, Time ) + endif + if(associated(Land_boundary%ustar)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'ustar', Land_boundary%ustar, Time ) + endif + if(associated(Land_boundary%wind)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'wind', Land_boundary%wind, Time ) + endif + if(associated(Land_boundary%z_bot)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) + call FMS_DATA_OVERRIDE_('LND', 'z_bot', Land_boundary%z_bot, Time ) + endif + + if (associated(Land_boundary%gex_atm2lnd)) then + do n_gex=1,n_gex_atm2lnd + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) + !add data_override here + end do + end if + +#ifndef _USE_LEGACY_LAND_ + if (associated(Land_boundary%con_atm)) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) + end if +#endif + + Land_boundary%tr_flux = 0.0 + Land_boundary%dfdtr = 0.0 + do tr = 1,n_exch_tr + n = tr_table(tr)%lnd + if(n /= NO_TRACER ) then +#ifndef _USE_LEGACY_LAND_ + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) +#else + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) +#endif +#ifdef SCM + if (do_specified_land .and. do_specified_flux .and. tr.eq.isphum) then + call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) + endif +#endif + endif + enddo + !} + + !> Data_override land fields if the field is specified in the data_table + call FMS_DATA_OVERRIDE_('LND', 't_flux', Land_boundary%t_flux, Time ) + call FMS_DATA_OVERRIDE_('LND', 'lw_flux', Land_boundary%lw_flux, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux', Land_boundary%sw_flux, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) + call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) + + call FMS_DATA_OVERRIDE_('LND', 'lprec', Land_boundary%lprec, Time ) + call FMS_DATA_OVERRIDE_('LND', 'fprec', Land_boundary%fprec, Time ) + call FMS_DATA_OVERRIDE_('LND', 'dhdt', Land_boundary%dhdt, Time ) + call FMS_DATA_OVERRIDE_('LND', 'drdt', Land_boundary%drdt, Time ) + call FMS_DATA_OVERRIDE_('LND', 'p_surf', Land_boundary%p_surf, Time ) + do tr = 1,n_lnd_tr + call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) +#ifndef _USE_LEGACY_LAND_ + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) +#else + call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,:,tr), Time) + call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) +#endif + enddo + + !> map data on the exchange grid onto the Ice grid + !{ + call fms_xgrid_get_from_xgrid (Ice_boundary%t_flux, 'OCN', ex_flux_t, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%q_flux, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dir, 'OCN', ex_flux_sw_vis_dir, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dir, 'OCN', ex_flux_sw_dir,xmap_sfc) + Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_flux_nir_dir - Ice_boundary%sw_flux_vis_dir + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dif, 'OCN', ex_flux_sw_vis_dif, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dif, 'OCN', ex_flux_sw_dif,xmap_sfc) + Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_flux_nir_dif - Ice_boundary%sw_flux_vis_dif + + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dir, 'OCN', ex_flux_sw_down_vis_dir, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dir, 'OCN', ex_flux_sw_down_total_dir, xmap_sfc) + Ice_boundary%sw_down_nir_dir = Ice_boundary%sw_down_nir_dir - Ice_boundary%sw_down_vis_dir + + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dif, 'OCN', ex_flux_sw_down_vis_dif, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dif, 'OCN', ex_flux_sw_down_total_dif,xmap_sfc) + Ice_boundary%sw_down_nir_dif = Ice_boundary%sw_down_nir_dif - Ice_boundary%sw_down_vis_dif + + call fms_xgrid_get_from_xgrid (Ice_boundary%lw_flux, 'OCN', ex_flux_lw, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%dhdt, 'OCN', ex_dhdt_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%dedt, 'OCN', ex_dedt_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%drdt, 'OCN', ex_drdt_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%u_flux, 'OCN', ex_flux_u, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%v_flux, 'OCN', ex_flux_v, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%u_star, 'OCN', ex_u_star, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%coszen, 'OCN', ex_coszen, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%p, 'OCN', ex_slp, xmap_sfc) ! mw mod + + call fms_xgrid_get_from_xgrid (Ice_boundary%lprec, 'OCN', ex_lprec, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice_boundary%fprec, 'OCN', ex_fprec, xmap_sfc) + + ! Extra fluxes + do n = 1, Ice_boundary%fluxes%num_bcs + if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then + do m = 1, Ice_boundary%fluxes%bc(n)%num_fields !{ + call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & + ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) + enddo + endif + enddo + !} + + !> Override ice data if data field is specified in the data_table + call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) + call fms_data_override('ICE', 'v_flux', Ice_boundary%v_flux, Time) + call fms_data_override('ICE', 't_flux', Ice_boundary%t_flux, Time) + call fms_data_override('ICE', 'q_flux', Ice_boundary%q_flux, Time) + call fms_data_override('ICE', 'lw_flux',Ice_boundary%lw_flux, Time) + call fms_data_override('ICE', 'lw_flux_dn',Ice_boundary%lw_flux, Time, override=ov) + if (ov) Ice_boundary%lw_flux = Ice_boundary%lw_flux - stefan*Ice%t_surf**4 + + call fms_data_override('ICE', 'sw_flux_nir_dir',Ice_boundary%sw_flux_nir_dir, Time) + call fms_data_override('ICE', 'sw_flux_vis_dir',Ice_boundary%sw_flux_vis_dir, Time) + call fms_data_override('ICE', 'sw_flux_nir_dif',Ice_boundary%sw_flux_nir_dif, Time, override=ov) + call fms_data_override('ICE', 'sw_flux_vis_dif',Ice_boundary%sw_flux_vis_dif, Time) + call fms_data_override('ICE', 'sw_flux_vis_dir_dn',Ice_boundary%sw_down_vis_dir, Time, override=ov) + if (ov) Ice_boundary%sw_flux_vis_dir = Ice_boundary%sw_down_vis_dir*(1.0-Ice%albedo_vis_dir) + + call fms_data_override('ICE', 'sw_flux_vis_dif_dn',Ice_boundary%sw_down_vis_dif, Time, override=ov) + if (ov) Ice_boundary%sw_flux_vis_dif = Ice_boundary%sw_down_vis_dif*(1.0-Ice%albedo_vis_dif) + + call fms_data_override('ICE', 'sw_flux_nir_dir_dn',Ice_boundary%sw_down_nir_dir, Time, override=ov) + if (ov) Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_down_nir_dir*(1.0-Ice%albedo_nir_dir) + + call fms_data_override('ICE', 'sw_flux_nir_dif_dn',Ice_boundary%sw_down_nir_dif, Time, override=ov) + if (ov) Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_down_nir_dif*(1.0-Ice%albedo_nir_dif) + + call fms_data_override('ICE', 'lprec', Ice_boundary%lprec, Time) + call fms_data_override('ICE', 'fprec', Ice_boundary%fprec, Time) + call fms_data_override('ICE', 'dhdt', Ice_boundary%dhdt, Time) + call fms_data_override('ICE', 'dedt', Ice_boundary%dedt, Time) + call fms_data_override('ICE', 'drdt', Ice_boundary%drdt, Time) + call fms_data_override('ICE', 'coszen', Ice_boundary%coszen, Time) + call fms_data_override('ICE', 'p', Ice_boundary%p, Time) + + call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) + + call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) + !} + + !> Compute stock changes + !{ + ! Atm -> Lnd (precip) + call FMS_XGRID_STOCK_MOVE_( & + & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & +#ifndef _USE_LEGACY_LAND_ + & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & +#else + & stock_data3d = (Land_boundary%lprec + Land_boundary%fprec), & +#endif + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Lnd) ') + + ! Atm -> Lnd (heat) + call FMS_XGRID_STOCK_MOVE_( & + & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & +#ifndef _USE_LEGACY_LAND_ + & stock_ug_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & + Land_boundary%fprec*HLF), & +#else + & stock_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & + Land_boundary%fprec*HLF), & +#endif + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Lnd) ') + + ! Atm -> Ice (precip) + call fms_xgrid_stock_move( & + & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_ice_stock(ISTOCK_WATER), & + & stock_data3d = (Ice_boundary%lprec + Ice_boundary%fprec), & + & grid_index=X1_GRID_ICE, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Ice) ') + + ! Atm -> Ice (heat) + call fms_xgrid_stock_move( & + & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & + & TO = fms_stock_constants_ice_stock(ISTOCK_HEAT), & + & stock_data3d = (-Ice_boundary%t_flux + Ice_boundary%lw_flux - Ice_boundary%fprec*HLF + & + Ice_boundary%sw_flux_vis_dir + & + Ice_boundary%sw_flux_vis_dif + Ice_boundary%sw_flux_nir_dir + Ice_boundary%sw_flux_nir_dif), & + & grid_index=X1_GRID_ICE, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') + !} + + deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) + + !> send data to diag_manager buffer to save data for output + !{ + ! zonal wind stress + used = fms_diag_send_data ( id_u_flux, Atmos_boundary%u_flux, Time ) + used = fms_diag_send_data ( id_tauu, -Atmos_boundary%u_flux, Time ) + + ! meridional wind stress + used = fms_diag_send_data ( id_v_flux, Atmos_boundary%v_flux, Time ) + used = fms_diag_send_data ( id_tauv, -Atmos_boundary%v_flux, Time ) + !} + + call fms_mpp_clock_end(fluxAtmDnClock) + call fms_mpp_clock_end(cplClock) + + end subroutine flux_down_from_atmos + + !####################################################################### + !> \brief Optimizes the exchange grids by eliminating land and ice partitions with no data. + !! + !! Optimizes the exchange grids by eliminating land and ice partitions with no data. + subroutine generate_sfc_xgrid( Land, Ice ) + ! subroutine to regenerate exchange grid eliminating side 2 tiles with 0 frac area + type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data + type(ice_data_type), intent(in) :: Ice !< A derived data type to specify ice boundary data + + integer :: isc, iec, jsc, jec + + !Balaji + call fms_mpp_clock_begin(cplClock) + call fms_mpp_clock_begin(regenClock) + + call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) + + call fms_xgrid_set_frac_area (Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) + call FMS_XGRID_SET_FRAC_AREA_ (Land%tile_size, 'LND', xmap_sfc) + + n_xgrid_sfc = max(fms_xgrid_count(xmap_sfc),1) + if(n_xgrid_sfc .GE. nblocks) then + my_nblocks = nblocks + call fms_mpp_domains_compute_extent(1, n_xgrid_sfc, nblocks, block_start, block_end) + else + my_nblocks = 1 + block_start(1) = 1 + block_end(1) = n_xgrid_sfc + endif + + !Balaji + call fms_mpp_clock_end(regenClock) + call fms_mpp_clock_end(cplClock) + return + end subroutine generate_sfc_xgrid + + !####################################################################### + !> \brief Corrects the fluxes for consistency with the new surface temperatures in land + !! and ice models. + !! + !! Corrects the fluxes for consistency with the new surface temperatures in land + !! and ice models. Final increments for temperature and specific humidity in the + !! lowest atmospheric layer are computed and returned to the atmospheric model + !! so that it can finalize the increments in the rest of the atmosphere. + !! + !! The following elements of the land_ice_atmos_boundary_type are computed: + !!
                                                                                                                                                                              +  !!        dt_t  = temperature change at the lowest
                                                                                                                                                                              +  !!                 atmospheric level (deg k)
                                                                                                                                                                              +  !!        dt_q  = specific humidity change at the lowest
                                                                                                                                                                              +  !!                 atmospheric level (kg/kg)
                                                                                                                                                                              +  !! 
                                                                                                                                                                              + subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary ) + type(FmsTime_type), intent(in) :: Time !< Current time + type(land_data_type), intent(inout) :: Land !< A derived data type to specify ice boundary data + type(ice_data_type), intent(inout) :: Ice !< A derived data type to specify ice boundary data + type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary !< A derived data type to specify + !! properties and fluxes passed from + !! exchange grid to the atmosphere, + !! land and ice + type(atmos_land_boundary_type), intent(inout) :: Land_boundary + type(atmos_ice_boundary_type), intent(inout) :: Ice_boundary + + real, dimension(n_xgrid_sfc) :: & + ex_t_surf_new, & + ex_dt_t_surf, & + ex_delta_t_n, & + ex_t_ca_new, & + ex_dt_t_ca, & + ex_icetemp, & + ex_land_frac, & + ex_temp + + real, dimension(n_xgrid_sfc,n_exch_tr) :: & + ex_tr_surf_new, & ! updated tracer values at the surface + ex_dt_tr_surf, & ! tendency of tracers at the surface + ex_delta_tr_n + ! jgj: added for co2_surf diagnostic + real, dimension(n_xgrid_sfc) :: & + ex_co2_surf_dvmr ! updated CO2 tracer values at the surface (dry vmr) + + real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: diag_atm, & + evap_atm, frac_atm +#ifndef _USE_LEGACY_LAND_ + real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land +#else + real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: data_lnd,& + diag_land +#endif + real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice + real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid + logical :: used + + integer :: tr ! tracer index + character(32) :: tr_name, tr_units ! tracer name + integer :: n, i, m, ier + + integer :: is, ie, l + + !Balaji + call fms_mpp_clock_begin(cplClock) + call fms_mpp_clock_begin(fluxAtmUpClock) + !----------------------------------------------------------------------- + !Balaji: data_override calls moved here from coupler_main + call fms_data_override ( 'ICE', 't_surf', Ice%t_surf, Time) + call FMS_DATA_OVERRIDE_ ( 'LND', 't_ca', Land%t_ca, Time) + call FMS_DATA_OVERRIDE_ ( 'LND', 't_surf', Land%t_surf, Time) + do tr = 1, n_lnd_tr + call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) +#ifndef _USE_LEGACY_LAND_ + call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) +#else + call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) +#endif + enddo + + !----- compute surface temperature change ----- + + ex_t_surf_new = 200.0 + + call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf_new, xmap_sfc) + ex_t_ca_new = ex_t_surf_new ! since it is the same thing over oceans + + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) + call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) + + ! call escomp(ex_t_ca_new, ex_q_surf_new) + ! ex_q_surf_new = d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) + ! call put_to_xgrid (Land%q_ca, 'LND', ex_q_surf_new, xmap_sfc) + +#ifdef SCM + if (do_specified_flux .and. do_specified_land) then + ex_t_surf_new = ex_t_surf + ex_t_ca_new = ex_t_ca + endif +#endif + + do l = 1, my_nblocks + is=block_start(l) + ie=block_end(l) + do i = is, ie + if(ex_avail(i)) then + ex_dt_t_ca(i) = ex_t_ca_new(i) - ex_t_ca(i) ! changes in near-surface T + ex_dt_t_surf(i) = ex_t_surf_new(i) - ex_t_surf(i) ! changes in radiative T + endif + enddo + + if (do_forecast) then + do i = is, ie + if(ex_avail(i) .and. (.not.ex_land(i))) then + ex_dt_t_ca (i) = 0. + ex_dt_t_surf(i) = 0. + endif + enddo + end if + + !----------------------------------------------------------------------- + !----- adjust fluxes and atmospheric increments for + !----- implicit dependence on surface temperature ----- + do tr = 1,n_exch_tr + ! set up updated surface tracer field so that flux to atmos for absent + ! tracers is zero + do i = is,ie + if(.not.ex_avail(i)) cycle + if (ex_dfdtr_surf(i,tr)/=0.0) then + ex_dt_tr_surf(i,tr) = -ex_flux_tr(i,tr)/ex_dfdtr_surf(i,tr) + else + ex_dt_tr_surf(i,tr) = 0.0 + endif + ex_tr_surf_new(i,tr) = ex_tr_surf(i,tr)+ex_dt_tr_surf(i,tr) + enddo + enddo + enddo ! l = 1, my_nblocks + ! get all tracers available from land, and calculate changes in near-tracer field + do tr = 1,n_exch_tr + n = tr_table(tr)%lnd + if(n /= NO_TRACER ) then +#ifndef _USE_LEGACY_LAND_ + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) +#else + call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) +#endif + endif + enddo + + ! get all tracers available from ocean here + + ! update tracer tendencies in the atmosphere + do l = 1, my_nblocks + is=block_start(l) + ie=block_end(l) + do tr = 1,n_exch_tr + do i = is, ie + if(ex_avail(i)) then + ex_dt_tr_surf(i,tr) = ex_tr_surf_new(i,tr) - ex_tr_surf(i,tr) + ex_delta_tr_n(i,tr) = ex_f_tr_delt_n(i,tr) + ex_dt_tr_surf(i,tr) * ex_e_tr_n(i,tr) + ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dt_tr_surf(i,tr) * ex_dfdtr_surf(i,tr) + endif + enddo + enddo + + ! re-calculate fluxes of specific humidity over ocean + do i = is, ie + if(ex_avail(i) .and. (.not.ex_land(i))) then + ! note that in this region (over ocean) ex_dt_t_surf == ex_dt_t_ca + ex_delta_tr_n(i,isphum) = ex_f_tr_delt_n(i,isphum) + ex_dt_t_surf(i) * ex_e_q_n(i) + ex_flux_tr(i,isphum) = ex_flux_tr(i,isphum) + ex_dt_t_surf(i) * ex_dedt_surf(i) + endif + enddo + enddo + + do tr=1,n_exch_tr + ! get updated tracer tendency on the atmospheic grid + n=tr_table(tr)%atm + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_tr(:,:,n), 'ATM', ex_delta_tr_n(:,tr), xmap_sfc) + enddo + + do l = 1, my_nblocks + is=block_start(l) + ie=block_end(l) + do i = is, ie + ex_delta_t_n(i) = 0.0 + if(ex_avail(i)) then + ex_flux_t(i) = ex_flux_t(i) + ex_dt_t_ca(i) * ex_dhdt_surf(i) + ex_flux_lw(i) = ex_flux_lw(i) - ex_dt_t_surf(i) * ex_drdt_surf(i) + ex_delta_t_n(i) = ex_f_t_delt_n(i) + ex_dt_t_ca(i)*ex_e_t_n(i) + endif + enddo + enddo + + !----------------------------------------------------------------------- + !---- get mean quantites on atmospheric grid ---- + + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_t, 'ATM', ex_delta_t_n, xmap_sfc) +#ifndef use_AM3_physics + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t , xmap_sfc) !miz + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc)!miz +#endif + + !======================================================================= + !-------------------- diagnostics section ------------------------------ + + !------- new surface temperature ----------- +#ifdef use_AM3_physics + if ( id_t_surf > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) + used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) + endif +#else + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) + if ( id_t_surf > 0 ) then + used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) + endif + if ( id_ts > 0 ) then + used = fms_diag_send_data ( id_ts, diag_atm, Time ) + endif + call fms_sum_diag_integral_field ('t_surf', diag_atm) + if ( id_ts_g > 0 ) used = send_global_diag ( id_ts_g, diag_atm, Time ) + !------- new surface temperature only over open ocean ----------- + if ( id_tos > 0 ) then + ex_icetemp = 0.0 + icegrid = 0.0; icegrid(:,:,1) = 1.0 + call fms_xgrid_put_to_xgrid ( icegrid, 'OCN', ex_icetemp, xmap_sfc) + ex_temp = ex_t_surf_new * ex_icetemp + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_temp, xmap_sfc) + call fms_xgrid_get_from_xgrid (frac_atm, 'ATM', ex_icetemp, xmap_sfc) + where (frac_atm > 0.0) + diag_atm = (diag_atm/frac_atm) ! - tfreeze CMIP6 in degK + frac_atm = 1.0 + elsewhere + diag_atm = 0.0 + frac_atm = 0.0 + endwhere + used = fms_diag_send_data ( id_tos, diag_atm, Time, rmask=frac_atm ) + endif + + !------- new surface temperature only over land and sea-ice ----------- + if ( id_tslsi > 0 ) then + ex_land_frac = 0.0 + call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) + icegrid = 1.0; icegrid(:,:,1) = 0. + ex_icetemp = 0. + call fms_xgrid_put_to_xgrid (icegrid, 'OCN', ex_icetemp, xmap_sfc) + ex_icetemp = ex_icetemp + ex_land_frac + ex_temp = ex_t_surf_new * ex_icetemp + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_temp, xmap_sfc) + call fms_xgrid_get_from_xgrid (frac_atm, 'ATM', ex_icetemp, xmap_sfc) + where (frac_atm > 0.0) + diag_atm = diag_atm/frac_atm + frac_atm = 1.0 + elsewhere + diag_atm = 0.0 + frac_atm = 0.0 + endwhere + used = fms_diag_send_data ( id_tslsi, diag_atm, Time, rmask=frac_atm ) + endif +#endif + + ! + slm, Mar 27 2002 + ! ------ new canopy temperature -------- + ! NOTE, that in the particular case of LM2 t_ca is identical to t_surf, + ! but this will be changed in future version of the land madel + if ( id_t_ca > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_ca_new, xmap_sfc) + used = fms_diag_send_data ( id_t_ca, diag_atm, Time ) + endif + + !------- updated surface tracer fields ------ + do tr=1,n_exch_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) + if ( id_tr_surf(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_surf_new(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_surf(tr), diag_atm, Time ) + endif + !!jgj: add dryvmr co2_surf + ! - slm Mar 25, 2010: moved to resolve interdependence of diagnostic fields + if ( id_co2_surf_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then + ex_co2_surf_dvmr = (ex_tr_surf_new(:,tr) / (1.0 - ex_tr_surf_new(:,isphum))) * WTMAIR/WTMCO2 + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_co2_surf_dvmr, xmap_sfc) + used = fms_diag_send_data ( id_co2_surf_dvmr, diag_atm, Time ) + endif + enddo + + !------- sensible heat flux ----------- + if ( id_t_flux > 0 .or. id_hfss > 0 .or. id_hfss_g > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_t, xmap_sfc) + if ( id_t_flux > 0 ) used = fms_diag_send_data ( id_t_flux, diag_atm, Time ) + if ( id_hfss > 0 ) used = fms_diag_send_data ( id_hfss, diag_atm, Time ) +#ifndef use_AM3_physics + if ( id_hfss_g > 0 ) used = send_global_diag ( id_hfss_g, diag_atm, Time ) +#endif + endif + + !------- net longwave flux ----------- + if ( id_r_flux > 0 .or. id_rls_g > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_lw, xmap_sfc) + if ( id_r_flux > 0 ) used = fms_diag_send_data ( id_r_flux, diag_atm, Time ) +#ifndef use_AM3_physics + if ( id_rls_g > 0 ) used = send_global_diag ( id_rls_g, diag_atm, Time ) +#endif + endif + + !------- tracer fluxes ------------ + ! tr_mol_flux diagnostic will be correct for co2 tracer only. + ! will need update code to use correct molar mass for tracers other than co2 + do tr=1,n_exch_tr + if ( id_tr_flux(tr) > 0 .or. id_tr_mol_flux(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_tr(:,tr), xmap_sfc) + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) + if (id_tr_flux(tr) > 0 ) & + used = fms_diag_send_data ( id_tr_flux(tr), diag_atm, Time ) + ! if (id_tr_mol_flux(tr) > 0 ) & + ! used = fms_diag_end_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) + ! 2017/08/08 jgj - replaced 2 lines above by the following + if (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then + used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) + !sometimes in 2018 f1p for vmr tracers + elseif (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_units)).eq."vmr") then + ! if (ocn_atm_flux_vmr_bug) then + ! call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ! ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)), xmap_sfc) + ! used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMAIR, Time) + ! else + !flux is in vmr * kg/m2/s. Divide by MW_air + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & + / (1e-3*WTMAIR*WTMH2O) , & + xmap_sfc) + used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm, Time) + endif + endif + if ( id_tr_con_atm(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_atm(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_con_atm(tr), diag_atm, Time ) + end if + if ( id_tr_con_ref(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_ref(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_con_ref(tr), diag_atm, Time ) + end if + enddo + +#ifndef _USE_LEGACY_LAND_ + if ( id_t_flux_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_t, xmap_sfc) + call send_tile_data ( id_t_flux_land, diag_land ) + endif + !------- tracer fluxes for land + do tr=1,n_exch_tr + if ( id_tr_flux_land(tr) > 0 .or. id_tr_mol_flux_land(tr) > 0 ) then + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) + if (id_tr_flux_land(tr) > 0 ) & + call send_tile_data (id_tr_flux_land(tr), diag_land ) + if (id_tr_mol_flux_land(tr) > 0) then + if (fms_mpp_lowercase(trim(tr_name))=='co2') then + call send_tile_data (id_tr_mol_flux_land(tr), diag_land*1000./WTMCO2) + elseif (fms_mpp_lowercase(trim(tr_units)).eq.'vmr') then + !flux is in vmr * kg/m2/s. Divide by MW_air + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', & + ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & + /(1e-3*WTMAIR*WTMH2O) , & + xmap_sfc) + call send_tile_data ( id_tr_mol_flux_land(tr), diag_land) + endif + endif + endif + enddo + + !-------- tracer deposition velocity + do tr=1,n_exch_tr + if ( id_tr_con_atm_land(tr) > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) + call send_tile_data (id_tr_con_atm_land(tr), diag_land ) + endif + if ( id_tr_con_ref_land(tr) > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc ) + call send_tile_data (id_tr_con_ref_land(tr), diag_land ) + endif + enddo + +#endif + + !----------------------------------------------------------------------- + !---- accumulate global integral of evaporation (mm/day) ----- + call fms_xgrid_get_from_xgrid (evap_atm, 'ATM', ex_flux_tr(:,isphum), xmap_sfc) + if( id_q_flux > 0 ) used = fms_diag_send_data ( id_q_flux, evap_atm, Time) + if( id_evspsbl > 0 ) used = fms_diag_send_data ( id_evspsbl, evap_atm, Time) + if( id_hfls > 0 ) used = fms_diag_send_data ( id_hfls, HLV*evap_atm, Time) +#ifndef use_AM3_physics + if( id_hfls_g > 0 ) used = send_global_diag ( id_hfls_g, HLV*evap_atm, Time) +#endif + + if( id_q_flux_land > 0 ) then + call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call send_tile_data (id_q_flux_land, diag_land) +#else + used = fms_diag_send_tile_averaged_data(id_q_flux_land, diag_land, & + Land%tile_size, Time, mask=Land%mask) +#endif + endif + call fms_sum_diag_integral_field ('evap', evap_atm*86400.) + +#ifndef use_AM3_physics + if (id_evspsbl_g > 0) used = send_global_diag ( id_evspsbl_g, evap_atm, Time ) +#endif + +#ifndef _USE_LEGACY_LAND_ + call send_tile_data (id_q_flux_land, diag_land) + ! need this to avoid diag issues with tiling changes in update_land_slow + call dump_tile_diag_fields(Time) +#endif + + call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) + + ! compute stock changes + + ! Lnd -> Atm (evap) + call FMS_XGRID_STOCK_MOVE_( & + & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & +#ifndef _USE_LEGACY_LAND_ + & stock_ug_data3d = data_lnd, & +#else + & stock_data3d = data_lnd, & +#endif + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') + + ! Lnd -> Atm (heat lost through evap) + call FMS_XGRID_STOCK_MOVE_( & + & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & + & FROM = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & +#ifndef _USE_LEGACY_LAND_ + & stock_ug_data3d = data_lnd * HLV, & +#else + & stock_data3d = data_lnd * HLV, & +#endif + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Lnd->ATm) ') + + call fms_xgrid_get_from_xgrid(data_ice, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) + + ! Ice -> Atm (evap) + call fms_xgrid_stock_move( & + & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & FROM = fms_stock_constants_ice_stock(ISTOCK_WATER), & + & stock_data3d = data_ice, & + & grid_index=X1_GRID_ICE, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move EVAP (Ice->ATm) ') + + ! Ice -> Atm (heat lost through evap) + call fms_xgrid_stock_move( & + & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & + & FROM = fms_stock_constants_ice_stock(ISTOCK_HEAT), & + & stock_data3d = data_ice * HLV, & + & grid_index=X1_GRID_ICE, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') + + !Balaji + call fms_mpp_clock_end(fluxAtmUpClock) + call fms_mpp_clock_end(cplClock) + end subroutine flux_up_to_atmos + + subroutine flux_ex_arrays_dealloc + integer :: m,n + + !======================================================================= + !---- deallocate module storage ---- + deallocate ( & + ex_t_surf , & + ex_t_surf_miz, & + ex_p_surf , & + ex_slp , & + ex_t_ca , & + ex_dhdt_surf, & + ex_dedt_surf, & + ex_dqsatdt_surf, & + ex_drdt_surf, & + ex_dhdt_atm , & + ex_flux_t , & + ex_flux_lw , & + ex_drag_q , & + ex_avail , & + ex_f_t_delt_n, & + ex_tr_surf , & + ex_tr_con_ref, & + ex_tr_con_atm, & + + ex_dfdtr_surf , & + ex_dfdtr_atm , & + ex_flux_tr , & + ex_f_tr_delt_n , & + ex_e_tr_n , & + + ex_e_t_n , & + ex_e_q_n , & + ! values added for LM3 + ex_cd_t , & + ex_cd_m , & + ex_b_star , & + ex_u_star , & + ex_wind , & + ex_z_atm , & + ex_con_atm , & + ex_seawater , & + ex_land ) + +#ifdef SCM + deallocate ( & + ex_dhdt_surf_forland, & + ex_dedt_surf_forland, & + ex_dedq_surf_forland ) +#endif + + ! Extra fluxes + do n = 1, ex_gas_fields_ice%num_bcs !{ + do m = 1, ex_gas_fields_ice%bc(n)%num_fields !{ + deallocate ( ex_gas_fields_ice%bc(n)%field(m)%values ) + nullify ( ex_gas_fields_ice%bc(n)%field(m)%values ) + enddo !} m + enddo !} n + + do n = 1, ex_gas_fields_atm%num_bcs !{ + do m = 1, ex_gas_fields_atm%bc(n)%num_fields !{ + deallocate ( ex_gas_fields_atm%bc(n)%field(m)%values ) + nullify ( ex_gas_fields_atm%bc(n)%field(m)%values ) + enddo !} m + enddo !} n + + do n = 1, ex_gas_fluxes%num_bcs !{ + do m = 1, ex_gas_fluxes%bc(n)%num_fields !{ + deallocate ( ex_gas_fluxes%bc(n)%field(m)%values ) + nullify ( ex_gas_fluxes%bc(n)%field(m)%values ) + enddo !} m + enddo !} n + + end subroutine flux_ex_arrays_dealloc + + subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) + type(FmsTime_type), intent(in) :: Time !< Current time + type(atmos_data_type), intent(inout):: Atm !< A derived data type to specify atmosphere boundary data + type(atmos_ice_boundary_type), intent(inout):: Ice_boundary !< A derived data type to specify properties and fluxes + !! passed from atmosphere to ice + type(ice_data_type), intent(inout):: Ice + + integer :: n,m + logical :: used + +#ifndef use_AM3_physics + call atmos_tracer_driver_gather_data_down(Atm%fields, Atm%tr_bot) +#endif + + !air-sea deposition fluxes + do n = 1, Atm%fields%num_bcs !{ + !Do the string copies. + Atm%fields%bc(n)%flux_type = trim(ex_gas_fluxes%bc(n)%flux_type) + Atm%fields%bc(n)%implementation = trim(ex_gas_fluxes%bc(n)%implementation) + if(ex_gas_fields_atm%bc(n)%flux_type .eq. 'air_sea_deposition') then + do m = 1, Atm%fields%bc(n)%num_fields !{ + call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & + ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method) + enddo !} m + endif + enddo !} n + + ! Calculate ocean explicit flux here + + call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) + + do n = 1, Ice_boundary%fluxes%num_bcs !{ + if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then + do m = 1, Ice_boundary%fluxes%bc(n)%num_fields !{ + call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & + ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) + + call fms_data_override('ICE', Ice_boundary%fluxes%bc(n)%field(m)%name, & + Ice_boundary%fluxes%bc(n)%field(m)%values, Time) + if ( Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then !{ + used = fms_diag_send_data(Ice_boundary%fluxes%bc(n)%field(m)%id_diag, & + Ice_boundary%fluxes%bc(n)%field(m)%values, Time ) + endif !} + enddo !} m + endif + enddo !} n + + call update_ice_atm_deposition_flux( Ice_boundary, Ice ) + + end subroutine flux_atmos_to_ocean + + !####################################################################### + + !> \brief Puts land or ice model masks (with partitions) onto the + !! exchange grid as a real array (1.=true, 0.=false) + subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) + + logical , intent(in) :: mask(:,:,:) + character(len=3), intent(in) :: id + real , intent(inout) :: ex_mask(:) + type(FmsXgridXmap_type), intent(inout) :: xmap + + !----------------------------------------------------------------------- + ! puts land or ice model masks (with partitions) onto the + ! exchange grid as a real array (1.=true, 0.=false) + !----------------------------------------------------------------------- + + real, dimension(size(mask,1),size(mask,2),size(mask,3)) :: rmask + + where (mask) + rmask = 1.0 + elsewhere + rmask = 0.0 + endwhere + + call fms_xgrid_put_to_xgrid(rmask, id, ex_mask, xmap) + + end subroutine put_logical_to_real_sg + + !####################################################################### + + !> \brief Puts land or ice model masks (with partitions) onto the + !! exchange grid as a real array (1.=true, 0.=false) + subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) + + logical , intent(in) :: mask(:,:) + character(len=3), intent(in) :: id + real , intent(inout) :: ex_mask(:) + type(FmsXgridXmap_type), intent(inout) :: xmap + + !----------------------------------------------------------------------- + ! puts land or ice model masks (with partitions) onto the + ! exchange grid as a real array (1.=true, 0.=false) + !----------------------------------------------------------------------- + + real, dimension(size(mask,1),size(mask,2)) :: rmask + + where (mask) + rmask = 1.0 + elsewhere + rmask = 0.0 + endwhere + + call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) + + end subroutine put_logical_to_real_ug + + + !####################################################################### + + !> \brief Initializes diagnostic fields that may be output from this + !! module (the ID numbers may be referenced anywhere in this module) + subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) + + type(FmsTime_type), intent(in) :: Time + integer, intent(in) :: atmos_axes(2) + integer, intent(in) :: land_axes(:) + logical, intent(in) :: land_pe + + integer :: iref + character(len=6) :: label_zm, label_zh + real, dimension(2) :: trange = (/ 100., 400. /), & + vrange = (/ -400., 400. /), & + frange = (/ -0.01, 1.01 /) + character(len=32) :: name, units ! name of the tracer + character(len=128) :: longname ! long name of the tracer + integer :: tr ! tracer index + integer :: area_id + !----------------------------------------------------------------------- + ! initializes diagnostic fields that may be output from this module + ! (the id numbers may be referenced anywhere in this module) + !----------------------------------------------------------------------- + + !------ labels for diagnostics ------- + ! (z_ref_mom, z_ref_heat are namelist variables) + + iref = int(z_ref_mom+0.5) + if ( real(iref) == z_ref_mom ) then + write (label_zm,105) iref + if (iref < 10) write (label_zm,100) iref + else + write (label_zm,110) z_ref_mom + endif + + iref = int(z_ref_heat+0.5) + if ( real(iref) == z_ref_heat ) then + write (label_zh,105) iref + if (iref < 10) write (label_zh,100) iref + else + write (label_zh,110) z_ref_heat + endif + +100 format (i1,' m',3x) +105 format (i2,' m',2x) +110 format (f4.1,' m') + + !--------- initialize static diagnostic fields -------------------- + + id_land_mask = & + fms_diag_register_static_field ( mod_name, 'land_mask', atmos_axes, & + 'fractional amount of land', 'none', & + range=frange, interp_method = "conserve_order1" ) + + !--------- initialize diagnostic fields -------------------- + + id_ice_mask = & + fms_diag_register_diag_field ( mod_name, 'ice_mask', atmos_axes, Time, & + 'fractional amount of sea ice', 'none', & + range=frange, interp_method = "conserve_order1" ) + + id_wind = & + fms_diag_register_diag_field ( mod_name, 'wind', atmos_axes, Time, & + 'wind speed for flux calculations', 'm/s', & + range=(/0.,vrange(2)/) ) + + id_drag_moist = & + fms_diag_register_diag_field ( mod_name, 'drag_moist', atmos_axes, Time, & + 'drag coeff for moisture', 'none' ) + + id_drag_heat = & + fms_diag_register_diag_field ( mod_name, 'drag_heat', atmos_axes, Time, & + 'drag coeff for heat', 'none' ) + + id_drag_mom = & + fms_diag_register_diag_field ( mod_name, 'drag_mom', atmos_axes, Time, & + 'drag coeff for momentum', 'none' ) + + id_rough_moist = & + fms_diag_register_diag_field ( mod_name, 'rough_moist', atmos_axes, Time, & + 'surface roughness for moisture', 'm' ) + + id_rough_heat = & + fms_diag_register_diag_field ( mod_name, 'rough_heat', atmos_axes, Time, & + 'surface roughness for heat', 'm' ) + + id_rough_mom = & + fms_diag_register_diag_field ( mod_name, 'rough_mom', atmos_axes, Time, & + 'surface roughness for momentum', 'm' ) + + id_u_star = & + fms_diag_register_diag_field ( mod_name, 'u_star', atmos_axes, Time, & + 'friction velocity', 'm/s' ) + + id_b_star = & + fms_diag_register_diag_field ( mod_name, 'b_star', atmos_axes, Time, & + 'buoyancy scale', 'm/s2' ) + + id_q_star = & + fms_diag_register_diag_field ( mod_name, 'q_star', atmos_axes, Time, & + 'moisture scale', 'kg water/kg air' ) + + id_thv_atm = & + fms_diag_register_diag_field ( mod_name, 'thv_atm', atmos_axes, Time, & + 'surface air virtual potential temperature', 'K') + + id_thv_surf = & + fms_diag_register_diag_field ( mod_name, 'thv_surf', atmos_axes, Time, & + 'surface virtual potential temperature', 'K') + + id_u_flux = & + fms_diag_register_diag_field ( mod_name, 'tau_x', atmos_axes, Time, & + 'zonal wind stress', 'pa' ) + + id_v_flux = & + fms_diag_register_diag_field ( mod_name, 'tau_y', atmos_axes, Time, & + 'meridional wind stress', 'pa' ) + + id_t_ocean = & + fms_diag_register_diag_field ( mod_name, 't_ocean', atmos_axes, Time, & + 'surface temperature from ocean output', 'deg_k', & + range=trange ) + + id_t_surf = & + fms_diag_register_diag_field ( mod_name, 't_surf', atmos_axes, Time, & + 'surface temperature', 'deg_k', & + range=trange ) + + ! + slm, Mar 25, 2002 -- add diagnositcs for t_ca, q_ca, and q_atm + id_t_ca = & + fms_diag_register_diag_field ( mod_name, 't_ca', atmos_axes, Time, & + 'canopy air temperature', 'deg_k', & + range=trange ) + + ! - slm, Mar 25, 2002 + id_z_atm = & + fms_diag_register_diag_field ( mod_name, 'z_atm', atmos_axes, Time, & + 'height of btm level', 'm') + + id_p_atm = & + fms_diag_register_diag_field ( mod_name, 'p_atm', atmos_axes, Time, & + 'pressure at btm level', 'pa') + + ! - bw, Mar 25, 2002 -- added diagnostic slp + id_slp = & + fms_diag_register_diag_field ( mod_name, 'slp', atmos_axes, Time, & + 'sea level pressure', 'pa') + + id_gust = & + fms_diag_register_diag_field ( mod_name, 'gust', atmos_axes, Time, & + 'gust scale', 'm/s') + + id_t_flux = & + fms_diag_register_diag_field ( mod_name, 'shflx', atmos_axes, Time, & + 'sensible heat flux', 'w/m2' ) + + id_r_flux = & + fms_diag_register_diag_field ( mod_name, 'lwflx', atmos_axes, Time, & + 'net (down-up) longwave flux', 'w/m2' ) + + id_t_atm = & + fms_diag_register_diag_field ( mod_name, 't_atm', atmos_axes, Time, & + 'temperature at btm level', 'deg_k', & + range=trange ) + + id_u_atm = & + fms_diag_register_diag_field ( mod_name, 'u_atm', atmos_axes, Time, & + 'u wind component at btm level', 'm/s', & + range=vrange ) + + id_v_atm = & + fms_diag_register_diag_field ( mod_name, 'v_atm', atmos_axes, Time, & + 'v wind component at btm level', 'm/s', & + range=vrange ) + + id_t_ref = & + fms_diag_register_diag_field ( mod_name, 't_ref', atmos_axes, Time, & + 'temperature at '//label_zh, 'deg_k' , & + range=trange ) + + id_rh_ref = & + fms_diag_register_diag_field ( mod_name, 'rh_ref', atmos_axes, Time, & + 'relative humidity at '//label_zh, 'percent' ) + + id_rh_ref_cmip = & + fms_diag_register_diag_field ( mod_name, 'rh_ref_cmip', atmos_axes, Time, & + 'relative humidity at '//label_zh, 'percent' ) + + id_u_ref = & + fms_diag_register_diag_field ( mod_name, 'u_ref', atmos_axes, Time, & + 'zonal wind component at '//label_zm, 'm/s', & + range=vrange ) + + id_v_ref = & + fms_diag_register_diag_field ( mod_name, 'v_ref', atmos_axes, Time, & + 'meridional wind component at '//label_zm, 'm/s', & + range=vrange ) + + id_wind_ref = & + fms_diag_register_diag_field ( mod_name, 'wind_ref', atmos_axes, Time, & + 'absolute value of wind at '//label_zm, 'm/s', & + range=vrange ) + + id_del_h = & + fms_diag_register_diag_field ( mod_name, 'del_h', atmos_axes, Time, & + 'ref height interp factor for heat', 'none' ) + id_del_m = & + fms_diag_register_diag_field ( mod_name, 'del_m', atmos_axes, Time, & + 'ref height interp factor for momentum','none' ) + id_del_q = & + fms_diag_register_diag_field ( mod_name, 'del_q', atmos_axes, Time, & + 'ref height interp factor for moisture','none' ) + + if( land_pe ) then + ! set the default filter (for area and subsampling) for consequent calls to + ! register_tiled_diag_field +#ifndef _USE_LEGACY_LAND_ + call set_default_diag_filter('land') +#endif + id_t_ref_land = & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 't_ref', Land_axes, Time, & + 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & + range=trange, missing_value = -100.0) + id_q_ref_land = & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'q_ref', Land_axes, Time, & + 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & + missing_value=-1.0) + id_rh_ref_land= & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'rh_ref', Land_axes, Time, & + 'relative humidity at '//trim(label_zh)//' over land', 'percent', & + missing_value=-999.0) + id_u_ref_land = & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'u_ref', Land_axes, Time, & + 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & + range=vrange, missing_value=-999.0 ) + id_v_ref_land = & + FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'v_ref', Land_axes, Time, & + 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & + range=vrange, missing_value = -999.0 ) + id_q_flux_land = & + FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'evap', Land_axes, Time, & + 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) + id_t_flux_land = & + FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'shflx', Land_axes, Time, & + 'sensible heat flux', 'W/m2', missing_value=-1.0 ) + id_tasLut_land = & + FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'tasLut', Land_axes, Time, & + 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & + units='K', standard_name='air_temperature', missing_value=-1.0 ) + id_hussLut_land = & + FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'hussLut', Land_axes, Time, & + 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & + standard_name='specific_humidity', missing_value=-1.0 ) + + allocate(id_tr_flux_land(n_exch_tr)) + allocate(id_tr_mol_flux_land(n_exch_tr)) + allocate(id_tr_con_atm_land(n_exch_tr)) + allocate(id_tr_con_ref_land(n_exch_tr)) + allocate(id_tr_ref_land(n_exch_tr)) + +#ifdef _USE_LEGACY_LAND_ + id_tr_con_atm_land(:) = -1 + id_tr_con_ref_land(:) = -1 + id_tr_ref_land(:)= -1 +#endif + + do tr = 1, n_exch_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) + + id_tr_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_flux', & + Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) + if ( fms_mpp_lowercase(trim(name))=='co2') then + id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & + Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) + else + id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & + Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) + endif + +#ifndef _USE_LEGACY_LAND_ + id_tr_con_atm_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_tot_con_atm', & + Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) + id_tr_con_ref_land(tr) = register_diag_field( 'flux_land', trim(name)//'_tot_con_ref', & + Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) + + ! we skip sphum because it is already available as flux_land/q_ref + if ( tr .ne. isphum ) then + id_tr_ref_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_ref', & + Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', & + trim(units),missing_value=-1.0) + else + id_tr_ref_land(tr) = -1 + end if +#endif + enddo + endif + + id_q_ref = & + fms_diag_register_diag_field ( mod_name, 'q_ref', atmos_axes, Time, & + 'specific humidity at '//trim(label_zh), 'kg/kg', missing_value=-1.0) + + id_rough_scale = & + fms_diag_register_diag_field ( mod_name, 'rough_scale', atmos_axes, Time, & + 'topographic scaling factor for momentum drag','1' ) + !----------------------------------------------------------------------- + + allocate(id_tr_atm(n_exch_tr)) + allocate(id_tr_surf(n_exch_tr)) + allocate(id_tr_flux(n_exch_tr)) + allocate(id_tr_mol_flux(n_exch_tr)) + allocate(id_tr_mol_flux0(n_exch_tr)) + allocate(id_tr_con_atm(n_exch_tr)) + allocate(id_tr_con_ref(n_exch_tr)) + allocate(id_tr_ref(n_exch_tr)) + + do tr = 1, n_exch_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) + + id_tr_con_atm(tr) = fms_diag_register_diag_field( mod_name, trim(name)//'_tot_con_atm', atmos_axes, Time, & + 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) + id_tr_con_ref(tr) = fms_diag_register_diag_field( mod_name, trim(name)//'_tot_con_ref', atmos_axes, Time, & + 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) + + id_tr_atm(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_atm', atmos_axes, Time, & + trim(longname)//' at btm level', trim(units)) + id_tr_surf(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_surf', atmos_axes, Time, & + trim(longname)//' at the surface', trim(units)) + id_tr_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_flux', atmos_axes, Time, & + 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)') + if ( tr .ne. isphum ) then + id_tr_ref(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_ref', atmos_axes, Time, & + trim(longname)//' at '//trim(label_zh), trim(units),missing_value=-1.0) + else + id_tr_ref(tr) = -1 + end if + !! add dryvmr co2_surf and co2_atm + if ( fms_mpp_lowercase(trim(name))=='co2') then + ! - slm Mar 25, 2010: moved registration of mol_flux inside 'if' to disable + ! saving incorrect results (mol fluxes for other tracers computed with CO2 molar + ! mass) + id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & + 'flux of '//trim(longname), 'mol CO2/(m2 s)') + id_co2_atm_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_atm_dvmr', atmos_axes, Time, & + trim(longname)//' at btm level', 'mol CO2 /mol air') + id_co2_surf_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_surf_dvmr', atmos_axes, Time, & + trim(longname)//' at the surface', 'mol CO2 /mol air') + else +!f1p + id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & + 'flux of '//trim(longname), 'mol/(m2 s)') + endif +!f1p + id_tr_mol_flux0(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux_atm0', atmos_axes, Time, & + 'gross flux of '//trim(longname), 'mol/(m2 s)') + + enddo + + ! 2017/08/08 jgj add diagnostics for co2 data overrides even if co2 is not a tracer + ! register data calls not needed here for co2_flux_pcair_atm and o2_flux_pcair_atm as this happens elsewhere + id_co2_bot = fms_diag_register_diag_field (mod_name, 'co2_bot', atmos_axes, Time, & + 'co2_bot from data_override', 'ppmv') + + ! id_nh3_flux_atm0 = fms_diag_register_diag_field (mod_name, 'nh3_flux_atm0', atmos_axes, Time, & + ! 'nh3 flux out of the ocean assuming not nh3 in the atmosphere', 'mol/m2/s') + + + id_q_flux = fms_diag_register_diag_field( mod_name, 'evap', atmos_axes, Time, & + 'evaporation rate', 'kg/m2/s' ) + + !-------------------------------------------------------------------- + ! retrieve the diag_manager id for the area diagnostic, + ! needed for cmorizing various diagnostics. + !-------------------------------------------------------------------- + area_id = fms_diag_get_field_id ('dynamics', 'area') + if (area_id .eq. DIAG_FIELD_NOT_FOUND) call fms_error_mesg & + ('diag_field_init in atm_land_ice_flux_exchange_mod', & + 'diagnostic field "dynamics", "area" is not in the diag_table', NOTE) + + !----------------------------------------------------------------------- + ! register cmip variable names + !----------------------------------------------------------------------- + ! NOTE: add extra dimension reference level fields? height2m, height10m + ! for now we will handle this with an attribute + + id_height2m = & + fms_diag_register_static_field ( mod_name, 'height2m', (/null_axis_id/), & + 'Height', 'm', standard_name = 'height' ) + if ( id_height2m > 0 ) then + call fms_diag_field_add_attribute( id_height2m, 'axis', 'Z' ) + call fms_diag_field_add_attribute( id_height2m, 'positive', 'up' ) + endif + + id_height10m = & + fms_diag_register_static_field ( mod_name, 'height10m', (/null_axis_id/), & + 'Height', 'm', standard_name = 'height' ) + if ( id_height10m > 0 ) then + call fms_diag_field_add_attribute( id_height10m, 'axis', 'Z' ) + call fms_diag_field_add_attribute( id_height10m, 'positive', 'up' ) + endif + +#ifdef use_AM3_physics + id_tas = & + fms_diag_register_diag_field ( mod_name, 'tas', atmos_axes, Time, & + 'Near-Surface Air Temperature', 'K' , & + standard_name = 'air_temperature', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=trange ) + if ( id_tas > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) + + id_uas = & + fms_diag_register_diag_field ( mod_name, 'uas', atmos_axes, Time, & + 'Eastward Near-Surface Wind', 'm s-1', & + standard_name = 'eastward_wind', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=vrange ) + if ( id_uas > 0 .and. id_height10m > 0) & + call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) + + id_vas = & + fms_diag_register_diag_field ( mod_name, 'vas', atmos_axes, Time, & + 'Northward Near-Surface Wind', 'm s-1', & + standard_name = 'northward_wind', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=vrange ) + if ( id_vas > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) + + id_sfcWind = & + fms_diag_register_diag_field ( mod_name, 'sfcWind', atmos_axes, Time, & + 'Near-Surface Wind Speed', 'm s-1', & + standard_name = 'wind_speed', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=vrange ) + if ( id_sfcWind > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) + + id_huss = & + fms_diag_register_diag_field ( mod_name, 'huss', atmos_axes, Time, & + 'Near-Surface Specific Humidity', '1.0', & + standard_name = 'specific_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_huss > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) + + id_hurs = & + fms_diag_register_diag_field ( mod_name, 'hurs', atmos_axes, Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name = 'relative_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_hurs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) + + id_rhs = & + fms_diag_register_diag_field ( mod_name, 'rhs', atmos_axes, Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name = 'relative_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_rhs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) + + id_ts = & + fms_diag_register_diag_field ( mod_name, 'ts', atmos_axes, Time, & + 'Surface Temperature', 'K', & + standard_name = 'surface_temperature', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=trange ) + + id_psl = & + fms_diag_register_diag_field ( mod_name, 'psl', atmos_axes, Time, & + 'Sea Level Pressure', 'Pa', & + standard_name = 'air_pressure_at_sea_level', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_tauu = & + fms_diag_register_diag_field ( mod_name, 'tauu', atmos_axes, Time, & + 'Surface Downward Eastward Wind Stress', 'Pa', & + standard_name = 'surface_downward_eastward_stress', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_tauv = & + fms_diag_register_diag_field ( mod_name, 'tauv', atmos_axes, Time, & + 'Surface Downward Northward Wind Stress', 'Pa', & + standard_name = 'surface_downward_northward_stress', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_hfss = & + fms_diag_register_diag_field ( mod_name, 'hfss', atmos_axes, Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', & + standard_name = 'surface_upward_sensible_heat_flux', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_hfls = & + fms_diag_register_diag_field ( mod_name, 'hfls', atmos_axes, Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', & + standard_name = 'surface_upward_latent_heat_flux', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) + + id_evspsbl = & + fms_diag_register_diag_field( mod_name, 'evspsbl', atmos_axes, Time, & + 'Evaporation', 'kg m-2 s-1', & + standard_name = 'water_evaporation_flux', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_sftlf = & + fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & + 'Fraction of the Grid Cell Occupied by Land', '1.0', & + standard_name = 'land_area_fraction', area=area_id, & + interp_method = "conserve_order1" ) + + id_tslsi = & + fms_diag_register_diag_field ( mod_name, 'tslsi', atmos_axes, Time, & + 'Surface Temperature Where Land or Sea Ice', 'K', & + standard_name = 'surface_temperature', area=area_id, & + mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) + + id_tos = & + fms_diag_register_diag_field ( mod_name, 'tos', atmos_axes, Time, & + 'Sea Surface Temperature', 'K', & + standard_name = 'sea_surface_temperature', area=area_id, & + mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) + + id_sic = & + fms_diag_register_diag_field ( mod_name, 'sic', atmos_axes, Time, & + 'Sea Ice Area Fraction', '1.0', & + standard_name = 'sea_ice_area_fraction', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & + 'averaged over the ocean portion of grid box' ) +#else + id_tas = register_cmip_diag_field_2d ( mod_name, 'tas', Time, & + 'Near-Surface Air Temperature', 'K' , & + standard_name='air_temperature' ) + if ( id_tas > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) + + id_uas = register_cmip_diag_field_2d ( mod_name, 'uas', Time, & + 'Eastward Near-Surface Wind', 'm s-1', & + standard_name='eastward_wind' ) + if ( id_uas > 0 .and. id_height10m > 0) & + call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) + + id_vas = register_cmip_diag_field_2d ( mod_name, 'vas', Time, & + 'Northward Near-Surface Wind', 'm s-1', & + standard_name='northward_wind' ) + if ( id_vas > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) + + id_sfcWind = register_cmip_diag_field_2d ( mod_name, 'sfcWind', Time, & + 'Near-Surface Wind Speed', 'm s-1', & + standard_name='wind_speed' ) + if ( id_sfcWind > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) + + id_huss = register_cmip_diag_field_2d ( mod_name, 'huss', Time, & + 'Near-Surface Specific Humidity', '1.0', & + standard_name='specific_humidity' ) + if ( id_huss > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) + + id_hurs = register_cmip_diag_field_2d ( mod_name, 'hurs', Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name='relative_humidity' ) + if ( id_hurs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) + + id_rhs = register_cmip_diag_field_2d ( mod_name, 'rhs', Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name='relative_humidity' ) + if ( id_rhs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) + + id_ts = register_cmip_diag_field_2d ( mod_name, 'ts', Time, & + 'Surface Temperature', 'K', & + standard_name='surface_temperature' ) + + id_psl = register_cmip_diag_field_2d ( mod_name, 'psl', Time, & + 'Sea Level Pressure', 'Pa', & + standard_name='air_pressure_at_sea_level' ) + + id_tauu = register_cmip_diag_field_2d ( mod_name, 'tauu', Time, & + 'Surface Downward Eastward Wind Stress', 'Pa', & + standard_name='surface_downward_eastward_stress' ) + + id_tauv = register_cmip_diag_field_2d ( mod_name, 'tauv', Time, & + 'Surface Downward Northward Wind Stress', 'Pa', & + standard_name='surface_downward_northward_stress' ) + + id_hfss = register_cmip_diag_field_2d ( mod_name, 'hfss', Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', & + standard_name='surface_upward_sensible_heat_flux' ) + + id_hfls = register_cmip_diag_field_2d ( mod_name, 'hfls', Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', & + standard_name='surface_upward_latent_heat_flux' ) + if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) + + id_evspsbl = register_cmip_diag_field_2d ( mod_name, 'evspsbl', Time, & + 'Evaporation', 'kg m-2 s-1', & + standard_name='water_evaporation_flux' ) + + id_sftlf = fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & + 'Fraction of the Grid Cell Occupied by Land', '1.0', & + standard_name='land_area_fraction', area=area_id, & + interp_method='conserve_order1' ) + + id_tslsi = register_cmip_diag_field_2d ( mod_name, 'tslsi', Time, & + 'Surface Temperature Where Land or Sea Ice', 'K', & + standard_name='surface_temperature', & + mask_variant=.true. ) + + ! tos,sic are ocean,seaIce fields on the atmos grid + ! useful for amip-type runs + + id_tos = register_cmip_diag_field_2d ( mod_name, 'tos', Time, & + 'Sea Surface Temperature', 'K', & + standard_name='sea_surface_temperature', & + mask_variant=.true. ) + + id_sic = register_cmip_diag_field_2d ( mod_name, 'sic', Time, & + 'Sea Ice Area Fraction', '1.0', & + standard_name='sea_ice_area_fraction' ) + if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & + 'averaged over the ocean portion of grid box' ) + + !----- initialize global integrals for netCDF output ----- + id_evspsbl_g = register_global_diag_field ( 'evspsbl', Time, & + 'Evaporation', 'mm d-1', & + standard_name='water_evaporation_flux' ) + + id_ts_g = register_global_diag_field ( 'ts', Time, & + 'Surface Temperature', 'K', & + standard_name='surface_temperature' ) + + id_tas_g = register_global_diag_field ( 'tas', Time, & + 'Near-Surface Air Temperature', 'K' , & + standard_name='air_temperature' ) + if ( id_tas_g > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tas_g), 'coordinates', 'height2m' ) + + id_tasl_g = register_global_diag_field ( 'tasl', Time, & + 'Near-Surface Air Temperature (Land Only)', 'K' , & + standard_name='air_temperature' ) +#if defined(_USE_LEGACY_LAND_) || defined(use_AM3_physics) + if(id_tasl_g>0) then + call fms_mpp_error(WARNING, "diag_field_init: field tasl is registered, but macro "// & + "_USE_LEGACY_LAND_ or use_AM3_physics is defined, no data will be written out") + endif +#endif + if ( id_tasl_g > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tasl_g), 'coordinates', 'height2m' ) + + id_hfss_g = register_global_diag_field ( 'hfss', Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', & + standard_name='surface_upward_sensible_heat_flux' ) + + id_hfls_g = register_global_diag_field ( 'hfls', Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', & + standard_name='surface_upward_latent_heat_flux') + if ( id_hfls_g > 0 ) & + call fms_diag_field_add_attribute( get_global_diag_field_id(id_hfls_g), 'comment', 'Lv*evap' ) + + id_rls_g = register_global_diag_field ( 'rls', Time, & + 'Net Longwave Surface Radiation', 'W m-2', & + standard_name='surface_net_longwave_flux' ) + +#endif + !----------------------------------------------------------------------- + + end subroutine diag_field_init + + + !###################################################################################### + !> \brief Divide data by area while avoiding zero area elements + subroutine divide_by_area(data, area) + real, intent(inout) :: data(:,:) + real, intent(in) :: area(:,:) + + if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) then + ! no op + return + endif + + where(area /= 0.0) + data = data / area + end where + + end subroutine divide_by_area + + !####################################################################### + !> \brief Send out the ice_mask and/or sic data. + !! This was called inside flux_ocean_to_ice. Why? + subroutine send_ice_mask_sic(Time) + type(FmsTime_type), intent(in) :: Time !< Current time + + real, dimension(nxc_ice, nyc_ice, nk_ice) :: ice_frac + real, dimension(n_xgrid_sfc) :: ex_ice_frac + real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac + logical :: used + + if ( id_ice_mask > 0 .or. id_sic > 0) then + ice_frac = 1. + ice_frac(:,:,1) = 0. + ex_ice_frac = 0. + call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ice_frac, xmap_sfc) + if ( id_ice_mask > 0 ) used = fms_diag_send_data ( id_ice_mask, diag_atm, Time ) + + ! ice concentration for only the ocean part of the atmos grid box + ! normalize ice fraction over entire atmos grid box by the + ! fraction of atmos grid box that is ocean + if ( id_sic > 0) then + ice_frac = 1. + ex_ice_frac = 0. + call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) + call fms_xgrid_get_from_xgrid (ocean_frac, 'ATM', ex_ice_frac, xmap_sfc) + where (ocean_frac > 0.0) + diag_atm = min(1., diag_atm/ocean_frac) ! CMIP6 as fraction + ocean_frac = 1.0 + elsewhere + diag_atm = 0.0 + ocean_frac = 0.0 + endwhere + used = fms_diag_send_data ( id_sic, diag_atm, Time, rmask=ocean_frac ) + endif + endif + + end subroutine send_ice_mask_sic + + !####################################################################### + + subroutine atm_stock_integrate(Atm, res) + type(atmos_data_type), intent(in) :: Atm + real, intent(out) :: res + integer :: ier + + call fms_xgrid_stock_integrate_2d(Atm%lprec + Atm%fprec, xmap=xmap_sfc, delta_t=Dt_atm, & + & radius=Radius, res=res, ier=ier) + + end subroutine atm_stock_integrate + +!######################################################################### + +end module atm_land_ice_flux_exchange_mod + +#undef FMS_DATA_OVERRIDE_ +#undef FMS_XGRID_PUT_TO_XGRID_ +#undef FMS_XGRID_STOCK_MOVE_ +#undef FMS_XGRID_SET_FRAC_AREA_ +#undef FMS_XGRID_GET_FROM_XGRID_ +#undef FMS_DIAG_REGISTER_FIELD_ From 1e6680cbe42d27a9f3fddf02e5664dcb097ea6e4 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 24 Feb 2026 12:46:50 -0500 Subject: [PATCH 20/31] add xml --- docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml | 547 +++ .../atm__land__ice__flux__exchange_8_f90.xml | 4119 +++++++++++++++++ .../atmos__ocean__dep__fluxes__calc_8_f90.xml | 121 + docs/xml/atmos__ocean__fluxes__calc_8_f90.xml | 411 ++ docs/xml/combine.xslt | 15 + docs/xml/compound.xsd | 1131 +++++ docs/xml/coupler_config.xml | 63 + .../dir_9982052f7ce695d12571567315b2fafa.xml | 12 + .../dir_d31ef39e894be3975a1de5d6a46d3717.xml | 12 + .../dir_ec0543676189fadf8843b558a280dd29.xml | 14 + .../dir_f6406403be25082e487bde7aa9e18575.xml | 19 + docs/xml/flux_exchange_conf.xml | 34 + docs/xml/full_2coupler__main_8_f90.xml | 426 ++ docs/xml/full_2flux__exchange_8_f90.xml | 793 ++++ docs/xml/full__coupler__mod_8_f90.xml | 2269 +++++++++ docs/xml/ice__model_8_f90.xml | 1324 ++++++ docs/xml/ice__ocean__flux__exchange_8_f90.xml | 700 +++ docs/xml/index.xml | 763 +++ docs/xml/index.xsd | 66 + docs/xml/indexpage.xml | 53 + ...xchange__mod_1_1put__logical__to__real.xml | 105 + ...acesurface__flux__mod_1_1surface__flux.xml | 529 +++ docs/xml/land__ice__flux__exchange_8_f90.xml | 169 + docs/xml/namespace_f_m_s.xml | 11 + ...aceatm__land__ice__flux__exchange__mod.xml | 3370 ++++++++++++++ ...ceatmos__ocean__dep__fluxes__calc__mod.xml | 87 + ...mespaceatmos__ocean__fluxes__calc__mod.xml | 533 +++ docs/xml/namespaceflux__exchange__mod.xml | 2438 ++++++++++ docs/xml/namespacefull__coupler__mod.xml | 2749 +++++++++++ docs/xml/namespaceice__model__mod.xml | 786 ++++ ...mespaceice__ocean__flux__exchange__mod.xml | 578 +++ docs/xml/namespaceiso__fortran__env.xml | 11 + ...amespaceland__ice__flux__exchange__mod.xml | 240 + docs/xml/namespaceomp__lib.xml | 11 + docs/xml/namespacesurface__flux__mod.xml | 1451 ++++++ docs/xml/simple_2coupler__main_8_f90.xml | 672 +++ docs/xml/simple_2flux__exchange_8_f90.xml | 1240 +++++ ...change__mod_1_1tracer__exch__ind__type.xml | 60 + ...ux__exchange__mod_1_1tracer__ind__type.xml | 57 + ..._coupler__mod_1_1coupler__chksum__type.xml | 204 + ...__coupler__mod_1_1coupler__clock__type.xml | 547 +++ ...pler__mod_1_1coupler__components__type.xml | 253 + ...del__mod_1_1atmos__ice__boundary__type.xml | 209 + ...ructice__model__mod_1_1ice__data__type.xml | 400 ++ docs/xml/surface__flux_8_f90.xml | 1025 ++++ docs/xml/surface_flux_config.xml | 36 + 46 files changed, 30663 insertions(+) create mode 100644 docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml create mode 100644 docs/xml/atm__land__ice__flux__exchange_8_f90.xml create mode 100644 docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml create mode 100644 docs/xml/atmos__ocean__fluxes__calc_8_f90.xml create mode 100644 docs/xml/combine.xslt create mode 100644 docs/xml/compound.xsd create mode 100644 docs/xml/coupler_config.xml create mode 100644 docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml create mode 100644 docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml create mode 100644 docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml create mode 100644 docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml create mode 100644 docs/xml/flux_exchange_conf.xml create mode 100644 docs/xml/full_2coupler__main_8_f90.xml create mode 100644 docs/xml/full_2flux__exchange_8_f90.xml create mode 100644 docs/xml/full__coupler__mod_8_f90.xml create mode 100644 docs/xml/ice__model_8_f90.xml create mode 100644 docs/xml/ice__ocean__flux__exchange_8_f90.xml create mode 100644 docs/xml/index.xml create mode 100644 docs/xml/index.xsd create mode 100644 docs/xml/indexpage.xml create mode 100644 docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml create mode 100644 docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml create mode 100644 docs/xml/land__ice__flux__exchange_8_f90.xml create mode 100644 docs/xml/namespace_f_m_s.xml create mode 100644 docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml create mode 100644 docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml create mode 100644 docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml create mode 100644 docs/xml/namespaceflux__exchange__mod.xml create mode 100644 docs/xml/namespacefull__coupler__mod.xml create mode 100644 docs/xml/namespaceice__model__mod.xml create mode 100644 docs/xml/namespaceice__ocean__flux__exchange__mod.xml create mode 100644 docs/xml/namespaceiso__fortran__env.xml create mode 100644 docs/xml/namespaceland__ice__flux__exchange__mod.xml create mode 100644 docs/xml/namespaceomp__lib.xml create mode 100644 docs/xml/namespacesurface__flux__mod.xml create mode 100644 docs/xml/simple_2coupler__main_8_f90.xml create mode 100644 docs/xml/simple_2flux__exchange_8_f90.xml create mode 100644 docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml create mode 100644 docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml create mode 100644 docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml create mode 100644 docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml create mode 100644 docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml create mode 100644 docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml create mode 100644 docs/xml/structice__model__mod_1_1ice__data__type.xml create mode 100644 docs/xml/surface__flux_8_f90.xml create mode 100644 docs/xml/surface_flux_config.xml diff --git a/docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml b/docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml new file mode 100644 index 00000000..a416e3d9 --- /dev/null +++ b/docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml @@ -0,0 +1,547 @@ + + + + coupler_main.F90 + + + program + program coupler_main + + coupler_main + + + + + + + + + + subroutine + subroutine coupler_main::coupler_init + + coupler_init + +Read namelists and restart file, initializes all defined exchange grids and all boundary maps. + + + + + + + + subroutine + subroutine coupler_main::coupler_restart + (time_stamp) + coupler_restart + + time_stamp + time_stamp + + +Writes a restart file for the current date. + + + +time_stamp + + +Optional timestamp for file name + + + + + + + + + subroutine + subroutine coupler_main::coupler_end + + coupler_end + +Finalizes run, outputs restart files and diagnostic fields. + + + + + + + + +Main driver program for the SHiELD model. + +Sequences the dynamics, radiation/physics, and updates the prognostic state. + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +programcoupler_main + + +usefms +usefmsconstants,only:fmsconstants_init +useatmos_model_mod,only:atmos_model_init,atmos_model_end,& +update_atmos_model_dynamics,& +update_atmos_radiation_physics,& +update_atmos_model_state,& +atmos_data_type,atmos_model_restart +useplatform_mod,only:r4_kind,r8_kind +!---FMSoldio +#ifdefuse_deprecated_io +usefms_io_mod,only:fms_io_exit!<thiscan'tberemoveduntilfms_ioisnotusedatall +#endif +implicitnone + +!----------------------------------------------------------------------- +character(len=128)::version='unknown' +character(len=128)::tag='fmscoupler_shield' + +!----------------------------------------------------------------------- +!----modeldefined-types---- + +type(atmos_data_type)::Atm + +!----------------------------------------------------------------------- +!-----coupledmodeltime----- + +type(FmsTime_type)::Time_atmos,Time_init,Time_end,& +Time_step_atmos,Time_step_ocean,& +Time_restart,Time_step_restart,& +Time_start_restart,Time_restart_aux,& +Time_step_restart_aux,Time_start_restart_aux,& +Time_duration_restart_aux,Time_restart_end_aux + +integer::num_cpld_calls,num_atmos_calls,nc,na,ret + +!-----coupledmodelinitialdate----- + +integer::date_init(6) +integer::calendar_type=-99 + +!-----timingflags----- + +integer::initClock,mainClock,termClock +integer,parameter::timing_level=1 + +!-----namelist----- +integer,dimension(6)::current_date=(/0,0,0,0,0,0/)!<Thedatethatthecurrentintegrationstartswith +character(len=17)::calendar=''!<Thecalendartypeusedbythecurrentintegration. +!!Validvaluesareconsistentwiththetime_managermodule: +!!'gregorian','julian','noleap',or'thirty_day'.Thevalue +!!'no_calendar'cannotbeused +!!becausethetime_manager'sdatefunctionsareused. +!!Allvaluesmustbelowercase. +logical::force_date_from_namelist=.false. +integer::years=0 +integer::months=0 +integer::days=0 +integer::hours=0 +integer::minutes=0 +integer::seconds=0 +integer::dt_atmos=0 +integer::dt_ocean=0 +integer::restart_days=0 +integer::restart_secs=0 +integer::restart_start_days=0 +integer::restart_start_secs=0 +integer::restart_days_aux=0 +integer::restart_secs_aux=0 +integer::restart_start_days_aux=0 +integer::restart_start_secs_aux=0 +integer::restart_duration_days_aux=0 +integer::restart_duration_secs_aux=0 +integer::atmos_nthreads=1 +logical::use_hyper_thread=.false. +integer::iau_offset=0 + + +namelist/coupler_nml/current_date,calendar,force_date_from_namelist,& +years,months,days,hours,minutes,seconds,& +iau_offset,dt_atmos,dt_ocean,atmos_nthreads,& +use_hyper_thread,restart_secs,restart_days,& +restart_start_secs,restart_start_days,& +restart_secs_aux,restart_days_aux,& +restart_start_secs_aux,restart_start_days_aux,& +restart_duration_secs_aux,restart_duration_days_aux + +!-----localvariables----- +character(len=32)::timestamp +logical::intrm_rst,intrm_rst_1step + +!####################################################################### + +callfms_init() + +initclock=fms_mpp_clock_id('-Initialization') +callfms_mpp_clock_begin(initclock)!nestingproblem + +callfms_sat_vapor_pres_init() +callfmsconstants_init() + +callcoupler_init +callfms_memutils_print_memuse_stats('aftercouplerinit') + +callfms_mpp_set_current_pelist() +callfms_mpp_clock_end(initclock)!endinitialization + +mainclock=fms_mpp_clock_id('-MainLoop') +callfms_mpp_clock_begin(mainclock)!beginmainloop + +donc=1,num_cpld_calls + +time_atmos=time_atmos+time_step_atmos + +callupdate_atmos_model_dynamics(atm) + +callupdate_atmos_radiation_physics(atm) + +callupdate_atmos_model_state(atm) + +!---intermediaterestart +if(intrm_rst)then +if(nc/=num_cpld_calls)then +if(intrm_rst_1step.and.nc==1)then +timestamp=fms_time_manager_date_to_string(time_atmos) +callatmos_model_restart(atm,timestamp) +callcoupler_restart(timestamp) +endif +if(time_atmos==time_restart.or.time_atmos==time_restart_aux)then +if(time_atmos==time_restart)then +timestamp=fms_time_manager_date_to_string(time_restart) +else +timestamp=fms_time_manager_date_to_string(time_restart_aux) +endif +callatmos_model_restart(atm,timestamp) +callcoupler_restart(timestamp) +if(time_atmos==time_restart)& +time_restart=time_restart+time_step_restart +if((restart_secs_aux>0.or.restart_days_aux>0).and.& +time_atmos==time_restart_aux.and.& +time_restart_aux<time_restart_end_aux)then +time_restart_aux=time_restart_aux+time_step_restart_aux +endif +endif +endif +endif + +callfms_memutils_print_memuse_stats('afterfullstep') + +enddo + +!----------------------------------------------------------------------- + +callfms_mpp_set_current_pelist() +callfms_mpp_clock_end(mainclock) + +termclock=fms_mpp_clock_id('-Termination') +callfms_mpp_clock_begin(termclock) + +callcoupler_end + +callfms_mpp_set_current_pelist() +callfms_mpp_clock_end(termclock) + +callfms_end + +!----------------------------------------------------------------------- + +contains + +!####################################################################### + +subroutinecoupler_init + +!----------------------------------------------------------------------- +integer::total_days,total_seconds,unit,ierr,io +integer::n +integer::date(6),flags +type(fmstime_type)::run_length +character(len=9)::month + +character(len=:),dimension(:),allocatable::restart_file +integer::time_stamp_unit +integer::ascii_unit + +!----------------------------------------------------------------------- +!-----initializationtimingidentifiers---- + +!-----readnamelist------- +!-----forbackwardscompatibiltyreadfromfilecoupler.nml----- +read(fms_mpp_input_nml_file,nml=coupler_nml,iostat=io) +ierr=fms_check_nml_error(io,'coupler_nml') + +!-----writenamelisttologfile----- +callfms_write_version_number(version,tag) +if(fms_mpp_pe()==fms_mpp_root_pe())write(fms_mpp_stdlog(),nml=coupler_nml) + +!-----allocateandsetthepelist(totheglobalpelist)----- +allocate(atm%pelist(fms_mpp_npes())) +callfms_mpp_get_current_pelist(atm%pelist) + +!-----readrestartfile----- +if(fms2_io_file_exists('INPUT/coupler.res'))then +callfms2_io_ascii_read('INPUT/coupler.res',restart_file) +read(restart_file(1),*)calendar_type +read(restart_file(2),*)date_init +read(restart_file(3),*)date +deallocate(restart_file) +else +force_date_from_namelist=.true. +endif + +!-----usenamelistvalue(eithernorestartoroverrideflagon)--- +if(force_date_from_namelist)then +if(sum(current_date)<=0)then +callfms_error_mesg('programcoupler',& +'nonamelistvalueforcurrent_date',fatal) +else +date=current_date +endif + +!-----overridecalendartypewithnamelistvalue----- +selectcase(fms_mpp_uppercase(trim(calendar))) +case('GREGORIAN') +calendar_type=gregorian +case('JULIAN') +calendar_type=julian +case('NOLEAP') +calendar_type=noleap +case('THIRTY_DAY') +calendar_type=thirty_day_months +case('NO_CALENDAR') +calendar_type=no_calendar +casedefault +callfms_mpp_error(fatal,'COUPLER_MAIN:coupler_nmlentrycalendarmust'//& +'beoneofGREGORIAN|JULIAN|NOLEAP|THIRTY_DAY|NO_CALENDAR.') +endselect + +endif + +callfms_time_manager_set_calendar_type(calendar_type) + +!-----writecurrent/initialdateactuallyusedtologfilefile----- +if(fms_mpp_pe()==fms_mpp_root_pe())then +write(fms_mpp_stdlog(),16)date(1),trim(fms_time_manager_month_name(date(2))),date(3:6) +endif +16format('currentdateused=',i4,1x,a,2i3,2(':',i2.2),'gmt') + +!------settingaffinity------ +!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads) +!$callomp_set_num_threads(atmos_nthreads) + +!----------------------------------------------------------------------- +!------initializediagnosticsmanager------ +callfms_diag_init(time_init=date) + +!-----alwaysoverrideinitial/basedatewithdiag_managervalue----- +callfms_diag_get_base_date(date_init(1),date_init(2),date_init(3),& +date_init(4),date_init(5),date_init(6)) + +!-----usecurrentdateifnobasedate------ +if(date_init(1)==0)date_init=date + +!-----setinitialandcurrenttimetypes------ +time_init=fms_time_manager_set_date(date_init(1),date_init(2),date_init(3),& +date_init(4),date_init(5),date_init(6)) + +time_atmos=fms_time_manager_set_date(date(1),date(2),date(3),& +date(4),date(5),date(6)) + +!----------------------------------------------------------------------- +!-----computetheendingtime(computedaysineachmonthfirst)----- +! +!(NOTE:ifrunlengthinmonthsthenstartingdaymustbe<=28) +if(months>0.and.date(3)>28)& +callfms_error_mesg('programcoupler',& +'ifrunlengthinmonthsthenstartingdaymustbe<=28',fatal) + +time_end=time_atmos +total_days=0 +don=1,months +total_days=total_days+fms_time_manager_days_in_month(time_end) +time_end=time_atmos+fms_time_manager_set_time(0,total_days) +enddo + +total_days=total_days+days +total_seconds=hours*3600+minutes*60+seconds +run_length=fms_time_manager_set_time(total_seconds,total_days) +time_end=time_atmos+run_length + +!NeedtopassTime_endintodiag_managerformultiplethreadcase. +callfms_diag_set_time_end(time_end) + + +!----------------------------------------------------------------------- +!-----writetimestamps(forstarttimeandendtime)------ +if(fms_mpp_pe().EQ.fms_mpp_root_pe())& +open(newunit=time_stamp_unit,file='time_stamp.out',status='replace',form='formatted') + +month=fms_time_manager_month_name(date(2)) +if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) + +callfms_time_manager_get_date(time_end,date(1),date(2),date(3),& +date(4),date(5),date(6)) +month=fms_time_manager_month_name(date(2)) +if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())close(time_stamp_unit) + +20format(6i4,2x,a3) + +!----------------------------------------------------------------------- +!-----computethetimesteps------ +time_step_atmos=fms_time_manager_set_time(dt_atmos,0) +time_step_ocean=fms_time_manager_set_time(dt_ocean,0) +num_cpld_calls=run_length/time_step_ocean +num_atmos_calls=time_step_ocean/time_step_atmos + +time_step_restart=fms_time_manager_set_time(restart_secs,restart_days) +if(restart_start_secs>0.or.restart_start_days>0)then +time_start_restart=fms_time_manager_set_time(restart_start_secs,restart_start_days) +time_restart=time_atmos+time_start_restart +else +time_restart=time_atmos+time_step_restart +endif +time_step_restart_aux=fms_time_manager_set_time(restart_secs_aux,restart_days_aux) +time_duration_restart_aux=fms_time_manager_set_time(restart_duration_secs_aux,restart_duration_days_aux) +time_start_restart_aux=fms_time_manager_set_time(restart_start_secs_aux,restart_start_days_aux) +time_restart_aux=time_atmos+time_start_restart_aux +time_restart_end_aux=time_restart_aux+time_duration_restart_aux + +intrm_rst=.false. +intrm_rst_1step=.false. +if(restart_days>0.or.restart_secs>0)intrm_rst=.true. +if(intrm_rst.and.restart_start_secs==0.and.& +restart_start_days==0)intrm_rst_1step=.true. + +!----------------------------------------------------------------------- +!-------------------someerrorchecks--------------------------------- + +!-----initialtimecannotbegreaterthancurrenttime------- + +if(time_init>time_atmos)callfms_error_mesg('programcoupler',& +'initialtimeisgreaterthancurrenttime',fatal) + +!-----makesurerunlengthisamultipleofoceantimestep------ + +if(num_cpld_calls*time_step_ocean/=run_length)& +callfms_error_mesg('programcoupler',& +'runlengthmustbemultipleofoceantimestep',fatal) + +!----makesurecpldtimestepisamultipleofatmostimestep---- + +if(num_atmos_calls*time_step_atmos/=time_step_ocean)& +callfms_error_mesg('programcoupler',& +'atmostimestepisnotamultipleoftheoceantimestep',fatal) + +!------initializecomponentmodels------ +callatmos_model_init(atm,time_init,time_atmos,time_step_atmos,& +iau_offset) + +callfms_memutils_print_memuse_stats('afteratmosmodelinit') + +!------initializedata_override----- +callfms_data_override_init(atm_domain_in=atm%domain,mode=r4_kind) +callfms_data_override_init(atm_domain_in=atm%domain,mode=r8_kind) + +!----------------------------------------------------------------------- +!----openandclosedummyfileinrestartdirtocheckifdirexists-- +if(fms_mpp_pe()==0)then +open(newunit=ascii_unit,file='RESTART/file',status='replace',form='formatted') +close(ascii_unit,status="delete") +endif +!----------------------------------------------------------------------- + +endsubroutinecoupler_init + +!####################################################################### +subroutinecoupler_restart(time_stamp) +character(len=32),intent(in),optional::time_stamp + +integer::restart_unit,date(6) +character(len=128)::file_res + +!-----computecurrentdate------ + +callfms_time_manager_get_date(time_atmos,date(1),date(2),date(3),& +date(4),date(5),date(6)) + +!-----writerestartfile------ + +!writerestartfile_name +file_res='RESTART/coupler.res' +if(present(time_stamp))then +file_res='RESTART/'//trim(time_stamp)//'.coupler.res' +endif + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +open(newunit=restart_unit,file=file_res,status='replace',form='formatted') +write(restart_unit,'(i6,8x,a)')calendar_type,& +'(Calendar:no_calendar=0,thirty_day_months=1,julian=2,gregorian=3,noleap=4)' + +write(restart_unit,'(6i6,8x,a)')date_init,& +'Modelstarttime:year,month,day,hour,minute,second' +write(restart_unit,'(6i6,8x,a)')date,& +'Currentmodeltime:year,month,day,hour,minute,second' +close(restart_unit) +endif + +endsubroutinecoupler_restart + +!####################################################################### +subroutinecoupler_end + +integer::unit,date(6) +!----------------------------------------------------------------------- + +callatmos_model_end(atm) + + +callfms_time_manager_get_date(time_atmos,date(1),date(2),date(3),& +date(4),date(5),date(6)) + +!-----checktimeversusexpectedendingtime---- + +if(time_atmos/=time_end)callfms_error_mesg('programcoupler',& +'finaltimedoesnotmatchexpectedendingtime',warning) + +!-----writerestartfile------ +callcoupler_restart() + +!-----finaloutputofdiagnosticfields----0 +callfms_diag_end(time_atmos) + +!-----toberemovedoncefms_ioisfullydeprecated----- +#ifdefuse_deprecated_io +callfms_io_exit() +#endif + +!----------------------------------------------------------------------- + +endsubroutinecoupler_end + +!####################################################################### + +endprogramcoupler_main + + + + + diff --git a/docs/xml/atm__land__ice__flux__exchange_8_f90.xml b/docs/xml/atm__land__ice__flux__exchange_8_f90.xml new file mode 100644 index 00000000..ba883ce2 --- /dev/null +++ b/docs/xml/atm__land__ice__flux__exchange_8_f90.xml @@ -0,0 +1,4119 @@ + + + + atm_land_ice_flux_exchange.F90 + atm_land_ice_flux_exchange_mod::put_logical_to_real + atm_land_ice_flux_exchange_mod::tracer_ind_type + atm_land_ice_flux_exchange_mod::tracer_exch_ind_type + atm_land_ice_flux_exchange_mod + FMS + + + FMS_DATA_OVERRIDE_ + fms_data_override_ug + + + + + + + + + + FMS_XGRID_PUT_TO_XGRID_ + fms_xgrid_put_to_xgrid_ug + + + + + + + + + + FMS_XGRID_STOCK_MOVE_ + fms_xgrid_stock_move_ug + + + + + + + + + + FMS_XGRID_SET_FRAC_AREA_ + fms_xgrid_set_frac_area_ug + + + + + + + + + + FMS_XGRID_GET_FROM_XGRID_ + fms_xgrid_get_from_xgrid_ug + + + + + + + + + + FMS_DIAG_REGISTER_FIELD_ + register_tiled_diag_field + + + + + + + + + + +Performs flux calculations and exchange grid operations for atmosphere, land and ice. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** + +#undefFMS_DATA_OVERRIDE_ +#undefFMS_XGRID_PUT_TO_XGRID_ +#undefFMS_XGRID_STOCK_MOVE_ +#undefFMS_XGRID_SET_FRAC_AREA_ +#undefFMS_XGRID_GET_FROM_XGRID_ +#undefFMS_DIAG_REGISTER_FIELD_ + +#ifndef_USE_LEGACY_LAND_ +#defineFMS_DATA_OVERRIDE_fms_data_override_ug +#defineFMS_XGRID_PUT_TO_XGRID_fms_xgrid_put_to_xgrid_ug +#defineFMS_XGRID_STOCK_MOVE_fms_xgrid_stock_move_ug +#defineFMS_XGRID_SET_FRAC_AREA_fms_xgrid_set_frac_area_ug +#defineFMS_XGRID_GET_FROM_XGRID_fms_xgrid_get_from_xgrid_ug +#defineFMS_DIAG_REGISTER_FIELD_register_tiled_diag_field +#else +#defineFMS_DATA_OVERRIDE_fms_data_override +#defineFMS_XGRID_PUT_TO_XGRID_fms_xgrid_put_to_xgrid +#defineFMS_XGRID_STOCK_MOVE_fms_xgrid_stock_move +#defineFMS_XGRID_SET_FRAC_AREA_fms_xgrid_set_frac_area +#defineFMS_XGRID_GET_FROM_XGRID_fms_xgrid_get_from_xgrid +#defineFMS_DIAG_REGISTER_FIELD_fms_diag_register_diag_field +#endif + +moduleatm_land_ice_flux_exchange_mod + +!atmos_drivers +useatmos_model_mod,only:& +atm_stock_pe,&!subroutinetocomputethetotalstockintheatmosphericmodel +atmos_data_type,&!derivedtypecontainingfieldsneededforfluxexchangebetweencomponents +land_ice_atmos_boundary_type!derivedtypecontainingquantitiesgoingfromlandandicetoatmos + +!FMSCoupler/full +useatmos_ocean_dep_fluxes_calc_mod,only:& +atmos_ocean_dep_fluxes_calc!subroutinetocomputeoceanandatmospheredepositiongasfluxes + +!FMSCoupler/full +useatmos_ocean_fluxes_calc_mod,only:& +atmos_ocean_fluxes_calc!subroutinetocomputesgasfluxesforatmosphereandocean + +!FMS/coupler +useatmos_ocean_fluxes_mod,only:& +atmos_ocean_fluxes_init!subroutineinitializesgasfluxesincouplerderivedtypes + +!am5_phys +useatmos_tracer_driver_mod,only:& +atmos_tracer_flux_init!subroutinetoinitializeatmos_tracer_driver_mod + +!MOM6/SIS2 +useice_model_mod,only:& +atmos_ice_boundary_type,&!derivedtypeforfluxexchangebetweenatmosphereandseaice +ice_data_type,&!derivedtypeholdingicemodeldata +ice_stock_pe,&!subroutinetocomputestocksofheat,water,etcforconservationchecks +land_ice_boundary_type,&!derivedtypeforfluxexchangebetweenlandandseaice +ocean_ice_boundary_type,&!derivedtypeforfluxexchangebetweenoceanandseaice +update_ice_atm_deposition_flux!updatesfluxesoftype"air_sea_deposition" + +!Land_lad2 +useland_model_mod,only:& +atmos_land_boundary_type,&!derivedtypetopassinformationfromatmospheretoland +land_data_type,&!derivedtypetopassinformationfromlandtoatmosphere +lnd_stock_pe!subroutinetocomputestocksofconservativelandquantities + +!Ifnot_USE_LEGACY_LAND_,useland_lad2/land_tile_diag_modinsteadofFMS/diag_manager +#ifndef_USE_LEGACY_LAND_ +useland_model_mod,only:& +dump_tile_diag_fields,&!subroutineforworkaroundwithIntelcompilersandOpenMP +register_tiled_diag_field,&!subroutinetoregisterdiagfieldwithinthelandmodel +send_tile_data,&!subroutinetosavedatainbufferwithinthelandmodelfortheregisteredfield +set_default_diag_filter!subroutinetosetdefaulttilediagnosticselector +#endif + +!MOM6 +useocean_model_mod,only:& +ice_ocean_boundary_type,&!derivedtypecontainingtheforcings +ocean_model_init_sfc,&!subroutinetoextractssurfacepropertiesfromtheocean'sinternalstate +ocean_model_data_get,&!interfaceproceduretoextractscalarfieldsfromoceansurfaceorocean_publictype +ocean_model_flux_init,&!subroutinetoinitializesthepropertiesfromair-seafluxes +ocean_public_type,&!derivedtypeusedinFMScouplertocommunicatewithothermodelcomponents +ocean_state_type,&!derivedtypecontainingthestateoftheocean +ocean_stock_pe!subroutinetocomputesintegratedstocksofheat,water,etc.forconservationchecks + +!FMSCoupler/shared +usesurface_flux_mod,only:& +surface_flux,&!subroutinetocomputefluxesonexchangegrids +surface_flux_init!subroutinetoinitializesurface_flux_mod + +!am5_phys +#ifndefuse_AM3_physics +useatmos_cmip_diag_mod,only:& +register_cmip_diag_field_2d!functiontoregisterCMIPdiagnosticdata +useatmos_global_diag_mod,only:& +get_global_diag_field_id,&!functiontoretrieveinternally-trackedidoftheglobaldiagfield +register_global_diag_field,&!functionthatcallsFMS/register_diag_fieldforgloballyaverageddata +send_global_diag!functionthatcallsFMS/diag_manager/send_dataforglobalfields +useatmos_tracer_driver_mod,only& +atmos_tracer_has_surf_setl_flux,& +!functionreturnsTrueoftracersedimentationflux>0atbottomoftheatmosphere +get_atmos_tracer_surf_setl_flux,& +!subroutinetoretrievetracersedimentationfluxatbottomoftheatmosphere +atmos_tracer_driver_gather_data_down +#ifndef_USE_LEGACY_LAND_ +useland_model_mod,only:& +send_global_land_diag!functiontosavelandmodelfieldonunstructuredgridforglobalintegral +#endif +#endif + +!optiontooverridevarioussurfaceboundaryconditionsforSCM +#ifdefSCM +usescm_forc_mod,only:& +albedo_obs,& +do_specified_albedo,& +do_specified_land,& +do_specified_rough_leng,& +do_specified_tskin,& +do_specified_flux,& +rough_mom,& +rough_heat,& +scm_surface_flux,& +tskin +#endif + +usefms!mainlyforcallstodiag_manager,data_override,andexchange +usefmsconstants,only:& +cp_air,&!RDGAS/KAPPA,specificheatcapacityofdryairatconstantpressure[J/kg/deg] +cp_ocean,&!3989.24495292815,specificheatcapacity[J/kg/deg] +epsln,&!1.0e-40,asmallnumbertopreventdividebyzeroexceptions +grav,&!9.80,accelerationduetogravity[m/s^2] +hlf,&!3.34e5,latentheatoffusion[J/kg] +hlv,&!2.500e6,latentheatofevaporation[J/kg] +pi,&!3.14159265358979323846 +radius,&!6371.0e+3,radiusoftheEarth[m] +rdgas,&!287.04,gasconstantfordryair[J/kg/deg] +rvgas,&!461.50,gasconstantforwatervapor +stefan,&!5.6734e-8,Stefan-Boltzmannconstant[W/m^2/deg^4] +wtmc,&!12.00000,molecularweightofcarbon[amu] +wtmco2,&!44.00995,molecularweightofcarbondioxide[amu] +wtmair,&!2.896440e+01,molecularweightofair[amu] +wtmh2o!WTMAIR*(RDGAS/RVGAS)molecularweightofwater[amu] + +implicitnone +include'netcdf.inc' +private + +public::& +atm_land_ice_flux_exchange_init,& +sfc_boundary_layer,& +generate_sfc_xgrid,& +flux_down_from_atmos,& +flux_up_to_atmos,& +flux_atmos_to_ocean,& +flux_ex_arrays_dealloc,& +atm_stock_integrate,& +send_ice_mask_sic + +interfaceput_logical_to_real +moduleprocedureput_logical_to_real_sg +moduleprocedureput_logical_to_real_ug +endinterface + +character(len=128)::version='$Id$' +character(len=128)::tag='$Name$' + +type(FmsXgridXmap_type),save::xmap_sfc + +integer::n_xgrid_sfc=0 + +character(len=4),parameter::mod_name='flux' + +!returnedidsfromregisteringdiagnosticfieldwithdiag_manager +integer::& +id_b_star,&!bouyancyscale +id_del_h,&!refheightinterpfactorforheat +id_del_m,&!refheightforinterpfactorformomentum +id_del_q,&!refheightinterpfactorformoisture +id_drag_heat,&!dragcoefficientforheat +id_drag_moist,&!dragcoefficientformoisture +id_drag_mom,&!dragcoefficientformomentum +id_gust,&!gustscale +id_hussLut_land,&!near-surfacespecifichumidityonlandusetile +id_ice_mask,&!fractionalamountofland +id_land_mask,&!fractionalamountofseaice +id_p_atm,&!pressureatlowestatmosphericlevel +id_q_flux,&!evaporationrate +id_q_flux_land,&!evaporationrateoverland +id_q_ref,&!specifichumidityatz_ref_heat +id_q_ref_land,&!specifichumidityatz_ref_heatoverland +id_q_star,&!moisturescale +id_r_flux,&!net(down-up)longwaveflux +id_rh_ref,&!relativehumidityatz_ref_heat +id_rh_ref_cmip,&!relativehumidityatz_ref_heat +id_rh_ref_land,&!relativehumidityatz_ref_heatoverland +id_rough_heat,&!surfaceroughnessforheat +id_rough_moist,&!surfaceroughnessformoisture +id_rough_mom,&!surfaceroughnessformomentum +id_rough_scale,&!topographicscalingfractorformomentumdrag +id_slp,&!sealevelpressure +id_t_atm,&!temperatureatlowestatmosphericlevel +id_t_ca,&!canopyairtemperature +id_t_flux,&!sensibleheatflux +id_t_ocean,&!surfacetemperaturefromoceanoutput +id_t_ref,&!temperatureatz_ref_heat +id_t_ref_land,&!temperatureatz_ref_heatoverland +id_t_surf,&!surfacetemperature +id_tasLut_land,&!near-surfaceairtemperaturez_ref_heatabovedisplacementheightonland-usetile +id_thv_atm,&!surfaceairvirtualpotentialtemperature +id_thv_surf,&!surfacevirtualpotentialtemperature +id_u_atm,&!uwindcomponentatlowestatmosphericlevel +id_u_flux,&!zonalwindstress +id_u_ref,&!zonalwindcomponentatz_ref_mom +id_u_ref_land,&!zonalwindcomponentatz_ref_momoverland +id_u_star,&!frictionvelocity +id_v_atm,&!vwindcomponentatlowestatmosphericlevel +id_v_flux,&!meridionalwindstress +id_v_ref,&!meridionalwindcomponentatz_ref_mom +id_v_ref_land,&!meridionalwindcomponentatz_ref_momoverland +id_wind,&!windspeedforfluxcalculations +id_wind_ref,&!absolutevalueofwindatz_ref_mom +id_z_atm,&!heightoflowestatmosphericlevel +id_co2_atm_dvmr,&!co2dryvolumemixingratioatlowestatmosphericlevel +id_co2_surf_dvmr&!c02dryvolumemixingratioatsurface +!2017/08/15jgjadded +id_co2_bot,&!concentrationofco2tobepassedtoland/photosynthesis +id_co2_flux_pcair_atm,&!concentrationofco2tobepassedtooceanNEEDHELP +id_o2_flux_pcair_atm!concentrationofo2tobepassedtotooceanNEEDHELP + +!arraysforholdingidsreturnedfromregisteringdiag_fieldswithdiag_managerfortracers +integer,allocatable::& +id_tr_atm(:),&!valueoftraceratlowestatmosphericlevelNEEDHELP +id_tr_surf(:),&!valueoftraceratsurfaceNEEDHELP +id_tr_flux(:),&!tracerfluxes +id_tr_mol_flux(:),&!fluxofco2concentrationin[mol/m2*s] +id_tr_ref(:),&!valueoftraceratz_ref_heat +id_tr_ref_land(:),&!tracerfluxatz_ref_heatoverlandNEEDHELP +!f1p +id_tr_mol_flux0(:),&!grossfluxoftracerconcentrationoverlandin[mol/m2*s] +id_tr_flux_land(:),&!fluxoftracerconcentrationoverlandin[kg/m2*s] +id_tr_mol_flux_land(:),&!fluxoftracerconcentrationoverlandin[mol/m2*s] +!usedwith_USE_LEGACY_LAND_ +id_tr_con_atm(:),&!depositionvelocityatlowestatmosphericlevel(atm) +id_tr_con_atm_land(:),&!depositionvelocityatlowestatmosphericleveloverland +id_tr_con_ref(:),&!depositionvelocityatreferenceheight(atm) +id_tr_con_ref_land(:)!depositionvelocityatreferenceheightoverland + +!id'sforcmipspecificfields +integer::& +id_evspsbl,&!waterevaporationflux +id_height10m,&!nearsurfaceheight +id_height2m,&!nearsurfaceheight +id_hfls,&!surfaceupwardlatentheatflux +id_hfss,&!surfaceupwardsensibleheatflux +id_hurs,&!near-surfacerelativehumidty +id_huss,&!near-surfacespecifichumidity +id_psl,&!airpressureatsealevel +id_rhs,&!near-surfacerelativehumidty +id_sfcWind,&!near-surfacewindspeed +id_sftlf,&!fractionofthegridcelloccupiedbyland +id_sic,&!seaiceareafraction +id_tas,&!near-surfaceairtemperature +id_tauu,&!surfacedownwardeastwardwindstress +id_tauv,&!surfacedownwardnorthwardwindstress +id_tos,&!seasurfacetemperature +id_ts,&!surfacetemperature +id_tslsi,&!surfacetemperatureonlandorseaice +id_uas,&!eastwardnear-surfacewind +id_vas!northwardnear-surfacewind + +!globallyaverageddiagnostics +integer::& +id_evspsbl_g,&!globalintegralofwaterevaporationflux +id_hfls_g,&!globalintegralofsurfaceupwardlatentheatflux +id_hfss_g,&!globalintegralofsurfaceupwardsensibleheatflux +id_rls_g,&!globalintegralofnear-surfacerelativehumidty +id_tas_g,&!globalintegralofnear-surfaceairtemperature +id_tasl_g,&!globalintegralofnear-surfaceairtemperatureonlandonly +id_ts_g!globalintegralofsurfacetemperature + +logical::first_static=.true. + +logical::do_init=.true.!trueifatm_land_ice_flux_exchnge_inithasbeencalled +integer::remap_method=1!firstorsecondorderconservativeremappingontoexchangegrid + +real,parameter::d622=rdgas/rvgas +real,parameter::d378=1.0-d622 +real,parameter::d608=d378/d622 +real,parameter::tfreeze=273.15 +real,allocatable,dimension(:,:)::frac_precip + +!---thefollowingisfromflux_exchange_nml +real::z_ref_heat=2. +!Referenceheight[m]fortemperatureandrelativehumiditydiagnosticst_ref,rh_ref,del_h,anddel_q +real::z_ref_mom=10. +!Referenceheight([M]formomentumdiagnosticsu_ref,v_ref,anddel_m + +logical::do_area_weighted_flux=.false.!NOTUSEDDELETE +logical::do_forecast=.false.!NEEDHELP +integer::nblocks=1!OpenMPnumberofthreads +logical::partition_fprec_from_lprec=.false. +!Iftrue,convertliquidpreciptosnowwhent_ref<tfreeze +!Usedforatmoverrideexperimentswhereliquidandfrozenpreciparecombined +logical::scale_precip_2d=.false.!Iftrue,scalemassofliqudpreciptation + +integer::my_nblocks=1!InitializingOpenMPparameter +integer,allocatable::& +block_start(:),&!startingdoloopindicesforOpenMPthread +block_end(:)!endingdoloopindicesforOpenMPthread + +real,allocatable,dimension(:)::& +!NOTE:Tcanopyisonlydifferetfromt_surfovervegetatedland +ex_albedo_fix,&! +ex_albedo_nir_dif_fix,&! +ex_albedo_nir_dir_fix,&! +ex_albedo_vis_dif_fix,&! +ex_albedo_vis_dir_fix,&! +ex_b_star,&!boyuancyscaleonexchangegrid +ex_cd_m,&!dragcoefficientformomentumonexchangegrid +ex_cd_t,& +ex_con_atm,& +ex_dedt_surf,&!d(water.vap.flux)/d(Tcanopy) +ex_dhdt_atm,&!d(sens.heat.flux)/d(Tatm) +ex_dhdt_surf,&!d(sens.heat.flux)/d(Tcanopy) +ex_dqsatdt_surf,&!d(water.vap.flux)/d(qcanopy) +ex_drdt_surf,&!d(LWflux)/d(Tsurf) +ex_dtaudu_atm,&!d(stress)/d(u) +ex_dtaudv_atm,&!d(stress)/d(v) +ex_e_q_n,&!dt/mass*dedet_surf*gamma +ex_flux_lw,&!longwaveradiationflux +ex_flux_t,&!sensheatflux +ex_flux_u,&!ustressonatmosphere +ex_flux_v,&!vstressonatmosphere +ex_old_albedo,&!oldvalueofalbedofordownwardfluxcalculations +ex_p_surf,&!surfacepressureonexchangegrid +ex_seawater,&!maskarrayofseaicefractions +ex_slp,&!surfacepressureonexchangegrid +ex_t_ca,&!near-surface(canopy)airtemperatureonexchangegrid[K] +ex_t_surf,&!surfacetemperatureforradiationcalconexchangegrid[K] +ex_t_surf_miz,& +ex_u_star,&!frictionvelocityonexchangegrid +ex_wind,&!windspeedonexchangegrid +ex_z_atm!heightoflowestatmosphericlevelonexchangegrid + +#ifdefSCM +real,allocatable,dimension(:)::& +ex_dhdt_surf_forland,& +ex_dedt_surf_forland,& +ex_dedq_surf_forland +#endif + +real,allocatable,dimension(:,:)::& +ex_dfdtr_atm,&!<d(tracerflux)/d(atmtracer) +ex_dfdtr_surf,&!<d(tracerflux)/d(surftracer) +ex_e_tr_n,&!<coefficientinimplicitscheme +ex_f_tr_delt_n,&!<coefficientinimplicitscheme +ex_flux_tr,&!<tracerfluxes +ex_tr_con_ref,&!<depositionvelocityatreferenceheight +ex_tr_con_atm,&!<depositionvelocityatatmosphericheight +ex_tr_surf + +logical,allocatable,dimension(:)::& +ex_avail,&!<truewheredataonexchangegridareavailable +ex_land +real,allocatable,dimension(:)::& +ex_e_t_n,& +ex_f_t_delt_n + +integer::n_atm_tr +integer::n_atm_tr_tot +integer::n_lnd_tr +integer::n_lnd_tr_tot +integer::n_exch_tr +integer::n_gex_atm2lnd +integer::n_gex_lnd2atm + +type::tracer_ind_type +integer::atm +integer::ice +integer::lnd +endtypetracer_ind_type +type(tracer_ind_type),allocatable::tr_table(:) + +type::tracer_exch_ind_type +integer::exch=0 +integer::ice=0 +integer::lnd=0 +endtypetracer_exch_ind_type + +type(tracer_exch_ind_type),allocatable::tr_table_map(:) + +integer::isphum=no_tracer +integer::ico2=no_tracer +integer::inh3=no_tracer + +type(fmscoupler1dbc_type),pointer::ex_gas_fields_atm=>null() + +type(fmscoupler1dbc_type),pointer::ex_gas_fields_ice=>null() + +type(fmscoupler1dbc_type),pointer::ex_gas_fluxes=>null() + + +!real,dimension(3)::ccc!<forconservationchecks + +!balaji,setsboundary_type%xtype +integer,parameter::& +regrid=1,&!<gridsarephysicallydifferent,passviaexchangegrid +redist=2,& +redirect=3 + +integer::& +cplClock,& +sfcClock,&!<FMSclockidtoprofilesfc_boundary_layer +fluxAtmDnClock,&!<FMSclockidtoprofilefluxdownfromatmosphere +regenClock,&!<FMSclocktoprofileexchangegridgeneration +fluxAtmUpClock + +integer::& +X1_GRID_ATM,&!<=1,exchangegridindexforxgrid_stock_move +X1_GRID_ICE,&!<=2,exchangegridindexforxgrid_stock_move +X1_GRID_LND + +real::& +Dt_atm,&<atmospherictimestep[s] +Dt_cpl + +integer::& +ni_atm,&!<numberofxgridpointstocomputediagnosticsinsubroutineflux_ocean_to_ice +nj_atm + +integer::& +nxc_ice=0,&!<numberofxpointsinicecomputedomain +nyc_ice=0,& +nk_ice=0 + +integer::& +nxc_lnd=0,&!<numberofxpointsinlandcomputedomain +nyc_lnd=0 + +contains + +!####################################################################### + +subroutineatm_land_ice_flux_exchange_init(Time,Atm,Land,Ice,atmos_ice_boundary,land_ice_atmos_boundary,& +Dt_atm_in,Dt_cpl_in,z_ref_heat_in,z_ref_mom_in,do_area_weighted_flux_in,do_forecast_in,& +partition_fprec_from_lprec_in,scale_precip_2d_in,nblocks_in,cplClock_in,ex_gas_fields_atm_in,& +ex_gas_fields_ice_in,ex_gas_fluxes_in) + +implicitnone +type(FmsTime_type),intent(in)::Time + +type(atmos_data_type),intent(inout)::Atm + +type(land_data_type),intent(in)::Land + +type(ice_data_type),intent(inout)::Ice + +type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary + +type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary + +real,intent(in)::Dt_atm_in + +real,intent(in)::Dt_cpl_in + +real,intent(in)::z_ref_heat_in + +real,intent(in)::z_ref_mom_in + +logical,intent(in)::scale_precip_2d_in + +logical,intent(in)::do_area_weighted_flux_in + +logical,intent(in)::do_forecast_in + +logical,intent(in)::partition_fprec_from_lprec_in + +integer,intent(in)::nblocks_in + +integer,intent(in)::cplClock_in + +type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_atm_in + +type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_ice_in + +type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fluxes_in + + +character(len=48),parameter::module_name='atm_land_ice_flux_exchange_mod' +character(len=256),parameter::& +note_header='==>Notefrom'//trim(module_name)//'('//trim(sub_name)//'):' + +integer::& +i,&!<temporaryindexdoloop +n +integer::& +outunit,&!<!returnedvaluefromfms_mpp_stdout() +logunit +integer::& +is,&!<startingx-indexoncomputedomain +ie,&!<endingx-indexoncomputedomain +js,&!<startingy-indexoncomputedomain +je,&!<endingy-indexoncomputedomain +kd +character(32)::tr_name +logical::found + +!{ +dt_atm=dt_atm_in +dt_cpl=dt_cpl_in +z_ref_heat=z_ref_heat_in +z_ref_mom=z_ref_mom_in +do_area_weighted_flux=do_area_weighted_flux_in +do_forecast=do_forecast_in +partition_fprec_from_lprec=partition_fprec_from_lprec_in +scale_precip_2d=scale_precip_2d_in +nblocks=nblocks_in +cplclock=cplclock_in +ex_gas_fields_atm=>ex_gas_fields_atm_in +ex_gas_fields_ice=>ex_gas_fields_ice_in +ex_gas_fluxes=>ex_gas_fluxes_in +!} + +!{ +outunit=fms_mpp_stdout() +logunit=fms_mpp_stdlog() +!} + +allocate(block_start(nblocks),block_end(nblocks)) + +!{ +callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,num_prog=n_atm_tr) +callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,num_prog=n_lnd_tr) +!} + +!{ +allocate(tr_table(n_atm_tr),tr_table_map(n_atm_tr)) +n=1 +doi=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) +tr_table(n)%atm=i +tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) +tr_table_map(i)%ice=tr_table(n)%ice +tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) +tr_table_map(i)%lnd=tr_table(n)%lnd +if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)then +tr_table_map(i)%exch=n +n=n+1 +endif +enddo +n_exch_tr=n-1 +!} + +!{ +n_gex_atm2lnd=fms_gex_get_n_ex(model_atmos,model_land) +if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_atm2lnd +n_gex_lnd2atm=fms_gex_get_n_ex(model_land,model_atmos) +if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_lnd2atm +!} + + +!{ +don=1,ex_gas_fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then +found=.false. +doi=1,n_exch_tr +if(ex_gas_fluxes%bc(n)%atm_tr_index.eq.tr_table(i)%atm)then +found=.true. +exit +endif +enddo +if(.not.found)then +n_exch_tr=n_exch_tr+1 +tr_table(n_exch_tr)%atm=ex_gas_fluxes%bc(n)%atm_tr_index +tr_table(n_exch_tr)%ice=no_tracer!becauseocean-atmgasfluxesarenotheldintheicemodelastracers +tr_table(n_exch_tr)%lnd=no_tracer!becausethiswouldhavebeenfoundabove +tr_table_map(n_exch_tr)%exch=n_exch_tr +tr_table_map(n_exch_tr)%ice=tr_table(n_exch_tr)%ice +tr_table_map(n_exch_tr)%lnd=tr_table(n_exch_tr)%lnd +endif +endif +enddo +write(outunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr +write(logunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr +doi=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) +write(outunit,*)'Tracerfieldname:'//trim(tr_name) +write(logunit,*)'Tracerfieldname:'//trim(tr_name) +enddo +!} + +!{ +!+fix-me-slm+specifichumiditymaynotbepresentifwearerunningwith +!dryatmosphere.Besides,modelmayusemixingratio('mix_rat')(?).However, +!someatmoscodealsoassumes'sphum'ispresent,sofornowthefollowing +!codemaybegoodenough. +doi=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) +if(fms_mpp_lowercase(tr_name)=='sphum')then +isphum=i +endif +!jgj:findoutwhichexchangetracerisco2 +if(fms_mpp_lowercase(tr_name)=='co2')then +ico2=i +write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',ico2 +endif +if(fms_mpp_lowercase(tr_name)=='nh3')then +inh3=i +write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',inh3 +endif +enddo + +if(isphum==no_tracer)then +callfms_error_mesg(module_name,'tracer"sphum"mustbepresentintheatmosphere',fatal) +endif + +if(ico2==no_tracer)then +callfms_error_mesg(module_name,'tracer"co2"notpresentintheatmosphere',note) +endif +!} + +callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) +if(scale_precip_2d)then +allocate(frac_precip(is:ie,js:je)) +frac_precip=0.0 +endif + +!{ +callfms_xgrid_init(remap_method) +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& +"INPUT/grid_spec.nc",atm%grid,lnd_ug_domain=land%ug_domain) +#else +callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& +"INPUT/grid_spec.nc",atm%grid) +#endif + +x1_grid_atm=1 +x1_grid_ice=2 +x1_grid_lnd=3; +callgenerate_sfc_xgrid(land,ice) +if(n_xgrid_sfc.eq.1)write(*,'(a,i6,6x,a)')'PE=',fms_mpp_pe(),'Surfaceexchangesizeequalsone.' +!} + +callsurface_flux_init() + +!-----initializequantitiesforglobalintegralpackage----- + +!!calldiag_integral_field_init('prec','f6.3') +callfms_diag_integral_field_init('evap','f6.3') +#ifndefuse_AM3_physics +callfms_diag_integral_field_init('t_surf','f10.3')!miz +callfms_diag_integral_field_init('t_ref','f10.3')!miz +#endif + +!allfieldswillbeoutputontheatmosphericgrid +calldiag_field_init(time,atm%axes(1:2),land%axes,land%pe) + +!{ +ni_atm=size(atm%lon_bnd,1)-1!todimension"diag_atm" +nj_atm=size(atm%lon_bnd,2)-1!influx_ocean_to_ice +!} + +!{ +callfms_mpp_domains_get_compute_domain(ice%domain,is,ie,js,je) +kd=size(ice%part_size,3) +allocate(atmos_ice_boundary%u_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%v_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%u_star(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%t_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%q_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%lw_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%lprec(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%fprec(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%dedt(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%drdt(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%coszen(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%p(is:ie,js:je,kd),source=0.0) +!} + +!{ +!Copyinginitializedgasfluxesfromexchangegridtoatmosphere_iceboundary +callfms_coupler_type_copy(ex_gas_fluxes,atmos_ice_boundary%fluxes,is,ie,js,je,kd,& +mod_name,ice%axes,time,suffix='_atm_ice') + +!Ice%ocean_fieldsandIce%ocean_fluxes_topwillnotbepassedtoocean,sothesetwo +!coupler_type_copycallsaremovedfromice_ocean_flux_inittohere. +if(.not.fms_coupler_type_initialized(ice%ocean_fields))& +callfms_coupler_type_spawn(ex_gas_fields_ice,ice%ocean_fields,& +[is,is,ie,ie],[js,js,je,je],[1,kd],suffix='_ice') +callfms_coupler_type_set_diags(ice%ocean_fields,'ice_flux',ice%axes,time) +!} + +!{ +callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) +allocate(land_ice_atmos_boundary%t(is:ie,js:je),source=273.0) +allocate(land_ice_atmos_boundary%t_ocean(is:ie,js:je),source=200.0)!Joseph:surfoceantemp +allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je),source=0.0)!bqx +allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je),source=0.0)!bqx +allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je),source=273.0)!cjg:PBLdepthmods +allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je),source=0.0)!cjg:PBLdepthmods +allocate(land_ice_atmos_boundary%albedo(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr),source=0.0) +allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%u_star(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%b_star(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%q_star(is:ie,js:je),source=0.0) +#ifndefuse_AM3_physics +allocate(land_ice_atmos_boundary%shflx(is:ie,js:je),source=0.0)!miz +allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je),source=0.0)!miz +#endif +allocate(land_ice_atmos_boundary%wind(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je),source=0.01) +allocate(land_ice_atmos_boundary%rough_heat(is:ie,js:je),source=0.01)!Kun +allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm),source=0.0) +!} + +!{ +!Thefirstcallisnolongernecessary,thefluxeswillbepassedbythelandmodule +!The2ndcallisusefulinthecaseofaoceanmodelonlysimulation +! +callfms_coupler_type_copy(ex_gas_fields_atm,atm%fields,is,ie,js,je,& +mod_name,atm%axes(1:2),time,suffix='_atm') +!} + +if(ice%pe)then +callfms_mpp_domains_get_compute_domain(ice%domain,xsize=nxc_ice,ysize=nyc_ice) +nk_ice=size(ice%part_size,3) +endif + +if(land%pe)then +callfms_mpp_domains_get_compute_domain(land%domain,xsize=nxc_lnd,ysize=nyc_lnd) +endif + + +!{ +!Balaji:clocksonatm%peonly +sfcclock=fms_mpp_clock_id('SFCboundarylayer',flags=fms_clock_flag_default,grain=clock_subcomponent) +fluxatmdnclock=fms_mpp_clock_id('FluxDNfromatm',flags=fms_clock_flag_default,grain=clock_routine) +regenclock=fms_mpp_clock_id('XGridgeneration',flags=fms_clock_flag_default,grain=clock_routine) +fluxatmupclock=fms_mpp_clock_id('FluxUPtoatm',flags=fms_clock_flag_default,grain=clock_routine) +!} + +do_init=.false. + +endsubroutineatm_land_ice_flux_exchange_init + +!####################################################################### +subroutinesfc_boundary_layer(dt,Time,Atm,Land,Ice,Land_Ice_Atmos_Boundary) + +implicitnone +real,intent(in)::dt + +type(FmsTime_type),intent(in)::Time + +type(atmos_data_type),intent(inout)::Atm + +type(land_data_type),intent(inout)::Land + +type(ice_data_type),intent(inout)::Ice + +type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary + + +!----localvars---------------------------------------------------------- +real,dimension(n_xgrid_sfc)::& +ex_albedo,&!albedo +ex_albedo_vis_dir,&!albedoforlightwithwavelengthinvisibleregionofthesolarspectrum +ex_albedo_nir_dir,&!albedoforlightwithwavelengthinnear-irregionofthesolarspectrum +ex_albedo_vis_dif,&!differenceinalbedoforlightwithwavelengthinvisibleregionofthesolarspectrum +ex_albedo_nir_dif,&!differenceinalbedoforlightwithwavelengthinnear-irregionofthesolarspectrum +ex_land_frac,&!fractionalareaoflandingridcell +ex_t_atm,&!airtemperatureatthelowestatmosphericlevel +ex_p_atm,&!pressureatthelowestatmosphericlevel +ex_u_atm,&!uwindcomponentatthelowestatmosphericlevel +ex_v_atm,&!vwindcomponentatthelowestatmosphericlevel +ex_gust,&!gustscale +ex_t_surf4,&!(surfacetemperature)**4 +ex_u_surf,&!uwindcomponentatEarth'ssurface +ex_v_surf,&!vwindcomponentatEarth'ssurface +ex_rough_mom,&!momentumroughnesslength +ex_rough_heat,&!heatroughnesslength +ex_rough_moist,&!moistureroughnesslength +ex_rough_scale,&!scalefactorfortopographicroughnesscalculation +ex_q_star,&!turbulentmoisturescale +ex_thv_atm,&!surfaceareatheta_v +ex_thv_surf,&!surfacetheta_v +ex_cd_q,&!moistureexchangecoefficient +ex_ref,&!specifichumidityatz_ref_heat +ex_ref_u,&!zonalwindcomponentatz_ref_mom +ex_ref_v,&!meridionalwindcomponentatz_ref_mom +ex_u10,&!<zonalwindspeedat10mabovethesurface +ex_ref2,&! +ex_t_ref,& +ex_qs_ref,& +ex_qs_ref_cmip,&! +ex_del_m,&!referenceheightforinterpolationfactorformomentum +ex_del_h,&!referenceheightinterpolationfactorforheat +ex_del_q,&!referenceheightinterpationfactorformoisture +ex_frac_open_sea!open-watermask,notused? + +real::rho +real,dimension(n_xgrid_sfc,n_exch_tr)::& +ex_tr_atm,&!<concentrationoftraceratlowestatmosphericlevel +ex_tr_ref + +real,dimension(n_xgrid_sfc)::ex_co2_atm_dvmr!jgj:addedforco2_atmdiagnostic + +real,dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2))::diag_atm + + +#ifndef_USE_LEGACY_LAND_ +real,dimension(size(Land%t_ca,1),size(Land%t_ca,2))::diag_land +real,dimension(size(Land%t_ca,1))::diag_land_ug,tile_size_ug +real,dimension(nxc_lnd,nyc_lnd)::diag_land_sg,tile_size_sg +logical,dimension(size(Land%t_ca,1))::mask_ug +logical,dimension(nxc_lnd,nyc_lnd)::mask_sg +integer::k +#else +real,dimension(size(Land%t_ca,1),size(Land%t_ca,2),size(Land%t_ca,3))::diag_land +#endif +real,dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3))::sea +real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::tmp_open_sea + +real::& +zrefm,&!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory +zrefh!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory + +logical::used +character(32)::tr_name,tr_units!tracername + +integer::tr,n,m!tracerindices +integer::is,ie,isc,iec,jsc,jec +integer::i,l,j,n_gex + +real,dimension(n_xgrid_sfc,n_gex_lnd2atm)::ex_gex_lnd2atm + + +![1]checkthatthemodulewasinitialized +if(do_init)callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'mustcallatm_land_ice_flux_exchange_initfirst',fatal) + +!{ +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(sfcclock) +!} + +!{ +allocate(& +ex_t_surf(n_xgrid_sfc),& +ex_t_surf_miz(n_xgrid_sfc),& +ex_p_surf(n_xgrid_sfc),& +ex_slp(n_xgrid_sfc),& +ex_t_ca(n_xgrid_sfc),& +ex_dhdt_surf(n_xgrid_sfc),& +ex_dedt_surf(n_xgrid_sfc),& +ex_dqsatdt_surf(n_xgrid_sfc),& +ex_drdt_surf(n_xgrid_sfc),& +ex_dhdt_atm(n_xgrid_sfc),& +ex_flux_t(n_xgrid_sfc),& +ex_flux_lw(n_xgrid_sfc),& +ex_drag_q(n_xgrid_sfc),& +ex_avail(n_xgrid_sfc),& +ex_f_t_delt_n(n_xgrid_sfc),& +ex_tr_surf(n_xgrid_sfc,n_exch_tr),& +ex_dfdtr_surf(n_xgrid_sfc,n_exch_tr),& +ex_dfdtr_atm(n_xgrid_sfc,n_exch_tr),& +ex_flux_tr(n_xgrid_sfc,n_exch_tr),& +ex_f_tr_delt_n(n_xgrid_sfc,n_exch_tr),& +ex_e_tr_n(n_xgrid_sfc,n_exch_tr),& +ex_con_atm(n_xgrid_sfc),& +ex_tr_con_ref(n_xgrid_sfc,n_exch_tr),& +ex_tr_con_atm(n_xgrid_sfc,n_exch_tr),& +!MODtheseweremovedfromlocal!sotheycanbepassedtofluxdown +ex_flux_u(n_xgrid_sfc),& +ex_flux_v(n_xgrid_sfc),& +ex_dtaudu_atm(n_xgrid_sfc),& +ex_dtaudv_atm(n_xgrid_sfc),& +ex_seawater(n_xgrid_sfc),& +!valuesaddedforLM3 +ex_cd_t(n_xgrid_sfc),& +ex_cd_m(n_xgrid_sfc),& +ex_b_star(n_xgrid_sfc),& +ex_u_star(n_xgrid_sfc),& +ex_wind(n_xgrid_sfc),& +ex_z_atm(n_xgrid_sfc),& +ex_e_t_n(n_xgrid_sfc),& +ex_e_q_n(n_xgrid_sfc),& +ex_land(n_xgrid_sfc)) +#ifdefSCM +allocate(& +ex_dhdt_surf_forland(n_xgrid_sfc),& +ex_dedt_surf_forland(n_xgrid_sfc),& +ex_dedq_surf_forland(n_xgrid_sfc)) +#endif +!}ENDALLOCATIONARRAYSFOREXCHANGEFIELDS + +!{ +ex_p_surf=1.0 +!Actualallocationofexchangefieldsforocean_iceboundary +don=1,ex_gas_fields_ice%num_bcs +dom=1,ex_gas_fields_ice%bc(n)%num_fields +if(associated(ex_gas_fields_ice%bc(n)%field(m)%values))then +callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_icealreadyallocated.') +endif +allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) +enddo +enddo +!} + +!{ +don=1,ex_gas_fields_atm%num_bcs +dom=1,ex_gas_fields_atm%bc(n)%num_fields +if(associated(ex_gas_fields_atm%bc(n)%field(m)%values))then +callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_atmalreadyallocated.') +endif +allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) +enddo +enddo +!} + +!{ +don=1,ex_gas_fluxes%num_bcs +dom=1,ex_gas_fluxes%bc(n)%num_fields +if(associated(ex_gas_fluxes%bc(n)%field(m)%values))then +callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fluxesalreadyallocated.') +endif +allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) +enddo +enddo +!} + +!Calltheatmospheretracerdrivertogatherthedataneededforextragastracers +!Foroceanonlymodel +!callatmos_get_fields_for_flux(Atm) + + +!{ +!thisisactuallyasafeguardagainstusingundefinedvalues +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf,& +!$OMPex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir,ex_albedo_vis_dif,ex_albedo_nir_dif,ex_cd_t,& +!$OMPex_cd_m,ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm)private(is,ie,n_gex) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_t_surf(i)=200. +ex_u_surf(i)=0. +ex_v_surf(i)=0. +ex_albedo(i)=0.!bw +ex_albedo_vis_dir(i)=0. +ex_albedo_nir_dir(i)=0. +ex_albedo_vis_dif(i)=0. +ex_albedo_nir_dif(i)=0. +!----donotuseifrelaxtime/=0---- +ex_cd_t(i)=0.0 +ex_cd_m(i)=0.0 +ex_cd_q(i)=0.0 +ex_frac_open_sea(i)=0. +enddo +don_gex=1,n_gex_lnd2atm +doi=is,ie +ex_gex_lnd2atm(i,n_gex)=0.0 +enddo +enddo +enddo +!} + +!{ +!Balaji:data_overridestuffmovedfromcoupler_main +callfms_data_override('ATM','t_bot',atm%t_bot,time) +callfms_data_override('ATM','z_bot',atm%z_bot,time) +callfms_data_override('ATM','p_bot',atm%p_bot,time) +callfms_data_override('ATM','u_bot',atm%u_bot,time) +callfms_data_override('ATM','v_bot',atm%v_bot,time) +callfms_data_override('ATM','p_surf',atm%p_surf,time) +callfms_data_override('ATM','slp',atm%slp,time) +callfms_data_override('ATM','gust',atm%gust,time) +!} + +!{ +!jgj:2008/07/18 +!FVatmadvectstracersinmoistmassmixingratio:kgco2/(kgair+kgwater) +!cubedsphereadvectsmoistmassmixingratioalso(perSJ) +!datatableco2overridesforocean(co2_flux_pcair_atm) +!andland(co2_bot)shouldbeindryvmr(mol/mol)units. +!ATM:co2_flux_pcair_atm:tooverrideatm_btmlayertosendtoocean +!ATM:co2_bot:tooverrideatm_btmlayertosendtoland + +!dataoverrideforco2tobepassedtoland/photosynthesis(co2_bot) +!landco2dataoverrideisindry_vmrunits,soconverttowet_mmrforlandmodel. +!co2mmr=(wco2/wair)*co2vmr;wet_mmr=dry_mmr*(1-Q) +! +dotr=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) +callfms_data_override('ATM',trim(tr_name)//'_bot',atm%tr_bot(:,:,tr),time,override=used) +!conversionforlandco2dataoverridefromdryvmrtomoistmmr +if(used.and.fms_mpp_lowercase(trim(tr_name)).eq.'co2')then +!2017/08/08jgjaddco2_botdiagnosticindry_vmrunits +if(id_co2_bot>0)used=fms_diag_send_data(id_co2_bot,atm%tr_bot(:,:,tr),time) +isc=lbound(atm%tr_bot,1);iec=ubound(atm%tr_bot,1) +jsc=lbound(atm%tr_bot,2);jec=ubound(atm%tr_bot,2) +!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Atm,tr,isphum) +doj=jsc,jec +doi=isc,iec +atm%tr_bot(i,j,tr)=atm%tr_bot(i,j,tr)*(wtmco2/wtmair)*& +(1.0-atm%tr_bot(i,j,isphum)) +enddo +enddo +endif +enddo +!} + +!{ +!atmos_co2.F90alreadycalled:convertstr_botpassedtooceanviagas_fluxfrommoistmmrtodryvmr. +don=1,atm%fields%num_bcs +dom=1,atm%fields%bc(n)%num_fields +callfms_data_override('ATM',atm%fields%bc(n)%field(m)%name,& +atm%fields%bc(n)%field(m)%values,time,override=atm%fields%bc(n)%field(m)%override) +ex_gas_fields_atm%bc(n)%field(m)%override=atm%fields%bc(n)%field(m)%override +!2017/08/08jgjaddco2_flux_pcair_atmdiagnostic +if(atm%fields%bc(n)%field(m)%override.and.& +fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'co2_flux_pcair_atm')then +if(id_co2_flux_pcair_atm>0)& +used=fms_diag_send_data(id_co2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) +endif +!2017/08/15jgjaddo2_flux_pcair_atmdiagnostic +if(atm%fields%bc(n)%field(m)%override.and.& +fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'o2_flux_pcair_atm')then +if(id_o2_flux_pcair_atm>0)& +used=fms_diag_send_data(id_o2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) +endif +enddo +enddo +don=1,atm%fields%num_bcs +if(atm%fields%bc(n)%use_atm_pressure)then +if(.not.atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override)then +atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values=atm%p_surf +endif +endif +enddo +!} + +!{ +callfms_data_override('ICE','t_surf',ice%t_surf,time) +callfms_data_override('ICE','rough_mom',ice%rough_mom,time) +callfms_data_override('ICE','rough_heat',ice%rough_heat,time) +callfms_data_override('ICE','rough_moist',ice%rough_moist,time) +callfms_data_override('ICE','albedo',ice%albedo,time) +callfms_data_override('ICE','albedo_vis_dir',ice%albedo_vis_dir,time) +callfms_data_override('ICE','albedo_nir_dir',ice%albedo_nir_dir,time) +callfms_data_override('ICE','albedo_vis_dif',ice%albedo_vis_dif,time) +callfms_data_override('ICE','albedo_nir_dif',ice%albedo_nir_dif,time) +callfms_data_override('ICE','u_surf',ice%u_surf,time) +callfms_data_override('ICE','v_surf',ice%v_surf,time) +callfms_coupler_type_data_override('ICE',ice%ocean_fields,time) +callfms_coupler_type_send_data(ice%ocean_fields,time) +callfms_data_override_('LND','t_surf',land%t_surf,time) +callfms_data_override_('LND','t_ca',land%t_ca,time) +callfms_data_override_('LND','rough_mom',land%rough_mom,time) +callfms_data_override_('LND','rough_heat',land%rough_heat,time) +callfms_data_override_('LND','albedo',land%albedo,time) + +!tracerdataoverride +dotr=1,n_lnd_tr +callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) +#ifndef_USE_LEGACY_LAND_ +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) +#else +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) +#endif +enddo +callfms_data_override_('LND','albedo_vis_dir',land%albedo_vis_dir,time) +callfms_data_override_('LND','albedo_nir_dir',land%albedo_nir_dir,time) +callfms_data_override_('LND','albedo_vis_dif',land%albedo_vis_dif,time) +callfms_data_override_('LND','albedo_nir_dif',land%albedo_nir_dif,time) +!} + +!{ +#ifdefuse_AM3_physics +if(do_forecast)then +callfms_xgrid_put_to_xgrid(atm%Surf_diff%sst_miz,'ATM',ex_t_surf_miz,& +xmap_sfc,remap_method=remap_method,complete=.false.) +endif +#endif +!putatmospherebottomlayertracerdataontoexchangegrid +dotr=1,n_exch_tr +callfms_xgrid_put_to_xgrid(atm%tr_bot(:,:,tr_table(tr)%atm),'ATM',ex_tr_atm(:,tr),xmap_sfc,& +remap_method=remap_method,complete=.false.) +enddo +don=1,atm%fields%num_bcs +if(ex_gas_fields_atm%bc(n)%flux_type.ne.'air_sea_deposition')then +dom=1,atm%fields%bc(n)%num_fields +callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& +ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method,complete=.false.) +enddo +endif +enddo + +callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_t_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%z_bot,'ATM',ex_z_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%p_bot,'ATM',ex_p_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%u_bot,'ATM',ex_u_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%v_bot,'ATM',ex_v_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%p_surf,'ATM',ex_p_surf,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%slp,'ATM',ex_slp,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%gust,'ATM',ex_gust,xmap_sfc,remap_method=remap_method,complete=.true.) +!} + +!slm,Mar202002:changedorderinwhiththedatatransferredfromiceandland +!grids,tofillt_cafirstwitht_surfoveroceanandthenwitht_cafrom +!land,whereitisdifferentfromt_surf.Itismostlytosimplify +!diagnostic,sincesurface_fluxcalculationsdistinguishbetweenlandand +!not-landanyway. + +!{ +!prefillsurfacevalueswithatmosphericvaluesbeforeputtingtracers +!fromiceorland,sothatgradientis0iftracersarenotfilled +ex_tr_surf=ex_tr_atm +!} + +!{ +!(assumethatoceanquantitesarestoredinnoicepartition) +!(note:ex_availistrueaticeandoceanpoints) +callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%rough_mom,'OCN',ex_rough_mom,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%rough_heat,'OCN',ex_rough_heat,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%rough_moist,'OCN',ex_rough_moist,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo,'OCN',ex_albedo,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_vis_dir,'OCN',ex_albedo_vis_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_nir_dir,'OCN',ex_albedo_nir_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_vis_dif,'OCN',ex_albedo_vis_dif,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_nir_dif,'OCN',ex_albedo_nir_dif,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%u_surf,'OCN',ex_u_surf,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%v_surf,'OCN',ex_v_surf,xmap_sfc) + +tmp_open_sea=0. +tmp_open_sea(:,:,1)=1. +callfms_xgrid_put_to_xgrid(tmp_open_sea,'OCN',ex_frac_open_sea,xmap_sfc) + +don=1,ice%ocean_fields%num_bcs +dom=1,ice%ocean_fields%bc(n)%num_fields +callfms_xgrid_put_to_xgrid(ice%ocean_fields%bc(n)%field(m)%values,'OCN',& +ex_gas_fields_ice%bc(n)%field(m)%values,xmap_sfc) +enddo +enddo +!} + +!{ +!Generateawetmaskarrayonthexgridwhichis: +!1:wherethereisanyopenwaterintheOCNgridcell +!0:wherethereisnoopenwaterintheOCNgridcell,i.e.,totallyicecoveredorland +!Thisisadynamicwetmaskandparticularlyisnotthesameasastaticlandmaskbecauseseaicefractionschange +!asthemodelruns. +!Onewaytocreatesuchamaskisif'OCN'putsanarrayonthexgridwhichis +!1oneveryOCNgridcellwiththe3rdindexequalto1(icecategory1correspondstoopenwaterinthegridcell) +!0otherwise +!Thiswetmaskwillbeusedtolimittheair-seafluxexchangetoareasthatarenottotallycoveredbyseaice. +sea=0.0;sea(:,:,1)=1.0; +ex_seawater=0.0 +callfms_xgrid_put_to_xgrid(sea,'OCN',ex_seawater,xmap_sfc) +!} + +!Question:Whyistheaboveex_seawateradynamicmaskarray? +!Fromitsconstructionitlookslikeastaticarrayof1sand0s! +!Answer:Thexmap_sfcisdynamicandchangesasthemodelstepsbecauseitcontainsupdatedinformationabout +!seaicefractions.Theupdatedarray"ex_seawater"aftertheabove"put"callwillbe1wherethere +!isopenwaterevenifthosegridcellswherepreviouslyclosedbyseaice. +!Particularlyifwerestrictxgridcalculationswhereex_seawater==1 +!onlycellswith(partiallyortotally)openwatercontributeandtotallycoveredcellswon'tcontribute. + +!Notrelatedtotheabovecomments,itseemsthattheaboveex_frac_open_seacouldbereplacedbyex_seawater +!forcodecleaning. +!Thefollowingtestdoesnotprintoutanythingforafullycoupledmodel.Thisassertsthat +!1.Thetwoarraysex_frac_open_seaandex_seawaterarethesame +!Theirdifferenceisthatex_frac_open_seaisalocalarray, +!butex_seawaterisamodulearrayusedoutsidethissubroutine +!2.Thexgridarray"ex_seawater"iseither0or1andnothingelse,justlikethe"OCN"gridarray"sea" +!Test: +!dol=1,my_nblocks +!is=block_start(l) +!ie=block_end(l) +!doi=is,ie +!if(ex_frac_open_sea(i)/=ex_seawater(i))& +!print*,'ex_frac_open_sea!=ex_seawater',ex_frac_open_sea(i),ex_seawater(i) +!if(ex_seawater(i)/=0.0.or.ex_seawater(i)/=1.0)& +!print*,'ex_seawater!1or0',ex_seawater(i) +!enddo +!enddo + +ex_t_ca=ex_t_surf!slm,Mar202002todefinevaluesovertheocean + +!{ +callfms_xgrid_some(xmap_sfc,ex_land,'LND') + +#ifdefuse_AM3_physics +if(do_forecast)then +callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_miz,xmap_sfc) +ex_t_ca(:)=ex_t_surf_miz(:) +endif +#endif + +callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%rough_mom,'LND',ex_rough_mom,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_heat,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_moist,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo,'LND',ex_albedo,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_vis_dir,'LND',ex_albedo_vis_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_nir_dir,'LND',ex_albedo_nir_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_vis_dif,'LND',ex_albedo_vis_dif,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_nir_dif,'LND',ex_albedo_nir_dif,xmap_sfc) +ex_rough_scale=ex_rough_mom +callfms_xgrid_put_to_xgrid_(land%rough_scale,'LND',ex_rough_scale,xmap_sfc) + +don_gex=1,n_gex_lnd2atm +callfms_xgrid_put_to_xgrid_(land%gex_lnd2atm(:,:,n_gex),'LND',ex_gex_lnd2atm(:,n_gex),xmap_sfc) +enddo + +dotr=1,n_exch_tr +n=tr_table(tr)%lnd +if(n/=no_tracer)then +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) +#else +callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) +#endif +else +!donothing,sinceex_tr_surfisprefilledwithex_tr_atm,andtherefore +!fluxeswillbe0 +endif +enddo + +ex_land_frac=0.0 +callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) +!}ENDMAPLANDEXCHANGEFIELDSONTOTHEEXCHANGEGRID + +#ifdefSCM +if(do_specified_land)then +if(do_specified_albedo)then +ex_albedo=albedo_obs +ex_albedo_vis_dir=albedo_obs +ex_albedo_nir_dir=albedo_obs +ex_albedo_vis_dif=albedo_obs +ex_albedo_nir_dif=albedo_obs +endif +if(do_specified_tskin)then +ex_t_surf=tskin +ex_t_ca=tskin +ex_tr_surf(:,isphum)=15.e-3 +endif +if(do_specified_rough_leng)then +ex_rough_mom=rough_mom +ex_rough_heat=rough_heat +ex_rough_moist=rough_heat +endif +endif +#endif + +#ifdefuse_AM3_physics +if(do_forecast)then +ex_t_surf=ex_t_surf_miz +endif +#endif + +!{ +callfms_xgrid_some(xmap_sfc,ex_avail) +!$OMPparalleldodefault(none)shared(my_nblocks,ex_t_atm,ex_tr_atm,ex_u_atm,ex_v_atm,& +!$OMPex_p_atm,ex_z_atm,ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf,ex_u_surf,ex_v_surf,ex_rough_mom,& +!$OMPex_rough_heat,ex_rough_moist,ex_rough_scale,ex_gust,ex_flux_t,ex_flux_tr,ex_flux_lw,& +!$OMPex_flux_u,ex_flux_v,ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& +!$OMPex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf,ex_drdt_surf,& +!$OMPex_dhdt_atm,ex_dfdtr_atm,ex_dtaudu_atm,ex_dtaudv_atm,dt,ex_land,& +!$OMPex_seawater,ex_avail,block_start,block_end,isphum)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +callsurface_flux(& +ex_t_atm(is:ie),ex_tr_atm(is:ie,isphum),ex_u_atm(is:ie),ex_v_atm(is:ie),ex_p_atm(is:ie),ex_z_atm(is:ie),& +ex_p_surf(is:ie),ex_t_surf(is:ie),ex_t_ca(is:ie),ex_tr_surf(is:ie,isphum),ex_u_surf(is:ie),ex_v_surf(is:ie),& +ex_rough_mom(is:ie),ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_rough_scale(is:ie),ex_gust(is:ie),& +ex_flux_t(is:ie),ex_flux_tr(is:ie,isphum),ex_flux_lw(is:ie),ex_flux_u(is:ie),ex_flux_v(is:ie),& +ex_cd_m(is:ie),ex_cd_t(is:ie),ex_cd_q(is:ie),ex_wind(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),& +ex_q_star(is:ie),ex_thv_atm(is:ie),ex_thv_surf(is:ie),ex_dhdt_surf(is:ie),ex_dedt_surf(is:ie),& +ex_dfdtr_surf(is:ie,isphum),ex_drdt_surf(is:ie),ex_dhdt_atm(is:ie),ex_dfdtr_atm(is:ie,isphum),& +ex_dtaudu_atm(is:ie),ex_dtaudv_atm(is:ie),dt,ex_land(is:ie),(ex_seawater(is:ie).gt.0.0),ex_avail(is:ie)) +enddo + +#ifdefSCM +!OptiontooverridesurfacefluxesforSCM +if(do_specified_flux)then + +callscm_surface_flux(& +ex_t_atm,ex_tr_atm(:,isphum),ex_u_atm,ex_v_atm,ex_p_atm,ex_z_atm,& +ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf(:,isphum),ex_u_surf,ex_v_surf,& +ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_rough_scale,& +ex_gust,ex_flux_t,ex_flux_tr(:,isphum),ex_flux_lw,ex_flux_u,ex_flux_v,& +ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& +ex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf(:,isphum),ex_drdt_surf,& +ex_dhdt_atm,ex_dfdtr_atm(:,isphum),ex_dtaudu_atm,ex_dtaudv_atm,dt,(ex_land,ex_seawater.gt.0.0),& +ex_avail,ex_dhdt_surf_forland,ex_dedt_surf_forland,ex_dedq_surf_forland) +endif +#endif +!}ENDCALLSURFACE_FLUX + + +!callmpp_clock_end(fluxClock) + +!{ +zrefm=10.0 +zrefh=z_ref_heat +!----optimizecalculation---- +!$OMPparalleldodefault(shared)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& +ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& +ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) +doi=is,ie +ex_u10(i)=0. +if(ex_avail(i))then +ex_ref_u(i)=ex_u_surf(i)+(ex_u_atm(i)-ex_u_surf(i))*ex_del_m(i) +ex_ref_v(i)=ex_v_surf(i)+(ex_v_atm(i)-ex_v_surf(i))*ex_del_m(i) +ex_u10(i)=sqrt(ex_ref_u(i)**2+ex_ref_v(i)**2) +endif +enddo +don=1,ex_gas_fields_atm%num_bcs +if(atm%fields%bc(n)%use_10m_wind_speed)then +if(.not.ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override)then +doi=is,ie +ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)=ex_u10(i) +enddo +endif +endif +enddo +!}ENDCOMPUTEZONALANDMERIDIONALWINDS + +!{ +!f1p:calculateatmosphericconductancetosendtothelandmodel +doi=is,ie +ex_con_atm(i)=ex_wind(i)*ex_cd_q(i) +enddo +!} + +!{ +!F=C0*u*rho*delta_q,C0*u*rhoisthesameforalltracers,copyfromsphum +dotr=1,n_exch_tr +if(tr==isphum)cycle +doi=is,ie +!slm:ex_dfdtr_surf(:,isphum)ismanipulatedinsurface_flux:itissetto +!zeroovertheocean,soitisnotappropriatetouseforothertracers. +!However,sinceflux=rho*Cd*|v|*(q_surf-q_atm),wecansimplyusenegative +!dfdtr_atmforthedfdtr_surfderivative.Thiswillbreakifevertheflux +!formulationischangedtobenotsymmetricalw.r.t.q_surfandq_atm,but +!thenthiswholesectionwillhavetobechanged. +ex_dfdtr_atm(i,tr)=ex_dfdtr_atm(i,isphum) +ex_dfdtr_surf(i,tr)=-ex_dfdtr_atm(i,isphum) +ex_flux_tr(i,tr)=ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) +enddo +enddo +enddo +!} + +!Combineexplicitoceanfluxandimplicitlandfluxofextrafluxfields. + +!{ +callatmos_ocean_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater,ex_t_surf) + +don=1,ex_gas_fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then +m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch +if(id_tr_mol_flux0(m).gt.0)then +callfms_xgrid_get_from_xgrid(& +diag_atm,'ATM',ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:),xmap_sfc) +used=fms_diag_send_data(id_tr_mol_flux0(m),diag_atm,time) +endif +endif +enddo + + +!Thefollowingstatementisaconciseversionofwhat'sfollowingandworth +!lookingintointhefuture. +!ex_flux_tr(:,itracer)=ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) +!where(ex_seawater.gt.0)ex_flux_tr(:,itracer)=F_ocn +!$OMPparalleldodefault(shared)private(is,ie,m,tr_units,tr_name) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +don=1,ex_gas_fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then +m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch +callfms_tracer_manager_get_tracer_names(& +model_atmos,ex_gas_fluxes%bc(n)%atm_tr_index,tr_name,units=tr_units) +doi=is,ie +if(ex_land(i))cycle!overland,don'tdoanything +!onoceanoricecells,fluxisexplicitthereforewezeroderivatives. +ex_dfdtr_atm(i,m)=0.0 +ex_dfdtr_surf(i,m)=0.0 +if(ex_seawater(i)>0.0)then +if(fms_mpp_lowercase(trim(tr_units)).eq."vmr")then +!inmol/m2/sbutfromlandmodelitshouldbeinvmr*kg/m2/s +!Thiswasconvertingtodryvmr(asopposedtoambientvmr) +!ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& +!*WTMAIR*1.0e-3& +!/(1.-ex_tr_atm(i,isphum)) +! +!vmr*kg/m2/s=mol(X)/[m2s][1/mol(air)*mol(air)]*WTM(air) +! +ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& +*1.0e-3*wtmair*wtmh2o/((1.-ex_tr_atm(i,isphum))*wtmh2o+ex_tr_atm(i,isphum)*wtmair) +!endif +else +!jgj:converttokgco2/m2/secforatm +ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)*& +ex_gas_fluxes%bc(n)%mol_wt*1.0e-03 +endif +else +ex_flux_tr(i,m)=0.0!pureiceexchangecell +endif +enddo +endif +enddo +enddo +!}ENDCOMPUTEEXPLICITOCEANFLUXES + +!{ +![5.2]overridetracerfluxesandderivatives +dotr=1,n_exch_tr +if(tr_table(tr)%atm==no_tracer)cycle!itshouldneverhappen,though + +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +![5.2.1]overridetracerflux.Notethat"sea"and"diag_land"arerepeatedlyused +!astemporarystorageforthevaluesweareoverridingfluxesandderivativewith, +!overoceanandlandrespectively +callfms_data_override_('LND','ex_flux_'//trim(tr_name),diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) +callfms_data_override('ICE','ex_flux_'//trim(tr_name),sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_tr(:,tr),xmap_sfc) +![5.2.2]overridederivativeoffluxwrtsurfaceconcentration +callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_surf',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_surf(:,tr),xmap_sfc) +callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_surf',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_surf(:,tr),xmap_sfc) +![5.2.3]overridederivativeoffluxwrtatmosphericconcentration +callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_atm',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_atm(:,tr),xmap_sfc) +callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_atm',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_atm(:,tr),xmap_sfc) +enddo + +![5.3]overridefluxandderivativesforsensibleheatflux +![5.3.1]overrideflux +callfms_data_override_('LND','ex_flux_t',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) +callfms_data_override('ICE','ex_flux_t',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_t,xmap_sfc) +![5.3.2]overridederivativeoffluxwrtnear-surfacetemperature +callfms_data_override_('LND','ex_dhdt_surf',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_surf,xmap_sfc) +callfms_data_override('ICE','ex_dhdt_surf',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_surf,xmap_sfc) +![5.3.3]overridederivativeoffluxwrtatmospherictemperature +callfms_data_override_('LND','ex_dhdt_atm',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_atm,xmap_sfc) +callfms_data_override('ICE','ex_dhdt_atm',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_atm,xmap_sfc) +!}ENDDATAOVERRIDE + +!NB:namesoftheoverridefieldsareconstructedusingtracernameandcertain +!prefixes/suffixes.Forexample,forthetracernamed"sphum"(specifichumidity)theywillbe: +!"ex_flux_sphum","ex_dfdsphum_surf",and"ex_dfdsphum_atm". +! +!Forsensibleheatfluxnamesare"ex_flux_t","ex_dhdt_surf",and"ex_dhdt_atm"; +!despitethenamethoseareactuallyinenergyunits,W/m2,W/(m2degK),and +!W/(m2degK)respectively + +!{ +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_avail,& +!$OMPex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +if(ex_avail(i))ex_drag_q(i)=ex_wind(i)*ex_cd_q(i) +![6]getmeanquantitiesonatmospheregrid +![6.1]computetsurfforradiation +ex_t_surf4(i)=ex_t_surf(i)**4 +enddo +enddo +!} + +![6.2]putrelevantquantitiesontoatmosphericboundary +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%t_ocean,'ATM',ex_t_surf,xmap_sfc,complete=.false.)!joseph +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t,'ATM',ex_t_surf4,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%frac_open_sea,'ATM',ex_frac_open_sea,xmap_sfc) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%albedo_vis_dir,'ATM',ex_albedo_vis_dir,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%albedo_nir_dir,'ATM',ex_albedo_nir_dir,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%albedo_vis_dif,'ATM',ex_albedo_vis_dif,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%albedo_nir_dif,'ATM',ex_albedo_nir_dif,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%rough_mom,'ATM',ex_rough_mom,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%rough_heat,'ATM',ex_rough_heat,xmap_sfc,complete=.false.)!kgao +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%land_frac,'ATM',ex_land_frac,xmap_sfc,complete=.false.) + +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_flux,'ATM',ex_flux_u,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_flux,'ATM',ex_flux_v,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudu,'ATM',ex_dtaudu_atm,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudv,'ATM',ex_dtaudv_atm,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_star,'ATM',ex_u_star,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%b_star,'ATM',ex_b_star,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_star,'ATM',ex_q_star,xmap_sfc,complete=.true.) + +don_gex=1,n_gex_lnd2atm +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%gex_lnd2atm(:,:,n_gex),'ATM',ex_gex_lnd2atm(:,n_gex),xmap_sfc,complete=.false.) +enddo + +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_ref,'ATM',ex_ref_u,xmap_sfc,complete=.false.)!bqx +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_ref,'ATM',ex_ref_v,xmap_sfc,complete=.true.)!bqx + +!kgao:forshield+mom6coupling;usedbyshieldpblschemes(am5withtke-edmfshoulddothesame) +#ifndefuse_AM3_physics +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc,complete=.true.) +#endif +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%wind,'ATM',ex_wind,xmap_sfc) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_atm,'ATM',ex_thv_atm,xmap_sfc) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_surf,'ATM',ex_thv_surf,xmap_sfc) + +#ifdefuse_AM3_physics +if(do_forecast)then +callfms_xgrid_get_from_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) +endif +#endif + +callfms_mpp_domains_get_compute_domain(atm%domain,isc,iec,jsc,jec) +!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary)private(is,ie) +doj=jsc,jec +doi=isc,iec +land_ice_atmos_boundary%t(i,j)=land_ice_atmos_boundary%t(i,j)**0.25 +enddo +enddo +!Balaji:fms_data_overridecallsmovedherefromcoupler_main +callfms_data_override('ATM','t',land_ice_atmos_boundary%t,time) +callfms_data_override('ATM','albedo',land_ice_atmos_boundary%albedo,time) + +callfms_data_override('ATM','albedo_vis_dir',land_ice_atmos_boundary%albedo_vis_dir,time) +callfms_data_override('ATM','albedo_nir_dir',land_ice_atmos_boundary%albedo_nir_dir,time) +callfms_data_override('ATM','albedo_vis_dif',land_ice_atmos_boundary%albedo_vis_dif,time) +callfms_data_override('ATM','albedo_nir_dif',land_ice_atmos_boundary%albedo_nir_dif,time) +callfms_data_override('ATM','land_frac',land_ice_atmos_boundary%land_frac,time) +callfms_data_override('ATM','dt_t',land_ice_atmos_boundary%dt_t,time) +dotr=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) +callfms_data_override('ATM','dt_'//trim(tr_name),land_ice_atmos_boundary%dt_tr(:,:,tr),time) +enddo +callfms_data_override('ATM','u_flux',land_ice_atmos_boundary%u_flux,time) +callfms_data_override('ATM','v_flux',land_ice_atmos_boundary%v_flux,time) +callfms_data_override('ATM','dtaudu',land_ice_atmos_boundary%dtaudu,time) +callfms_data_override('ATM','dtaudv',land_ice_atmos_boundary%dtaudv,time) +callfms_data_override('ATM','u_star',land_ice_atmos_boundary%u_star,time) +callfms_data_override('ATM','b_star',land_ice_atmos_boundary%b_star,time) +!callfms_data_override('ATM','q_star',Land_Ice_Atmos_Boundary%q_star,Time) +callfms_data_override('ATM','rough_mom',land_ice_atmos_boundary%rough_mom,time) + +![6.3]saveatmosalbedofixandoldalbedo(fordownwardSWfluxcalculations) +!onexchangegrid +!allocate(ex_old_albedo(n_xgrid_sfc)) +!ex_old_albedo=ex_albedo + +!!STILLNEEDED???? +!!ISTHISCORRECT?? +allocate(ex_albedo_fix(n_xgrid_sfc)) +allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) +allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) +allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc)) +allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc)) + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& +!$OMPex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix,& +!$OMPex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_albedo_fix(i)=0. +ex_albedo_vis_dir_fix(i)=0. +ex_albedo_nir_dir_fix(i)=0. +ex_albedo_vis_dif_fix(i)=0. +ex_albedo_nir_dif_fix(i)=0. +enddo +enddo + + +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dir,'ATM',& +ex_albedo_vis_dir_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dir,'ATM',& +ex_albedo_nir_dir_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dif,'ATM',& +ex_albedo_vis_dif_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dif,'ATM',& +ex_albedo_nir_dif_fix,xmap_sfc,complete=.true.) +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& +!$OMPex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir,& +!$OMPex_albedo_nir_dir,ex_albedo_nir_dir_fix,& +!$OMPex_albedo_vis_dif_fix,ex_albedo_vis_dif,& +!$OMPex_albedo_nir_dif_fix,ex_albedo_nir_dif)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_albedo_fix(i)=(1.0-ex_albedo(i))/(1.0-ex_albedo_fix(i)) +ex_albedo_vis_dir_fix(i)=(1.0-ex_albedo_vis_dir(i))/(1.0-ex_albedo_vis_dir_fix(i)) +ex_albedo_nir_dir_fix(i)=(1.0-ex_albedo_nir_dir(i))/(1.0-ex_albedo_nir_dir_fix(i)) +ex_albedo_vis_dif_fix(i)=(1.0-ex_albedo_vis_dif(i))/(1.0-ex_albedo_vis_dif_fix(i)) +ex_albedo_nir_dif_fix(i)=(1.0-ex_albedo_nir_dif(i))/(1.0-ex_albedo_nir_dif_fix(i)) +enddo +enddo + +#ifdefSCM +if(do_specified_albedo.and.do_specified_land)then +ex_albedo_fix=1. +ex_albedo_vis_dir_fix=1. +ex_albedo_vis_dif_fix=1. +ex_albedo_nir_dir_fix=1. +ex_albedo_nir_dif_fix=1. +endif +#endif + +!======================================================================= +![7]diagnosticssection + +!-------savestaticfieldsfirsttimeonly------ +if(first_static)then + +!-------landfraction------ +if(id_land_mask>0)then +used=fms_diag_send_data(id_land_mask,land_ice_atmos_boundary%land_frac,time) +endif +if(id_sftlf>0)then +used=fms_diag_send_data(id_sftlf,land_ice_atmos_boundary%land_frac,time) +endif +!near-surfaceheights +if(id_height2m>0)used=fms_diag_send_data(id_height2m,z_ref_heat,time) +if(id_height10m>0)used=fms_diag_send_data(id_height10m,z_ref_mom,time) + +first_static=.false. +endif + +!-------Atmfields----------- +don=1,atm%fields%num_bcs!{ +dom=1,atm%fields%bc(n)%num_fields!{ +if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ +if(atm%fields%bc(n)%use_10m_wind_speed.and.m.eq.fms_coupler_ind_u10.and.& +.not.atm%fields%bc(n)%field(m)%override)then!{ +callfms_xgrid_get_from_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& +ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc) +endif!} +if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ +used=fms_diag_send_data(atm%fields%bc(n)%field(m)%id_diag,atm%fields%bc(n)%field(m)%values,time) +endif!} +endif!} +enddo!}m +enddo!}n + +!-------dragcoeffmoisture----------- +if(id_wind>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_wind,xmap_sfc) +used=fms_diag_send_data(id_wind,diag_atm,time) +endif +!-------dragcoeffmoisture----------- +if(id_drag_moist>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_q,xmap_sfc) +used=fms_diag_send_data(id_drag_moist,diag_atm,time) +endif + +!-------dragcoeffheat----------- +if(id_drag_heat>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_t,xmap_sfc) +used=fms_diag_send_data(id_drag_heat,diag_atm,time) +endif + +!-------dragcoeffmomemtum----------- +if(id_drag_mom>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_m,xmap_sfc) +used=fms_diag_send_data(id_drag_mom,diag_atm,time) +endif + +!-------roughnessmoisture----------- +if(id_rough_moist>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_moist,xmap_sfc) +used=fms_diag_send_data(id_rough_moist,diag_atm,time) +endif + +!-------roughnessheat----------- +if(id_rough_heat>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_heat,xmap_sfc) +used=fms_diag_send_data(id_rough_heat,diag_atm,time) +endif + +!-------roughnessmomemtum----------- +used=fms_diag_send_data(id_rough_mom,land_ice_atmos_boundary%rough_mom,time) + +!-------frictionvelocity----------- +used=fms_diag_send_data(id_u_star,land_ice_atmos_boundary%u_star,time) + +!-------bouyancy----------- +used=fms_diag_send_data(id_b_star,land_ice_atmos_boundary%b_star,time) + +!-------moisturescale----------- +used=fms_diag_send_data(id_q_star,land_ice_atmos_boundary%q_star,time) + +!-------surfandatmvirtualpotentialtemperature----------- +used=fms_diag_send_data(id_thv_atm,land_ice_atmos_boundary%thv_atm,time) +used=fms_diag_send_data(id_thv_surf,land_ice_atmos_boundary%thv_surf,time) + +!----------------------------------------------------------------------- +!------diagnosticsforfieldsatbottomatmosphericlevel------ + +if(id_t_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_atm,xmap_sfc) +used=fms_diag_send_data(id_t_atm,diag_atm,time) +endif + +if(id_u_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_u_atm,xmap_sfc) +used=fms_diag_send_data(id_u_atm,diag_atm,time) +endif + +if(id_v_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_v_atm,xmap_sfc) +used=fms_diag_send_data(id_v_atm,diag_atm,time) +endif + +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +if(id_tr_atm(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_atm(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_atm(tr),diag_atm,time) +endif +!!jgj:adddryvmrco2_atm +!-slmMar252010:movedtoresolveinterdependenceofdiagnosticfields +if(id_co2_atm_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then +ex_co2_atm_dvmr=(ex_tr_atm(:,tr)/(1.0-ex_tr_atm(:,isphum)))*wtmair/wtmco2 +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_atm_dvmr,xmap_sfc) +used=fms_diag_send_data(id_co2_atm_dvmr,diag_atm,time) +endif +enddo + +!-slm,Mar25,2002 +if(id_p_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_p_atm,xmap_sfc) +used=fms_diag_send_data(id_p_atm,diag_atm,time) +endif +if(id_z_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_z_atm,xmap_sfc) +used=fms_diag_send_data(id_z_atm,diag_atm,time) +endif +if(id_gust>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_gust,xmap_sfc) +used=fms_diag_send_data(id_gust,diag_atm,time) +endif + +!-bw,Sep17,2007 +if(id_slp>0.or.id_psl>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_slp,xmap_sfc) +if(id_slp>0)used=fms_diag_send_data(id_slp,diag_atm,time) +if(id_psl>0)used=fms_diag_send_data(id_psl,diag_atm,time) +endif + +if(id_t_ocean>0)then +used=fms_diag_send_data(id_t_ocean,land_ice_atmos_boundary%t_ocean,time) +endif +!----------------------------------------------------------------------- +!---------diagnosticsforfieldsatreferencelevel--------- +!cjg +!if(id_t_ref>0.or.id_rh_ref>0.or.& +!id_u_ref>0.or.id_v_ref>0.or.id_wind_ref>0.or.& +!id_q_ref>0.or.id_q_ref_land>0.or.& +!id_t_ref_land>0.or.id_rh_ref_land>0.or.& +!id_rh_ref_cmip>0.or.& +!id_u_ref_land>0.or.id_v_ref_land>0)then + +zrefm=z_ref_mom +zrefh=z_ref_heat +!----optimizecalculation---- +!cjgif(id_t_ref<=0)zrefh=zrefm + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm,& +!$OMPex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star,& +!$OMPex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q,& +!$OMPex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land,& +!$OMPex_tr_con_ref,id_tr_con_ref,id_tr_con_ref_land,& +!$OMPex_tr_con_atm,id_tr_con_atm,id_tr_con_atm_land,& +!$OMPex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum,& +!$OMPex_flux_tr,ex_t_atm,ex_p_surf)& +!$OMPprivate(is,ie,rho) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& +ex_rough_heat(is:ie),ex_rough_moist(is:ie),& +ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& +ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) + +!-------referencerelativehumidity----------- +!cjgif(id_rh_ref>0.or.id_rh_ref_land>0.or.& +!cjgid_rh_ref_cmip>0.or.& +!cjgid_q_ref>0.or.id_q_ref_land>0)then +doi=is,ie +ex_ref(i)=1.0e-06 +ex_tr_ref(i,:)=1.e-20 +if(ex_avail(i).and.ex_rough_moist(i)>0.)then +ex_ref(i)=ex_tr_surf(i,isphum)+(ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum))*ex_del_q(i) +rho=ex_p_surf(i)/(rdgas*ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) +dotr=1,n_exch_tr +if(id_tr_ref(tr).gt.0& +.or.id_tr_ref_land(tr).gt.0& +.or.id_tr_con_ref(tr).gt.0& +.or.id_tr_con_ref_land(tr).gt.0)then +ex_tr_ref(i,tr)=ex_tr_surf(i,tr)+(ex_tr_atm(i,tr)-ex_tr_surf(i,tr))*ex_del_q(i) +ex_tr_con_ref(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_ref(i,tr)*rho,epsln) +endif +if(id_tr_con_atm(tr).gt.0.or.id_tr_con_atm_land(tr).gt.0)then +ex_tr_con_atm(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_atm(i,tr)*rho,epsln) +endif +enddo +endif +enddo +enddo +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_ref,'ATM',ex_ref,xmap_sfc)!cjg +if(id_q_ref>0)then +used=fms_diag_send_data(id_q_ref,land_ice_atmos_boundary%q_ref,time) +endif +if(id_huss>0)then +used=fms_diag_send_data(id_huss,land_ice_atmos_boundary%q_ref,time) +endif +if(id_q_ref_land>0.or.id_husslut_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +!duplicatesend_tile_data.Wemayremoveid_q_ref_landinthefuture. +callsend_tile_data(id_q_ref_land,diag_land) +callsend_tile_data(id_husslut_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_q_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif + +dotr=1,n_exch_tr +if(id_tr_ref(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_ref(:,tr),xmap_sfc)!cjg +if(id_tr_ref(tr)>0)then +used=fms_diag_send_data(id_tr_ref(tr),diag_atm,time) +endif +endif + +if(id_tr_ref_land(tr)>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_ref(:,tr),xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_tr_ref_land(tr),diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_tr_ref_land(tr),diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +enddo + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail,& +!$OMPex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h,& +!$OMPex_ref,ex_qs_ref_cmip,ex_ref2)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_t_ref(i)=200. +if(ex_avail(i).and.ex_rough_heat(i)>0.)& +ex_t_ref(i)=ex_t_ca(i)+(ex_t_atm(i)-ex_t_ca(i))*ex_del_h(i) +enddo +callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref(is:ie),q=ex_ref(is:ie)) +callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref_cmip(is:ie),& +q=ex_ref(is:ie),es_over_liq_and_ice=.true.) +doi=is,ie +if(ex_avail(i))then +!removecaponrelativehumidity--thismodrequestedbycjg,ljd +!RSHex_ref=MIN(100.,100.*ex_ref/ex_qs_ref) +ex_ref2(i)=100.*ex_ref(i)/ex_qs_ref_cmip(i) +ex_ref(i)=100.*ex_ref(i)/ex_qs_ref(i) +endif +enddo +enddo + +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t_ref,'ATM',ex_t_ref,xmap_sfc)!cjg + +if(id_rh_ref_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_rh_ref_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_rh_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif + +if(id_rh_ref>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +used=fms_diag_send_data(id_rh_ref,diag_atm,time) +endif + +if(id_rh_ref_cmip>0.or.id_hurs>0.or.id_rhs>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref2,xmap_sfc) +if(id_rh_ref_cmip>0)used=fms_diag_send_data(id_rh_ref_cmip,diag_atm,time) +if(id_hurs>0)used=fms_diag_send_data(id_hurs,diag_atm,time) +if(id_rhs>0)used=fms_diag_send_data(id_rhs,diag_atm,time) +endif +!cjgendif + +!-------referencetemp----------- +#ifdefuse_AM3_physics +if(id_t_ref>0.or.id_t_ref_land>0.or.id_taslut_land>0)then +where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h +if(id_t_ref_land>0.or.id_taslut_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) +if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) +#else +if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +if(id_t_ref>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +used=fms_diag_send_data(id_t_ref,diag_atm,time) +endif +endif +#else +if(id_t_ref_land>0.or.id_taslut_land>0.or.id_tasl_g>0)then +where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h +!t_refdiagnosticatlandpointsonly +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) +if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) +if(id_tasl_g>0)then +used=send_global_land_diag(get_global_diag_field_id(id_tasl_g),& +diag_land,time,land%tile_size,land%mask,land) +endif +#else +if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif + +!t_refdiagnosticatallatmospoints +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_t_ref>0)used=fms_diag_send_data(id_t_ref,diag_atm,time) +if(id_tas>0)used=fms_diag_send_data(id_tas,diag_atm,time) +callfms_sum_diag_integral_field('t_ref',diag_atm) +if(id_tas_g>0)used=send_global_diag(id_tas_g,diag_atm,time) +#endif + +!-------referenceucomp----------- +if(id_u_ref>0.or.id_u_ref_land>0.or.id_uas>0)then +where(ex_avail)& +ex_ref=ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m +if(id_u_ref_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_u_ref_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_u_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +if(id_u_ref>0.or.id_uas>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_u_ref>0)used=fms_diag_send_data(id_u_ref,diag_atm,time) +if(id_uas>0)used=fms_diag_send_data(id_uas,diag_atm,time) +endif +endif + +!-------referencevcomp----------- +if(id_v_ref>0.or.id_v_ref_land>0.or.id_vas>0)then +where(ex_avail)& +ex_ref=ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m +if(id_v_ref_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_v_ref_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_v_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +if(id_v_ref>0.or.id_vas>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_v_ref>0)used=fms_diag_send_data(id_v_ref,diag_atm,time) +if(id_vas>0)used=fms_diag_send_data(id_vas,diag_atm,time) +endif +endif + +!-------reference-levelabsolutewind----------- +if(id_wind_ref>0.or.id_sfcwind>0)then +where(ex_avail)& +ex_ref=sqrt((ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m)**2& ++(ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m)**2) +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_wind_ref>0)used=fms_diag_send_data(id_wind_ref,diag_atm,time) +if(id_sfcwind>0)used=fms_diag_send_data(id_sfcwind,diag_atm,time) +endif + +!-------interpfactorforheat------ +if(id_del_h>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_h,xmap_sfc) +used=fms_diag_send_data(id_del_h,diag_atm,time) +endif + +!-------interpfactorformomentum------ +if(id_del_m>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_m,xmap_sfc) +used=fms_diag_send_data(id_del_m,diag_atm,time) +endif + +!-------interpfactorformoisture------ +if(id_del_q>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_q,xmap_sfc) +used=fms_diag_send_data(id_del_q,diag_atm,time) +endif + +!cjgendif +!topographicroughnessscale +if(id_rough_scale>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& +(log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2,xmap_sfc) +used=fms_diag_send_data(id_rough_scale,diag_atm,time) +endif + +!Balaji +callfms_mpp_clock_end(sfcclock) +callfms_mpp_clock_end(cplclock) + +!======================================================================= + +endsubroutinesfc_boundary_layer + +subroutineflux_down_from_atmos(Time,Atm,Atmos_boundary,Land_boundary,Ice_boundary) + +implicitnone +type(FmsTime_type),intent(in)::Time + +type(atmos_data_type),intent(inout)::Atm + +type(land_ice_atmos_boundary_type),intent(in)::Atmos_boundary + +type(atmos_land_boundary_type),intent(inout)::Land_boundary + +type(atmos_ice_boundary_type),intent(inout)::Ice_boundary + + +!thefollowingvariablesareontheexchangegrid +real,dimension(n_xgrid_sfc)::& +ex_flux_sw,&!netsfcshortwaveradiationflux +ex_flux_lwd,&!longwaveradiationdownwardfluxatsurface +ex_flux_sw_dir,&!directshortwaveradiationflux +ex_flux_sw_dif,&!downwarddiffusevisibleshortwaveradiationfluxarthesurface +ex_flux_sw_down_vis_dir,&!downwarddirectvisibleshortwaveradiationfluxatthesurface +ex_flux_sw_down_total_dir,&!downwarddirecttotalshortwaveradiationfluxatthesurface +ex_flux_sw_down_vis_dif,&!downwarddiffusevisibleshortwaveradiationfluxatthesurface +ex_flux_sw_down_total_dif,&!downwarddiffusivetotalshortwaveradiationfluxatthesurface +ex_flux_sw_vis,&!netvisibleshortwaveradiationfluxatthesurface +ex_flux_sw_vis_dir,&!netdirectvisibleshortwaveradiationfluxatthesurface +ex_flux_sw_vis_dif,&!netdiffusevisibleshortwaveradiationfluxatthesurface +ex_lprec,&!liquidprecipitation +ex_fprec,&!frozenprecitipation +ex_tprec,&!temperatureofprecipitation,currentlyequaltoatmtemperature +ex_u_star_smooth,&!frictionvelocitycorrection +#ifdefuse_AM3_physics +ex_coszen!cosineofthezenithangle +#else +ex_coszen,&!cosineofthezenithangle +ex_setl_flux,&!tracersedimentationfluxfromthelowestatmopherelayer(positivedown) +ex_dsetl_dtr!derivativeofsetl_fluxw.r.t.tracerconcentration +#endif + +real::setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!tracerseditationfluxfromthelowestatmospeherelayerontheatmgrid +real::dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!derivativeofsetl_dtrfromthelowestatmospherelayerontheatmgrid + +!temporaryarrays +real,dimension(n_xgrid_sfc)::ex_gamma,ex_dtmass,ex_delta_t,ex_delta_u,ex_delta_v,ex_dflux_t + +real,dimension(n_xgrid_sfc,n_gex_atm2lnd)::ex_gex_atm2lnd!genericexchangefieldsbetweenatmandland + +real,dimension(n_xgrid_sfc,n_exch_tr)::& +ex_delta_tr,&!tracertendencies +ex_dflux_tr!tracerfluxchange + +real::cp_inv!inverseheatcapacityatconstantpressure +logical::used,ov,ier!usedincallstofms +integer::is_atm,ie_atm,js_atm,je_atm,j!doloopindices + +character(32)::tr_name!nameofthetracer +integer::tr,n,m!tracerindices +integer::is,ie,l,i,n_gex!doloopindices + +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(fluxatmdnclock) +!} + +ov=.false. + +!Balaji:fms_data_overridecallsmovedherefromcoupler_main +callfms_data_override('ATM','flux_sw',atm%flux_sw,time) +callfms_data_override('ATM','flux_sw_dir',atm%flux_sw_dir,time) +callfms_data_override('ATM','flux_sw_dif',atm%flux_sw_dif,time) +callfms_data_override('ATM','flux_sw_down_vis_dir',atm%flux_sw_down_vis_dir,time) +callfms_data_override('ATM','flux_sw_down_vis_dif',atm%flux_sw_down_vis_dif,time) +callfms_data_override('ATM','flux_sw_down_total_dir',atm%flux_sw_down_total_dir,time) +callfms_data_override('ATM','flux_sw_down_total_dif',atm%flux_sw_down_total_dif,time) +callfms_data_override('ATM','flux_sw_vis',atm%flux_sw_vis,time) +callfms_data_override('ATM','flux_sw_vis_dir',atm%flux_sw_vis_dir,time) +callfms_data_override('ATM','flux_sw_vis_dif',atm%flux_sw_vis_dif,time) +callfms_data_override('ATM','flux_lw',atm%flux_lw,time) +callfms_data_override('ATM','lprec',atm%lprec,time) + +if(scale_precip_2d)then +callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) +callfms_data_override('ATM','precip_scale2d',frac_precip,time) +doj=js_atm,je_atm +doi=is_atm,ie_atm +atm%lprec(i,j)=atm%lprec(i,j)*frac_precip(i,j) +enddo +enddo +endif + +if(partition_fprec_from_lprec.and.atm%pe)then +callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) +doj=js_atm,je_atm +doi=is_atm,ie_atm +if(atm%t_bot(i,j)<tfreeze)then +atm%fprec(i,j)=atm%lprec(i,j) +atm%lprec(i,j)=0.0 +endif +enddo +enddo +endif + +!{ +callfms_data_override('ATM','fprec',atm%fprec,time) +callfms_data_override('ATM','coszen',atm%coszen,time) +callfms_data_override('ATM','dtmass',atm%Surf_Diff%dtmass,time) +callfms_data_override('ATM','delta_t',atm%Surf_Diff%delta_t,time) +callfms_data_override('ATM','dflux_t',atm%Surf_Diff%dflux_t,time) +dotr=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) +callfms_data_override('ATM','delta_'//trim(tr_name),atm%Surf_Diff%delta_tr(:,:,tr),time) +callfms_data_override('ATM','dflux_'//trim(tr_name),atm%Surf_Diff%dflux_tr(:,:,tr),time) +enddo +!} + +!{ + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& +!$OMPex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u,ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v,& +!$OMPex_gex_atm2lnd,n_gex_atm2lnd)private(is,ie,n_gex) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_flux_sw_dir(i)=0.0 +ex_flux_sw_vis_dir(i)=0.0 +ex_flux_sw_dif(i)=0.0 +ex_flux_sw_vis_dif(i)=0.0 +ex_flux_lwd(i)=0.0 +ex_delta_u(i)=0.0 +ex_delta_v(i)=0.0 +enddo +don_gex=1,n_gex_atm2lnd +doi=is,ie +ex_gex_atm2lnd(i,n_gex)=0.0 +enddo +enddo +enddo + +callfms_xgrid_put_to_xgrid(atm%flux_sw_dir,'ATM',ex_flux_sw_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dir,'ATM',ex_flux_sw_vis_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_dif,'ATM',ex_flux_sw_dif,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dif,'ATM',ex_flux_sw_vis_dif,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dir,'ATM',ex_flux_sw_down_vis_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dir,'ATM',ex_flux_sw_down_total_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dif,'ATM',ex_flux_sw_down_vis_dif,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dif,'ATM',ex_flux_sw_down_total_dif,xmap_sfc,complete=.false.) + +!ccc=conservation_check(Atm%lprec,'ATM',xmap_sfc) +!if(fms_mpp_pe()==fms_mpp_root_pe())print*,'LPREC',ccc + +!if(do_area_weighted_flux)then +!callput_to_xgrid(Atm%lprec*AREA_ATM_MODEL,'ATM',ex_lprec,xmap_sfc) +!callput_to_xgrid(Atm%fprec*AREA_ATM_MODEL,'ATM',ex_fprec,xmap_sfc) +!else +callfms_xgrid_put_to_xgrid(atm%lprec,'ATM',ex_lprec,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%fprec,'ATM',ex_fprec,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_tprec,xmap_sfc,complete=.false.) +!endif + +don_gex=1,n_gex_atm2lnd +callfms_xgrid_put_to_xgrid(atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) +enddo + +callfms_xgrid_put_to_xgrid(atm%coszen,'ATM',ex_coszen,xmap_sfc,complete=.true.) +callfms_xgrid_put_to_xgrid(atm%flux_lw,'ATM',ex_flux_lwd,xmap_sfc,remap_method=remap_method,complete=.false.) + +!MODchangedthefollowingtwolinestoputAtmos%surf_diff%delta_uandv +!onexchangegridinsteadofthestressesthemselvessothatonlythe +!implicitcorrectionsarefilteredthroughtheatmosphericgridnotthe +!stressesthemselves +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_u,'ATM',ex_delta_u,xmap_sfc,remap_method=remap_method,& +complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_v,'ATM',ex_delta_v,xmap_sfc,remap_method=remap_method,& +complete=.true.) + +!}endmapatmosphericquantitiesonexchangegrid + +!{ +!MODupdatestressesusingatmosdelta'sbutderivativesonexchangegrid +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u,& +!$OMPex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_flux_u(i)=ex_flux_u(i)+ex_delta_u(i)*ex_dtaudu_atm(i) +ex_flux_v(i)=ex_flux_v(i)+ex_delta_v(i)*ex_dtaudv_atm(i) +enddo +enddo +!}endupdateuandvstressontheexchangegrid + +!{ +!----adjustswfluxforalbedovariationsonexchgrid---- +!----adjust4categories(vis/nirdir/dif)separately---- +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& +!$OMPex_flux_sw_vis_dir,ex_albedo_nir_dir_fix,ex_albedo_vis_dir_fix,ex_flux_sw_dif,& +!$OMPex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw,ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_flux_sw_dir(i)=ex_flux_sw_dir(i)-ex_flux_sw_vis_dir(i)!temporarilynir/dir +ex_flux_sw_dir(i)=ex_flux_sw_dir(i)*ex_albedo_nir_dir_fix(i)!fixnir/dir +ex_flux_sw_vis_dir(i)=ex_flux_sw_vis_dir(i)*ex_albedo_vis_dir_fix(i)!fixvis/dir +ex_flux_sw_dir(i)=ex_flux_sw_dir(i)+ex_flux_sw_vis_dir(i)!backtototaldir + +ex_flux_sw_dif(i)=ex_flux_sw_dif(i)-ex_flux_sw_vis_dif(i)!temporarilynir/dif +ex_flux_sw_dif(i)=ex_flux_sw_dif(i)*ex_albedo_nir_dif_fix(i)!fixnir/dif +ex_flux_sw_vis_dif(i)=ex_flux_sw_vis_dif(i)*ex_albedo_vis_dif_fix(i)!fixvis/dif +ex_flux_sw_dif(i)=ex_flux_sw_dif(i)+ex_flux_sw_vis_dif(i)!backtototaldif + +ex_flux_sw_vis(i)=ex_flux_sw_vis_dir(i)+ex_flux_sw_vis_dif(i)!legacy,removelater +ex_flux_sw(i)=ex_flux_sw_dir(i)+ex_flux_sw_dif(i)!legacy,removelater +enddo +enddo + +!ex_flux_sw_dir=ex_flux_sw_dir-ex_flux_sw_vis_dir!temporarilynir/dir +!ex_flux_sw_dir=ex_flux_sw_dir*ex_albedo_nir_dir_fix!fixnir/dir +!ex_flux_sw_vis_dir=ex_flux_sw_vis_dir*ex_albedo_vis_dir_fix!fixvis/dir +!ex_flux_sw_dir=ex_flux_sw_dir+ex_flux_sw_vis_dir!backtototaldir +! +!ex_flux_sw_dif=ex_flux_sw_dif-ex_flux_sw_vis_dif!temporarilynir/dif +!ex_flux_sw_dif=ex_flux_sw_dif*ex_albedo_nir_dif_fix!fixnir/dif +!ex_flux_sw_vis_dif=ex_flux_sw_vis_dif*ex_albedo_vis_dif_fix!fixvis/dif +!ex_flux_sw_dif=ex_flux_sw_dif+ex_flux_sw_vis_dif!backtototaldif +! +!ex_flux_sw_vis=ex_flux_sw_vis_dir+ex_flux_sw_vis_dif!legacy,removelater +!ex_flux_sw=ex_flux_sw_dir+ex_flux_sw_dif!legacy,removelater + +deallocate(ex_albedo_fix) +deallocate(ex_albedo_vis_dir_fix) +deallocate(ex_albedo_nir_dir_fix) +deallocate(ex_albedo_vis_dif_fix) +deallocate(ex_albedo_nir_dif_fix) + +!}endfixshortwavelengthradiationfluxontheexchangegrid + + +!{ +dotr=1,n_exch_tr +n=tr_table(tr)%atm +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_tr(:,:,n),'ATM',ex_delta_tr(:,tr),xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_tr(:,:,n),'ATM',ex_dflux_tr(:,tr),xmap_sfc,complete=.false.) +enddo + +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dtmass,'ATM',ex_dtmass,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_t,'ATM',ex_delta_t,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_t,'ATM',ex_dflux_t,xmap_sfc,complete=.true.) + +#ifndefuse_AM3_physics +!Getsedimentationflux.Hastobehere(insteadofsfc_boundary_layersub) +!becauseoftimesteppingorder:sedimentationfluxesarecalculatedin +!update_atmos_model_down(inatmos_tracer_driver),butsfc_boundary_layer +!iscalledbeforethat. +dotr=1,n_exch_tr +if(atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm))then +callget_atmos_tracer_surf_setl_flux(tr_table(tr)%atm,setl_flux,dsetl_dtr) +callfms_xgrid_put_to_xgrid(setl_flux,'ATM',ex_setl_flux,xmap_sfc) +callfms_xgrid_put_to_xgrid(dsetl_dtr,'ATM',ex_dsetl_dtr,xmap_sfc) +where(ex_avail) +!minussignisbecausesedimentationispositivedown +ex_flux_tr(:,tr)=ex_flux_tr(:,tr)-ex_setl_flux(:) +ex_dfdtr_atm(:,tr)=ex_dfdtr_atm(:,tr)-ex_dsetl_dtr(:) +endwhere +endif +enddo +#endif + +cp_inv=1.0/cp_air + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd,& +!$OMPex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm,cp_inv,ex_e_t_n,& +!$OMPex_dhdt_surf,ex_f_t_delt_n,ex_delta_t,ex_flux_t,ex_dflux_tr,isphum,& +!$OMPex_dfdtr_atm,ex_e_q_n,ex_dedt_surf,n_exch_tr,ex_e_tr_n,ex_dfdtr_surf,& +!$OMPex_f_tr_delt_n,ex_delta_tr,ex_flux_tr)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +!-----computenetlongwaveflux(down-up)----- +!(note:lwupalreadyinex_flux_lw) +ex_flux_lw(i)=ex_flux_lwd(i)-ex_flux_lw(i) +if(ex_avail(i))then +!temperature +ex_gamma(i)=1./(1.0-ex_dtmass(i)*(ex_dflux_t(i)+ex_dhdt_atm(i)*cp_inv)) +ex_e_t_n(i)=ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) +ex_f_t_delt_n(i)=(ex_delta_t(i)+ex_dtmass(i)*ex_flux_t(i)*cp_inv)*ex_gamma(i) + +ex_flux_t(i)=ex_flux_t(i)+ex_dhdt_atm(i)*ex_f_t_delt_n(i) +ex_dhdt_surf(i)=ex_dhdt_surf(i)+ex_dhdt_atm(i)*ex_e_t_n(i) + +!moisture +!ex_gamma=1./(1.0-ex_dtmass*(ex_dflux_q+ex_dedq_atm)) +!hereitlooksliketwoderivativeswithdifferentunitsareaddedtogether, +!butinfacttheyarenot:ex_dedt_surfandex_dedq_surfdefinedincomplimentary +!regionsofexchangegrid,sothatifoneofthemisnotzerotheotheris,and +!viceversa. +!ex_e_q_n=ex_dtmass*(ex_dedt_surf+ex_dedq_surf)*ex_gamma +!ex_f_q_delt_n=(ex_delta_q+ex_dtmass*ex_flux_q)*ex_gamma +!ex_flux_q=ex_flux_q+ex_dedq_atm*ex_f_q_delt_n +!ex_dedt_surf=ex_dedt_surf+ex_dedq_atm*ex_e_q_n +!ex_dedq_surf=ex_dedq_surf+ex_dedq_atm*ex_e_q_n +!moisturevs.surfacetemperture,assumingsaturation +ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,isphum)+ex_dfdtr_atm(i,isphum))) +ex_e_q_n(i)=ex_dtmass(i)*ex_dedt_surf(i)*ex_gamma(i) +ex_dedt_surf(i)=ex_dedt_surf(i)+ex_dfdtr_atm(i,isphum)*ex_e_q_n(i) +dotr=1,n_exch_tr +ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,tr)+ex_dfdtr_atm(i,tr))) +ex_e_tr_n(i,tr)=ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) +ex_f_tr_delt_n(i,tr)=(ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) + +ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) +ex_dfdtr_surf(i,tr)=ex_dfdtr_surf(i,tr)+ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) +enddo +endif +enddo +enddo + +!}endadjustfluxesforimplicitdependence + +callfms_xgrid_get_from_xgrid_(land_boundary%t_flux,'LND',ex_flux_t,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux,'LND',ex_flux_sw,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dir,'LND',ex_flux_sw_down_vis_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dir,'LND',ex_flux_sw_down_total_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dif,'LND',ex_flux_sw_down_vis_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dif,'LND',ex_flux_sw_down_total_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%lw_flux,'LND',ex_flux_lw,xmap_sfc) +#ifdefSCM +if(do_specified_land.and.do_specified_flux)then +callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf_forland,xmap_sfc) +else +callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) +endif +#else +callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) +#endif +callfms_xgrid_get_from_xgrid_(land_boundary%drdt,'LND',ex_drdt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%p_surf,'LND',ex_p_surf,xmap_sfc) + +callfms_xgrid_get_from_xgrid_(land_boundary%lprec,'LND',ex_lprec,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%fprec,'LND',ex_fprec,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%tprec,'LND',ex_tprec,xmap_sfc) +!if(do_area_weighted_flux)then +!!evapgoeshere??? +!dok=1,size(Land_boundary%lprec,dim=3) +!!Note:wedividebyAREA_ATM_MODEL,whichshouldbethesameas +!!AREA_LND_MODEL(butthelattermaynotbedefined) +!calldivide_by_area(data=Land_boundary%lprec(:,:,k),area=AREA_ATM_MODEL) +!calldivide_by_area(data=Land_boundary%fprec(:,:,k),area=AREA_ATM_MODEL) +!enddo +!endif + +if(associated(land_boundary%drag_q))then +callfms_xgrid_get_from_xgrid_(land_boundary%drag_q,'LND',ex_drag_q,xmap_sfc) +callfms_data_override_('LND','drag_q',land_boundary%drag_q,time) +endif +if(associated(land_boundary%lwdn_flux))then +callfms_xgrid_get_from_xgrid_(land_boundary%lwdn_flux,'LND',ex_flux_lwd,xmap_sfc) +callfms_data_override_('LND','lwdn_flux',land_boundary%lwdn_flux,time) +endif +if(associated(land_boundary%cd_m))then +callfms_xgrid_get_from_xgrid_(land_boundary%cd_m,'LND',ex_cd_m,xmap_sfc) +callfms_data_override_('LND','cd_m',land_boundary%cd_m,time) +endif +if(associated(land_boundary%cd_t))then +callfms_xgrid_get_from_xgrid_(land_boundary%cd_t,'LND',ex_cd_t,xmap_sfc) +callfms_data_override_('LND','cd_t',land_boundary%cd_t,time) +endif +if(associated(land_boundary%bstar))then +callfms_xgrid_get_from_xgrid_(land_boundary%bstar,'LND',ex_b_star,xmap_sfc) +callfms_data_override_('LND','bstar',land_boundary%bstar,time) +endif +if(associated(land_boundary%ustar))then +callfms_xgrid_get_from_xgrid_(land_boundary%ustar,'LND',ex_u_star,xmap_sfc) +callfms_data_override_('LND','ustar',land_boundary%ustar,time) +endif +if(associated(land_boundary%wind))then +callfms_xgrid_get_from_xgrid_(land_boundary%wind,'LND',ex_wind,xmap_sfc) +callfms_data_override_('LND','wind',land_boundary%wind,time) +endif +if(associated(land_boundary%z_bot))then +callfms_xgrid_get_from_xgrid_(land_boundary%z_bot,'LND',ex_z_atm,xmap_sfc) +callfms_data_override_('LND','z_bot',land_boundary%z_bot,time) +endif + +if(associated(land_boundary%gex_atm2lnd))then +don_gex=1,n_gex_atm2lnd +callfms_xgrid_get_from_xgrid_(land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) +!adddata_overridehere +enddo +endif + +#ifndef_USE_LEGACY_LAND_ +if(associated(land_boundary%con_atm))then +callfms_xgrid_get_from_xgrid_(land_boundary%con_atm,'LND',ex_con_atm,xmap_sfc) +endif +#endif + +land_boundary%tr_flux=0.0 +land_boundary%dfdtr=0.0 +dotr=1,n_exch_tr +n=tr_table(tr)%lnd +if(n/=no_tracer)then +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) +#else +callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) +#endif +#ifdefSCM +if(do_specified_land.and.do_specified_flux.and.tr.eq.isphum)then +callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dedq_surf_forland(:),xmap_sfc) +endif +#endif +endif +enddo + +!}mapfluxesfromtheexchangegridtothelandgrid + +!{ +!currenttimeisTime:isthatok?notavailableinland_data_type +!Balaji:data_overridecallsmovedherefromcoupler_main +callfms_data_override_('LND','t_flux',land_boundary%t_flux,time) +callfms_data_override_('LND','lw_flux',land_boundary%lw_flux,time) +callfms_data_override_('LND','sw_flux',land_boundary%sw_flux,time) +callfms_data_override_('LND','sw_flux_down_vis_dir',land_boundary%sw_flux_down_vis_dir,time) +callfms_data_override_('LND','sw_flux_down_total_dir',land_boundary%sw_flux_down_total_dir,time) +callfms_data_override_('LND','sw_flux_down_vis_dif',land_boundary%sw_flux_down_vis_dif,time) +callfms_data_override_('LND','sw_flux_down_total_dif',land_boundary%sw_flux_down_total_dif,time) +callfms_data_override_('LND','lprec',land_boundary%lprec,time) +callfms_data_override_('LND','fprec',land_boundary%fprec,time) +callfms_data_override_('LND','dhdt',land_boundary%dhdt,time) +callfms_data_override_('LND','drdt',land_boundary%drdt,time) +callfms_data_override_('LND','p_surf',land_boundary%p_surf,time) +dotr=1,n_lnd_tr +callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) +#ifndef_USE_LEGACY_LAND_ +callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,tr),time) +callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,tr),time) +#else +callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,:,tr),time) +callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,:,tr),time) +#endif +enddo +!}endoverridelandfluxes + +!{ +callfms_xgrid_get_from_xgrid(ice_boundary%t_flux,'OCN',ex_flux_t,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%q_flux,'OCN',ex_flux_tr(:,isphum),xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dir,'OCN',ex_flux_sw_vis_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dir,'OCN',ex_flux_sw_dir,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_flux_nir_dir=ice_boundary%sw_flux_nir_dir-ice_boundary%sw_flux_vis_dir +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dif,'OCN',ex_flux_sw_vis_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dif,'OCN',ex_flux_sw_dif,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_flux_nir_dif=ice_boundary%sw_flux_nir_dif-ice_boundary%sw_flux_vis_dif + +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dir,'OCN',ex_flux_sw_down_vis_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dir,'OCN',ex_flux_sw_down_total_dir,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_down_nir_dir=ice_boundary%sw_down_nir_dir-ice_boundary%sw_down_vis_dir + +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dif,'OCN',ex_flux_sw_down_vis_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dif,'OCN',ex_flux_sw_down_total_dif,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_down_nir_dif=ice_boundary%sw_down_nir_dif-ice_boundary%sw_down_vis_dif + +callfms_xgrid_get_from_xgrid(ice_boundary%lw_flux,'OCN',ex_flux_lw,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%dhdt,'OCN',ex_dhdt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%dedt,'OCN',ex_dedt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%drdt,'OCN',ex_drdt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%u_flux,'OCN',ex_flux_u,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%v_flux,'OCN',ex_flux_v,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%u_star,'OCN',ex_u_star,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%coszen,'OCN',ex_coszen,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%p,'OCN',ex_slp,xmap_sfc)!mwmod + +callfms_xgrid_get_from_xgrid(ice_boundary%lprec,'OCN',ex_lprec,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%fprec,'OCN',ex_fprec,xmap_sfc) +!if(do_area_weighted_flux)then +!where(AREA_ATM_SPHERE/=0) +!Ice_boundary%lprec=Ice_boundary%lprec*AREA_ATM_MODEL/AREA_ATM_SPHERE +!Ice_boundary%fprec=Ice_boundary%fprec*AREA_ATM_MODEL/AREA_ATM_SPHERE +!endwhere +!endif +!if(do_area_weighted_flux)then +!dok=1,size(Ice_boundary%lprec,dim=3) +!calldivide_by_area(data=Ice_boundary%lprec(:,:,k),area=AREA_ATM_SPHERE) +!calldivide_by_area(data=Ice_boundary%fprec(:,:,k),area=AREA_ATM_SPHERE) +!enddo +!endif + +!Extrafluxes +don=1,ice_boundary%fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%flux_type.ne.'air_sea_deposition')then +dom=1,ice_boundary%fluxes%bc(n)%num_fields +callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& +ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) +enddo +endif +enddo +!}endmapicefieldsfromtheexchangegridtotheicegrid + +!{ +!Balaji:data_overridecallsmovedherefromcoupler_main +callfms_data_override('ICE','u_flux',ice_boundary%u_flux,time) +callfms_data_override('ICE','v_flux',ice_boundary%v_flux,time) +callfms_data_override('ICE','t_flux',ice_boundary%t_flux,time) +callfms_data_override('ICE','q_flux',ice_boundary%q_flux,time) +callfms_data_override('ICE','lw_flux',ice_boundary%lw_flux,time) +callfms_data_override('ICE','lw_flux_dn',ice_boundary%lw_flux,time,override=ov) +if(ov)ice_boundary%lw_flux=ice_boundary%lw_flux-stefan*ice%t_surf**4 +callfms_data_override('ICE','sw_flux_nir_dir',ice_boundary%sw_flux_nir_dir,time) +callfms_data_override('ICE','sw_flux_vis_dir',ice_boundary%sw_flux_vis_dir,time) +callfms_data_override('ICE','sw_flux_nir_dif',ice_boundary%sw_flux_nir_dif,time,override=ov) +callfms_data_override('ICE','sw_flux_vis_dif',ice_boundary%sw_flux_vis_dif,time) +callfms_data_override('ICE','sw_flux_vis_dir_dn',ice_boundary%sw_down_vis_dir,time,override=ov) +if(ov)ice_boundary%sw_flux_vis_dir=ice_boundary%sw_down_vis_dir*(1.0-ice%albedo_vis_dir) +callfms_data_override('ICE','sw_flux_vis_dif_dn',ice_boundary%sw_down_vis_dif,time,override=ov) +if(ov)ice_boundary%sw_flux_vis_dif=ice_boundary%sw_down_vis_dif*(1.0-ice%albedo_vis_dif) +callfms_data_override('ICE','sw_flux_nir_dir_dn',ice_boundary%sw_down_nir_dir,time,override=ov) +if(ov)ice_boundary%sw_flux_nir_dir=ice_boundary%sw_down_nir_dir*(1.0-ice%albedo_nir_dir) +callfms_data_override('ICE','sw_flux_nir_dif_dn',ice_boundary%sw_down_nir_dif,time,override=ov) +if(ov)ice_boundary%sw_flux_nir_dif=ice_boundary%sw_down_nir_dif*(1.0-ice%albedo_nir_dif) +callfms_data_override('ICE','lprec',ice_boundary%lprec,time) +callfms_data_override('ICE','fprec',ice_boundary%fprec,time) +callfms_data_override('ICE','dhdt',ice_boundary%dhdt,time) +callfms_data_override('ICE','dedt',ice_boundary%dedt,time) +callfms_data_override('ICE','drdt',ice_boundary%drdt,time) +callfms_data_override('ICE','coszen',ice_boundary%coszen,time) +callfms_data_override('ICE','p',ice_boundary%p,time) +callfms_coupler_type_data_override('ICE',ice_boundary%fluxes,time) +callfms_coupler_type_send_data(ice_boundary%fluxes,time) +!}endoverrideIcefields + +!{ +!Atm->Lnd(precip) +callfms_xgrid_stock_move_(& +&from=fms_stock_constants_atm_stock(istock_water),& +&to=fms_stock_constants_lnd_stock(istock_water),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=(land_boundary%lprec+land_boundary%fprec),& +#else +&stock_data3d=(land_boundary%lprec+land_boundary%fprec),& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Lnd)') + +!Atm->Lnd(heat) +callfms_xgrid_stock_move_(& +&from=fms_stock_constants_atm_stock(istock_heat),& +&to=fms_stock_constants_lnd_stock(istock_heat),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=& +(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& +#else +&stock_data3d=& +(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Lnd)') + +!Atm->Ice(precip) +callfms_xgrid_stock_move(& +&from=fms_stock_constants_atm_stock(istock_water),& +&to=fms_stock_constants_ice_stock(istock_water),& +&stock_data3d=(ice_boundary%lprec+ice_boundary%fprec),& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Ice)') + +!Atm->Ice(heat) +callfms_xgrid_stock_move(& +&from=fms_stock_constants_atm_stock(istock_heat),& +&to=fms_stock_constants_ice_stock(istock_heat),& +&stock_data3d=& +(-ice_boundary%t_flux+ice_boundary%lw_flux-ice_boundary%fprec*hlf+ice_boundary%sw_flux_vis_dir+& +ice_boundary%sw_flux_vis_dif+ice_boundary%sw_flux_nir_dir+ice_boundary%sw_flux_nir_dif),& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Ice)') +!}endcoputestockexchangebetweencomponents + +deallocate(ex_flux_u,ex_flux_v,ex_dtaudu_atm,ex_dtaudv_atm) + + +!{ +!-------zonalwindstress----------- +used=fms_diag_send_data(id_u_flux,atmos_boundary%u_flux,time) +used=fms_diag_send_data(id_tauu,-atmos_boundary%u_flux,time) + +!-------meridionalwindstress----------- +used=fms_diag_send_data(id_v_flux,atmos_boundary%v_flux,time) +used=fms_diag_send_data(id_tauv,-atmos_boundary%v_flux,time) +!}endsenddatatodiag_manager + +!Balaji +callfms_mpp_clock_end(fluxatmdnclock) +callfms_mpp_clock_end(cplclock) + +endsubroutineflux_down_from_atmos + +subroutinegenerate_sfc_xgrid(Land,Ice) + +implicitnone +type(land_data_type),intent(in)::Land +Type(Ice_Data_Type),intent(in)::Ice + +integer::isc,iec,jsc,jec!computedomainindices + +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(regenclock) + +callfms_mpp_domains_get_compute_domain(ice%Domain,isc,iec,jsc,jec) + +!{ +callfms_xgrid_set_frac_area(ice%part_size(isc:iec,jsc:jec,:),'OCN',xmap_sfc) +callfms_xgrid_set_frac_area_(land%tile_size,'LND',xmap_sfc) +!} + +!{ +n_xgrid_sfc=max(fms_xgrid_count(xmap_sfc),1) +if(n_xgrid_sfc.ge.nblocks)then +my_nblocks=nblocks +callfms_mpp_domains_compute_extent(1,n_xgrid_sfc,nblocks,block_start,block_end) +else +my_nblocks=1 +block_start(1)=1 +block_end(1)=n_xgrid_sfc +endif +!} + +!Balaji +callfms_mpp_clock_end(regenclock) +callfms_mpp_clock_end(cplclock) + +endsubroutinegenerate_sfc_xgrid + +!####################################################################### +subroutineflux_up_to_atmos(Time,Land,Ice,Land_Ice_Atmos_Boundary,Land_boundary,Ice_boundary) + +implicitnone +type(FmsTime_type),intent(in)::Time + +type(land_data_type),intent(inout)::Land + +type(ice_data_type),intent(inout)::Ice + +type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary + +type(atmos_land_boundary_type),intent(inout)::Land_boundary + +type(atmos_ice_boundary_type),intent(inout)::Ice_boundary + + +real,dimension(n_xgrid_sfc)::& +ex_t_surf_new,&!newsurfacetemperatureontheexchangegrid +ex_dt_t_surf,&! +ex_delta_t_n,& +ex_t_ca_new,& +ex_dt_t_ca,& +ex_icetemp,& +ex_land_frac,& +ex_temp + +real,dimension(n_xgrid_sfc,n_exch_tr)::& +ex_tr_surf_new,&!updatedtracervaluesatthesurface +ex_dt_tr_surf,&!tendencyoftracersatthesurface +ex_delta_tr_n + +!jgj:addedforco2_surfdiagnostic,whereco2_surf_dvmristheupdatedCO2tracervaluesatthesurface(dryvmr) +real,dimension(n_xgrid_sfc)::ex_co2_surf_dvmr + +real,dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2))::& +diag_atm,& +evap_atm,& +frac_atm + +#ifndef_USE_LEGACY_LAND_ +real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2))::data_lnd,diag_land +#else +real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2),size(Land_boundary%lprec,3))::& +data_lnd,diag_land +#endif +real,dimension(size(Ice_boundary%lprec,1),size(Ice_boundary%lprec,2),size(Ice_boundary%lprec,3))::data_ice +real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::icegrid + +logical::used +integer::tr!tracerindex +character(32)::tr_name,tr_units!tracername +integer::n,i,m,ier +integer::is,ie,l + +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(fluxatmupclock) + +!{ +!Balaji:data_overridecallsmovedherefromcoupler_main +callfms_data_override('ICE','t_surf',ice%t_surf,time) +callfms_data_override_('LND','t_ca',land%t_ca,time) +callfms_data_override_('LND','t_surf',land%t_surf,time) +dotr=1,n_lnd_tr +callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) +#ifndef_USE_LEGACY_LAND_ +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) +#else +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) +#endif +enddo +!} + +!{ +ex_t_surf_new=200.0 + +callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf_new,xmap_sfc) +ex_t_ca_new=ex_t_surf_new!sinceitisthesamethingoveroceans + +callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca_new,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_new,xmap_sfc) + +!callescomp(ex_t_ca_new,ex_q_surf_new) +!ex_q_surf_new=d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) +!callput_to_xgrid(Land%q_ca,'LND',ex_q_surf_new,xmap_sfc) + +#ifdefSCM +if(do_specified_flux.and.do_specified_land)then +ex_t_surf_new=ex_t_surf +ex_t_ca_new=ex_t_ca +endif +#endif + +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +if(ex_avail(i))then +ex_dt_t_ca(i)=ex_t_ca_new(i)-ex_t_ca(i)!changesinnear-surfaceT +ex_dt_t_surf(i)=ex_t_surf_new(i)-ex_t_surf(i)!changesinradiativeT +endif +enddo + +if(do_forecast)then +doi=is,ie +if(ex_avail(i).and.(.not.ex_land(i)))then +ex_dt_t_ca(i)=0. +ex_dt_t_surf(i)=0. +endif +enddo +endif + +!}ENDCOMPUTECHANGEINSURFACETEMPERATURE + +!{ +dotr=1,n_exch_tr +!setupupdatedsurfacetracerfieldsothatfluxtoatmosforabsent +!tracersiszero +doi=is,ie +if(.not.ex_avail(i))cycle +if(ex_dfdtr_surf(i,tr)/=0.0)then +ex_dt_tr_surf(i,tr)=-ex_flux_tr(i,tr)/ex_dfdtr_surf(i,tr) +else +ex_dt_tr_surf(i,tr)=0.0 +endif +ex_tr_surf_new(i,tr)=ex_tr_surf(i,tr)+ex_dt_tr_surf(i,tr) +enddo +enddo +enddo +!getalltracersavailablefromland,andcalculatechangesinnear-tracerfield +dotr=1,n_exch_tr +n=tr_table(tr)%lnd +if(n/=no_tracer)then +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) +#else +callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) +#endif +endif +enddo +!}ENDUPDATEFLUXESANDATMOSPHERICINCREMENTSFORIMPLICITDEPENDENCEONSURFACETEMPERATURE + +!getalltracersavailablefromoceanhere + +!{ +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +dotr=1,n_exch_tr +doi=is,ie +if(ex_avail(i))then +ex_dt_tr_surf(i,tr)=ex_tr_surf_new(i,tr)-ex_tr_surf(i,tr) +ex_delta_tr_n(i,tr)=ex_f_tr_delt_n(i,tr)+ex_dt_tr_surf(i,tr)*ex_e_tr_n(i,tr) +ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dt_tr_surf(i,tr)*ex_dfdtr_surf(i,tr) +endif +enddo +enddo + +!re-calculatefluxesofspecifichumidityoverocean +doi=is,ie +if(ex_avail(i).and.(.not.ex_land(i)))then +!notethatinthisregion(overocean)ex_dt_t_surf==ex_dt_t_ca +ex_delta_tr_n(i,isphum)=ex_f_tr_delt_n(i,isphum)+ex_dt_t_surf(i)*ex_e_q_n(i) +ex_flux_tr(i,isphum)=ex_flux_tr(i,isphum)+ex_dt_t_surf(i)*ex_dedt_surf(i) +endif +enddo +enddo + +dotr=1,n_exch_tr +!getupdatedtracertendencyontheatmospheicgrid +n=tr_table(tr)%atm +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_tr(:,:,n),'ATM',ex_delta_tr_n(:,tr),xmap_sfc) +enddo + +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_delta_t_n(i)=0.0 +if(ex_avail(i))then +ex_flux_t(i)=ex_flux_t(i)+ex_dt_t_ca(i)*ex_dhdt_surf(i) +ex_flux_lw(i)=ex_flux_lw(i)-ex_dt_t_surf(i)*ex_drdt_surf(i) +ex_delta_t_n(i)=ex_f_t_delt_n(i)+ex_dt_t_ca(i)*ex_e_t_n(i) +endif +enddo +enddo +!}ENDUPDATETRACERTENDENCIESINTHEATMOSPHERE + +!{ +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_t,'ATM',ex_delta_t_n,xmap_sfc) +#ifndefuse_AM3_physics +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc)!miz +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc)!miz +#endif +!}ENDMAPMEANQUANITTIESFROMTHEEXCHANGEGRIDTOTHEATMOSPHEREGRID + + +!{ +#ifdefuse_AM3_physics +if(id_t_surf>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) +used=fms_diag_send_data(id_t_surf,diag_atm,time) +endif +#else +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) +if(id_t_surf>0)used=fms_diag_send_data(id_t_surf,diag_atm,time) +if(id_ts>0)used=fms_diag_send_data(id_ts,diag_atm,time) +callfms_sum_diag_integral_field('t_surf',diag_atm) +if(id_ts_g>0)used=send_global_diag(id_ts_g,diag_atm,time) +!-------newsurfacetemperatureonlyoveropenocean----------- +if(id_tos>0)then +ex_icetemp=0.0 +icegrid=0.0;icegrid(:,:,1)=1.0 +callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) +ex_temp=ex_t_surf_new*ex_icetemp +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) +callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) +where(frac_atm>0.0) +diag_atm=(diag_atm/frac_atm)!-tfreezeCMIP6indegK +frac_atm=1.0 +elsewhere +diag_atm=0.0 +frac_atm=0.0 +endwhere +used=fms_diag_send_data(id_tos,diag_atm,time,rmask=frac_atm) +endif + +!-------newsurfacetemperatureonlyoverlandandsea-ice----------- +if(id_tslsi>0)then +ex_land_frac=0.0 +callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) +icegrid=1.0;icegrid(:,:,1)=0. +ex_icetemp=0. +callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) +ex_icetemp=ex_icetemp+ex_land_frac +ex_temp=ex_t_surf_new*ex_icetemp +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) +callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) +where(frac_atm>0.0) +diag_atm=diag_atm/frac_atm +frac_atm=1.0 +elsewhere +diag_atm=0.0 +frac_atm=0.0 +endwhere +used=fms_diag_send_data(id_tslsi,diag_atm,time,rmask=frac_atm) +endif +#endif + +!+slm,Mar272002 +!------newcanopytemperature-------- +!NOTE,thatintheparticularcaseofLM2t_caisidenticaltot_surf, +!butthiswillbechangedinfutureversionofthelandmadel +if(id_t_ca>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_ca_new,xmap_sfc) +used=fms_diag_send_data(id_t_ca,diag_atm,time) +endif + +!-------updatedsurfacetracerfields------ +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +if(id_tr_surf(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_surf_new(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_surf(tr),diag_atm,time) +endif +!!jgj:adddryvmrco2_surf +!-slmMar25,2010:movedtoresolveinterdependenceofdiagnosticfields +if(id_co2_surf_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then +ex_co2_surf_dvmr=(ex_tr_surf_new(:,tr)/(1.0-ex_tr_surf_new(:,isphum)))*wtmair/wtmco2 +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_surf_dvmr,xmap_sfc) +used=fms_diag_send_data(id_co2_surf_dvmr,diag_atm,time) +endif +enddo + +!-------sensibleheatflux----------- +if(id_t_flux>0.or.id_hfss>0.or.id_hfss_g>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_t,xmap_sfc) +if(id_t_flux>0)used=fms_diag_send_data(id_t_flux,diag_atm,time) +if(id_hfss>0)used=fms_diag_send_data(id_hfss,diag_atm,time) +#ifndefuse_AM3_physics +if(id_hfss_g>0)used=send_global_diag(id_hfss_g,diag_atm,time) +#endif +endif + +!-------netlongwaveflux----------- +if(id_r_flux>0.or.id_rls_g>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_lw,xmap_sfc) +if(id_r_flux>0)used=fms_diag_send_data(id_r_flux,diag_atm,time) +#ifndefuse_AM3_physics +if(id_rls_g>0)used=send_global_diag(id_rls_g,diag_atm,time) +#endif +endif + +!-------tracerfluxes------------ +!tr_mol_fluxdiagnosticwillbecorrectforco2traceronly. +!willneedupdatecodetousecorrectmolarmassfortracersotherthanco2 +dotr=1,n_exch_tr +if(id_tr_flux(tr)>0.or.id_tr_mol_flux(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_tr(:,tr),xmap_sfc) +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) +if(id_tr_flux(tr)>0)used=fms_diag_send_data(id_tr_flux(tr),diag_atm,time) +!if(id_tr_mol_flux(tr)>0)& +!used=fms_diag_end_data(id_tr_mol_flux(tr),diag_atm*1000./WTMCO2,Time) +!2017/08/08jgj-replaced2linesabovebythefollowing +if(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then +used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./wtmco2,time) +!sometimesin2018f1pforvmrtracers +elseif(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_units)).eq."vmr")then +!if(ocn_atm_flux_vmr_bug)then +!callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& +!ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)),xmap_sfc) +!used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./WTMAIR,Time) +!else +!fluxisinvmr*kg/m2/s.DividebyMW_air +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& +ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& +/(1e-3*wtmair*wtmh2o),& +xmap_sfc) +used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm,time) +endif +endif +if(id_tr_con_atm(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_atm(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_con_atm(tr),diag_atm,time) +endif +if(id_tr_con_ref(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_ref(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_con_ref(tr),diag_atm,time) +endif +enddo + +#ifndef_USE_LEGACY_LAND_ +if(id_t_flux_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) +callsend_tile_data(id_t_flux_land,diag_land) +endif +!-------tracerfluxesforland +dotr=1,n_exch_tr +if(id_tr_flux_land(tr)>0.or.id_tr_mol_flux_land(tr)>0)then +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) +if(id_tr_flux_land(tr)>0)callsend_tile_data(id_tr_flux_land(tr),diag_land) +if(id_tr_mol_flux_land(tr)>0)then +if(fms_mpp_lowercase(trim(tr_name))=='co2')then +callsend_tile_data(id_tr_mol_flux_land(tr),diag_land*1000./wtmco2) +elseif(fms_mpp_lowercase(trim(tr_units)).eq.'vmr')then +!fluxisinvmr*kg/m2/s.DividebyMW_air +callfms_xgrid_get_from_xgrid_(diag_land,'LND',& +ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& +/(1e-3*wtmair*wtmh2o),& +xmap_sfc) +callsend_tile_data(id_tr_mol_flux_land(tr),diag_land) +endif +endif +endif +enddo + +!--------tracerdepositionvelocity +dotr=1,n_exch_tr +if(id_tr_con_atm_land(tr)>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_atm(:,tr),xmap_sfc) +callsend_tile_data(id_tr_con_atm_land(tr),diag_land) +endif +if(id_tr_con_ref_land(tr)>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_ref(:,tr),xmap_sfc) +callsend_tile_data(id_tr_con_ref_land(tr),diag_land) +endif +enddo + +#endif + +!----------------------------------------------------------------------- +!----accumulateglobalintegralofevaporation(mm/day)----- +callfms_xgrid_get_from_xgrid(evap_atm,'ATM',ex_flux_tr(:,isphum),xmap_sfc) +if(id_q_flux>0)used=fms_diag_send_data(id_q_flux,evap_atm,time) +if(id_evspsbl>0)used=fms_diag_send_data(id_evspsbl,evap_atm,time) +if(id_hfls>0)used=fms_diag_send_data(id_hfls,hlv*evap_atm,time) +#ifndefuse_AM3_physics +if(id_hfls_g>0)used=send_global_diag(id_hfls_g,hlv*evap_atm,time) +#endif + +if(id_q_flux_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,isphum),xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_q_flux_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_q_flux_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +callfms_sum_diag_integral_field('evap',evap_atm*86400.) + +#ifndefuse_AM3_physics +if(id_evspsbl_g>0)used=send_global_diag(id_evspsbl_g,evap_atm,time) +#endif + +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_q_flux_land,diag_land) +!needthistoavoiddiagissueswithtilingchangesinupdate_land_slow +calldump_tile_diag_fields(time) +#endif +!}ENDSENDDATATODIAG_MANAGER_BUFFER + +!{ +callfms_xgrid_get_from_xgrid_(data_lnd,'LND',ex_flux_tr(:,isphum),xmap_sfc) + +!Lnd->Atm(evap) +callfms_xgrid_stock_move_(& +&to=fms_stock_constants_atm_stock(istock_water),& +&from=fms_stock_constants_lnd_stock(istock_water),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=data_lnd,& +#else +&stock_data3d=data_lnd,& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_side,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP(Lnd->ATm)') + +!Lnd->Atm(heatlostthroughevap) +callfms_xgrid_stock_move_(& +&to=fms_stock_constants_atm_stock(istock_heat),& +&from=fms_stock_constants_lnd_stock(istock_heat),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=data_lnd*hlv,& +#else +&stock_data3d=data_lnd*hlv,& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_side,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Lnd->ATm)') + +callfms_xgrid_get_from_xgrid(data_ice,'OCN',ex_flux_tr(:,isphum),xmap_sfc) + +!Ice->Atm(evap) +callfms_xgrid_stock_move(& +&to=fms_stock_constants_atm_stock(istock_water),& +&from=fms_stock_constants_ice_stock(istock_water),& +&stock_data3d=data_ice,& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_top,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP(Ice->ATm)') + +!Ice->Atm(heatlostthroughevap) +callfms_xgrid_stock_move(& +&to=fms_stock_constants_atm_stock(istock_heat),& +&from=fms_stock_constants_ice_stock(istock_heat),& +&stock_data3d=data_ice*hlv,& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_top,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Ice->ATm)') +!}ENDCOMPUTESTOCKEXCHANGE + +!Balaji +callfms_mpp_clock_end(fluxatmupclock) +callfms_mpp_clock_end(cplclock) +endsubroutineflux_up_to_atmos + + + +subroutineflux_ex_arrays_dealloc() + +implicitnone +integer::m,n + +!----deallocatemodulestorage---- +deallocate(& +ex_t_surf,& +ex_t_surf_miz,& +ex_p_surf,& +ex_slp,& +ex_t_ca,& +ex_dhdt_surf,& +ex_dedt_surf,& +ex_dqsatdt_surf,& +ex_drdt_surf,& +ex_dhdt_atm,& +ex_flux_t,& +ex_flux_lw,& +ex_drag_q,& +ex_avail,& +ex_f_t_delt_n,& +ex_tr_surf,& +ex_tr_con_ref,& +ex_tr_con_atm,& +ex_dfdtr_surf,& +ex_dfdtr_atm,& +ex_flux_tr,& +ex_f_tr_delt_n,& +ex_e_tr_n,& +ex_e_t_n,& +ex_e_q_n,& +!valuesaddedforLM3 +ex_cd_t,& +ex_cd_m,& +ex_b_star,& +ex_u_star,& +ex_wind,& +ex_z_atm,& +ex_con_atm,& +ex_seawater,& +ex_land) + +#ifdefSCM +deallocate(& +ex_dhdt_surf_forland,& +ex_dedt_surf_forland,& +ex_dedq_surf_forland) +#endif + +!Extrafluxes +don=1,ex_gas_fields_ice%num_bcs +dom=1,ex_gas_fields_ice%bc(n)%num_fields +deallocate(ex_gas_fields_ice%bc(n)%field(m)%values) +nullify(ex_gas_fields_ice%bc(n)%field(m)%values) +enddo +enddo + +don=1,ex_gas_fields_atm%num_bcs +dom=1,ex_gas_fields_atm%bc(n)%num_fields +deallocate(ex_gas_fields_atm%bc(n)%field(m)%values) +nullify(ex_gas_fields_atm%bc(n)%field(m)%values) +enddo +enddo + +don=1,ex_gas_fluxes%num_bcs +dom=1,ex_gas_fluxes%bc(n)%num_fields +deallocate(ex_gas_fluxes%bc(n)%field(m)%values) +nullify(ex_gas_fluxes%bc(n)%field(m)%values) +enddo +enddo + +endsubroutineflux_ex_arrays_dealloc + +subroutineflux_atmos_to_ocean(Time,Atm,Ice_boundary,Ice) + +implicitnone +type(FmsTime_type),intent(in)::Time + +type(atmos_data_type),intent(inout)::Atm + +type(atmos_ice_boundary_type),intent(inout)::Ice_boundary + +type(ice_data_type),intent(inout)::Ice + +integer::n,m +logical::used + +#ifndefuse_AM3_physics +callatmos_tracer_driver_gather_data_down(atm%fields,atm%tr_bot) +#endif + +!{ +!air-seadepositionfluxes +don=1,atm%fields%num_bcs +!Dothestringcopies. +atm%fields%bc(n)%flux_type=trim(ex_gas_fluxes%bc(n)%flux_type) +atm%fields%bc(n)%implementation=trim(ex_gas_fluxes%bc(n)%implementation) +if(ex_gas_fields_atm%bc(n)%flux_type.eq.'air_sea_deposition')then +dom=1,atm%fields%bc(n)%num_fields +callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& +ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method) +enddo +endif +enddo +!} + +!{ +callatmos_ocean_dep_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater) +!} + +!{ +don=1,ice_boundary%fluxes%num_bcs +if(ice_boundary%fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then +dom=1,ice_boundary%fluxes%bc(n)%num_fields +callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& +ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) + +callfms_data_override('ICE',ice_boundary%fluxes%bc(n)%field(m)%name,& +ice_boundary%fluxes%bc(n)%field(m)%values,time) +if(ice_boundary%fluxes%bc(n)%field(m)%id_diag>0)then +used=fms_diag_send_data(ice_boundary%fluxes%bc(n)%field(m)%id_diag,& +ice_boundary%fluxes%bc(n)%field(m)%values,time) +endif +enddo +endif +enddo +!} + +!{ +callupdate_ice_atm_deposition_flux(ice_boundary,ice) +!} + +endsubroutineflux_atmos_to_ocean + +subroutineput_logical_to_real_sg(mask,id,ex_mask,xmap) + +implicitnone +logical,intent(in)::mask(:,:,:) +character(len=3),intent(in)::id +real,intent(inout)::ex_mask(:) +type(FmsXgridXmap_type),intent(inout)::xmap + +real,dimension(size(mask,1),size(mask,2),size(mask,3))::rmask + +where(mask) +rmask=1.0 +elsewhere +rmask=0.0 +endwhere + +callfms_xgrid_put_to_xgrid(rmask,id,ex_mask,xmap) + +endsubroutineput_logical_to_real_sg + + +subroutineput_logical_to_real_ug(mask,id,ex_mask,xmap) + +implicitnone +logical,intent(in)::mask(:,:) +character(len=3),intent(in)::id +real,intent(inout)::ex_mask(:) +type(FmsXgridXmap_type),intent(inout)::xmap + + +real,dimension(size(mask,1),size(mask,2))::rmask + +where(mask) +rmask=1.0 +elsewhere +rmask=0.0 +endwhere + +callfms_xgrid_put_to_xgrid_(rmask,id,ex_mask,xmap) + +endsubroutineput_logical_to_real_ug + + +subroutinediag_field_init(Time,atmos_axes,land_axes,land_pe) + +implicitnone +type(FmsTime_type),intent(in)::Time +integer,intent(in)::atmos_axes(2) +integer,intent(in)::land_axes(:) +logical,intent(in)::land_pe + +integer::iref +character(len=6)::label_zm,label_zh +real,dimension(2)::& +trange=[100.,400.],& +vrange=[-400.,400.],& +frange=[-0.01,1.01] +character(len=32)::name,units!nameofthetracer +character(len=128)::longname!longnameofthetracer +integer::tr!tracerindex +integer::area_id + +!{ +!(z_ref_mom,z_ref_heatarenamelistvariables) +iref=int(z_ref_mom+0.5) +if(real(iref)==z_ref_mom)then +write(label_zm,105)iref +if(iref<10)write(label_zm,100)iref +else +write(label_zm,110)z_ref_mom +endif + +iref=int(z_ref_heat+0.5) +if(real(iref)==z_ref_heat)then +write(label_zh,105)iref +if(iref<10)write(label_zh,100)iref +else +write(label_zh,110)z_ref_heat +endif + +100format(i1,'m',3x) +105format(i2,'m',2x) +110format(f4.1,'m') +!} + + +!---------initializestaticdiagnosticfields-------------------- +id_land_mask=& +fms_diag_register_static_field(mod_name,'land_mask',atmos_axes,& +'fractionalamountofland','none',& +range=frange,interp_method="conserve_order1") + +!---------initializediagnosticfields-------------------- + +id_ice_mask=fms_diag_register_diag_field(& +mod_name,'ice_mask',atmos_axes,time,'fractionalamountofseaice','none',range=frange,& +interp_method="conserve_order1") + +id_wind=fms_diag_register_diag_field(& +mod_name,'wind',atmos_axes,time,'windspeedforfluxcalculations','m/s',range=[0.,vrange(2)]) + +id_drag_moist=fms_diag_register_diag_field(& +mod_name,'drag_moist',atmos_axes,time,'dragcoeffformoisture','none') + +id_drag_heat=fms_diag_register_diag_field(& +mod_name,'drag_heat',atmos_axes,time,'dragcoeffforheat','none') + +id_drag_mom=fms_diag_register_diag_field(& +mod_name,'drag_mom',atmos_axes,time,'dragcoeffformomentum','none') + +id_rough_moist=fms_diag_register_diag_field(& +mod_name,'rough_moist',atmos_axes,time,'surfaceroughnessformoisture','m') + +id_rough_heat=fms_diag_register_diag_field(& +mod_name,'rough_heat',atmos_axes,time,'surfaceroughnessforheat','m') + +id_rough_mom=fms_diag_register_diag_field(& +mod_name,'rough_mom',atmos_axes,time,'surfaceroughnessformomentum','m') + +id_u_star=fms_diag_register_diag_field(& +mod_name,'u_star',atmos_axes,time,'frictionvelocity','m/s') + +id_b_star=fms_diag_register_diag_field(& +mod_name,'b_star',atmos_axes,time,'buoyancyscale','m/s2') + +id_q_star=fms_diag_register_diag_field(& +mod_name,'q_star',atmos_axes,time,'moisturescale','kgwater/kgair') + +id_thv_atm=fms_diag_register_diag_field(& +mod_name,'thv_atm',atmos_axes,time,'surfaceairvirtualpotentialtemperature','K') + +id_thv_surf=fms_diag_register_diag_field(& +mod_name,'thv_surf',atmos_axes,time,'surfacevirtualpotentialtemperature','K') + +id_u_flux=fms_diag_register_diag_field(& +mod_name,'tau_x',atmos_axes,time,'zonalwindstress','pa') + +id_v_flux=fms_diag_register_diag_field(& +mod_name,'tau_y',atmos_axes,time,'meridionalwindstress','pa') + +id_t_ocean=fms_diag_register_diag_field(& +mod_name,'t_ocean',atmos_axes,time,'surfacetemperaturefromoceanoutput','deg_k',range=trange) + +id_t_surf=fms_diag_register_diag_field(& +mod_name,'t_surf',atmos_axes,time,'surfacetemperature','deg_k',range=trange) + +!+slm,Mar25,2002--adddiagnositcsfort_ca,q_ca,andq_atm +id_t_ca=fms_diag_register_diag_field(& +mod_name,'t_ca',atmos_axes,time,'canopyairtemperature','deg_k',range=trange) + +!-slm,Mar25,2002 +id_z_atm=fms_diag_register_diag_field(& +mod_name,'z_atm',atmos_axes,time,'heightofbtmlevel','m') + +id_p_atm=fms_diag_register_diag_field(& +mod_name,'p_atm',atmos_axes,time,'pressureatbtmlevel','pa') + +!-bw,Mar25,2002--addeddiagnosticslp +id_slp=fms_diag_register_diag_field(& +mod_name,'slp',atmos_axes,time,'sealevelpressure','pa') + +id_gust=fms_diag_register_diag_field(& +mod_name,'gust',atmos_axes,time,'gustscale','m/s') + +id_t_flux=fms_diag_register_diag_field(& +mod_name,'shflx',atmos_axes,time,'sensibleheatflux','w/m2') + +id_r_flux=fms_diag_register_diag_field(& +mod_name,'lwflx',atmos_axes,time,'net(down-up)longwaveflux','w/m2') + +id_t_atm=fms_diag_register_diag_field(& +mod_name,'t_atm',atmos_axes,time,'temperatureatbtmlevel','deg_k',range=trange) + +id_u_atm=fms_diag_register_diag_field(& +mod_name,'u_atm',atmos_axes,time,'uwindcomponentatbtmlevel','m/s',range=vrange) + +id_v_atm=fms_diag_register_diag_field(& +mod_name,'v_atm',atmos_axes,time,'vwindcomponentatbtmlevel','m/s',range=vrange) + +id_t_ref=fms_diag_register_diag_field(& +mod_name,'t_ref',atmos_axes,time,'temperatureat'//label_zh,'deg_k',range=trange) + +id_rh_ref=fms_diag_register_diag_field(& +mod_name,'rh_ref',atmos_axes,time,'relativehumidityat'//label_zh,'percent') + +id_rh_ref_cmip=fms_diag_register_diag_field(& +mod_name,'rh_ref_cmip',atmos_axes,time,'relativehumidityat'//label_zh,'percent') + +id_u_ref=fms_diag_register_diag_field(& +mod_name,'u_ref',atmos_axes,time,'zonalwindcomponentat'//label_zm,'m/s',range=vrange) + +id_v_ref=fms_diag_register_diag_field(& +mod_name,'v_ref',atmos_axes,time,'meridionalwindcomponentat'//label_zm,'m/s',range=vrange) + +id_wind_ref=fms_diag_register_diag_field(& +mod_name,'wind_ref',atmos_axes,time,'absolutevalueofwindat'//label_zm,'m/s',range=vrange) + +id_del_h=fms_diag_register_diag_field(& +mod_name,'del_h',atmos_axes,time,'refheightinterpfactorforheat','none') + +id_del_m=fms_diag_register_diag_field(& +mod_name,'del_m',atmos_axes,time,'refheightinterpfactorformomentum','none') + +id_del_q=fms_diag_register_diag_field(& +mod_name,'del_q',atmos_axes,time,'refheightinterpfactorformoisture','none') + +if(land_pe)then +!setthedefaultfilter(forareaandsubsampling)forconsequentcallstoregister_tiled_diag_field +#ifndef_USE_LEGACY_LAND_ +callset_default_diag_filter('land') +#endif +id_t_ref_land=fms_diag_register_field_(& +'flux_land','t_ref',land_axes,time,'temperatureat'//trim(label_zh)//'overland','deg_k',& +range=trange,missing_value=-100.0) + +id_q_ref_land=fms_diag_register_field_(& +'flux_land','q_ref',land_axes,time,'specifichumidityat'//trim(label_zh)//'overland','kg/kg',& +missing_value=-1.0) + +id_rh_ref_land=fms_diag_register_field_(& +'flux_land','rh_ref',land_axes,time,'relativehumidityat'//trim(label_zh)//'overland','percent',& +missing_value=-999.0) + +id_u_ref_land=fms_diag_register_field_(& +'flux_land','u_ref',land_axes,time,'zonalwindcomponentat'//trim(label_zm)//'overland','m/s',& +range=vrange,missing_value=-999.0) + +id_v_ref_land=fms_diag_register_field_(& +'flux_land','v_ref',land_axes,time,'meridionalwindcomponentat'//trim(label_zm)//'overland',& +'m/s',range=vrange,missing_value=-999.0) + +id_q_flux_land=fms_diag_register_field_(& +'flux_land','evap',land_axes,time,'evaporationrateoverland','kg/m2/s',missing_value=-1.0) + +id_t_flux_land=fms_diag_register_field_(& +'flux_land','shflx',land_axes,time,'sensibleheatflux','W/m2',missing_value=-1.0) + +id_taslut_land=fms_diag_register_field_(& +'cmor_land','tasLut',land_axes,time,& +'Near-SurfaceAirTemperature('//trim(label_zh)//'AboveDisplacementHeight)onLandUseTile',& +units='K',standard_name='air_temperature',missing_value=-1.0) + +id_husslut_land=fms_diag_register_field_(& +'cmor_land','hussLut',land_axes,time,'Near-SurfaceSpecificHumidityonLandUseTile','1.0',& +standard_name='specific_humidity',missing_value=-1.0) + +allocate(id_tr_flux_land(n_exch_tr)) +allocate(id_tr_mol_flux_land(n_exch_tr)) +allocate(id_tr_con_atm_land(n_exch_tr)) +allocate(id_tr_con_ref_land(n_exch_tr)) +allocate(id_tr_ref_land(n_exch_tr)) + +#ifdef_USE_LEGACY_LAND_ +id_tr_con_atm_land(:)=-1 +id_tr_con_ref_land(:)=-1 +id_tr_ref_land(:)=-1 +#endif + +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) + +id_tr_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_flux',& +land_axes,time,'fluxof'//trim(longname),trim(units)//'kgair/(m2s)',missing_value=-1.0) + +if(fms_mpp_lowercase(trim(name))=='co2')then +id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& +land_axes,time,'fluxof'//trim(longname),'molCO2/(m2s)',missing_value=-1.0) +else +id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& +land_axes,time,'fluxof'//trim(longname),'mol/(m2s)',missing_value=-1.0) +endif + +#ifndef_USE_LEGACY_LAND_ +id_tr_con_atm_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_tot_con_atm',& +land_axes,time,'vdof'//trim(longname),'m/s',missing_value=-1.0) + +id_tr_con_ref_land(tr)=register_diag_field('flux_land',trim(name)//'_tot_con_ref',& +land_axes,time,'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) + +!weskipsphumbecauseitisalreadyavailableasflux_land/q_ref +if(tr.ne.isphum)then +id_tr_ref_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_ref',& +land_axes,time,trim(longname)//'at'//trim(label_zh)//'overland',trim(units),missing_value=-1.0) +else +id_tr_ref_land(tr)=-1 +endif +#endif +enddo +endif + +id_q_ref=fms_diag_register_diag_field(& +mod_name,'q_ref',atmos_axes,time,'specifichumidityat'//trim(label_zh),'kg/kg',missing_value=-1.0) + +id_rough_scale=fms_diag_register_diag_field(& +mod_name,'rough_scale',atmos_axes,time,'topographicscalingfactorformomentumdrag','1') + +allocate(id_tr_atm(n_exch_tr)) +allocate(id_tr_surf(n_exch_tr)) +allocate(id_tr_flux(n_exch_tr)) +allocate(id_tr_mol_flux(n_exch_tr)) +allocate(id_tr_mol_flux0(n_exch_tr)) +allocate(id_tr_con_atm(n_exch_tr)) +allocate(id_tr_con_ref(n_exch_tr)) +allocate(id_tr_ref(n_exch_tr)) + +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) + +id_tr_con_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_atm',atmos_axes,time,& +'vdof'//trim(longname),'m/s',missing_value=-1.0) +id_tr_con_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_ref',atmos_axes,time,& +'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) + +id_tr_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_atm',atmos_axes,time,& +trim(longname)//'atbtmlevel',trim(units)) + +id_tr_surf(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_surf',atmos_axes,time,& +trim(longname)//'atthesurface',trim(units)) + +id_tr_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_flux',atmos_axes,time,& +'fluxof'//trim(longname),trim(units)//'kgair/(m2s)') + +if(tr.ne.isphum)then +id_tr_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_ref',atmos_axes,time,& +trim(longname)//'at'//trim(label_zh),trim(units),missing_value=-1.0) +else +id_tr_ref(tr)=-1 +endif + +!!adddryvmrco2_surfandco2_atm +if(fms_mpp_lowercase(trim(name))=='co2')then +!-slmMar25,2010:movedregistrationofmol_fluxinside'if'todisable +!savingincorrectresults(molfluxesforothertracerscomputedwithCO2molarmass +id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& +'fluxof'//trim(longname),'molCO2/(m2s)') +id_co2_atm_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_atm_dvmr',atmos_axes,time,& +trim(longname)//'atbtmlevel','molCO2/molair') +id_co2_surf_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_surf_dvmr',atmos_axes,time,& +trim(longname)//'atthesurface','molCO2/molair') +else +!f1p +id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& +'fluxof'//trim(longname),'mol/(m2s)') +endif +!f1p +id_tr_mol_flux0(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux_atm0',atmos_axes,time,& +'grossfluxof'//trim(longname),'mol/(m2s)') + +enddo + +!2017/08/08jgjadddiagnosticsforco2dataoverridesevenifco2isnotatracer +!registerdatacallsnotneededhereforco2_flux_pcair_atmando2_flux_pcair_atmasthishappenselsewhere +id_co2_bot=fms_diag_register_diag_field(mod_name,'co2_bot',atmos_axes,time,& +'co2_botfromdata_override','ppmv') + +!id_nh3_flux_atm0=fms_diag_register_diag_field(mod_name,'nh3_flux_atm0',atmos_axes,Time,& +!'nh3fluxoutoftheoceanassumingnotnh3intheatmosphere','mol/m2/s') + + +id_q_flux=fms_diag_register_diag_field(mod_name,'evap',fatmos_axes,time,& +'evaporationrate','kg/m2/s') + +!-------------------------------------------------------------------- +!retrievethediag_manageridfortheareadiagnostic, +!neededforcmorizingvariousdiagnostics. +!-------------------------------------------------------------------- +area_id=fms_diag_get_field_id('dynamics','area') +if(area_id.eq.diag_field_not_found)callfms_error_mesg& +('diag_field_initinatm_land_ice_flux_exchange_mod',& +'diagnosticfield"dynamics","area"isnotinthediag_table',note) + +!----------------------------------------------------------------------- +!registercmipvariablenames +!----------------------------------------------------------------------- +!NOTE:addextradimensionreferencelevelfields?height2m,height10m +!fornowwewillhandlethiswithanattribute + +id_height2m=fms_diag_register_static_field(& +mod_name,'height2m',[null_axis_id],'Height','m',standard_name='height') +if(id_height2m>0)then +callfms_diag_field_add_attribute(id_height2m,'axis','Z') +callfms_diag_field_add_attribute(id_height2m,'positive','up') +endif + +id_height10m=fms_diag_register_static_field(& +mod_name,'height10m',[null_axis_id],'Height','m',standard_name='height') +if(id_height10m>0)then +callfms_diag_field_add_attribute(id_height10m,'axis','Z') +callfms_diag_field_add_attribute(id_height10m,'positive','up') +endif + +#ifdefuse_AM3_physics +id_tas=fms_diag_register_diag_field(& +mod_name,'tas',atmos_axes,time,'Near-SurfaceAirTemperature','K',& +standard_name='air_temperature',area=area_id,missing_value=cmor_missing_value,range=trange) + +if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') + +id_uas=fms_diag_register_diag_field(& +mod_name,'uas',atmos_axes,time,'EastwardNear-SurfaceWind','ms-1',& +standard_name='eastward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) + +if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') + +id_vas=fms_diag_register_diag_field(& +mod_name,'vas',atmos_axes,time,'NorthwardNear-SurfaceWind','ms-1',& +standard_name='northward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) + +if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') + +id_sfcwind=fms_diag_register_diag_field(mod_name,'sfcWind',atmos_axes,time,& +'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed',area=area_id,& +missing_value=cmor_missing_value,range=vrange) + +if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') + +id_huss=fms_diag_register_diag_field(mod_name,'huss',atmos_axes,time,& +'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity',area=area_id,& +missing_value=cmor_missing_value) + +if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') + +id_hurs=fms_diag_register_diag_field(mod_name,'hurs',atmos_axes,time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& +missing_value=cmor_missing_value) + +if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') + +id_rhs=fms_diag_register_diag_field(mod_name,'rhs',atmos_axes,time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& +missing_value=cmor_missing_value) + +if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') + +id_ts=fms_diag_register_diag_field(mod_name,'ts',atmos_axes,time,& +'SurfaceTemperature','K',standard_name='surface_temperature',area=area_id,& +missing_value=cmor_missing_value,range=trange) + +id_psl=fms_diag_register_diag_field(mod_name,'psl',atmos_axes,time,& +'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level',area=area_id,& +missing_value=cmor_missing_value) + +id_tauu=fms_diag_register_diag_field(mod_name,'tauu',atmos_axes,time,& +'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress',& +area=area_id,missing_value=cmor_missing_value) + +id_tauv=fms_diag_register_diag_field(mod_name,'tauv',atmos_axes,time,& +'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress',& +area=area_id,missing_value=cmor_missing_value) + +id_hfss=fms_diag_register_diag_field(mod_name,'hfss',atmos_axes,time,& +'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux',& +area=area_id,missing_value=cmor_missing_value) + +id_hfls=fms_diag_register_diag_field(mod_name,'hfls',atmos_axes,time,& +'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux',& +area=area_id,missing_value=cmor_missing_value) + +if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') + +id_evspsbl=fms_diag_register_diag_field(mod_name,'evspsbl',atmos_axes,time,& +'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux',area=area_id,& +missing_value=cmor_missing_value) + +id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& +'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',area=area_id,& +interp_method="conserve_order1") + +id_tslsi=fms_diag_register_diag_field(mod_name,'tslsi',atmos_axes,time,& +'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',area=area_id,& +mask_variant=.true.,missing_value=cmor_missing_value) + +id_tos=fms_diag_register_diag_field(mod_name,'tos',atmos_axes,time,& +'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',area=area_id,& +mask_variant=.true.,missing_value=cmor_missing_value) + +id_sic=fms_diag_register_diag_field(mod_name,'sic',atmos_axes,time,& +'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction',area=area_id,& +missing_value=cmor_missing_value) + +if(id_sic>0)& +callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') +#else +id_tas=register_cmip_diag_field_2d(mod_name,'tas',time,& +'Near-SurfaceAirTemperature','K',standard_name='air_temperature') + +if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') + +id_uas=register_cmip_diag_field_2d(mod_name,'uas',time,& +'EastwardNear-SurfaceWind','ms-1',standard_name='eastward_wind') + +if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') + +id_vas=register_cmip_diag_field_2d(mod_name,'vas',time,& +'NorthwardNear-SurfaceWind','ms-1',standard_name='northward_wind') + +if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') + +id_sfcwind=register_cmip_diag_field_2d(mod_name,'sfcWind',time,& +'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed') + +if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') + +id_huss=register_cmip_diag_field_2d(mod_name,'huss',time,& +'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity') + +if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') + +id_hurs=register_cmip_diag_field_2d(mod_name,'hurs',time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') + +if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') + +id_rhs=register_cmip_diag_field_2d(mod_name,'rhs',time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') + +if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') + +id_ts=register_cmip_diag_field_2d(mod_name,'ts',time,& +'SurfaceTemperature','K',standard_name='surface_temperature') + +id_psl=register_cmip_diag_field_2d(mod_name,'psl',time,& +'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level') + +id_tauu=register_cmip_diag_field_2d(mod_name,'tauu',time,& +'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress') + +id_tauv=register_cmip_diag_field_2d(mod_name,'tauv',time,& +'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress') + +id_hfss=register_cmip_diag_field_2d(mod_name,'hfss',time,& +'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') + +id_hfls=register_cmip_diag_field_2d(mod_name,'hfls',time,& +'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') +if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') + +id_evspsbl=register_cmip_diag_field_2d(mod_name,'evspsbl',time,& +'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux') + +id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& +'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',& +area=area_id,interp_method='conserve_order1') + +id_tslsi=register_cmip_diag_field_2d(mod_name,'tslsi',time,& +'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',mask_variant=.true.) + + +!tos,sicareocean,seaIcefieldsontheatmosgrid +!usefulforamip-typeruns + +id_tos=register_cmip_diag_field_2d(mod_name,'tos',time,& +'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',mask_variant=.true.) + +id_sic=register_cmip_diag_field_2d(mod_name,'sic',time,& +'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction') + +if(id_sic>0)& +callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') + +!-----initializeglobalintegralsfornetCDFoutput----- +id_evspsbl_g=register_global_diag_field(& +'evspsbl',time,'Evaporation','mmd-1',standard_name='water_evaporation_flux') + +id_ts_g=register_global_diag_field(& +'ts',time,'SurfaceTemperature','K',standard_name='surface_temperature') + +id_tas_g=register_global_diag_field(& +'tas',time,'Near-SurfaceAirTemperature','K',standard_name='air_temperature') + +if(id_tas_g>0.and.id_height2m>0)& +callfms_diag_field_add_attribute(get_global_diag_field_id(id_tas_g),'coordinates','height2m') + +id_tasl_g=register_global_diag_field(& +'tasl',time,'Near-SurfaceAirTemperature(LandOnly)','K',standard_name='air_temperature') + +#ifdefined(_USE_LEGACY_LAND_)||defined(use_AM3_physics) +if(id_tasl_g>0)then +callfms_mpp_error(warning,"diag_field_init:fieldtaslisregistered,butmacro"//& +"_USE_LEGACY_LAND_oruse_AM3_physicsisdefined,nodatawillbewrittenout") +endif +#endif +if(id_tasl_g>0.and.id_height2m>0)& +callfms_diag_field_add_attribute(get_global_diag_field_id(id_tasl_g),'coordinates','height2m') + +id_hfss_g=register_global_diag_field('hfss',time,& +'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') + +id_hfls_g=register_global_diag_field('hfls',time,& +'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') + +if(id_hfls_g>0)& +callfms_diag_field_add_attribute(get_global_diag_field_id(id_hfls_g),'comment','Lv*evap') + +id_rls_g=register_global_diag_field('rls',time,& +'NetLongwaveSurfaceRadiation','Wm-2',standard_name='surface_net_longwave_flux') + +#endif + +endsubroutinediag_field_init + + +subroutinedivide_by_area(data,area) + +implicitnone +real,intent(inout)::data(:,:) +real,intent(in)::area(:,:) + +if(size(data,dim=1)/=size(area,dim=1).or.size(data,dim=2)/=size(area,dim=2))return + +where(area/=0.0) +data=data/area +endwhere + +endsubroutinedivide_by_area + +!Thiswascalledinsideflux_ocean_to_ice.Why? +subroutinesend_ice_mask_sic(Time) + +implicitnone +type(FmsTime_type),intent(in)::Time + +real,dimension(nxc_ice,nyc_ice,nk_ice)::ice_frac +real,dimension(n_xgrid_sfc)::ex_ice_frac +real,dimension(ni_atm,nj_atm)::diag_atm,ocean_frac +logical::used + +if(id_ice_mask>0.or.id_sic>0)then + +ice_frac=1. +ice_frac(:,:,1)=0. +ex_ice_frac=0. + +callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ice_frac,xmap_sfc) + +if(id_ice_mask>0)used=fms_diag_send_data(id_ice_mask,diag_atm,time) + +if(id_sic>0)then +ice_frac=1. +ex_ice_frac=0. +callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) +callfms_xgrid_get_from_xgrid(ocean_frac,'ATM',ex_ice_frac,xmap_sfc) +where(ocean_frac>0.0) +diag_atm=min(1.,diag_atm/ocean_frac)!CMIP6asfraction +ocean_frac=1.0 +elsewhere +diag_atm=0.0 +ocean_frac=0.0 +endwhere +used=fms_diag_send_data(id_sic,diag_atm,time,rmask=ocean_frac) +endif +endif + +endsubroutinesend_ice_mask_sic + +!####################################################################### + +subroutineatm_stock_integrate(Atm,res) + +implicitnone +type(atmos_data_type),intent(in)::Atm +real,intent(out)::res + +integer::ier + +callfms_xgrid_stock_integrate_2d(atm%lprec+atm%fprec,xmap=xmap_sfc,delta_t=dt_atm,& +&radius=radius,res=res,ier=ier) + +endsubroutineatm_stock_integrate + +!######################################################################### + +endmoduleatm_land_ice_flux_exchange_mod + +#undefFMS_DATA_OVERRIDE_ +#undefFMS_XGRID_PUT_TO_XGRID_ +#undefFMS_XGRID_STOCK_MOVE_ +#undefFMS_XGRID_SET_FRAC_AREA_ +#undefFMS_XGRID_GET_FROM_XGRID_ +#undefFMS_DIAG_REGISTER_FIELD_ + + + + diff --git a/docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml b/docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml new file mode 100644 index 00000000..c197f4a4 --- /dev/null +++ b/docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml @@ -0,0 +1,121 @@ + + + + atmos_ocean_dep_fluxes_calc.F90 + atmos_ocean_dep_fluxes_calc_mod + +Calculates ocean and atmosphere deposition gas fluxes. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +moduleatmos_ocean_dep_fluxes_calc_mod + +usefms + +implicitnone + +character(len=*),parameter::mod_name="aodfc" +contains + +! +!!\throwFATAL,"Numberofgasfluxesnotzero" +!!\throwFATAL,"atmos_ocean_dep_fluxes_calc:Badparameter([gas_fluxes%bc(n)%param(1)])forair_sea_depositionfor +!![gas_fluxes%bc(n)%name]" +!!\throwFATAL,"atmos_ocean_dep_fluxes_calc:Unknownimplementation([gas_fluxes%bc(n)%implementation]for +!![gas_fluxes%bc(n)%name]" +subroutineatmos_ocean_dep_fluxes_calc(gas_fields_atm,gas_fields_ice,gas_fluxes,seawater) +type(FmsCoupler1dBC_type),intent(in)::gas_fields_atm +type(FmsCoupler1dBC_type),intent(in)::gas_fields_ice +type(FmsCoupler1dBC_type),intent(inout)::gas_fluxes +real,dimension(:),intent(in)::seawater + +character(len=64),parameter::sub_name='atmos_ocean_dep_fluxes_calc' +character(len=256),parameter::error_header=& +&'==>Errorfrom'//trim(mod_name)//'('//trim(sub_name)//'):' + +integer::n +integer::i +integer::length +real,dimension(:),allocatable::kw +real,dimension(:),allocatable::cair +character(len=128)::error_string + +real,parameter::permeg=1.0e-6 + +!Returnifnofluxestobecalculated + +if(gas_fluxes%num_bcs.le.0)return + +if(.not.associated(gas_fluxes%bc))then +if(gas_fluxes%num_bcs.ne.0)then +callfms_mpp_error(fatal,trim(error_header)//'Numberofgasfluxesnotzero') +else +return +endif +endif + +don=1,gas_fluxes%num_bcs +!onlydocalculationsifthefluxhasnotbeenoverridden +if(.not.gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%override)then +if(gas_fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then +if(gas_fluxes%bc(n)%param(1).le.0.0)then +write(error_string,'(1pe10.3)')gas_fluxes%bc(n)%param(1) +callfms_mpp_error(fatal,'atmos_ocean_dep_fluxes_calc:Badparameter('//& +&trim(error_string)//')forair_sea_depositionfor'//& +&trim(gas_fluxes%bc(n)%name)) +endif + +length=size(gas_fluxes%bc(n)%field(1)%values(:)) + +if(gas_fluxes%bc(n)%implementation.eq.'dry')then +doi=1,length +if(seawater(i)==1.)then +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& +gas_fields_atm%bc(n)%field(fms_coupler_ind_deposition)%values(i)/gas_fluxes%bc(n)%param(1) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +endif +enddo +elseif(gas_fluxes%bc(n)%implementation.eq.'wet')then +doi=1,length +if(seawater(i)==1.)then +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& +gas_fields_atm%bc(n)%field(fms_coupler_ind_deposition)%values(i)/gas_fluxes%bc(n)%param(1) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +endif +enddo +else +callfms_mpp_error(fatal,'atmos_ocean_dep_fluxes_calc:Unknownimplementation('& +&//trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) +endif +else +cycle +endif +endif +enddo +endsubroutineatmos_ocean_dep_fluxes_calc +endmoduleatmos_ocean_dep_fluxes_calc_mod + + + + diff --git a/docs/xml/atmos__ocean__fluxes__calc_8_f90.xml b/docs/xml/atmos__ocean__fluxes__calc_8_f90.xml new file mode 100644 index 00000000..3f8f14c3 --- /dev/null +++ b/docs/xml/atmos__ocean__fluxes__calc_8_f90.xml @@ -0,0 +1,411 @@ + + + + atmos_ocean_fluxes_calc.F90 + atmos_ocean_fluxes_calc_mod + +Calculates gas fluxes for atmosphere and ocean. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +moduleatmos_ocean_fluxes_calc_mod + +usefms +usefmsconstants,only:wtmair,rdgas,vonkarm + +implicitnone +private + +publicatmos_ocean_fluxes_calc + +character(len=*),parameter::mod_name="cdwfe" + +real,parameter::epsln=1.0e-30 +contains +! +!!\throwFATAL,"Numberofgasfluxesnotzero" +!!\throwFATAL,"Lengthsoffluxfieldsdonotmatch" +!!\throwFATAL,"Unknownimplementation([implementation])for[name]" +!!\throwFATAL,"Lengthsoffluxfieldsdonotmatch" +!!\throwFATAL,"Badparameter([gas_fluxes%bc(n)%param(1)])forland_sea_runofffor[name]" +!!\throwFATAL,"Unknownfluxtype([flux_type])for[name]" +subroutineatmos_ocean_fluxes_calc(gas_fields_atm,gas_fields_ice,& +&gas_fluxes,seawater,tsurf,ustar,cd_m) +type(FmsCoupler1dBC_type),intent(in)::gas_fields_atm +type(FmsCoupler1dBC_type),intent(in)::gas_fields_ice +type(FmsCoupler1dBC_type),intent(inout)::gas_fluxes +real,dimension(:),intent(in)::seawater +real,dimension(:),intent(in)::tsurf +real,dimension(:),intent(in),optional::ustar,cd_m + +character(len=*),parameter::sub_name='atmos_ocean_fluxes_calc' +character(len=*),parameter::error_header=& +&'==>Errorfrom'//trim(mod_name)//'('//trim(sub_name)//'):' + +integer::n +integer::i +integer::length +real,dimension(:),allocatable::kw +real,dimension(:),allocatable::cair +character(len=128)::error_string + +real,parameter::permeg=1.0e-6 + +!Returnifnofluxestobecalculated +if(gas_fluxes%num_bcs.le.0)return + +if(.not.associated(gas_fluxes%bc))then +if(gas_fluxes%num_bcs.ne.0)then +callfms_mpp_error(fatal,trim(error_header)//'Numberofgasfluxesnotzero') +else +return +endif +endif + +don=1,gas_fluxes%num_bcs +!onlydocalculationsifthefluxhasnotbeenoverridden +if(.not.gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%override)then +if(gas_fluxes%bc(n)%flux_type.eq.'air_sea_gas_flux_generic')then +length=size(gas_fluxes%bc(n)%field(1)%values(:)) + +if(.not.allocated(kw))then +allocate(kw(length)) +allocate(cair(length)) +elseif(size(kw(:)).ne.length)then +callfms_mpp_error(fatal,trim(error_header)//'Lengthsoffluxfieldsdonotmatch') +endif + +if(gas_fluxes%bc(n)%implementation.eq.'ocmip2')then +doi=1,length +if(seawater(i)==1.)then +gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=& +&gas_fluxes%bc(n)%param(1)*gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)**2 +cair(i)=& +gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& +gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& +gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(2) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& +&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& +&sqrt(660./(gas_fields_ice%bc(n)%field(fms_coupler_ind_sc_no)%values(i)+epsln))*& +&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=& +&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& +&sqrt(660./(gas_fields_ice%bc(n)%field(fms_coupler_ind_sc_no)%values(i)+epsln))*& +&gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i) +gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=& +&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i))/& +(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*permeg+epsln) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=0.0 +cair(i)=0.0 +endif +enddo +elseif(gas_fluxes%bc(n)%implementation.eq.'duce')then +doi=1,length +if(seawater(i)==1.)then +gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)/& +&(770.+45.*gas_fluxes%bc(n)%param(1)**(1./3.))*& +&101325./(rdgas*wtmair*1e-3*tsurf(i)*& +&max(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i),epsln)) +!alpha:mol/m3/atm +cair(i)=& +gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& +gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& +gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*9.86923e-6 +cair(i)=max(cair(i),0.) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& +&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& +&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i)) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=& +&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& +&max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.) +gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=& +&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i))/& +&(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*permeg+epsln) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=0.0 +cair(i)=0.0 +endif +enddo +elseif(gas_fluxes%bc(n)%implementation.eq.'johnson')then +!f1p:notsurehowtopasssalinity.Fornow,justforceat35. +doi=1,length +if(seawater(i)==1.)then +!calc_kw(tk,p,u10,h,vb,mw,sc_w,ustar,cd_m) +gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=& +&calc_kw(tsurf(i),& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i),& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i),& +&101325./(rdgas*wtmair*1e-3*tsurf(i)*& +max(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i),epsln)),& +&gas_fluxes%bc(n)%param(2),& +&gas_fluxes%bc(n)%param(1),& +&gas_fields_ice%bc(n)%field(fms_coupler_ind_sc_no)%values(i)) +cair(i)=& +&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*9.86923e-6 +cair(i)=max(cair(i),0.) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& +&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& +&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i)) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=& +&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& +&max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.) +gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=& +&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i))/& +&(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*permeg+epsln) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=0.0 +gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=0.0 +cair(i)=0.0 +endif +enddo +else +callfms_mpp_error(fatal,'Unknownimplementation('//& +&trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) +endif +elseif(gas_fluxes%bc(n)%flux_type.eq.'air_sea_gas_flux')then +length=size(gas_fluxes%bc(n)%field(1)%values(:)) + +if(.not.allocated(kw))then +allocate(kw(length)) +allocate(cair(length)) +elseif(size(kw(:)).ne.length)then +callfms_mpp_error(fatal,trim(error_header)//'Lengthsoffluxfieldsdonotmatch') +endif + +if(gas_fluxes%bc(n)%implementation.eq.'ocmip2_data')then +doi=1,length +if(seawater(i)==1.)then +kw(i)=gas_fluxes%bc(n)%param(1)*gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i) +cair(i)=& +&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(2) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=kw(i)*& +&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +cair(i)=0.0 +kw(i)=0.0 +endif +enddo +elseif(gas_fluxes%bc(n)%implementation.eq.'ocmip2')then +doi=1,length +if(seawater(i)==1.)then +kw(i)=gas_fluxes%bc(n)%param(1)*gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)**2 +cair(i)=& +&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(2) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=kw(i)*& +&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +cair(i)=0.0 +kw(i)=0.0 +endif +enddo +elseif(gas_fluxes%bc(n)%implementation.eq.'linear')then +doi=1,length +if(seawater(i)==1.)then +kw(i)=gas_fluxes%bc(n)%param(1)*& +&max(0.0,gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)-gas_fluxes%bc(n)%param(2)) +cair(i)=& +&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(3) +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=kw(i)*& +&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +cair(i)=0.0 +kw(i)=0.0 +endif +enddo +else +callfms_mpp_error(fatal,'Unknownimplementation('//& +&trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) +endif +elseif(gas_fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then +cycle!air_sea_depositionisdoneinanothersubroutine +elseif(gas_fluxes%bc(n)%flux_type.eq.'land_sea_runoff')then +if(gas_fluxes%bc(n)%param(1).le.0.0)then +write(error_string,'(1pe10.3)')gas_fluxes%bc(n)%param(1) +callfms_mpp_error(fatal,'Badparameter('//trim(error_string)//& +&')forland_sea_runofffor'//trim(gas_fluxes%bc(n)%name)) +endif + +length=size(gas_fluxes%bc(n)%field(1)%values(:)) + +if(gas_fluxes%bc(n)%implementation.eq.'river')then +doi=1,length +if(seawater(i)==1.)then +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& +&gas_fields_atm%bc(n)%field(fms_coupler_ind_deposition)%values(i)/& +&gas_fluxes%bc(n)%param(1) +else +gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 +endif +enddo +else +callfms_mpp_error(fatal,'Unknownimplementation('//& +&trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) +endif +else +callfms_mpp_error(fatal,'Unknownflux_type('//trim(gas_fluxes%bc(n)%flux_type)//& +&')for'//trim(gas_fluxes%bc(n)%name)) +endif +endif +enddo + +if(allocated(kw))then +deallocate(kw) +deallocate(cair) +endif +endsubroutineatmos_ocean_fluxes_calc + +realfunctioncalc_kw(tk,p,u10,h,vb,mw,sc_w,ustar,cd_m) +real,intent(in)::tk +real,intent(in)::p +real,intent(in)::u10 +real,intent(in)::h +real,intent(in)::vb +real,intent(in)::mw +real,intent(in)::sc_w +real,intent(in),optional::ustar +real,intent(in),optional::cd_m + +real::ra,rl,tc + +tc=tk-273.15 +ra=1./max(h*calc_ka(tc,p,mw,vb,u10,ustar,cd_m),epsln) +rl=1./max(calc_kl(tc,u10,sc_w),epsln) +calc_kw=1./max(ra+rl,epsln) +endfunctioncalc_kw + +realfunctioncalc_ka(t,p,mw,vb,u10,ustar,cd_m) +real,intent(in)::t +real,intent(in)::p +real,intent(in)::mw +real,intent(in)::vb +real,intent(in)::u10 +real,intent(in),optional::ustar +real,intent(in),optional::cd_m + +real::sc +real::ustar_t,cd_m_t + +if(.not.present(ustar))then +!dragcoefficient +cd_m_t=6.1e-4+0.63e-4*u10 +!frictionvelocity +ustar_t=u10*sqrt(cd_m_t) +else +cd_m_t=cd_m +ustar_t=ustar +endif +sc=schmidt_g(t,p,mw,vb) +calc_ka=1e-3+ustar_t/(13.3*sqrt(sc)+1/sqrt(cd_m_t)-5.+log(sc)/(2.*vonkarm)) +endfunctioncalc_ka + +realfunctioncalc_kl(t,v,sc) +real,intent(in)::t +real,intent(in)::v +real,intent(in)::sc + +calc_kl=(((0.222*v**2)+0.333*v)*(max(sc,epsln)/600.)**(-0.5))/(100.*3600.) +endfunctioncalc_kl + +realfunctionschmidt_g(t,p,mw,vb) +real,intent(in)::t +real,intent(in)::p +real,intent(in)::mw +real,intent(in)::vb + +real::d,v + +d=d_air(t,p,mw,vb) +v=v_air(t) +schmidt_g=v/d +endfunctionschmidt_g + +realfunctiond_air(t,p,mw,vb) +real,intent(in)::t +real,intent(in)::p +real,intent(in)::mw +real,intent(in)::vb + +real,parameter::ma=28.97d0 +real,parameter::va=20.1d0 + +real::pa + +!convertptoatm +pa=9.8692d-6*p +d_air=1d-3*& +&(t+273.15d0)**(1.75d0)*sqrt(1d0/ma+1d0/mw)/(pa*(va**(1d0/3d0)+vb**(1d0/3d0))**2d0) +!d_airisincm2/sconverttom2/s +d_air=d_air*1d-4 +endfunctiond_air + +realfunctionp_air(t) +real,intent(in)::t + +real,parameter::sd_0=1.293393662d0,& +&sd_1=-5.538444326d-3,& +&sd_2=3.860201577d-5,& +&sd_3=-5.2536065d-7 +p_air=sd_0+(sd_1*t)+(sd_2*t**2)+(sd_3*t**3) +endfunctionp_air + +realfunctionv_air(t) +real,intent(in)::t +v_air=n_air(t)/p_air(t) +endfunctionv_air + +realfunctionn_air(t) +real,intent(in)::t + +real,parameter::sv_0=1.715747771d-5,& +&sv_1=4.722402075d-8,& +&sv_2=-3.663027156d-10,& +&sv_3=1.873236686d-12,& +&sv_4=-8.050218737d-14 +!inn.s/m^2(pa.s) +n_air=sv_0+(sv_1*t)+(sv_2*t**2)+(sv_3*t**3)+(sv_4*t**4) +endfunctionn_air +endmoduleatmos_ocean_fluxes_calc_mod + + + + diff --git a/docs/xml/combine.xslt b/docs/xml/combine.xslt new file mode 100644 index 00000000..c148ee4f --- /dev/null +++ b/docs/xml/combine.xslt @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/docs/xml/compound.xsd b/docs/xml/compound.xsd new file mode 100644 index 00000000..81b5e513 --- /dev/null +++ b/docs/xml/compound.xsd @@ -0,0 +1,1131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/xml/coupler_config.xml b/docs/xml/coupler_config.xml new file mode 100644 index 00000000..5951bf13 --- /dev/null +++ b/docs/xml/coupler_config.xml @@ -0,0 +1,63 @@ + + + + coupler_config + Coupler Configuration + +coupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables. + +coupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables. +Variable Name Type Default Value Description + +current_date integer, dimension(6) (/0,0,0,0,0,0/) The date that the current integration starts with. + +force_date_from_namelist logical .FALSE. Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has not effect, the value of current_date will be used. + +calendar character(len=17) '' The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' can not be used because the time_manager's date function are used. All values must be lowercase. + +months integer 0 The number of months that the current integration will be run for. + +days integer 0 The number of days that the current integration will be run for. + +hours integer 0 The number of hours that the current integration will be run for. + +minutes integer 0 The number of minutes that the current integration will be run for. + +seconds integer 0 The number of seconds that the current integration will be run for. + +dt_atmos integer 0 Atmospheric model time step in seconds, including the fast coupling with land and sea ice. + +dt_cpld integer 0 Time step in seconds for coupling between ocean and atmospheric models: must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. + +do_atmos, do_ocean, do_ice, do_land, do_flux logical .TRUE. If true (default), that particular model component (atmos, etc.) is run. If false, the execution of that component is skipped. This is used when ALL the output fields sent by that component to the coupler have been overridden using the data_override feature. For advanced users only: if you're not sure, you should leave these values at TRUE. + +concurrent logical .FALSE. If true, the ocean executes concurrently with the atmosphere-land-ocean on a separate set of PEs. If false (default), the execution is serial: call atmos... followed by call ocean... If using concurrent execution, you must set one of atmos_npes and ocean_npes, see below. + +do_concurrent_radiation logical .FALSE. If true then radiation is done concurrently. + +atmos_npes, ocean_npes integer none If concurrent is set to true, we use these to set the list of PEs on which each component runs. At least one of them must be set to a number between 0 and NPES. If exactly one of these two is set non-zero, the other is set to the remainder from NPES. If both are set non-zero they must add up to NPES. + +atmos_nthreads, ocean_nthreads integer 1 We set here the number of OpenMP threads to use separately for each component. + +radiation_nthreads integer 1 Number of threads to use for the concurrent radiation when do_concurrent_radiation = .true., otherwise is equal to atmos_nthreads + +use_lag_fluxes logical .TRUE. If true, the ocean is forced with SBCs from one coupling timestep ago. If false, the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. + +concurrent_ice logical .FALSE. If true, the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=true, this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. + +slow_ice_with_ocean logical .FALSE. If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. + +restart_interval integer, dimension(6) (/0,0,0,0,0,0/) The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out. + +do_debug logical .FALSE. If .TRUE. print additional debugging messages. + +do_chksum logical .FALSE. Turns on/off checksum of certain variables. + +do_endpoint_chksum logical .TRUE. Report checksums of the start and end states of certain variables. +
                                                                                                                                                                              +
                                                                                                                                                                              +If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.The run length must be an intergal multiple of the coupling timestep dt_cpld. + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              diff --git a/docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml b/docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml new file mode 100644 index 00000000..edeae762 --- /dev/null +++ b/docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml @@ -0,0 +1,12 @@ + + + + shared + surface_flux.F90 + + + + + + + diff --git a/docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml b/docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml new file mode 100644 index 00000000..40d47506 --- /dev/null +++ b/docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml @@ -0,0 +1,12 @@ + + + + SHiELD + coupler_main.F90 + + + + + + + diff --git a/docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml b/docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml new file mode 100644 index 00000000..381251c5 --- /dev/null +++ b/docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml @@ -0,0 +1,14 @@ + + + + simple + coupler_main.F90 + flux_exchange.F90 + ice_model.F90 + + + + + + + diff --git a/docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml b/docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml new file mode 100644 index 00000000..b0034b30 --- /dev/null +++ b/docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml @@ -0,0 +1,19 @@ + + + + full + atm_land_ice_flux_exchange.F90 + atmos_ocean_dep_fluxes_calc.F90 + atmos_ocean_fluxes_calc.F90 + coupler_main.F90 + flux_exchange.F90 + full_coupler_mod.F90 + ice_ocean_flux_exchange.F90 + land_ice_flux_exchange.F90 + + + + + + + diff --git a/docs/xml/flux_exchange_conf.xml b/docs/xml/flux_exchange_conf.xml new file mode 100644 index 00000000..64659a59 --- /dev/null +++ b/docs/xml/flux_exchange_conf.xml @@ -0,0 +1,34 @@ + + + + flux_exchange_conf + Flux Exchange Configuration + +flux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables. + +flux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables. +Variable Name Type Default Value Description + +z_ref_heat real 2.0 Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q). + +z_ref_mom real 10.0 Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m). + +do_area_weighted_flux logical .FALSE. + +debug_stocks logical .FALSE. + +divert_stocks_report logical .FALSE. + +do_runoff logical .TRUE. Turns on/off the land runoff interpolation to the ocean. + +do_forecast logical .FALSE. + +nblocks integer 1 Specify number of blocks that n_xgrid_sfc is divided into. The main purpose is for Openmp implementation. Normally you may set nblocks to be coupler_nml atmos_nthreads. + +partition_fprec_from_lprec logical .FALSE. Option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter + +scale_precip_2d logical .false. Option to scale the Atmlprec. If this varible is set to .true. Atmlprec will be rescaled by a field read from the data_table +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              diff --git a/docs/xml/full_2coupler__main_8_f90.xml b/docs/xml/full_2coupler__main_8_f90.xml new file mode 100644 index 00000000..6eb02263 --- /dev/null +++ b/docs/xml/full_2coupler__main_8_f90.xml @@ -0,0 +1,426 @@ + + + + coupler_main.F90 + omp_lib + + + program + program coupler_main + + coupler_main + + + + + +FATAL +no namelist value for current_date + + +A namelist value for current_date must be given if no restart file for coupler_main (INPUT/coupler.res) is found. + + + +FATAL +invalid namelist value for calendar + + +The value of calendar must be 'gregorian', 'julian', 'noleap', or 'thirty_day'. See the namelist documentation. + + + +FATAL +no namelist value for calendar + + +If no restart file is present, then a namelist value for calendar must be specified. + + + +FATAL +initial time is greater than current time + + +If a restart file is present, then the namelist value for either current_date or start_date was incorrectly set. + + + +FATAL +run length must be multiple of ocean time step + + +There must be an even number of ocean time steps for the requested run length. + + + +FATAL +final time does not match expected ending time + + +This error should probably not occur because of checks done at initialization time. + + + + + + + + + +Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean). + +Please see the main page for additional information. + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** + + + +programcoupler_main + +!---F90moduleforOpenMP +useomp_lib +usefms +usefull_coupler_mod + +implicitnone + +type(atmos_data_type),target::atm +type(land_data_type),target::land +type(ice_data_type),target::ice +!allowmembersofoceantypetobealiased(ap) +type(ocean_public_type),target::ocean +type(ocean_state_type),pointer::ocean_state=>null() + +type(atmos_land_boundary_type),target::Atmos_land_boundary +type(atmos_ice_boundary_type),target::Atmos_ice_boundary +type(land_ice_atmos_boundary_type),target::Land_ice_atmos_boundary +type(land_ice_boundary_type),target::Land_ice_boundary +type(ice_ocean_boundary_type),target::Ice_ocean_boundary +type(ocean_ice_boundary_type),target::Ocean_ice_boundary +type(ice_ocean_driver_type),pointer::ice_ocean_driver_CS=>null() + +type(FmsTime_type)::Time +type(FmsTime_type)::Time_step_atmos,Time_step_cpld +type(FmsTime_type)::Time_atmos,Time_ocean +type(FmsTime_type)::Time_flux_ice_to_ocean,Time_flux_ocean_to_ice + +integer::num_atmos_calls,na +integer::num_cpld_calls,nc +integer::current_timestep + +type(FmsNetcdfDomainFile_t),dimension(:),pointer::Ice_bc_restart=>null() +type(FmsNetcdfDomainFile_t),dimension(:),pointer::Ocn_bc_restart=>null() + +type(FmsTime_type)::Time_restart,Time_start,Time_end,Time_restart_current + +type(coupler_clock_type)::coupler_clocks +type(coupler_components_type),target::coupler_components_obj +type(coupler_chksum_type)::coupler_chksum_obj + +integer,allocatable::ensemble_pelist(:,:) +integer,allocatable::slow_ice_ocean_pelist(:) +integer::conc_nthreads=1 +real::dsec,omp_sec(2)=0.0,imb_sec(2)=0.0 + +callfms_mpp_init() + +coupler_clocks%initialization=fms_mpp_clock_id('Initialization') +callfms_mpp_clock_begin(coupler_clocks%initialization) + +callfms_init +callfmsconstants_init +callfms_affinity_init + +callcoupler_init(atm,ocean,land,ice,ocean_state,atmos_land_boundary,atmos_ice_boundary,& +ocean_ice_boundary,ice_ocean_boundary,land_ice_atmos_boundary,land_ice_boundary,& +ice_ocean_driver_cs,ice_bc_restart,ocn_bc_restart,ensemble_pelist,slow_ice_ocean_pelist,& +conc_nthreads,coupler_clocks,coupler_components_obj,coupler_chksum_obj,& +time_step_cpld,time_step_atmos,time_atmos,time_ocean,num_cpld_calls,& +num_atmos_calls,time,time_start,time_end,time_restart,time_restart_current) + +if(do_chksum)callcoupler_chksum_obj%get_coupler_chksums('coupler_init+',0) + +callfms_mpp_set_current_pelist() +callfms_mpp_clock_end(coupler_clocks%initialization)!endinitialization +callfms_mpp_clock_begin(coupler_clocks%main)!beginmainloop + +!----------------------------------------------------------------------- + +if(check_stocks>=0.and.do_flux)callcoupler_flux_init_finish_stocks(time,atm,land,ice,ocean_state,& +coupler_clocks,init_stocks=.true.) + +coupled_timestep_loop:donc=1,num_cpld_calls + +if(do_chksum)then +callcoupler_chksum_obj%get_coupler_chksums('top_of_coupled_loop+',nc) +callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('MAIN_LOOP-',nc) +endif + +if(ice%slow_ice_PE.or.ocean%is_ocean_pe)then +callcoupler_flux_ocean_to_ice(ocean,ice,ocean_ice_boundary,coupler_clocks,slow_ice_ocean_pelist) +time_flux_ocean_to_ice=time +if(use_lag_fluxes)then +callcoupler_flux_ice_to_ocean(ice,ocean,ice_ocean_boundary,coupler_clocks) +time_flux_ice_to_ocean=time +endif +endif + +if(do_chksum)then +callcoupler_chksum_obj%get_coupler_chksums('flux_ocn2ice+',nc) +callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('flux_ocn2ice+',nc) +endif + +!needstosithereratherthanattheendofthecouplerloop. +if(check_stocks>0.and.do_flux)callcoupler_flux_check_stocks(nc,time,atm,land,ice,ocean_state,& +coupler_clocks) + +if(do_ice.and.ice%pe)then +if(ice%slow_ice_pe)callcoupler_unpack_ocean_ice_boundary(nc,time_flux_ocean_to_ice,ice,ocean_ice_boundary,& +coupler_clocks,coupler_chksum_obj) + +!Thiscouldbeapointwherethemodelisserializedifthefastand +!slowiceareondifferentPEs.callfms_mpp_set_current_pelist(Ice%pelist) +!iscalledif(.not.Ice%shared_slow_fast_PEs) +callcoupler_exchange_slow_to_fast_ice(ice,coupler_clocks) +if(concurrent_ice)callcoupler_exchange_fast_to_slow_ice(ice,coupler_clocks) +if(ice%fast_ice_pe)callcoupler_set_ice_surface_fields(ice,coupler_clocks) +endif + +atm_pe_block:if(atm%pe)then + +if(.NOT.(do_ice.and.ice%pe).OR.(ice_npes.NE.atmos_npes))callfms_mpp_set_current_pelist(atm%pelist) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('set_ice_surface+',nc) + +callfms_mpp_clock_begin(coupler_clocks%atm) + +if(do_flux)callcoupler_generate_sfc_xgrid(land,ice,coupler_clocks) +callsend_ice_mask_sic(time) + +!----------------------------------------------------------------------- + +callfms_mpp_clock_begin(coupler_clocks%atmos_loop) +fast_integration_loop:dona=1,num_atmos_calls + +time_atmos=time_atmos+time_step_atmos +current_timestep=(nc-1)*num_atmos_calls+na + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('top_of_atmos_loop-',current_timestep) + +if(do_atmos)callcoupler_atmos_tracer_driver_gather_data(atm,coupler_clocks) + +if(do_flux)callcoupler_sfc_boundary_layer(atm,land,ice,land_ice_atmos_boundary,& +time_atmos,current_timestep,coupler_chksum_obj,coupler_clocks) + + +!$OMPPARALLEL& +!$OMP&NUM_THREADS(conc_nthreads)& +!$OMP&DEFAULT(NONE)& +!$OMP&PRIVATE(conc_nthreads)& +!$OMP&SHARED(atmos_nthreads,radiation_nthreads,nc,na,num_atmos_calls,atmos_npes,land_npes,ice_npes)& +!$OMP&SHARED(Time_atmos,Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,Atmos_ice_boundary)& +!$OMP&SHARED(Ocean_ice_boundary)& +!$OMP&SHARED(do_debug,do_flux,do_chksum,do_atmos,do_land,do_ice,do_concurrent_radiation,omp_sec,imb_sec)& +!$OMP&SHARED(coupler_clocks,current_timestep,coupler_chksum_obj) +!$if(omp_get_thread_num()==0)then +!$OMPPARALLEL& +!$OMP&NUM_THREADS(1)& +!$OMP&DEFAULT(NONE)& +!$OMP&PRIVATE(dsec)& +!$OMP&SHARED(atmos_nthreads,radiation_nthreads,nc,na,num_atmos_calls,atmos_npes,land_npes,ice_npes)& +!$OMP&SHARED(Time_atmos,Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,Atmos_ice_boundary)& +!$OMP&SHARED(Ocean_ice_boundary)& +!$OMP&SHARED(do_debug,do_flux,do_chksum,do_atmos,do_land,do_ice,do_concurrent_radiation,omp_sec,imb_sec)& +!$OMP&SHARED(coupler_clocks,current_timestep,coupler_chksum_obj) +!$callomp_set_num_threads(atmos_nthreads) +!$dsec=omp_get_wtime() + +if(do_concurrent_radiation)callfms_mpp_clock_begin(coupler_clocks%concurrent_atmos) + +if(do_atmos)callcoupler_update_atmos_model_dynamics(atm,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +if(.not.do_concurrent_radiation)callcoupler_update_atmos_model_radiation(atm,land_ice_atmos_boundary,& +coupler_clocks,current_timestep,coupler_chksum_obj) + +if(do_atmos)callcoupler_update_atmos_model_down(atm,land_ice_atmos_boundary,& +current_timestep,coupler_chksum_obj,coupler_clocks) + +if(do_flux)callcoupler_flux_down_from_atmos(atm,land,ice,land_ice_atmos_boundary,atmos_land_boundary,& +atmos_ice_boundary,time_atmos,current_timestep,coupler_clocks,coupler_chksum_obj) + +!-------------------------------------------------------------- + +if(do_land.AND.land%pe)callcoupler_update_land_model_fast(land,atmos_land_boundary,atm%pelist,& +current_timestep,coupler_chksum_obj,coupler_clocks) + +if(do_ice.AND.ice%fast_ice_pe)callcoupler_update_ice_model_fast(ice,atmos_ice_boundary,atm%pelist,& +current_timestep,coupler_chksum_obj,coupler_clocks) + +!-------------------------------------------------------------- +if(do_flux)callcoupler_flux_up_to_atmos(land,ice,land_ice_atmos_boundary,atmos_land_boundary,& +atmos_ice_boundary,time_atmos,current_timestep,coupler_chksum_obj,& +coupler_clocks) + +if(do_atmos)callcoupler_update_atmos_model_up(atm,land_ice_atmos_boundary,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +if(do_flux)callcoupler_flux_atmos_to_ocean(atm,atmos_ice_boundary,ice,time_atmos) + +!-------------- +if(do_concurrent_radiation)callfms_mpp_clock_end(coupler_clocks%concurrent_atmos) +!$omp_sec(1)=omp_sec(1)+(omp_get_wtime()-dsec) +!$OMPENDPARALLEL +!$endif +!$if(omp_get_thread_num()==max(0,omp_get_num_threads()-1))then +!----atmosphereradiation---- +if(do_concurrent_radiation)then +!$OMPPARALLEL& +!$OMP&NUM_THREADS(1)& +!$OMP&DEFAULT(NONE)& +!$OMP&PRIVATE(dsec)& +!$OMP&SHARED(Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_ice_boundary,Ocean_ice_boundary,Atmos_land_boundary)& +!$OMP&SHARED(do_chksum,do_debug,omp_sec,num_atmos_calls,na,radiation_nthreads)& +!$OMP&SHARED(coupler_clocks) +!$callomp_set_num_threads(radiation_nthreads) +!$dsec=omp_get_wtime() +callcoupler_update_atmos_model_radiation(atm,land_ice_atmos_boundary,coupler_clocks) +!$omp_sec(2)=omp_sec(2)+(omp_get_wtime()-dsec) +!$OMPENDPARALLEL +endif +!$endif +!$imb_sec(omp_get_thread_num()+1)=imb_sec(omp_get_thread_num()+1)-omp_get_wtime() +!$OMPENDPARALLEL +!$imb_sec(1)=imb_sec(1)+omp_get_wtime() +!$if(do_concurrent_radiation)imb_sec(2)=imb_sec(2)+omp_get_wtime() +!$callomp_set_num_threads(atmos_nthreads+(conc_nthreads-1)*radiation_nthreads) + +callcoupler_update_atmos_model_state(atm,current_timestep,coupler_chksum_obj,coupler_clocks) + +enddofast_integration_loop!endofna(fastloop) + +callfms_mpp_clock_end(coupler_clocks%atmos_loop) + +if(do_land)callcoupler_update_land_model_slow(land,atmos_land_boundary,& +atm%pelist,current_timestep,coupler_chksum_obj,coupler_clocks) + +callcoupler_flux_land_to_ice(land,ice,land_ice_boundary,time,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +atmos_ice_boundary%p=0.0 + +time=time_atmos + +callfms_mpp_clock_end(coupler_clocks%atm) + +endifatm_pe_block + +start_atm_clock2:if(atm%pe)then +callfms_mpp_clock_begin(coupler_clocks%atm) +endifstart_atm_clock2 + +if(do_ice.and.ice%pe)then +if(ice%fast_ice_PE)callcoupler_unpack_land_ice_boundary(ice,land_ice_boundary,coupler_clocks) +if(.not.concurrent_ice)callcoupler_exchange_fast_to_slow_ice(ice,coupler_clocks,& +set_ice_current_pelist=.true.) +if(ice%slow_ice_PE.and..not.combined_ice_and_ocean)& +callcoupler_update_ice_model_slow_and_stocks(ice,coupler_clocks) +if(do_chksum)callcoupler_chksum_obj%get_slow_ice_chksums('update_ice_slow+',nc) +endif!EndofIce%peblock + +end_atm_clock2:if(Atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +callfms_mpp_clock_end(coupler_clocks%atm) +endifend_atm_clock2 + +!UpdateIce_ocean_boundaryusingthenewlycalculatedfluxes. +if((concurrent_ice.or..not.use_lag_fluxes).and..not.combined_ice_and_ocean)then +!thiscouldserializeunlessslow_ice_with_oceanistrue. +if((.not.do_ice).or.(.not.slow_ice_with_ocean))callfms_mpp_set_current_pelist() +if(ice%slow_ice_PE.or.ocean%is_ocean_pe)& +callcoupler_flux_ice_to_ocean(ice,ocean,ice_ocean_boundary,coupler_clocks,& +slow_ice_ocean_pelist=slow_ice_ocean_pelist,set_current_slow_ice_ocean_pelist=.true.) +time_flux_ice_to_ocean=time +endif + +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) +callfms_mpp_clock_begin(coupler_clocks%ocean) + +!ThismaydodataoverrideordiagnosticsonIce_ocean_boundary. +callflux_ice_to_ocean_finish(time_flux_ice_to_ocean,ice_ocean_boundary) + +if(combined_ice_and_ocean)then +callflux_ice_to_ocean_stocks(ice) +callupdate_slow_ice_and_ocean(ice_ocean_driver_cs,ice,ocean_state,ocean,& +ice_ocean_boundary,time_ocean,time_step_cpld) +else +if(do_chksum)callcoupler_chksum_obj%get_ocean_chksums('update_ocean_model-',nc) +!update_ocean_modelsincefluxesdon'tchangehere +if(do_ocean)callcoupler_update_ocean_model(ocean,ocean_state,ice_ocean_boundary,& +time_ocean,time_step_cpld,nc,coupler_chksum_obj) +endif + +!Getstocksfrom"Ice_ocean_boundary"andaddthemtoOceanstocks. +!Thiscallisjustforrecordkeepingofstockstransferand +!doesnotmodifyeitherOceanorIce_ocean_boundary +callflux_ocean_from_ice_stocks(ocean_state,ocean,ice_ocean_boundary) + +callfms_diag_send_complete(time_step_cpld) +time_ocean=time_ocean+time_step_cpld +time=time_ocean + +callfms_mpp_clock_end(coupler_clocks%ocean) +endif + +if(time>=time_restart)& +callcoupler_intermediate_restart(atm,ice,ocean,ocean_state,ocn_bc_restart,ice_bc_restart,& +time,time_restart,time_restart_current,time_start) + +callcoupler_summarize_timestep(nc,num_cpld_calls,coupler_chksum_obj,atm%pe,omp_sec,imb_sec) + +omp_sec(:)=0. +imb_sec(:)=0. + +enddocoupled_timestep_loop + +!----------------------------------------------------------------------- +if(check_stocks>=0.and.do_flux)callcoupler_flux_init_finish_stocks(time,atm,land,ice,ocean_state,& +coupler_clocks,finish_stocks=.true.) + +callfms_mpp_set_current_pelist() +callfms_mpp_clock_end(coupler_clocks%main) + +callcoupler_end(atm,land,ice,ocean,ocean_state,land_ice_atmos_boundary,atmos_ice_boundary,& +atmos_land_boundary,ice_ocean_boundary,ocean_ice_boundary,ocn_bc_restart,ice_bc_restart,& +nc,time,time_start,time_end,time_restart_current,coupler_chksum_obj,coupler_clocks) + +callfms_memutils_print_memuse_stats('MemoryHiWaterMark',always=.true.) +callfms_end + +!----------------------------------------------------------------------- + +endprogramcoupler_main + + + + diff --git a/docs/xml/full_2flux__exchange_8_f90.xml b/docs/xml/full_2flux__exchange_8_f90.xml new file mode 100644 index 00000000..7481c2d7 --- /dev/null +++ b/docs/xml/full_2flux__exchange_8_f90.xml @@ -0,0 +1,793 @@ + + + + flux_exchange.F90 + flux_exchange_mod + +The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved. + +Bruce Wyman Bruce.Wyman@noaa.gov +V. Balaji V.Balaji@noaa.gov +Sergey Malyshev Sergey.Malyshev@noaa.gov + +This version of flux_exchange_mod allows the definition of physically independent grids for atmosphere, land and sea ice. Ice and ocean must share the same physical grid (though the domain decomposition on parallel systems may be different). Grid information is input through the grid_spec file (URL). The masked region of the land grid and ice/ocean grid must "tile" each other. The masked region of the ice grid and ocean grid must be identical. + ATMOSPHERE |----|----|----|----|----|----|----|----| LAND |---|---|---|---|xxx|xxx|xxx|xxx|xxx|xxx| ICE |xxx|xxx|xxx|xxx|---|---|---|---|---|---| OCEAN |xxx|xxx|xxx|xxx|---|---|---|---|---|---| + where |xxx| represents a masked grid pointThe atmosphere, land, and ice grids exchange information using the exchange grid xmap_sfc.The land and ice grids exchange runoff data using the exchange grid xmap_runoff.Transfer of data between the ice bottom and ocean does not require an exchange grid as the grids are physically identical. The flux routines will automatically detect and redistribute data if their domain decompositions are different.To get information from the atmosphere to the ocean it must pass through the ice model, first by interpolating from the atmospheric grid to the ice grid, and then transferring from the ice grid to the ocean grid.Each component model must have a public defined data type containing specific boundary fields. A list of these quantities is located in the NOTES of this document.The surface flux of sensible heat and surface evaporation can be implicit functions of surface temperature. As a consequence, the parts of the land and sea-ice models that update the surface temperature must be called on the atmospheric time stepThe surface fluxes of all other tracers and of momentum are assumed to be explicit functions of all surface parameters.While no explicit reference is made within this module to the implicit treatment of vertical diffusion in the atmosphere and in the land or sea-ice models, the module is designed to allow for simultaneous implicit time integration on both sides of the surface interface.Due to #5, the diffusion part of the land and ice models must be called on the atmospheric time step, although in the case of concurrent-ice coupling, this version of the sea-ice that is called by the atmosphere may later be replaced by a version of the ice that is tightly coupled with the ocean.The fluxes of additional tracers related to biological quantities or the air-sea exchange of gases are accomplished by specifying fields that will be passed between components via the "field_table" and the use of named fields in the coupler_..._bc_types.Any field passed from one component to another may be "faked" to a constant value, or to data acquired from a file, using the data_override feature of FMS. The fields to override are runtime configurable, using the text file data_table for input. See the data_override_mod documentation for more details.We DO NOT RECOMMEND exercising the data override capabilities of the FMS coupler until the user has acquired considerable sophistication in running FMS.Here is a listing of the override capabilities of the flux_exchange module: +FROM the atmosphere boundary TO the exchange grid (in sfc_boundary_layer):t_bot, q_bot, z_bot, p_bot, u_bot, v_bot, p_surf, slp, gustFROM the ice boundary TO the exchange grid (in sfc_boundary_layer):t_surf, rough_mom, rough_heat, rough_moist, albedo, u_surf, v_surfFROM the land boundary TO the exchange grid (in sfc_boundary_layer):t_surf, t_ca, q_ca, rough_mom, rough_heat, albedoFROM the exchange grid TO land_ice_atmos_boundary (in sfc_boundary_layer):t, albedo, land_frac, dt_t, dt_q, u_flux, v_flux, dtaudu, dtaudv, u_star, b_star, rough_momFROM the atmosphere boundary TO the exchange grid (in flux_down_from_atmos):flux_sw, flux_lw, lprec, fprec, coszen, dtmass, delta_t, delta_q, dflux_t, dflux_qFROM the exchange grid TO the land boundary (in flux_down_from_atmos):t_flux, q_flux, lw_flux, sw_flux, lprec, fprec, dhdt, dedt, dedq, drdt, drag_q, p_surfFROM the exchange grid TO the ice boundary (in flux_down_from_atmos):u_flux, v_flux, t_flux, q_flux, lw_flux, lw_flux_dn, sw_flux, sw_flux_dn, lprec, fprec, dhdt, dedt, drdt, coszen, pFROM the land boundary TO the ice boundary (in flux_land_to_ice):runoff, calvingFROM the ice boundary TO the ocean boundary (in flux_ice_to_ocean):u_flux, v_flux, t_flux, q_flux, salt_flux, lw_flux, sw_flux, lprec, fprec, runoff, calving, p, ustar_berg, area_berg, mass_bergFROM the ocean boundary TO the ice boundary (in flux_ocean_to_ice):u, v, t, s, frazil, sea_levelFROM the ice boundary TO the atmosphere boundary (in flux_up_to_atmos):t_surfFROM the land boundary TO the atmosphere boundary (in flux_up_to_atmos):t_ca, t_surf, q_ca +See NOTES below for an explanation of the field names. + +Diagnostic Fields +The table below contains the available diagnostic fields is the flux diagnostic module. +Field Name Units Description + +land_mask none Fractional amount of land + +wind m/s Wind speed for flux calculations + +drag_moist none Drag coeff for moisture + +drag_heat none Drag coeff for heat + +drag_mom none Drag coeff for momentum + +rough_moist m Surface roughness for moisture + +rough_heat m Surface roughness for heat + +rough_mom m Surface roughness for momentum + +u_star m/s Friction velocity + +b_star m/s Buoyancy scale + +q_star kg water/kg air moisture scale + +t_atm deg_k temperature at btm level + +u_atm m/s u wind component at btm level + +v_atm m/s v wind component at btm level + +q_atm kg/kg specific humidity at btm level + +p_atm pa pressure at btm level + +z_atm m height of btm level + +gust m/s gust scale + +rh_ref percent relative humidity at ref height + +t_ref deg_k temperature at ref height + +u_ref m/s zonal wind component at ref height + +v_ref m/s meridional wind component at ref height + +del_h none ref height interp factor for heat + +del_m none ref height interp factor for momentum + +del_q none ref height interp factor for moisture + +tau_x pa zonal wind stress + +tau_y pa meridional wind stress + +ice_mask none fractional amount of sea ice + +t_surf deg_k surface temperature + +t_ca deg_k canopy air temperature + +q_surf kg/kg surface specific humidity + +shflx w/m2 sensible heat flux + +evap kg/m2/s evaporation rate + +lwflx w/m2 net (down-up) longwave flux +
                                                                                                                                                                              +
                                                                                                                                                                              + +Main Program Example +Below is some pseudo-code to illustrate the logic of the main loop.DOslowtimesteps(ocean) +callflux_ocean_to_ice + +callice_slow_up + +DOfasttimesteps(atmos) +callsfc_boundary_layer + +callatmos_down + +callflux_down_from_atmos + +callland_fast + +callice_fast + +callflux_up_to_atmos + +callatmos_up +ENDDO + +callice_slow_dn + +callflux_ice_to_ocean + +callocean +ENDDO +LAND_FAST and ICE_FAST must update the surface temperature + + +Variables In Defined Data Types For Component Models + +Atmosphere +type(atmos_boundary_data_type)::atm + +real,dimension(:)::Atm%lon_bnd&!longitudeaxisgridboxboundariesinradians +!mustbemonotonic +atm%lat_bnd!latitudeaxisgridboxboundariesinradians +!mustbemonotonic +real,dimension(:,:)::Atm%t_bot&!temperatureatlowestmodellevel +Atm%q_bot&!specifichumidityatlowestmodellevel +Atm%z_bot&!heightabovethesurfaceforthelowestmodellevel(m) +Atm%p_bot&!pressureatlowestmodellevel(pa) +Atm%u_bot&!zonalwindcomponentatlowestmodellevel(m/s) +Atm%v_bot&!meridionalwindcomponentatlowestmodellevel(m/s) +Atm%p_surf&!surfacepressure(pa) +Atm%slp&!sealevelpressure(pa) +Atm%gust&!gustinessfactor(m/s) +Atm%flux_sw&!netshortwavefluxatthesurface +Atm%flux_lw&!downwardlongwavefluxatthesurface +Atm%lprec&!liquidprecipitation(kg/m2) +Atm%fprec&!waterequivalentfrozenprecipitation(kg/m2) +Atm%coszen&!cosineofthezenithangle +integer,dimension(4)::Atm%axes!Axisidentifiersreturnedbydiag_axis_initforthe +!atmosphericmodelaxes:x,y,z_full,z_half. +The following five fields are gathered into a data type for convenience in passing this information through the different levels of the atmospheric model these fields are rlated to the simultaneous implicit time steps in the atmosphere and surface models they are described more fully in flux_exchange.tech.ps and in the documntation for vert_diff_modtype(surf_diff_type)::atm%Surf_Diff + +real,dimension(:,:)::Atm%Surf_Diff%dtmass&!dt/masswheredt=atmospherictimestep((i+1)=(i-1)forleapfrog)(s) +!mass=massperunitareaoflowestatmosphehiclayer(Kg/m2)) +atm%Surf_Diff%delta_t&!increment((i+1)=(i-1)forleapfrog)intemperatureof +!lowestatmosphericlayer(K) +atm%Surf_Diff%delta_q&!increment((i+1)=(i-1)forleapfrog)inspecifichumidityof +!lowestatmosphericlayer(nondimensional--Kg/Kg) +atm%Surf_Diff%dflux_t&!derivativeofimplicitpartofdownwardtemperaturefluxattopof +!lowestatmosphericlayerwithrespecttotemperature +!oflowestatmosphericlayer(Kg/(m2s)) +atm%Surf_Diff%dflux_q!derivativeofimplicitpartofdownwardmoisturefluxattopof +!lowestatmosphericlayerwithrespecttospecifichumidityof +!oflowestatmosphericlayer(kg/(m2s)) + + +Land +type(land_boundary_data_type)::land + +real,dimension(:)::Land%lon_bnd&!longitudeaxisgridboxboundariesinradians +!mustbemonotonic +land%lat_bnd!latitudeaxisgridboxboundariesinradians +!mustbemonotonic + +logical,dimension(:,:,:)::Land%mask&!land/seamask(trueforland) +Land%glacier!glaciermask(trueforglacier) + +real,dimension(:,:,:)::Land%tile_size&!fractionalareaofeachtile(partition) +Land%t_surf&!surfacetemperature(degk) +Land%albedo&!surfacealbedo(fraction) +Land%rough_mom&!surfaceroughnessformomentum(m) +Land%rough_heat&!surfaceroughnessforheat/moisture(m) +Land%stomatal&!stomatalresistance +Land%snow&!snowdepth(waterequivalent)(kg/m2) +Land%water&!waterdepthoftheuppermostbucket(kg/m2) +Land%max_water!maximumwaterdepthallowedintheuppermostbucket(kg/m2) + + +Ice +type(ice_boundary_data_type)::Ice + +real,dimension(:)::Ice%lon_bnd&!longitudeaxisgridboxboundariesfortemperaturepoints +!inradians(mustbemonotonic) +Ice%lat_bnd&!latitudeaxisgridboxboundariesfortemperaturepoints +!inradians(mustbemonotonic) +Ice%lon_bnd_uv&!longitudeaxisgridboxboundariesformomentumpoints +!inradians(mustbemonotonic) +Ice%lat_bnd_uv!latitudeaxisgridboxboundariesformomentumpoints +!inradians(mustbemonotonic) + +logical,dimension(:,:,:)::Ice%mask&!ocean/landmaskfortemperaturepoints +!(trueforocean,withorwithoutice) +Ice%mask_uv&!ocean/landmaskformomentumpoints +!(trueforocean,withorwithoutice) +Ice%ice_mask!optionalicemask(trueforice) + +real,dimension(:,:,:)::Ice%part_size&!fractionalareaofeachpartitionofatemperaturegridbox +Ice%part_size_uv!fractionalareaofeachpartitionofamomentumgridbox +The following fields are located on the ice top gridreal,dimension(:,:,:)::Ice%t_surf&!surfacetemperature(degk) +Ice%albedo&!surfacealbedo(fraction) +Ice%rough_mom&!surfaceroughnessformomentum(m) +Ice%rough_heat&!surfaceroughnessforheat/moisture(m) +Ice%u_surf&!zonal(ocean/ice)currentatthesurface(m/s) +Ice%v_surf!meridional(ocean/ice)currentatthesurface(m/s) +The following fields are located on the ice bottom gridreal,dimension(:,:,:)::Ice%flux_u&!zonalwindstress(Pa) +Ice%flux_v&!meridionalwindstress(Pa) +Ice%flux_t&!sensibleheatflux(w/m2) +Ice%flux_q&!specifichumidityflux(kg/m2/s) +Ice%flux_sw&!net(down-up)shortwaveflux(w/m2) +Ice%flux_lw&!net(down-up)longwaveflux(w/m2) +Ice%lprec&!massofliquidprecipitationsincelasttimestep(Kg/m2) +Ice%fprec&!massoffrozenprecipitationsincelasttimestep(Kg/m2) +Ice%runoff!massofrunoffwatersincelasttimestep(Kg/m2) + + +Ocean +type(ocean_boundary_data_type)::ocean + +real,dimension(:)::Ocean%Data%lon_bnd&!longitudeaxisgridboxboundariesfortemperature +!pointsontheoceanDATAGRID(radians) +ocean%Data%lat_bnd&!latitudeaxisgridboxboundariesfortemperature +!pointsontheoceanDATAGRID(radians) +ocean%Data%lon_bnd_uv&!longitudeaxisgridboxboundariesformomentum +!pointsontheoceanDATAGRID(radians) +ocean%Data%lat_bnd_uv&!latitudeaxisgridboxboundariesformomentum +!pointsontheoceanDATAGRID(radians) +ocean%Ocean%lon_bnd&!longitudeaxisgridboxboundariesfortemperature +!pointsontheoceanMODELGRID(radians) +ocean%Ocean%lat_bnd&!latitudeaxisgridboxboundariesfortemperature +!pointsontheoceanMODELGRID(radians) +ocean%Ocean%lon_bnd_uv&!longitudeaxisgridboxboundariesformomentum +!pointsontheoceanMODELGRID(radians) +ocean%Ocean%lat_bnd_uv&!latitudeaxisgridboxboundariesformomentum +!pointsontheoceanmodelgrid(radians) +The data values in all longitude and latitude grid box boundary array must be monotonic. +logical,dimension(:,:)::Ocean%Data%mask&!ocean/landmaskfortemperaturepointsontheocean +!DATAGRID(trueforocean) +ocean%Data%mask_uv&!ocean/landmaskformomentumpointsontheocean +!DATAGRID(trueforocean) +ocean%Ocean%mask&!ocean/landmaskfortemperaturepointsontheocean +!MODELGRID(trueforocean) +ocean%Ocean%mask_uv!ocean/landmaskformomentumpointsontheocean +!MODELGRID(trueforocean) +real,dimension(:,:)::Ocean%t_surf_data&!surfacetemperatureontheoceanDATAGRID(degk) +Ocean%t_surf&!surfacetemperatureontheoceanMODELGRID(degk) +Ocean%u_surf&!zonaloceancurrentatthesurfaceontheocean +!MODELGRID(m/s) +ocean%v_surf&!meridionaloceancurrentatthesurfaceonthe +!oceanMODELGRID(m/s) +ocean%frazil!frazilattemperaturepointsontheoceanmodelgrid + + +
                                                                                                                                                                              + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** + +moduleflux_exchange_mod + + +!model_boundary_data_typecontainsallmodelfieldsattheboundary. +!model1_model2_boundary_typecontainsfieldsthatmodel2gets +!frommodel1,mayalsoincludefluxes.Thesearedeclaredby +!flux_exchange_modandhaveprivatecomponents.Allmodelfieldsin +!model_boundary_data_typemaynotbeexchanged. +!willsupport3typesofflux_exchange: +!REGRID:physicallydistinctgrids,viaxgrid +!REDIST:samegrid,transferinindexspaceonly +!DIRECT:samegrid,samedecomp,directcopy + +usefms +usefmsconstants,only:rdgas,rvgas,cp_air,stefan,wtmair,& +hlv,hlf,radius,pi,cp_ocean,wtmco2,wtmc + +!!Components +useland_model_mod,only:lnd_stock_pe +useocean_model_mod,only:ocean_stock_pe +useatmos_model_mod,only:atm_stock_pe +useatm_land_ice_flux_exchange_mod,only:atm_land_ice_flux_exchange_init,sfc_boundary_layer +useatm_land_ice_flux_exchange_mod,only:generate_sfc_xgrid,flux_down_from_atmos +useatm_land_ice_flux_exchange_mod,only:flux_up_to_atmos,atm_stock_integrate,send_ice_mask_sic +useatm_land_ice_flux_exchange_mod,only:flux_atmos_to_ocean,flux_ex_arrays_dealloc +useland_ice_flux_exchange_mod,only:flux_land_to_ice,land_ice_flux_exchange_init +useice_ocean_flux_exchange_mod,only:ice_ocean_flux_exchange_init +useice_ocean_flux_exchange_mod,only:flux_ocean_to_ice,flux_ocean_to_ice_finish +useice_ocean_flux_exchange_mod,only:flux_ice_to_ocean,flux_ice_to_ocean_finish +useice_ocean_flux_exchange_mod,only:flux_ice_to_ocean_stocks,flux_ocean_from_ice_stocks +useatmos_model_mod,only:atmos_data_type,land_ice_atmos_boundary_type +useocean_model_mod,only:ocean_public_type,ice_ocean_boundary_type +useocean_model_mod,only:ocean_state_type +useice_model_mod,only:ice_data_type,land_ice_boundary_type,& +ocean_ice_boundary_type,atmos_ice_boundary_type,ice_stock_pe +useland_model_mod,only:land_data_type,atmos_land_boundary_type +useatmos_ocean_fluxes_mod,only:atmos_ocean_fluxes_init,atmos_ocean_type_fluxes_init +useatmos_ocean_fluxes_calc_mod,only:atmos_ocean_fluxes_calc +useocean_model_mod,only:ocean_model_init_sfc,ocean_model_flux_init +useatmos_tracer_driver_mod,only:atmos_tracer_flux_init + +implicitnone;private + +public::flux_exchange_init,gas_exchange_init,& +sfc_boundary_layer,& +generate_sfc_xgrid,& +flux_down_from_atmos,& +flux_up_to_atmos,& +flux_land_to_ice,& +flux_atmos_to_ocean,& +flux_ex_arrays_dealloc,& +flux_ice_to_ocean,& +flux_ice_to_ocean_finish,& +flux_ocean_to_ice,& +flux_ocean_to_ice_finish,& +flux_check_stocks,& +flux_init_stocks,& +flux_ice_to_ocean_stocks,& +flux_ocean_from_ice_stocks,& +send_ice_mask_sic + +!----------------------------------------------------------------------- +character(len=128)::version='$Id$' +character(len=128)::tag='$Name$' + +logical::do_init=.true. + +real,parameter::bound_tol=1e-7 + +real,parameter::d622=rdgas/rvgas +real,parameter::d378=1.0-d622 + +real::z_ref_heat=2. +real::z_ref_mom=10. +logical::do_area_weighted_flux=.false. +logical::debug_stocks=.false. +logical::divert_stocks_report=.false. +logical::do_runoff=.true. +logical::do_forecast=.false. +integer::nblocks=1 + +logical::partition_fprec_from_lprec=.false. +real,parameter::tfreeze=273.15 +logical::scale_precip_2d=.false. + +namelist/flux_exchange_nml/z_ref_heat,z_ref_mom,& +&do_area_weighted_flux,debug_stocks,divert_stocks_report,do_runoff,do_forecast,nblocks,& +&partition_fprec_from_lprec,scale_precip_2d + +logical::gas_fluxes_initialized=.false.!Thisissettotruewhenthefollowingtypesareinitialized. +type(FmsCoupler1dBC_type),target::ex_gas_fields_atm!gasfieldsinatm + +type(FmsCoupler1dBC_type),target::ex_gas_fields_ice!gasfieldsatoptheiceorocean + +type(FmsCoupler1dBC_type),target::ex_gas_fluxes!gasfluxesbetweentheatmandocean + + +integer::ni_atm,nj_atm +real,dimension(3)::ccc +!Balaji:clocksmovedintoflux_exchange +integer::cplClock + +!Exchangegridindices +real::Dt_atm,Dt_cpl +real::ATM_PRECIP_NEW + +contains + +!####################################################################### +subroutinegas_exchange_init(gas_fields_atm,gas_fields_ice,gas_fluxes) +type(FmsCoupler1dBC_type),optional,pointer::gas_fields_atm + +type(FmsCoupler1dBC_type),optional,pointer::gas_fields_ice + +type(FmsCoupler1dBC_type),optional,pointer::gas_fluxes + + +if(.not.gas_fluxes_initialized)then +callfms_atmos_ocean_type_fluxes_init() +callocean_model_flux_init() +callatmos_tracer_flux_init() +callfms_atmos_ocean_fluxes_init(ex_gas_fluxes,ex_gas_fields_atm,ex_gas_fields_ice) +gas_fluxes_initialized=.true. +endif + +if(present(gas_fields_atm))gas_fields_atm=>ex_gas_fields_atm +if(present(gas_fields_ice))gas_fields_ice=>ex_gas_fields_ice +if(present(gas_fluxes))gas_fluxes=>ex_gas_fluxes + +endsubroutinegas_exchange_init + +!####################################################################### +subroutineflux_exchange_init(Time,Atm,Land,Ice,Ocean,Ocean_state,& +atmos_ice_boundary,land_ice_atmos_boundary,& +land_ice_boundary,ice_ocean_boundary,ocean_ice_boundary,& +do_ocean,slow_ice_ocean_pelist,dt_atmos,dt_cpld) + +type(FmsTime_type),intent(in)::Time +type(atmos_data_type),intent(inout)::Atm +type(land_data_type),intent(in)::Land +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean +type(ocean_state_type),pointer::Ocean_state +!Allintent(OUT)derivedtypeswithpointercomponentsmustbe +!COMPLETELYallocatedhereandinsubroutinescalledfromhere; +!NOpointercomponentsshouldhavebeenallocatedbeforeentryifthe +!derivedtypehasintent(OUT)otherwisetheymaybelost. +type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary +type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary +type(land_ice_boundary_type),intent(inout)::land_ice_boundary +type(ice_ocean_boundary_type),intent(inout)::ice_ocean_boundary +type(ocean_ice_boundary_type),intent(inout)::ocean_ice_boundary +logical,intent(in)::do_ocean +integer,dimension(:),intent(in)::slow_ice_ocean_pelist +integer,optional,intent(in)::dt_atmos +integer,optional,intent(in)::dt_cpld + +character(len=64),parameter::grid_file='INPUT/grid_spec.nc' +integer::ierr,io +integer::logunit,unit +character(len=256)::errmsg +integer::omp_get_num_threads,nthreads + +!----------------------------------------------------------------------- + +! +!initializeatmos_ocean_fluxes +!Settingupfluxtypes,allocatesthearrays. +! + +! +!ocean_tracer_flux_initiscalledfirstsinceithasthemeaningfulvaluetoset +!fortheinput/outputfilenamesforthetracerfluxvaluesusedinrestarts.These +!valuescouldbesetinthefieldtable,andthisorderingallowsthis. +!atmos_tracer_flux_initiscalledlastsinceitwillusethevaluessetin +!ocean_tracer_flux_initwiththeexceptionofatm_tr_index,whichcanonly +!bemeaningfullysetfromtheatmosphericmodel(notfromthefieldtable) +! + +callfms_sat_vapor_pres_init() + +nthreads=1 +!assignnblockstonumberofthreads. +!$OMPPARALLEL +!$nthreads=omp_get_num_threads() +!$OMPENDPARALLEL +nblocks=nthreads + +!----------------------------------------------------------------------- +logunit=fms_mpp_stdlog() +!-----readnamelist------- + +read(fms_mpp_input_nml_file,flux_exchange_nml,iostat=io) +ierr=fms_check_nml_error(io,'flux_exchange_nml') + +!-----writenamelisttologfile----- +callfms_write_version_number(version,tag) +if(fms_mpp_pe()==fms_mpp_root_pe())write(logunit,nml=flux_exchange_nml) +if(nblocks<1)callfms_error_mesg('flux_exchange_mod',& +'flux_exchange_nmlnblocksmustbepositive',fatal) +if(nblocks.NE.nthreads)then +write(errmsg,'(a,i3,a,i3)')'flux_exchange_nmlnblocksissetto',nblocks,& +'isdifferentfromthedefaultvalue(numberofthreads)=',nthreads +callfms_error_mesg('flux_exchange_mod',errmsg,note) +endif + +!requiredbystock_move,allfluxesusedtoupdatestockswillbezeroifdt_atmos, +!anddt_cpldareabsent +dt_atm=0.0 +dt_cpl=0.0 +if(present(dt_atmos))dt_atm=real(dt_atmos) +if(present(dt_cpld))dt_cpl=real(dt_cpld) + +callfms_xgrid_get_ocean_model_area_elements(ocean%domain,grid_file) + +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +cplclock=fms_mpp_clock_id('Land-ice-atmcoupler',flags=fms_clock_flag_default,grain=clock_component) +callcheck_atm_grid(atm,grid_file) +callatm_land_ice_flux_exchange_init(time,atm,land,ice,atmos_ice_boundary,land_ice_atmos_boundary,& +dt_atm,dt_cpl,z_ref_heat,z_ref_mom,& +do_area_weighted_flux,do_forecast,& +partition_fprec_from_lprec,scale_precip_2d,nblocks,cplclock,& +ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes) + +callland_ice_flux_exchange_init(land,ice,land_ice_boundary,dt_cpl,do_runoff,cplclock) +endif + +callfms_mpp_set_current_pelist() +callice_ocean_flux_exchange_init(time,ice,ocean,ocean_state,ice_ocean_boundary,ocean_ice_boundary,& +dt_cpl,debug_stocks,do_area_weighted_flux,ex_gas_fields_ice,ex_gas_fluxes,do_ocean,slow_ice_ocean_pelist) + +!----done---- +do_init=.false. + +endsubroutineflux_exchange_init + + +subroutineflux_check_stocks(Time,Atm,Lnd,Ice,Ocn_state) + +type(FmsTime_type),intent(in)::Time +type(atmos_data_type),intent(inout),optional::Atm +type(land_data_type),intent(inout),optional::Lnd +type(ice_data_type),intent(inout),optional::Ice +type(ocean_state_type),intent(inout),optional,pointer::Ocn_state + +real::ref_value +integer::i + + +doi=1,nelems + +if(present(atm))then +ref_value=0.0 +callatm_stock_pe(atm,index=i,value=ref_value) +if(i==istock_water.and.atm%pe)then +!decreasetheAtmstockbytheprecipadjustmenttoreflectthefactthat +!afteranupdate_atmos_upcall,theprecipwillbethatofthefuturetimestep. +!Thus,thestockcallwillrepresentthe(explicit)precipat +!thebeginningoftheprecedingtimestep,andthe(implicit)evapatthe +!endoftheprecedingtimestep +callatm_stock_integrate(atm,atm_precip_new) +ref_value=ref_value+atm_precip_new +endif + +fms_stock_constants_atm_stock(i)%q_now=ref_value +endif + +if(present(lnd))then +ref_value=0.0 +calllnd_stock_pe(lnd,index=i,value=ref_value) +fms_stock_constants_lnd_stock(i)%q_now=ref_value +endif + +if(present(ice))then +ref_value=0.0 +callice_stock_pe(ice,index=i,value=ref_value) +fms_stock_constants_ice_stock(i)%q_now=ref_value +endif + +if(present(ocn_state))then +ref_value=0.0 +callocean_stock_pe(ocn_state,index=i,value=ref_value) +fms_stock_constants_ocn_stock(i)%q_now=ref_value +endif +enddo + +callfms_stock_constants_stocks_report(time) + + +endsubroutineflux_check_stocks + +!####################################################################### + +subroutineflux_init_stocks(Time,Atm,Lnd,Ice,Ocn_state) +type(FmsTime_type),intent(in)::Time +type(atmos_data_type)::Atm +type(land_data_type)::Lnd +type(ice_data_type)::Ice +type(ocean_state_type),pointer::Ocn_state + +integer::i + +fms_stock_constants_stocks_file=fms_mpp_stdout() +!Ifthedivert_stocks_reportissettotrue,writethestockstoanewfile"stocks.out" +if(fms_mpp_pe()==fms_mpp_root_pe().and.divert_stocks_report)then +open(newunit=fms_stock_constants_stocks_file,file='stocks.out',status='replace',form='formatted') +endif + +!Initializestockvalues +doi=1,nelems +callatm_stock_pe(atm,index=i,value=fms_stock_constants_atm_stock(i)%q_start) + +if(i==istock_water.and.atm%pe)then +callatm_stock_integrate(atm,atm_precip_new) +fms_stock_constants_atm_stock(i)%q_start=fms_stock_constants_atm_stock(i)%q_start+atm_precip_new +endif + +calllnd_stock_pe(lnd,index=i,value=fms_stock_constants_lnd_stock(i)%q_start) +callice_stock_pe(ice,index=i,value=fms_stock_constants_ice_stock(i)%q_start) +callocean_stock_pe(ocn_state,index=i,value=fms_stock_constants_ocn_stock(i)%q_start) +enddo + + +callfms_stocks_report_init(time) + + +endsubroutineflux_init_stocks + +subroutinecheck_atm_grid(Atm,grid_file) +type(atmos_data_type),intent(in)::Atm +character(len=*),intent(in)::grid_file + +integer::isg,ieg,jsg,jeg +integer::isc,iec,jsc,jec +integer::isd,ied,jsd,jed +integer::isc2,iec2,jsc2,jec2 +integer::nxg,nyg,ioff,joff +integer::nlon,nlat,siz(4) +integer::i,j +type(FmsMppDomain2D)::domain2 +real,dimension(:,:),allocatable::tmpx,tmpy +real,dimension(:),allocatable::atmlonb,atmlatb +character(len=256)::atm_mosaic_file,tile_file,buffer + +integer,dimension(:),allocatable::pes +type(FmsNetcdfFile_t)::grid_file_obj,atm_mosaic_file_obj +type(FmsNetcdfDomainFile_t)::tile_file_obj +character(len=20)::dim_names(2) +integer::ppos + +callfms_mpp_domains_get_global_domain(atm%domain,isg,ieg,jsg,jeg,xsize=nxg,ysize=nyg) +callfms_mpp_domains_get_compute_domain(atm%domain,isc,iec,jsc,jec) +callfms_mpp_domains_get_data_domain(atm%domain,isd,ied,jsd,jed) + + +allocate(pes(fms_mpp_npes())) +callfms_mpp_get_current_pelist(pes) + +if(.not.fms2_io_open_file(grid_file_obj,grid_file,"read",pelist=pes))then +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +&'Erroropening'//trim(grid_file),fatal) +endif + +if(size(atm%lon_bnd,1).NE.iec-isc+2.OR.size(atm%lon_bnd,2).NE.jec-jsc+2)then +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'sizeofAtm%lon_bnddoesnotmatchtheAtmcomputationaldomain',fatal) +endif +ioff=lbound(atm%lon_bnd,1)-isc +joff=lbound(atm%lon_bnd,2)-jsc + +if(fms2_io_variable_exists(grid_file_obj,"AREA_ATM"))then!oldgrid +callfms2_io_get_variable_size(grid_file_obj,"AREA_ATM",siz(1:2)) +nlon=siz(1) +nlat=siz(2) + +if(nlon/=nxg.or.nlat/=nyg)then +if(fms_mpp_pe()==fms_mpp_root_pe())then +print*,'grid_spec.nchas',nlon,'longitudes,',nlat,'latitudes;',& +'atmospherehas',nxg,'longitudes,',& +nyg,'latitudes(seexba.datandyba.dat)' +endif +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'grid_spec.ncincompatiblewithatmosphereresolution',fatal) +endif +allocate(atmlonb(isg:ieg+1)) +allocate(atmlatb(jsg:jeg+1)) +callfms2_io_read_data(grid_file_obj,'xba',atmlonb) +callfms2_io_read_data(grid_file_obj,'yba',atmlatb) + +doi=isc,iec+1 +if(abs(atmlonb(i)-atm%lon_bnd(i+ioff,jsc+joff)*45.0/atan(1.0))>bound_tol)then +print*,'GRID_SPEC/ATMOSLONGITUDEINCONSISTENCYati=',i,':',& +atmlonb(i),atm%lon_bnd(i+ioff,jsc+joff)*45.0/atan(1.0) +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'grid_spec.ncincompatiblewithatmospherelongitudes(seexba.datandyba.dat)'& +,fatal) +endif +enddo +doj=jsc,jec+1 +if(abs(atmlatb(j)-atm%lat_bnd(isc+ioff,j+joff)*45.0/atan(1.0))>bound_tol)then +print*,'GRID_SPEC/ATMOSLATITUDEINCONSISTENCYatj=',j,':',& +atmlatb(j),atm%lat_bnd(isc+ioff,j+joff)*45.0/atan(1.0) +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'grid_spec.ncincompatiblewithatmospherelatitudes(seexba.datandyba.dat)'& +,fatal) +endif +enddo +deallocate(atmlonb,atmlatb) +elseif(fms2_io_variable_exists(grid_file_obj,"atm_mosaic_file"))then!mosaicgridfile. +callfms2_io_read_data(grid_file_obj,'atm_mosaic_file',atm_mosaic_file) + +if(.not.fms2_io_open_file(atm_mosaic_file_obj,"INPUT/"//trim(atm_mosaic_file)//"","read",pelist=pes))then +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +&'Erroropening'//trim(atm_mosaic_file),fatal) +endif + +callfms2_io_read_data(atm_mosaic_file_obj,"gridfiles",buffer,corner=1) + + +ppos=index(trim(buffer),".tile") +if(ppos>0)then +tile_file=buffer(1:ppos-1)//".nc" +else +tile_file=buffer +endif + +callfms2_io_close_file(atm_mosaic_file_obj) + +callfms_mpp_domains_copy_domain(atm%domain,domain2) +callfms_mpp_domains_create_super_grid_domain(domain2) +callfms_mpp_domains_define_io_domain(domain2,(/1,1/)) + +callfms_mpp_domains_get_compute_domain(domain2,isc2,iec2,jsc2,jec2) + +if(isc2.NE.2*isc-1.OR.iec2.NE.2*iec+1.OR.jsc2.NE.2*jsc-1.OR.jec2.NE.2*jec+1)then +callfms_mpp_error(fatal,'atm_land_ice_flux_exchange_mod:supergriddomainisnotsetproperly') +endif + + +if(.not.fms2_io_open_file(tile_file_obj,"INPUT/"//trim(tile_file)//"","read",domain2))then +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +&'Erroropening'//trim(tile_file),fatal) +endif + +callfms2_io_get_variable_size(tile_file_obj,'area',siz(1:2)) +nlon=siz(1);nlat=siz(2) +if(mod(nlon,2).NE.0)callfms_mpp_error(fatal,& +'atm_land_ice_flux_exchange_mod:atmossupergridlongitudesizecannotbedividedby2') +if(mod(nlat,2).NE.0)callfms_mpp_error(fatal,& +'atm_land_ice_flux_exchange_mod:atmossupergridlatitudesizecannotbedividedby2') +nlon=nlon/2 +nlat=nlat/2 +if(nlon/=nxg.or.nlat/=nyg)then +if(fms_mpp_pe()==fms_mpp_root_pe())then +print*,'atmospheremosaictilehas',nlon,'longitudes,',nlat,'latitudes;',& +'atmospherehas',nxg,'longitudes,',nyg,'latitudes' +endif +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'atmospheremosaictilegridfileincompatiblewithatmosphereresolution',fatal) +endif + +allocate(tmpx(isc2:iec2,jsc2:jec2),tmpy(isc2:iec2,jsc2:jec2)) + + +callfms2_io_get_variable_dimension_names(tile_file_obj,"x",dim_names) +callfms2_io_register_axis(tile_file_obj,dim_names(1),"x") +callfms2_io_register_axis(tile_file_obj,dim_names(2),"y") +callfms2_io_register_field(tile_file_obj,"x","double",dim_names) +callfms2_io_register_field(tile_file_obj,"y","double",dim_names) + + +callfms2_io_read_data(tile_file_obj,'x',tmpx) +callfms2_io_read_data(tile_file_obj,'y',tmpy) + +callfms2_io_close_file(tile_file_obj) + +callfms_mpp_domains_deallocate_domain(domain2) + +doj=jsc,jec+1 +doi=isc,iec+1 +if(abs(tmpx(2*i-1,2*j-1)-atm%lon_bnd(i+ioff,j+joff)*45.0/atan(1.0))>bound_tol)then +print*,'GRID_SPEC/ATMOSLONGITUDEINCONSISTENCYati=',i,',j=',j,':',& +tmpx(2*i-1,2*j-1),atm%lon_bnd(i+ioff,j+joff)*45.0/atan(1.0) +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'grid_spec.ncincompatiblewithatmospherelongitudes(see'//trim(tile_file)//')'& +,fatal) +endif +if(abs(tmpy(2*i-1,2*j-1)-atm%lat_bnd(i+ioff,j+joff)*45.0/atan(1.0))>bound_tol)then +print*,'GRID_SPEC/ATMOSLATITUDEINCONSISTENCYati=',i,',j=',j,':',& +tmpy(2*i-1,2*j-1),atm%lat_bnd(i+ioff,j+joff)*45.0/atan(1.0) +callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'grid_spec.ncincompatiblewithatmospherelatitudes(see'//trim(tile_file)//')'& +,fatal) +endif +enddo +enddo +deallocate(tmpx,tmpy) +else +callfms_mpp_error(fatal,& +'atm_land_ice_flux_exchange_mod:bothAREA_ATMxOCNandocn_mosaic_filedoesnotexistin'//trim(grid_file)) +endif + +callfms2_io_close_file(grid_file_obj) +endsubroutinecheck_atm_grid + +endmoduleflux_exchange_mod + + +
                                                                                                                                                                              +
                                                                                                                                                                              diff --git a/docs/xml/full__coupler__mod_8_f90.xml b/docs/xml/full__coupler__mod_8_f90.xml new file mode 100644 index 00000000..ae46a0c3 --- /dev/null +++ b/docs/xml/full__coupler__mod_8_f90.xml @@ -0,0 +1,2269 @@ + + + + full_coupler_mod.F90 + file_version.fh + + + + + + + + + + + + full_coupler_mod::coupler_clock_type + full_coupler_mod::coupler_components_type + full_coupler_mod::coupler_chksum_type + full_coupler_mod + iso_fortran_env + + + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +modulefull_coupler_mod + +useomp_lib!<f90moduleforopenmp + +usefms!,status_fms=>status +usefmsconstants,only:fmsconstants_init + +#ifdefuse_deprecated_io +usefms_io_mod,only:fms_io_exit +#endif + +!modelinterfacesusedtocouplethecomponentmodels: +!atmosphere,land,ice,andocean +! + +useatmos_model_mod,only:atmos_model_init,atmos_model_end +useatmos_model_mod,only:update_atmos_model_dynamics +useatmos_model_mod,only:update_atmos_model_down +useatmos_model_mod,only:update_atmos_model_up +useatmos_model_mod,only:atmos_data_type +useatmos_model_mod,only:land_ice_atmos_boundary_type +useatmos_model_mod,only:atmos_data_type_chksum +useatmos_model_mod,only:lnd_ice_atm_bnd_type_chksum +useatmos_model_mod,only:lnd_atm_bnd_type_chksum +useatmos_model_mod,only:ice_atm_bnd_type_chksum +useatmos_model_mod,only:atmos_model_restart +useatmos_model_mod,only:update_atmos_model_radiation +useatmos_model_mod,only:update_atmos_model_state + +useland_model_mod,only:land_model_init,land_model_end +useland_model_mod,only:land_data_type,atmos_land_boundary_type +useland_model_mod,only:update_land_model_fast,update_land_model_slow +useland_model_mod,only:atm_lnd_bnd_type_chksum +useland_model_mod,only:land_data_type_chksum +useland_model_mod,only:land_model_restart + +useice_model_mod,only:ice_model_init,share_ice_domains,ice_model_end,ice_model_restart +useice_model_mod,only:update_ice_model_fast,set_ice_surface_fields +useice_model_mod,only:ice_data_type,land_ice_boundary_type +useice_model_mod,only:ocean_ice_boundary_type,atmos_ice_boundary_type +useice_model_mod,only:ice_data_type_chksum,ocn_ice_bnd_type_chksum +useice_model_mod,only:atm_ice_bnd_type_chksum,lnd_ice_bnd_type_chksum +useice_model_mod,only:unpack_ocean_ice_boundary,exchange_slow_to_fast_ice +useice_model_mod,only:ice_model_fast_cleanup,unpack_land_ice_boundary +useice_model_mod,only:exchange_fast_to_slow_ice,update_ice_model_slow + +useocean_model_mod,only:update_ocean_model,ocean_model_init,ocean_model_end +useocean_model_mod,only:ocean_public_type,ocean_state_type,ice_ocean_boundary_type +useocean_model_mod,only:ocean_model_restart +useocean_model_mod,only:ocean_public_type_chksum,ice_ocn_bnd_type_chksum + +usecombined_ice_ocean_driver,only:update_slow_ice_and_ocean,ice_ocean_driver_type +usecombined_ice_ocean_driver,only:ice_ocean_driver_init,ice_ocean_driver_end +! +!flux_callstranslateinformationbetweenmodelgrids-seeflux_exchange.f90 +! + +useflux_exchange_mod,only:flux_exchange_init,gas_exchange_init,sfc_boundary_layer +useflux_exchange_mod,only:generate_sfc_xgrid,send_ice_mask_sic +useflux_exchange_mod,only:flux_down_from_atmos,flux_up_to_atmos +useflux_exchange_mod,only:flux_land_to_ice,flux_ice_to_ocean,flux_ocean_to_ice +useflux_exchange_mod,only:flux_ice_to_ocean_finish,flux_ocean_to_ice_finish +useflux_exchange_mod,only:flux_check_stocks,flux_init_stocks +useflux_exchange_mod,only:flux_ocean_from_ice_stocks,flux_ice_to_ocean_stocks +useflux_exchange_mod,only:flux_atmos_to_ocean,flux_ex_arrays_dealloc + +useatmos_tracer_driver_mod,only:atmos_tracer_driver_gather_data + +usegex_mod,only:gex_init + +useiso_fortran_env + +implicitnone +private + +public::atmos_data_type,land_data_type,ice_data_type +public::ocean_public_type,ocean_state_type +public::atmos_land_boundary_type,atmos_ice_boundary_type,land_ice_atmos_boundary_type +public::land_ice_boundary_type,ice_ocean_boundary_type,ocean_ice_boundary_type,ice_ocean_driver_type + +public::fmsconstants_init + +public::update_slow_ice_and_ocean +public::send_ice_mask_sic +public::flux_ice_to_ocean_finish,flux_ice_to_ocean_stocks,flux_ocean_from_ice_stocks + +public::atmos_model_restart,land_model_restart,ice_model_restart,ocean_model_restart + +public::atmos_data_type_chksum,lnd_ice_atm_bnd_type_chksum +public::lnd_atm_bnd_type_chksum,ice_atm_bnd_type_chksum +public::atm_lnd_bnd_type_chksum,land_data_type_chksum +public::ice_data_type_chksum,ocn_ice_bnd_type_chksum +public::atm_ice_bnd_type_chksum,lnd_ice_bnd_type_chksum +public::ocean_public_type_chksum,ice_ocn_bnd_type_chksum + +public::coupler_init,coupler_end,coupler_restart,coupler_intermediate_restart +public::coupler_summarize_timestep + +public::coupler_flux_init_finish_stocks,coupler_flux_check_stocks +public::coupler_flux_ocean_to_ice +public::coupler_unpack_ocean_ice_boundary,coupler_exchange_slow_to_fast_ice +public::coupler_exchange_fast_to_slow_ice,coupler_set_ice_surface_fields + +public::coupler_generate_sfc_xgrid +public::coupler_atmos_tracer_driver_gather_data,coupler_sfc_boundary_layer +public::coupler_update_atmos_model_dynamics,coupler_update_atmos_model_down +public::coupler_update_atmos_model_radiation,coupler_flux_down_from_atmos +public::coupler_update_land_model_fast,coupler_update_ice_model_fast +public::coupler_flux_up_to_atmos,coupler_update_atmos_model_up +public::coupler_flux_atmos_to_ocean,coupler_update_atmos_model_state + +public::coupler_update_land_model_slow,coupler_flux_land_to_ice +public::coupler_unpack_land_ice_boundary,coupler_flux_ice_to_ocean +public::coupler_update_ice_model_slow_and_stocks,coupler_update_ocean_model + +public::coupler_clock_type,coupler_components_type,coupler_chksum_type + +#include<file_version.fh> + + +integer,dimension(6),public::restart_interval=(/0,0,0,0,0,0/) + +integer,dimension(6)::current_date=(/0,0,0,0,0,0/) + + +character(len=17)::calendar='' + +logical::force_date_from_namelist=.false. + +integer,public::months=0 +integer,public::days=0 +integer,public::hours=0 +integer,public::minutes=0 +integer,public::seconds=0 +integer,public::dt_atmos=0 +integer,public::dt_cpld=0 +integer,public::atmos_npes=0 +integer,public::ocean_npes=0 +integer,public::ice_npes=0 +integer,public::land_npes=0 +integer,public::atmos_nthreads=1 +integer,public::ocean_nthreads=1 +integer,public::radiation_nthreads=1 + +logical,public::do_atmos=.true. +logical,public::do_land=.true. +logical,public::do_ice=.true. +logical,public::do_ocean=.true. +logical,public::do_flux=.true. + +logical,public::concurrent=.false. +logical,public::do_concurrent_radiation=.false. + +logical,public::use_lag_fluxes=.true. + +logical,public::concurrent_ice=.false. + +logical,public::slow_ice_with_ocean=.false. + + +logical,public::combined_ice_and_ocean=.false. + +logical,public::do_chksum=.false. +logical,public::do_endpoint_chksum=.true. +logical,public::do_debug=.false. +integer,public::check_stocks=0 +logical,public::use_hyper_thread=.false. + +namelist/coupler_nml/current_date,calendar,force_date_from_namelist,& +months,days,hours,minutes,seconds,dt_cpld,dt_atmos,& +do_atmos,do_land,do_ice,do_ocean,do_flux,& +atmos_npes,ocean_npes,ice_npes,land_npes,& +atmos_nthreads,ocean_nthreads,radiation_nthreads,& +concurrent,do_concurrent_radiation,use_lag_fluxes,& +check_stocks,restart_interval,do_debug,do_chksum,& +use_hyper_thread,concurrent_ice,slow_ice_with_ocean,& +do_endpoint_chksum,combined_ice_and_ocean + +typecoupler_clock_type +integer::initialization +integer::main +integer::generate_sfc_xgrid +integer::flux_ocean_to_ice +integer::flux_ice_to_ocean +integer::atm +integer::atmos_loop +integer::atmos_tracer_driver_gather_data +integer::sfc_boundary_layer +integer::update_atmos_model_dynamics +integer::update_atmos_model_down +integer::flux_down_from_atmos +integer::update_land_model_fast +integer::update_ice_model_fast +integer::flux_up_to_atmos +integer::update_atmos_model_up +integer::radiation +integer::concurrent_atmos +integer::update_atmos_model_state +integer::update_land_model_slow +integer::flux_land_to_ice +integer::set_ice_surface_fast +integer::update_ice_model_slow_fast +integer::set_ice_surface_slow +integer::update_ice_model_slow_slow +integer::flux_ice_to_ocean_stocks +integer::set_ice_surface_exchange +integer::update_ice_model_slow_exchange +integer::ocean +integer::flux_check_stocks +integer::intermediate_restart +integer::final_flux_check_stocks +integer::termination +integer::atmos_model_init +integer::land_model_init +integer::ice_model_init +integer::ocean_model_init +integer::flux_exchange_init +endtypecoupler_clock_type + +typecoupler_components_type +private +type(atmos_data_type),pointer::Atm +type(land_data_type),pointer::Land +type(ice_data_type),pointer::Ice +type(ocean_public_type),pointer::Ocean +type(land_ice_atmos_boundary_type),pointer::Land_ice_atmos_boundary +type(atmos_land_boundary_type),pointer::Atmos_land_boundary +type(atmos_ice_boundary_type),pointer::Atmos_ice_boundary +type(land_ice_boundary_type),pointer::Land_ice_boundary +type(ice_ocean_boundary_type),pointer::Ice_ocean_boundary +type(ocean_ice_boundary_type),pointer::Ocean_ice_boundary +contains +procedure,public::initialize_coupler_components_obj +procedure,public::get_component +endtypecoupler_components_type + +typecoupler_chksum_type +private +type(coupler_components_type),pointer::components +contains +procedure,public::initialize_coupler_chksum_obj +procedure,public::get_components_obj +procedure,public::get_atmos_ice_land_ocean_chksums +procedure,public::get_atmos_ice_land_chksums +procedure,public::get_slow_ice_chksums +procedure,public::get_ocean_chksums +procedure,public::get_coupler_chksums +endtypecoupler_chksum_type + +character(len=80)::text +character(len=48),parameter::mod_name='coupler_main_mod' + +integer::calendar_type=invalid_calendar + +integer::date_init(6)=(/0,0,0,0,0,0/) + +contains + +!####################################################################### + +subroutinecoupler_init(Atm,Ocean,Land,Ice,Ocean_state,Atmos_land_boundary,Atmos_ice_boundary,& +Ocean_ice_boundary,Ice_ocean_boundary,Land_ice_atmos_boundary,Land_ice_boundary,& +Ice_ocean_driver_CS,Ice_bc_restart,Ocn_bc_restart,ensemble_pelist,slow_ice_ocean_pelist,conc_nthreads,& +coupler_clocks,coupler_components_obj,coupler_chksum_obj,Time_step_cpld,Time_step_atmos,Time_atmos,& +Time_ocean,num_cpld_calls,num_atmos_calls,Time,Time_start,Time_end,Time_restart,Time_restart_current) + +implicitnone + +type(atmos_data_type),intent(inout)::Atm +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean +type(ocean_state_type),pointer,intent(inout)::Ocean_state +type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary +type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary +type(ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary +type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary +type(land_ice_boundary_type),intent(inout)::Land_ice_boundary +type(ice_ocean_driver_type),pointer,intent(inout)::Ice_ocean_driver_CS +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +type(FmsNetcdfDomainFile_t),pointer,dimension(:),intent(inout)::Ice_bc_restart,Ocn_bc_restart + +integer,intent(inout)::conc_nthreads +integer,allocatable,dimension(:,:),intent(inout)::ensemble_pelist +integer,allocatable,dimension(:),intent(inout)::slow_ice_ocean_pelist + +type(coupler_clock_type),intent(inout)::coupler_clocks +type(coupler_components_type),intent(inout)::coupler_components_obj +type(coupler_chksum_type),intent(inout)::coupler_chksum_obj + +type(FMSTime_type),intent(inout)::Time_step_cpld,Time_step_atmos,Time_atmos,Time_ocean +type(FMSTime_type),intent(inout)::Time,Time_start,Time_end,Time_restart,Time_restart_current + +integer,intent(inout)::num_cpld_calls,num_atmos_calls +! +!----------------------------------------------------------------------- +!localparameters +!----------------------------------------------------------------------- +! + +character(len=64),parameter::sub_name='coupler_init' +character(len=256),parameter::error_header=& +'==>Errorfrom'//trim(mod_name)//'('//trim(sub_name)//'):' +character(len=256),parameter::note_header=& +'==>Notefrom'//trim(mod_name)//'('//trim(sub_name)//'):' + +integer::ierr,io,m,i,outunit,logunit,errunit +integer::date(6) +type(fmstime_type)::run_length +character(len=9)::month +integer::pe,npes + +integer::ens_siz(6),ensemble_size +integer::ensemble_id=1 + +integer::atmos_pe_start=0,atmos_pe_end=0,& +ocean_pe_start=0,ocean_pe_end=0 +integer::n +integer::diag_model_subset=diag_all +logical::other_fields_exist +character(len=256)::err_msg +integer::date_restart(6) +character(len=64)::filename,fieldname +integer::id_restart,l +character(len=8)::walldate +character(len=10)::walltime +character(len=5)::wallzone +integer::wallvalues(8) +character(len=:),dimension(:),allocatable::restart_file +integer::time_stamp_unit +integer::ascii_unit + +type(FmsTime_type)::Time_init + +type(FmsCoupler1dBC_type),pointer::& +gas_fields_atm=>null(),&!Apointertothetypedescribingthe +!atmosphericfieldsthatwillparticipateinthegasfluxes. +gas_fields_ocn=>null(),&!Apointertothetypedescribingtheocean +!andicesurfacefieldsthatwillparticipateinthegasfluxes. +gas_fluxes=>null()!Apointertothetypedescribingthe +!atmosphere-oceangasandtracerfluxes. + +integer::num_ice_bc_restart,num_ocn_bc_restart +!----------------------------------------------------------------------- + +outunit=fms_mpp_stdout() +errunit=fms_mpp_stderr() +logunit=fms_mpp_stdlog() + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Enteringcoupler_initat'& +//trim(walldate)//''//trim(walltime) +endif + +!-----writeversiontologfile------- +callfms_write_version_number('FULL_COUPLER_MOD',version) + +!-----readnamelist------- + +read(fms_mpp_input_nml_file,coupler_nml,iostat=io) +ierr=fms_check_nml_error(io,'coupler_nml') + +!-----readdateandcalendartypefromrestartfile----- +if(fms2_io_file_exists('INPUT/coupler.res'))then +callfms2_io_ascii_read('INPUT/coupler.res',restart_file) +read(restart_file(1),*)calendar_type +read(restart_file(2),*)date_init +read(restart_file(3),*)date +deallocate(restart_file) +else +force_date_from_namelist=.true. +endif + +!-----usenamelistvalue(eithernorestartoroverrideflagon)--- + +if(force_date_from_namelist)then + +if(sum(current_date)<=0)then +callfms_error_mesg('programcoupler',& +'nonamelistvalueforbase_dateorcurrent_date',fatal) +else +date=current_date +endif + +!-----overridecalendartypewithnamelistvalue----- + +selectcase(fms_mpp_uppercase(trim(calendar))) +case('GREGORIAN') +calendar_type=gregorian +case('JULIAN') +calendar_type=julian +case('NOLEAP') +calendar_type=noleap +case('THIRTY_DAY') +calendar_type=thirty_day_months +case('NO_CALENDAR') +calendar_type=no_calendar +endselect + +endif + +callfms_time_manager_set_calendar_type(calendar_type,err_msg) +if(err_msg/='')then +callfms_mpp_error(fatal,'ERRORincoupler_init:'//trim(err_msg)) +endif + +if(concurrent.AND..NOT.(use_lag_fluxes.OR.concurrent_ice))& +callfms_mpp_error(warning,'coupler_init:youhavesetconcurrent=TRUE,& +&use_lag_fluxes=FALSE,andconcurrent_ice=FALSE& +&incoupler_nml.Whennotusinglagfluxes,components& +&willsynchronizeattwopoints,andthusrunserially.') +if(concurrent_ice.AND..NOT.slow_ice_with_ocean)callfms_mpp_error(warning,& +'coupler_init:concurrent_iceistrue,butslowice_with_oceanis& +&falseincoupler_nml.Thesetwoflagsshouldbothbetruetoavoid& +&effectivelyserializingtherun.') +if(use_lag_fluxes.AND.concurrent_ice)callfms_mpp_error(warning,& +'coupler_init:use_lag_fluxesandconcurrent_icearebothtrue.& +&Thesetwocouplingoptionsareintendedtobeexclusive.') + +!Checkwiththeensemble_managermoduleforthesizeofensemble +!andPEcountsforeachmemberoftheensemble. +! +!NOTE:ensemble_manager_initrenamesalltheoutputfiles(restartanddiagnostics) +!toshowwhichensemblemembertheyarecomingfrom. +!TherealsoneedtoberestartfilesforeachmemberoftheensembleinINPUT. +! +!NOTE:iftheensemble_size=1theinput/outputfileswillnotberenamed. +! + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startinginitializingensemble_managerat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_ensemble_manager_init()!initpelistsforensembles +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingensemble_managerat'& +//trim(walldate)//''//trim(walltime) +endif +ens_siz=fms_ensemble_manager_get_ensemble_size() +ensemble_size=ens_siz(1) +npes=ens_siz(2) + +!CheckfortheconsistencyofPEcounts +if(concurrent)then +!atmos_npes+ocean_npesmustequalnpes +if(atmos_npes.EQ.0)atmos_npes=npes-ocean_npes +if(ocean_npes.EQ.0)ocean_npes=npes-atmos_npes +!bothmustnowbenon-zero +if(atmos_npes.EQ.0.OR.ocean_npes.EQ.0)& +callfms_mpp_error(fatal,'coupler_init:atmos_npesorocean_npesmustbespecifiedforconcurrentcoupling.') +if(atmos_npes+ocean_npes.NE.npes)& +callfms_mpp_error(fatal,'coupler_init:atmos_npes+ocean_npesmustequalnpesforconcurrentcoupling.') +else!serialtimestepping +if((atmos_npes.EQ.0).and.(do_atmos.or.do_land.or.do_ice))atmos_npes=npes +if((ocean_npes.EQ.0).and.(do_ocean))ocean_npes=npes +if(max(atmos_npes,ocean_npes).EQ.npes)then!overlappingpelists +!donothing +else!disjointpelists +if(atmos_npes+ocean_npes.NE.npes)callfms_mpp_error(fatal,& +'coupler_init:atmos_npes+ocean_npesmustequalnpesforserialcouplingondisjointpelists.') +endif +endif + +if(land_npes==0)land_npes=atmos_npes +if(land_npes>atmos_npes)callfms_mpp_error(fatal,'coupler_init:land_npes>atmos_npes') + +if(ice_npes==0)ice_npes=atmos_npes +if(ice_npes>atmos_npes)callfms_mpp_error(fatal,'coupler_init:ice_npes>atmos_npes') + +allocate(atm%pelist(atmos_npes)) +allocate(ocean%pelist(ocean_npes)) +allocate(land%pelist(land_npes)) +allocate(ice%fast_pelist(ice_npes)) + +!Setupanddeclarealltheneededpelists +callfms_ensemble_manager_ensemble_pelist_setup(concurrent,atmos_npes,ocean_npes,land_npes,ice_npes,& +atm%pelist,ocean%pelist,land%pelist,ice%fast_pelist) + +!setupaffinitiesbasedonthreads + +ensemble_id=fms_ensemble_manager_get_ensemble_id() + +if(allocated(ensemble_pelist))callfms_mpp_error(fatal,'ensemble_pelistunexpectedlyhasalreadybeenallocated') +allocate(ensemble_pelist(1:ensemble_size,1:npes)) +callfms_ensemble_manager_get_ensemble_pelist(ensemble_pelist) + +atm%pe=any(atm%pelist.EQ.fms_mpp_pe()) +ocean%is_ocean_pe=any(ocean%pelist.EQ.fms_mpp_pe()) +land%pe=any(land%pelist.EQ.fms_mpp_pe()) + +ice%shared_slow_fast_PEs=.not.slow_ice_with_ocean +!However,ifusingadataatmosphereandslow_ice_with_oceanthenshared_slow_fast_PEs +!willbetrue.Inthiscase,allprocesorsdotheocean,slowice,andfastice. +if(slow_ice_with_ocean.and.(.not.do_atmos))ice%shared_slow_fast_PEs=.true. +!Thisiswheredifferentsettingswouldbeappliedifthefastandslow +!iceoccurredondifferentPEs. +if(do_atmos)then +if(ice%shared_slow_fast_PEs)then +!FastandslowiceprocessesoccuronthesamePEs. +allocate(ice%pelist(ice_npes)) +ice%pelist(:)=ice%fast_pelist(:) +allocate(ice%slow_pelist(ice_npes)) +ice%slow_pelist(:)=ice%fast_pelist(:) +if(concurrent)then +if(.not.allocated(slow_ice_ocean_pelist))then +allocate(slow_ice_ocean_pelist(ocean_npes+ice_npes)) +else +callfms_mpp_error(fatal,'allocationofslow_ice_ocean_pelistunexpectedlyhasalreadybeenallocated') +endif +slow_ice_ocean_pelist(1:ice_npes)=ice%slow_pelist(:) +slow_ice_ocean_pelist(ice_npes+1:ice_npes+ocean_npes)=ocean%pelist(:) +else +if(ice_npes.GE.ocean_npes)then +allocate(slow_ice_ocean_pelist(ice_npes)) +slow_ice_ocean_pelist(:)=ice%slow_pelist(:) +else +allocate(slow_ice_ocean_pelist(ocean_npes)) +slow_ice_ocean_pelist(:)=ocean%pelist(:) +endif +endif +else +!FasticeprocessesoccurasubsetoftheatmosphericPEs,while +!slowiceprocessesoccurontheoceanPEs. +allocate(ice%slow_pelist(ocean_npes)) +ice%slow_pelist(:)=ocean%pelist(:) +allocate(ice%pelist(ice_npes+ocean_npes)) +!SetIce%pelist()tobetheunionofIce%fast_pelistandIce%slow_pelist. +ice%pelist(1:ice_npes)=ice%fast_pelist(:) +ice%pelist(ice_npes+1:ice_npes+ocean_npes)=ocean%pelist(:) +allocate(slow_ice_ocean_pelist(ocean_npes)) +slow_ice_ocean_pelist(:)=ocean%pelist(:) +endif +elseif(.not.do_atmos)then +!Inthenoatmoscases,shared_slow_fast_PEsisnotenoughtodistinguish +!theslowandfasticeprocesorlayout;slow_ice_with_oceanshouldbeusedinstead. +if(slow_ice_with_ocean)then +!dataatmos,usingcombinedice-oceandriver +!BothfasticeandslowiceprocessesoccuronthesamePEs, +!sincetheAtmosandOceanPEsareshared +allocate(ice%slow_pelist(ocean_npes)) +ice%slow_pelist(:)=ocean%pelist(:) +allocate(ice%pelist(ice_npes)) +ice%pelist(1:ice_npes)=ice%fast_pelist(:) +allocate(slow_ice_ocean_pelist(ocean_npes)) +slow_ice_ocean_pelist(:)=ocean%pelist(:) +else +!dataatmos,notusingcombinedice-oceandriver +allocate(ice%pelist(ice_npes)) +ice%pelist(:)=ice%fast_pelist(:) +allocate(ice%slow_pelist(ice_npes)) +ice%slow_pelist(:)=ice%fast_pelist(:) +if(ice_npes.GE.ocean_npes)then +allocate(slow_ice_ocean_pelist(ice_npes)) +slow_ice_ocean_pelist(:)=ice%slow_pelist(:) +else +allocate(slow_ice_ocean_pelist(ocean_npes)) +slow_ice_ocean_pelist(:)=ocean%pelist(:) +endif +endif +endif +ice%fast_ice_pe=any(ice%fast_pelist(:).EQ.fms_mpp_pe()) +ice%slow_ice_pe=any(ice%slow_pelist(:).EQ.fms_mpp_pe()) +ice%pe=ice%fast_ice_pe.OR.ice%slow_ice_pe +callfms_mpp_declare_pelist(slow_ice_ocean_pelist) +!---dynamicthreadingturnedoffwhenaffinityplacementisinuse +!$callomp_set_dynamic(.FALSE.) +!---nestedOpenMPenabledforOpenMPconcurrentcomponents +!$callomp_set_max_active_levels(3) + +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +!$if(.not.do_concurrent_radiation)radiation_nthreads=atmos_nthreads +!$if(do_concurrent_radiation)conc_nthreads=2 +!---settingaffinity +if(do_concurrent_radiation)then +!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads+radiation_nthreads) +!$callomp_set_num_threads(atmos_nthreads+radiation_nthreads) +else +!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads) +!$callomp_set_num_threads(atmos_nthreads) +endif +endif + +callcoupler_set_clock_ids(coupler_clocks,atm,land,ice,ocean,ensemble_pelist,& +slow_ice_ocean_pelist,ensemble_id) + +!WriteoutmessagesonrootPEs +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +write(text,'(a,2i6,a,i2.2)')'AtmosPErange:',atm%pelist(1),atm%pelist(atmos_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +if(ocean_npes.gt.0)then +write(text,'(a,2i6,a,i2.2)')'OceanPErange:',ocean%pelist(1),ocean%pelist(ocean_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +else +write(text,'(a,i2.2)')'OceanPErangeisnotset(do_ocean=.false.andconcurrent=.false.)forens_',& +ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +endif +write(text,'(a,2i6,a,i2.2)')'LandPErange:',land%pelist(1),land%pelist(land_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +if(.not.concurrent_ice)then +write(text,'(a,2i6,a,i2.2)')'IcePErange:',ice%pelist(1),ice%pelist(ice_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +elseif(concurrent_ice)then +if(do_atmos)then +write(text,'(a,2i6,a,i2.2)')'IcePErange:',ice%pelist(1),ice%pelist(ice_npes+ocean_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +elseif((.not.do_atmos))then +write(text,'(a,2i6,a,i2.2)')'IcePErange:',ice%pelist(1),ice%pelist(ice_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +endif +callfms_mpp_error(note,'coupler_init:RunningwithCONCURRENTICEcoupling.') +write(text,'(a,2i6,a,i2.2)')'slowIcePErange:',ice%slow_pelist(1),ice%slow_pelist(ocean_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +write(text,'(a,2i6,a,i2.2)')'fastIcePErange:',ice%fast_pelist(1),ice%fast_pelist(ice_npes),& +'ens_',ensemble_id +callfms_mpp_error(note,'coupler_init:'//trim(text)) +endif + +if(concurrent)then +callfms_mpp_error(note,'coupler_init:RunningwithCONCURRENTcoupling.') + +write(logunit,'(a)')'Usingconcurrentcoupling...' +write(logunit,'(a,4i6)')& +'atmos_pe_start,atmos_pe_end,ocean_pe_start,ocean_pe_end=',& +atm%pelist(1),atm%pelist(atmos_npes),ocean%pelist(1),ocean%pelist(ocean_npes) +else +callfms_mpp_error(note,'coupler_init:RunningwithSERIALcoupling.') +endif +if(use_lag_fluxes)then +callfms_mpp_error(note,'coupler_init:SendingLAGfluxestoocean.') +else +callfms_mpp_error(note,'coupler_init:Sendingmostrecentfluxestoocean.') +endif +if(concurrent_ice)callfms_mpp_error(note,& +'coupler_init:usinglaggedslow-icecouplingmode.') +if(combined_ice_and_ocean)callfms_mpp_error(note,& +'coupler_init:advancingtheoceanandslow-iceinasinglecall.') +if(combined_ice_and_ocean.and..not.concurrent_ice)callfms_mpp_error(fatal,& +'coupler_init:concurrent_icemustbetrueifcombined_ice_and_oceanistrue.') +if(combined_ice_and_ocean.and..not.slow_ice_with_ocean)callfms_mpp_error(fatal,& +'coupler_init:slow_ice_with_oceanmustbetrueifcombined_ice_and_oceanistrue.') +endif + +!-----writenamelisttologfile----- +if(fms_mpp_pe()==fms_mpp_root_pe())write(logunit,nml=coupler_nml) + +!-----writecurrent/initialdateactuallyusedtologfilefile----- + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())& +write(logunit,16)date(1),trim(fms_time_manager_month_name(date(2))),date(3:6) +16format('currentdateused=',i4,1x,a,2i3,2(':',i2.2),'gmt') + +!----------------------------------------------------------------------- +!------initializediagnosticsmanager------ + +!jwdForkhereissomewhatdangerous.Itrelieson"nosideeffects"from +!diag_manager_init.diag_manager_initorthissectionshouldbe +!re-architectedtoguaranteethisorremovethisassumption. +!Forinstance,whatfollowsassumesthatget_base_datehasthesame +!timeforbothAtmandOceanpes.Whilethisshouldbethecase,the +!possibleerrorconditionneedstobechecked + +diag_model_subset=diag_all +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +if(atmos_npes/=npes)diag_model_subset=diag_other!changediag_model_subsetfromDIAG_ALL +elseif(ocean%is_ocean_pe)then!Errorcheckabovefordisjointpelistsshouldcatchanyproblem +callfms_mpp_set_current_pelist(ocean%pelist) +!TheFMSdiagmanagerhasaconventionthatsegregatesfileswith"ocean" +!intheirnamesfromtheotherfilestohandlelongdiagtables.This +!doesnotworkiftheiceisontheoceanPEs. +if((ocean_npes/=npes).and..not.slow_ice_with_ocean)& +diag_model_subset=diag_ocean!changediag_model_subsetfromDIAG_ALL +endif +if(fms_mpp_pe()==fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializediag_managerat'& +//trim(walldate)//''//trim(walltime) +endif +!initializediag_managerforprocessorsubsetoutput +callfms_diag_init(diag_model_subset=diag_model_subset,time_init=date) +callfms_memutils_print_memuse_stats('diag_manager_init') +if(fms_mpp_pe()==fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingdiag_managerat'& +//trim(walldate)//''//trim(walltime) +endif +!----------------------------------------------------------------------- +!------resetpelistto"fullgroup"------ + +callfms_mpp_set_current_pelist() +!-----alwaysoverrideinitial/basedatewithdiag_managervalue----- + +callfms_diag_get_base_date(date_init(1),date_init(2),date_init(3),& +date_init(4),date_init(5),date_init(6)) + +!-----usecurrentdateifnobasedate------ + +if(date_init(1)==0)date_init=date + +!-----setinitialandcurrenttimetypes------ + +time_init=fms_time_manager_set_date(date_init(1),date_init(2),date_init(3),& +date_init(4),date_init(5),date_init(6)) + +time=fms_time_manager_set_date(date(1),date(2),date(3),& +date(4),date(5),date(6)) + +time_start=time + +!-----computetheendingtime----- + +time_end=time +dom=1,months +time_end=time_end+fms_time_manager_set_time(0,fms_time_manager_days_in_month(time_end)) +enddo +time_end=time_end+fms_time_manager_set_time(hours*3600+minutes*60+seconds,days) +!NeedtopassTime_endintodiag_managerformultiplethreadcase. +callfms_diag_set_time_end(time_end) + +run_length=time_end-time + +!---getthetimethatlastintermediaterestartfilewaswrittenout. +if(fms2_io_file_exists('INPUT/coupler.intermediate.res'))then +callfms2_io_ascii_read('INPUT/coupler.intermediate.res',restart_file) +read(restart_file(1),*)date_restart +deallocate(restart_file) +else +date_restart=date +endif + +time_restart_current=time +if(all(restart_interval==0))then +time_restart=fms_time_manager_increment_date(time_end,0,0,10,0,0,0)!nointermediaterestart +else +time_restart=fms_time_manager_set_date(date_restart(1),date_restart(2),date_restart(3),& +date_restart(4),date_restart(5),date_restart(6)) +time_restart=fms_time_manager_increment_date(time_restart,restart_interval(1),restart_interval(2),& +restart_interval(3),restart_interval(4),restart_interval(5),restart_interval(6)) +if(time_restart<=time)callfms_mpp_error(fatal,& +'==>Errorfromprogramcoupler:Thefirstintermediaterestarttimeisnolargerthanthestarttime') +endif + +!----------------------------------------------------------------------- +!-----writetimestamps(forstarttimeandendtime)------ + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())& +open(newunit=time_stamp_unit,file='time_stamp.out',status='replace',form='formatted') + +month=fms_time_manager_month_name(date(2)) +if(fms_mpp_pe().EQ.fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) + +callfms_time_manager_get_date(time_end,date(1),date(2),date(3),& +date(4),date(5),date(6)) +month=fms_time_manager_month_name(date(2)) +if(fms_mpp_pe().EQ.fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())close(time_stamp_unit) + +20format(i6,5i4,2x,a3) + +!----------------------------------------------------------------------- +!-----computethetimesteps------ + +time_step_cpld=fms_time_manager_set_time(dt_cpld,0) +time_step_atmos=fms_time_manager_set_time(dt_atmos,0) + +!-----determinemaximumnumberofiterationsperloop------ + +num_cpld_calls=run_length/time_step_cpld +num_atmos_calls=time_step_cpld/time_step_atmos + +!----------------------------------------------------------------------- +!-------------------someerrorchecks--------------------------------- + +!-----initialtimecannotbegreaterthancurrenttime------- + +if(time_init>time)callfms_error_mesg('programcoupler',& +'initialtimeisgreaterthancurrenttime',fatal) + +!-----makesurerunlengthisamultipleofoceantimestep------ + +if(num_cpld_calls*time_step_cpld/=run_length)& +callfms_error_mesg('programcoupler',& +'runlengthmustbemultipleofcoupledtimestep',fatal) + +!----makesurecpldtimestepisamultipleofatmostimestep---- + +if(num_atmos_calls*time_step_atmos/=time_step_cpld)& +callfms_error_mesg('programcoupler',& +'cpldtimestepisnotamultipleoftheatmostimestep',fatal) + +! +!Initializethetracermanager.ThisneedstobedoneonallPEs, +!beforetheindividualmodelsareinitialized. +! + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializetracer_managerat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_tracer_manager_init() +!Initializethegas-exchangefluxessothisinformationcanbemade +!availabletotheindividualcomponents. +callgas_exchange_init(gas_fields_atm,gas_fields_ocn,gas_fluxes) +callfms_coupler_types_init() +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingtracer_managerat'& +//trim(walldate)//''//trim(walltime) +endif + +!Initializeatm/landexchange(notfortracers) +callgex_init() + +!----------------------------------------------------------------------- +!------initializecomponentmodels------ +!------gridinfonowcomesfromgrid_specfile + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Beginningtoinitializecomponentmodelsat'& +//trim(walldate)//''//trim(walltime) +endif +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +!----atmosphere---- +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializeatmosphericmodelat'& +//trim(walldate)//''//trim(walltime) +endif + +callfms_mpp_clock_begin(coupler_clocks%atmos_model_init) +callatmos_model_init(atm,time_init,time,time_step_atmos,& +do_concurrent_radiation) +callfms_mpp_clock_end(coupler_clocks%atmos_model_init) + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingatmosphericmodelat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_memutils_print_memuse_stats('atmos_model_init') +callfms_data_override_init(atm_domain_in=atm%domain) +endif +!----land---------- +if(land%pe)then +callfms_mpp_set_current_pelist(land%pelist) +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializelandmodelat'& +//trim(walldate)//''//trim(walltime) +endif + +callfms_mpp_clock_begin(coupler_clocks%land_model_init) +callland_model_init(atmos_land_boundary,land,time_init,time,& +time_step_atmos,time_step_cpld) +callfms_mpp_clock_end(coupler_clocks%land_model_init) + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializinglandmodelat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_memutils_print_memuse_stats('land_model_init') +callfms_data_override_init(land_domain_in=land%domain) +#ifndef_USE_LEGACY_LAND_ +callfms_data_override_init(land_domainug_in=land%ug_domain) +#endif +endif +!----ice----------- +if(ice%pe)then!ThisoccursforallfastorslowicePEs. +if(ice%fast_ice_pe)then +callfms_mpp_set_current_pelist(ice%fast_pelist) +elseif(ice%slow_ice_pe)then +callfms_mpp_set_current_pelist(ice%slow_pelist) +else +callfms_mpp_error(fatal,"AllIce%pesmustbeapartofIce%fast_ice_peorIce%slow_ice_pe") +endif +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializeicemodelat'& +//trim(walldate)//''//trim(walltime) +endif + +callfms_mpp_clock_begin(coupler_clocks%ice_model_init) +callice_model_init(ice,time_init,time,time_step_atmos,& +time_step_cpld,verona_coupler=.false.,& +concurrent_ice=concurrent_ice,& +gas_fluxes=gas_fluxes,gas_fields_ocn=gas_fields_ocn) +callfms_mpp_clock_end(coupler_clocks%ice_model_init) + +!ThismustbecalledusingtheunionoftheicePE_lists. +callfms_mpp_set_current_pelist(ice%pelist) +callshare_ice_domains(ice) + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingicemodelat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_memutils_print_memuse_stats('ice_model_init') +if(ice%fast_ice_pe)then +callfms_mpp_set_current_pelist(ice%fast_pelist) +callfms_data_override_init(ice_domain_in=ice%domain) +endif +endif + +!----ocean--------- +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializeoceanmodelat'& +//trim(walldate)//''//trim(walltime) +endif + +callfms_mpp_clock_begin(coupler_clocks%ocean_model_init) +callocean_model_init(ocean,ocean_state,time_init,time,& +gas_fields_ocn=gas_fields_ocn) +callfms_mpp_clock_end(coupler_clocks%ocean_model_init) + +if(concurrent)then +callfms_mpp_set_current_pelist(ocean%pelist) +!$callfms_affinity_set('OCEAN',use_hyper_thread,ocean_nthreads) +!$callomp_set_num_threads(ocean_nthreads) +else +ocean_nthreads=atmos_nthreads +!---omp_num_threadshasalreadybeensetbytheAtmos-pes,butsetagaintoensure +!$callomp_set_num_threads(ocean_nthreads) +endif + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingoceanmodelat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_memutils_print_memuse_stats('ocean_model_init') +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializedata_overrideat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_data_override_init(ocean_domain_in=ocean%domain) +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingdata_overrideat'& +//trim(walldate)//''//trim(walltime) +endif + +if(combined_ice_and_ocean)& +callice_ocean_driver_init(ice_ocean_driver_cs,time_init,time) + +endif!endofOcean%is_ocean_pe + +!--------------------------------------------- +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finishedinitializingcomponentmodelsat'& +//trim(walldate)//''//trim(walltime) +endif +callfms_mpp_set_current_pelist(ensemble_pelist(ensemble_id,:)) + +callfms_mpp_domains_broadcast_domain(ice%domain) +callfms_mpp_domains_broadcast_domain(ice%slow_domain_NH) +callfms_mpp_domains_broadcast_domain(ocean%domain) +!----------------------------------------------------------------------- +!----initializefluxexchangemodule---- +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Startingtoinitializeflux_exchangeat'& +//trim(walldate)//''//trim(walltime) +endif + +callfms_mpp_clock_begin(coupler_clocks%flux_exchange_init) +if(do_flux)callflux_exchange_init(time,atm,land,ice,ocean,ocean_state,& +atmos_ice_boundary,land_ice_atmos_boundary,& +land_ice_boundary,ice_ocean_boundary,ocean_ice_boundary,& +do_ocean,slow_ice_ocean_pelist,dt_atmos=dt_atmos,dt_cpld=dt_cpld) +callfms_mpp_set_current_pelist(ensemble_pelist(ensemble_id,:)) +callfms_mpp_clock_end(coupler_clocks%flux_exchange_init) + +callfms_mpp_set_current_pelist() +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Finsihedinitializingflux_exchangeat'& +//trim(walldate)//''//trim(walltime) +endif + +time_atmos=time +time_ocean=time + +! +!readinextrafieldsfortheair-seagasfluxes +! +if(ice%slow_ice_pe)then +callfms_mpp_set_current_pelist(ice%slow_pelist) + +callfms_coupler_type_register_restarts(ice%ocean_fluxes,ice_bc_restart,& +num_ice_bc_restart,ice%slow_domain_NH,to_read=.true.,ocean_restart=.false.,directory="INPUT/") + +!Restorethefieldsfromtherestartfiles +dol=1,num_ice_bc_restart +if(fms2_io_check_if_open(ice_bc_restart(l)))callfms2_io_read_restart(ice_bc_restart(l)) +enddo + +!Checkwhethertherestartswerereadsuccessfully. +callfms_coupler_type_restore_state(ice%ocean_fluxes,use_fms2_io=.true.,& +test_by_field=.true.) + +dol=1,num_ice_bc_restart +if(fms2_io_check_if_open(ice_bc_restart(l)))callfms2_io_close_file(ice_bc_restart(l)) +enddo +endif + +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) + +callfms_coupler_type_register_restarts(ocean%fields,ocn_bc_restart,& +num_ocn_bc_restart,ocean%domain,to_read=.true.,ocean_restart=.true.,directory="INPUT/") + +!Restorethefieldsfromtherestartfiles +dol=1,num_ocn_bc_restart +if(fms2_io_check_if_open(ocn_bc_restart(l)))callfms2_io_read_restart(ocn_bc_restart(l)) +enddo + +!Checkwhethertherestartswerereadsuccessfully. +callfms_coupler_type_restore_state(ocean%fields,use_fms2_io=.true.,& +test_by_field=.true.) + +dol=1,num_ocn_bc_restart +if(fms2_io_check_if_open(ocn_bc_restart(l)))callfms2_io_close_file(ocn_bc_restart(l)) +enddo +endif + +callfms_mpp_set_current_pelist() + +!----------------------------------------------------------------------- +!----openandclosedummyfileinrestartdirtocheckifdirexists-- + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +open(newunit=ascii_unit,file='RESTART/file',status='replace',form='formatted') +close(ascii_unit,status="delete") +endif + +!Calltodaig_grid_endtofreeupmemoryusedduringregional +!outputsetup +CALLfms_diag_grid_end() + +!----------------------------------------------------------------------- + +callcoupler_components_obj%initialize_coupler_components_obj(atm,land,ice,ocean,land_ice_atmos_boundary,& +atmos_land_boundary,atmos_ice_boundary,land_ice_boundary,ice_ocean_boundary,ocean_ice_boundary) + +callcoupler_chksum_obj%initialize_coupler_chksum_obj(coupler_components_obj) + +if(do_endpoint_chksum)then +callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('coupler_init+',0) +if(ice%slow_ice_PE)then +callfms_mpp_set_current_pelist(ice%slow_pelist) +callcoupler_chksum_obj%get_slow_ice_chksums('coupler_init+',0) +endif +endif + +callfms_mpp_set_current_pelist() +callfms_memutils_print_memuse_stats('coupler_init') + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +calldate_and_time(walldate,walltime,wallzone,wallvalues) +write(errunit,*)'Exitingcoupler_initat'& +//trim(walldate)//''//trim(walltime) +endif + +endsubroutinecoupler_init + +!####################################################################### + +subroutineinitialize_coupler_components_obj(this,Atm,Land,Ice,Ocean,Land_ice_atmos_boundary,& +Atmos_land_boundary,Atmos_ice_boundary,Land_ice_boundary,Ice_ocean_boundary,Ocean_ice_boundary) + +implicitnone +class(coupler_components_type),intent(inout)::this +type(atmos_data_type),target,intent(in)::Atm +type(land_data_type),target,intent(in)::Land +type(ice_data_type),target,intent(in)::Ice +type(ocean_public_type),target,intent(in)::Ocean +type(land_ice_atmos_boundary_type),target,intent(in)::Land_ice_atmos_boundary +type(atmos_land_boundary_type),target,intent(in)::Atmos_land_boundary +type(atmos_ice_boundary_type),target,intent(in)::Atmos_ice_boundary +type(land_ice_boundary_type),target,intent(in)::Land_ice_boundary +type(ice_ocean_boundary_type),target,intent(in)::Ice_ocean_boundary +type(ocean_ice_boundary_type),target,intent(in)::Ocean_ice_boundary + +this%Atm=>atm +this%Land=>land +this%Ice=>ice +this%Ocean=>ocean +this%Land_ice_atmos_boundary=>land_ice_atmos_boundary +this%Atmos_land_boundary=>atmos_land_boundary +this%Atmos_ice_boundary=>atmos_ice_boundary +this%Land_ice_boundary=>land_ice_boundary +this%Ice_ocean_boundary=>ice_ocean_boundary +this%Ocean_ice_boundary=>ocean_ice_boundary + +endsubroutineinitialize_coupler_components_obj + +subroutineget_component(this,retrieve_component) + +implicitnone +class(coupler_components_type),intent(in)::this +class(*),intent(out)::retrieve_component + +selecttype(retrieve_component) +typeis(atmos_data_type);retrieve_component=this%Atm +typeis(land_data_type);retrieve_component=this%Land +typeis(ice_data_type);retrieve_component=this%Ice +typeis(ocean_public_type);retrieve_component=this%Ocean +typeis(land_ice_atmos_boundary_type);retrieve_component=this%Land_ice_atmos_boundary +typeis(atmos_land_boundary_type);retrieve_component=this%Atmos_land_boundary +typeis(atmos_ice_boundary_type);retrieve_component=this%Atmos_ice_boundary +typeis(land_ice_boundary_type);retrieve_component=this%Land_ice_boundary +typeis(ice_ocean_boundary_type);retrieve_component=this%Ice_ocean_boundary +typeis(ocean_ice_boundary_type);retrieve_component=this%Ocean_ice_boundary +classdefault +callfms_mpp_error(fatal,"failureretrievingcomponentincoupler_components_typeobject,& +cannotrecognizethetypeofrequestedcomponent") +endselect + +endsubroutineget_component + +subroutineinitialize_coupler_chksum_obj(this,components_obj) + +implicitnone +class(coupler_chksum_type),intent(inout)::this +type(coupler_components_type),intent(in),target::components_obj + +this%components=>components_obj + +endsubroutineinitialize_coupler_chksum_obj + +subroutineget_components_obj(this,components_obj) + +implicitnone + +class(coupler_chksum_type),intent(in)::this +type(coupler_components_type),intent(out)::components_obj + +components_obj=this%components + +endsubroutineget_components_obj + +subroutinecoupler_end(Atm,Land,Ice,Ocean,Ocean_state,Land_ice_atmos_boundary,Atmos_ice_boundary,& +Atmos_land_boundary,Ice_ocean_boundary,Ocean_ice_boundary,Ocn_bc_restart,& +Ice_bc_restart,current_timestep,Time_current,Time_start,Time_end,Time_restart_current,& +coupler_chksum_obj,coupler_clocks) + +implicitnone + +type(atmos_data_type),intent(inout)::Atm +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean +type(ocean_state_type),pointer,intent(inout)::Ocean_state +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary +type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary +type(ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary +type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary +type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ocn_bc_restart +type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ice_bc_restart +integer,intent(in)::current_timestep +type(coupler_clock_type),intent(in)::coupler_clocks +type(coupler_chksum_type),intent(in)::coupler_chksum_obj + +type(FmsTime_type),intent(in)::Time_current +type(FmsTime_type),intent(in)::Time_start +type(FmsTime_type),intent(in)::Time_end +type(FmsTime_type),intent(in)::Time_restart_current + +callfms_mpp_clock_begin(coupler_clocks%termination) + +if(do_chksum)callcoupler_chksum_obj%get_coupler_chksums('coupler_end-',current_timestep) +if(do_endpoint_chksum)then +callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('coupler_end',0) +if(ice%slow_ice_PE)then +callfms_mpp_set_current_pelist(ice%slow_pelist) +callcoupler_chksum_obj%get_slow_ice_chksums('coupler_end',0) +endif +endif +callfms_mpp_set_current_pelist() + +!-----checktimeversusexpectedendingtime---- + +if(time_current/=time_end)callfms_error_mesg('programcoupler',& +'finaltimedoesnotmatchexpectedendingtime',warning) + +!----------------------------------------------------------------------- +!thecalltofms_io_exithasbeenmovedhere +!thiswillworkforserialcodeorconcurrent(disjointpelists) +!butwillfailonoverlappingbutunequalpelists +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) +callocean_model_end(ocean,ocean_state,time_current) +endif +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +callatmos_model_end(atm) +endif +if(land%pe)then +callfms_mpp_set_current_pelist(land%pelist) +callland_model_end(atmos_land_boundary,land) +endif +if(ice%pe)then!ThishappensonallfastorslowicePEs. +if(ice%slow_ice_PE)then +callfms_mpp_set_current_pelist(ice%slow_pelist) +else!ThismustbeafasticePE. +callfms_mpp_set_current_pelist(ice%fast_pelist) +endif +callice_model_end(ice) +endif + +!-----writerestartfile------ +callcoupler_restart(atm,ice,ocean,ocn_bc_restart,ice_bc_restart,& +time_current,time_restart_current,time_start) + +callfms_diag_end(time_current) +#ifdefuse_deprecated_io +callfms_io_exit +#endif + +callfms_mpp_set_current_pelist() +callfms_mpp_clock_end(coupler_clocks%termination) + +!----------------------------------------------------------------------- + +endsubroutinecoupler_end + +subroutineadd_domain_dimension_data(fileobj) +type(FmsNetcdfDomainFile_t)::fileobj +integer,dimension(:),allocatable::buffer +integer::is,ie + +callfms2_io_get_global_io_domain_indices(fileobj,"xaxis_1",is,ie,indices=buffer) +callfms2_io_write_data(fileobj,"xaxis_1",buffer) +deallocate(buffer) + +callfms2_io_get_global_io_domain_indices(fileobj,"yaxis_1",is,ie,indices=buffer) +callfms2_io_write_data(fileobj,"yaxis_1",buffer) +deallocate(buffer) + +endsubroutineadd_domain_dimension_data + + +subroutinecoupler_restart(Atm,Ice,Ocean,Ocn_bc_restart,Ice_bc_restart,& +Time_current,Time_restart_current,Time_start,time_stamp) + +implicitnone + +type(atmos_data_type),intent(inout)::Atm +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean + +type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ocn_bc_restart +type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ice_bc_restart +type(FmsTime_type),intent(in)::Time_current +type(FmsTime_type),intent(in)::Time_restart_current +type(FmsTime_type),intent(in)::Time_start +character(len=*),intent(in),optional::time_stamp + +character(len=128)::file_run,file_res + +integer::yr,mon,day,hr,min,sec,date(6),n +integer::num_ice_bc_restart,num_ocn_bc_restart +integer::restart_unit + +callfms_mpp_set_current_pelist() + +!writerestartfile +if(present(time_stamp))then +file_run='RESTART/'//trim(time_stamp)//'.coupler.res' +file_res='RESTART/'//trim(time_stamp)//'.coupler.intermediate.res' +else +file_run='RESTART/coupler.res' +file_res='RESTART/coupler.intermediate.res' +endif + +!-----computecurrentdate------ +callfms_time_manager_get_date(time_current,date(1),date(2),date(3),date(4),date(5),date(6)) +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +open(newunit=restart_unit,file=file_run,status='replace',form='formatted') +write(restart_unit,'(i6,8x,a)')calendar_type,& +'(Calendar:no_calendar=0,thirty_day_months=1,julian=2,gregorian=3,noleap=4)' + +write(restart_unit,'(6i6,8x,a)')date_init,'Modelstarttime:year,month,day,hour,minute,second' +write(restart_unit,'(6i6,8x,a)')date,'Currentmodeltime:year,month,day,hour,minute,second' +close(restart_unit) +endif + +if(time_restart_current>time_start)then +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +open(newunit=restart_unit,file=file_res,status='replace',form='formatted') +callfms_time_manager_get_date(time_restart_current,yr,mon,day,hr,min,sec) +write(restart_unit,'(6i6,8x,a)')yr,mon,day,hr,min,sec,& +'Currentintermediaterestarttime:year,month,day,hour,minute,second' +close(restart_unit) +endif +endif + +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) +if(associated(ocn_bc_restart))deallocate(ocn_bc_restart) + +callfms_coupler_type_register_restarts(ocean%fields,ocn_bc_restart,& +num_ocn_bc_restart,ocean%domain,to_read=.false.,ocean_restart=.true.,directory="RESTART/") +don=1,num_ocn_bc_restart +if(fms2_io_check_if_open(ocn_bc_restart(n)))then +callfms2_io_write_restart(ocn_bc_restart(n)) +calladd_domain_dimension_data(ocn_bc_restart(n)) +callfms2_io_close_file(ocn_bc_restart(n)) +endif +enddo +endif + +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) + +if(associated(ice_bc_restart))deallocate(ice_bc_restart) +callfms_coupler_type_register_restarts(ice%ocean_fluxes,ice_bc_restart,& +num_ice_bc_restart,ice%slow_domain_NH,to_read=.false.,ocean_restart=.false.,directory="RESTART/") +don=1,num_ice_bc_restart +if(fms2_io_check_if_open(ice_bc_restart(n)))then +callfms2_io_write_restart(ice_bc_restart(n)) +calladd_domain_dimension_data(ice_bc_restart(n)) +callfms2_io_close_file(ice_bc_restart(n)) +endif +enddo +endif + +endsubroutinecoupler_restart + +!-------------------------------------------------------------------------- + +subroutineget_coupler_chksums(this,id,timestep) + +implicitnone + +class(coupler_chksum_type),intent(in)::this +character(len=*),intent(in)::id +integer,intent(in)::timestep + +type::tracer_ind_type +integer::atm,ice,lnd!indicesofthetracerintherespectivemodels +endtypetracer_ind_type + +integer::n_atm_tr,n_lnd_tr,n_exch_tr +integer::n_atm_tr_tot,n_lnd_tr_tot +integer::i,tr,n,m,outunit +type(tracer_ind_type),allocatable::tr_table(:) +character(32)::tr_name + +callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,num_prog=n_atm_tr) +callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,num_prog=n_lnd_tr) + +!Assemblethetableoftracernumbertranslationbymatchingnamesof +!prognostictracersintheatmosphereandsurfacemodels;skipallatmos. +!tracersthathavenocorrespondingsurfacetracers. +allocate(tr_table(n_atm_tr)) +n=1 +doi=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) +tr_table(n)%atm=i +tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) +tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) +if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)n=n+1 +enddo +n_exch_tr=n-1 + +100FORMAT("CHECKSUM::",a32,"=",z20) +101FORMAT("CHECKSUM::",a16,a,'%',a,"=",z20) + +if(this%components%Atm%pe)then +callfms_mpp_set_current_pelist(this%components%Atm%pelist) + +outunit=fms_mpp_stdout() +write(outunit,*)'BEGINCHECKSUM(Atm)::',id,timestep +write(outunit,100)'atm%t_bot',fms_mpp_chksum(this%components%Atm%t_bot) +write(outunit,100)'atm%z_bot',fms_mpp_chksum(this%components%Atm%z_bot) +write(outunit,100)'atm%p_bot',fms_mpp_chksum(this%components%Atm%p_bot) +write(outunit,100)'atm%u_bot',fms_mpp_chksum(this%components%Atm%u_bot) +write(outunit,100)'atm%v_bot',fms_mpp_chksum(this%components%Atm%v_bot) +write(outunit,100)'atm%p_surf',fms_mpp_chksum(this%components%Atm%p_surf) +write(outunit,100)'atm%gust',fms_mpp_chksum(this%components%Atm%gust) +dotr=1,n_exch_tr +n=tr_table(tr)%atm +if(n/=no_tracer)then +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +write(outunit,100)'atm%'//trim(tr_name),fms_mpp_chksum(this%components%Atm%tr_bot(:,:,n)) +endif +enddo + +write(outunit,100)'land%t_surf',fms_mpp_chksum(this%components%Land%t_surf) +write(outunit,100)'land%t_ca',fms_mpp_chksum(this%components%Land%t_ca) +write(outunit,100)'land%rough_mom',fms_mpp_chksum(this%components%Land%rough_mom) +write(outunit,100)'land%rough_heat',fms_mpp_chksum(this%components%Land%rough_heat) +write(outunit,100)'land%rough_scale',fms_mpp_chksum(this%components%Land%rough_scale) +dotr=1,n_exch_tr +n=tr_table(tr)%lnd +if(n/=no_tracer)then +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +#ifndef_USE_LEGACY_LAND_ +write(outunit,100)'land%'//trim(tr_name),fms_mpp_chksum(this%components%Land%tr(:,:,n)) +#else +write(outunit,100)'land%'//trim(tr_name),fms_mpp_chksum(this%components%Land%tr(:,:,:,n)) +#endif +endif +enddo + +write(outunit,100)'ice%t_surf',fms_mpp_chksum(this%components%Ice%t_surf) +write(outunit,100)'ice%rough_mom',fms_mpp_chksum(this%components%Ice%rough_mom) +write(outunit,100)'ice%rough_heat',fms_mpp_chksum(this%components%Ice%rough_heat) +write(outunit,100)'ice%rough_moist',fms_mpp_chksum(this%components%Ice%rough_moist) +write(outunit,*)'STOPCHECKSUM(Atm)::',id,timestep + +!endif + +!if(Ocean%is_ocean_pe)callmpp_set_current_pelist(Ocean%pelist) + +write(outunit,*)'BEGINCHECKSUM(Ice)::',id,timestep +callfms_coupler_type_write_chksums(this%components%Ice%ocean_fields,outunit,'ice%') +write(outunit,*)'STOPCHECKSUM(Ice)::',id,timestep + +endif + +deallocate(tr_table) + +callfms_mpp_set_current_pelist() + +endsubroutineget_coupler_chksums + +!####################################################################### + +subroutineget_atmos_ice_land_ocean_chksums(this,id,timestep) + +implicitnone + +class(coupler_chksum_type),intent(in)::this +character(len=*),intent(in)::id +integer,intent(in)::timestep + +if(this%components%Atm%pe)then +callfms_mpp_set_current_pelist(this%components%Atm%pelist) +callthis%get_atmos_ice_land_chksums(trim(id),timestep) +endif +if(this%components%Ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(this%components%Ocean%pelist) +callthis%get_ocean_chksums(trim(id),timestep) +endif + +callfms_mpp_set_current_pelist() + +endsubroutineget_atmos_ice_land_ocean_chksums + +subroutineget_atmos_ice_land_chksums(this,id,timestep) + +class(coupler_chksum_type),intent(in)::this +character(len=*),intent(in)::id +integer,intent(in)::timestep + +callatmos_data_type_chksum(id,timestep,this%components%Atm) +calllnd_ice_atm_bnd_type_chksum(id,timestep,this%components%Land_ice_atmos_boundary) + +if(this%components%Ice%fast_ice_pe)then +callfms_mpp_set_current_pelist(this%components%Ice%fast_pelist) +callice_data_type_chksum(id,timestep,this%components%Ice) +callatm_ice_bnd_type_chksum(id,timestep,this%components%Atmos_ice_boundary) +endif +if(this%components%Land%pe)then +callfms_mpp_set_current_pelist(this%components%Land%pelist) +callland_data_type_chksum(id,timestep,this%components%Land) +callatm_lnd_bnd_type_chksum(id,timestep,this%components%Atmos_land_boundary) +endif + +callfms_mpp_set_current_pelist(this%components%Atm%pelist) + +endsubroutineget_atmos_ice_land_chksums + +subroutineget_slow_ice_chksums(this,id,timestep) + +class(coupler_chksum_type),intent(in)::this +character(len=*),intent(in)::id +integer,intent(in)::timestep + +callice_data_type_chksum(id,timestep,this%components%Ice) +callocn_ice_bnd_type_chksum(id,timestep,this%components%Ocean_ice_boundary) + +endsubroutineget_slow_ice_chksums + + +subroutineget_ocean_chksums(this,id,timestep) + +class(coupler_chksum_type),intent(in)::this +character(len=*),intent(in)::id +integer,intent(in)::timestep + +callocean_public_type_chksum(id,timestep,this%components%Ocean) +callice_ocn_bnd_type_chksum(id,timestep,this%components%Ice_ocean_boundary) + +endsubroutineget_ocean_chksums + +subroutinecoupler_set_clock_ids(coupler_clocks,Atm,Land,Ice,Ocean,ensemble_pelist,& +slow_ice_ocean_pelist,ensemble_id) + +implicitnone + +type(coupler_clock_type),intent(inout)::coupler_clocks +type(atmos_data_type),intent(in)::Atm +type(land_data_type),intent(in)::Land +type(ocean_public_type),intent(in)::Ocean +type(ice_data_type),intent(in)::Ice +integer,dimension(:),intent(in)::slow_ice_ocean_pelist +integer,dimension(:,:),intent(in)::ensemble_pelist +integer,intent(in)::ensemble_id + +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +coupler_clocks%atmos_model_init=fms_mpp_clock_id('Init:atmos_model_init') +endif +if(land%pe)then +callfms_mpp_set_current_pelist(land%pelist) +coupler_clocks%land_model_init=fms_mpp_clock_id('Init:land_model_init') +endif +if(ice%pe)then +if(ice%shared_slow_fast_PEs)then;callfms_mpp_set_current_pelist(ice%pelist) +elseif(ice%fast_ice_pe)then;callfms_mpp_set_current_pelist(ice%fast_pelist) +elseif(ice%slow_ice_pe)then;callfms_mpp_set_current_pelist(ice%slow_pelist) +else;callfms_mpp_error(fatal,"AllIce%pesmustbeapartofIce%fast_ice_peorIce%slow_ice_pe") +endif +coupler_clocks%ice_model_init=fms_mpp_clock_id('Init:ice_model_init') +endif +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) +coupler_clocks%ocean_model_init=fms_mpp_clock_id('Init:ocean_model_init') +endif +callfms_mpp_set_current_pelist(ensemble_pelist(ensemble_id,:)) +coupler_clocks%flux_exchange_init=fms_mpp_clock_id('Init:flux_exchange_init') + +callfms_mpp_set_current_pelist() +coupler_clocks%main=fms_mpp_clock_id('Mainloop') +coupler_clocks%termination=fms_mpp_clock_id('Termination') + +If(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +coupler_clocks%generate_sfc_xgrid=fms_mpp_clock_id('generate_sfc_xgrid') +endif +if(ice%slow_ice_PE.or.ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) +coupler_clocks%flux_ocean_to_ice=fms_mpp_clock_id('flux_ocean_to_ice') +coupler_clocks%flux_ice_to_ocean=fms_mpp_clock_id('flux_ice_to_ocean') +endif +if(atm%pe)then +callfms_mpp_set_current_pelist(atm%pelist) +coupler_clocks%atm=fms_mpp_clock_id('ATM') +coupler_clocks%atmos_loop=fms_mpp_clock_id('ATM:atmosloop') +coupler_clocks%atmos_tracer_driver_gather_data& +=fms_mpp_clock_id('A-L:atmos_tracer_driver_gather_data') +coupler_clocks%sfc_boundary_layer=fms_mpp_clock_id('A-L:sfc_boundary_layer') +coupler_clocks%update_atmos_model_dynamics=fms_mpp_clock_id('A-L:update_atmos_model_dynamics') +if(.not.do_concurrent_radiation)& +coupler_clocks%radiation=fms_mpp_clock_id('A-L:serialradiation') +coupler_clocks%update_atmos_model_down=fms_mpp_clock_id('A-L:update_atmos_model_down') +coupler_clocks%flux_down_from_atmos=fms_mpp_clock_id('A-L:flux_down_from_atmos') +coupler_clocks%update_land_model_fast=fms_mpp_clock_id('A-L:update_land_model_fast') +coupler_clocks%update_ice_model_fast=fms_mpp_clock_id('A-L:update_ice_model_fast') +coupler_clocks%flux_up_to_atmos=fms_mpp_clock_id('A-L:flux_up_to_atmos') +coupler_clocks%update_atmos_model_up=fms_mpp_clock_id('A-L:update_atmos_model_up') +if(do_concurrent_radiation)then +coupler_clocks%radiation=fms_mpp_clock_id('A-L:concurrentradiation') +coupler_clocks%concurrent_atmos=fms_mpp_clock_id('A-L:concurrentatmos') +endif +coupler_clocks%update_atmos_model_state=fms_mpp_clock_id('A-L:update_atmos_model_state') +coupler_clocks%update_land_model_slow=fms_mpp_clock_id('ATM:update_land_model_slow') +coupler_clocks%flux_land_to_ice=fms_mpp_clock_id('ATM:flux_land_to_ice') +endif +if(ice%pe)then +if(ice%fast_ice_pe)callfms_mpp_set_current_pelist(ice%fast_pelist) +coupler_clocks%set_ice_surface_fast=fms_mpp_clock_id('Ice:set_ice_surfacefast') +coupler_clocks%update_ice_model_slow_fast=fms_mpp_clock_id('Ice:update_ice_model_slowfast') + +if(ice%slow_ice_pe)callfms_mpp_set_current_pelist(ice%slow_pelist) +coupler_clocks%set_ice_surface_slow=fms_mpp_clock_id('Ice:set_ice_surfaceslow') +coupler_clocks%update_ice_model_slow_slow=fms_mpp_clock_id('Ice:update_ice_model_slowslow') +coupler_clocks%flux_ice_to_ocean_stocks=fms_mpp_clock_id('Ice:flux_ice_to_ocean_stocks') + +callfms_mpp_set_current_pelist(ice%pelist) +coupler_clocks%set_ice_surface_exchange=fms_mpp_clock_id('Ice:set_ice_surfaceexchange') +coupler_clocks%update_ice_model_slow_exchange=fms_mpp_clock_id('Ice:update_ice_model_slowexchange') + +endif +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) +coupler_clocks%ocean=fms_mpp_clock_id('OCN') +endif + +callfms_mpp_set_current_pelist() +coupler_clocks%flux_check_stocks=fms_mpp_clock_id('flux_check_stocks') +coupler_clocks%intermediate_restart=fms_mpp_clock_id('intermediaterestart') +coupler_clocks%final_flux_check_stocks=fms_mpp_clock_id('finalflux_check_stocks') + +endsubroutinecoupler_set_clock_ids + +subroutinecoupler_flux_init_finish_stocks(Time,Atm,Land,Ice,Ocean_state,& +coupler_clocks,init_stocks,finish_stocks) + +implicitnone + +type(FmsTime_type),intent(in)::Time +type(atmos_data_type),intent(inout)::Atm +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(ocean_state_type),pointer,intent(inout)::Ocean_state +type(coupler_clock_type),intent(inout)::coupler_clocks +logical,optional,intent(in)::init_stocks,finish_stocks + +logical::init,finish + +init=.false.;if(present(init_stocks))init=init_stocks +finish=.false.;if(present(finish_stocks))finish=finish_stocks + +if(init)then +callfms_mpp_set_current_pelist() +callflux_init_stocks(time,atm,land,ice,ocean_state) +elseif(finish)then +callfms_mpp_set_current_pelist() +callfms_mpp_clock_begin(coupler_clocks%final_flux_check_stocks) +if(check_stocks>=0)then +callfms_mpp_set_current_pelist() +callflux_check_stocks(time=time,atm=atm,lnd=land,ice=ice,ocn_state=ocean_state) +endif +callfms_mpp_clock_end(coupler_clocks%final_flux_check_stocks) +else +callfms_mpp_error(fatal,'coupler_flux_init_finish_stocks:eitherinitorfinishneedstobe.True.') +endif + +endsubroutinecoupler_flux_init_finish_stocks + +subroutinecoupler_flux_check_stocks(nc,Time,Atm,Land,Ice,Ocean_state,coupler_clocks) + +implicitnone + +integer,intent(in)::nc +type(FmsTime_type),intent(in)::Time +type(atmos_data_type),intent(inout)::Atm +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(ocean_state_type),pointer,intent(inout)::Ocean_state +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%flux_check_stocks) +if(check_stocks*((nc-1)/check_stocks)==nc-1.AND.nc>1)then +callfms_mpp_set_current_pelist() +callflux_check_stocks(time=time,atm=atm,lnd=land,ice=ice,ocn_state=ocean_state) +endif +callfms_mpp_clock_end(coupler_clocks%flux_check_stocks) + +endsubroutinecoupler_flux_check_stocks + +subroutinecoupler_flux_ocean_to_ice(Ocean,Ice,Ocean_ice_boundary,coupler_clocks,slow_ice_ocean_pelist) + +implicitnone + +type(ocean_public_type),intent(inout)::Ocean +type(ice_data_type),intent(in)::Ice +type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary +type(coupler_clock_type),intent(inout)::coupler_clocks +integer,dimension(:),intent(in)::slow_ice_ocean_pelist + +!RedistributequantitiesfromOceantoOcean_ice_boundary + +!IftheslowiceisonasubsetoftheoceanPEs,usetheoceanPElist. +callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) +callfms_mpp_clock_begin(coupler_clocks%flux_ocean_to_ice) + +!IceintentisIn,usedonlyforaccessingIce%areaandknowingifweareonanIcepe +callflux_ocean_to_ice(ocean,ice,ocean_ice_boundary) + +callfms_mpp_clock_end(coupler_clocks%flux_ocean_to_ice) + +endsubroutinecoupler_flux_ocean_to_ice + +subroutinecoupler_flux_ice_to_ocean(Ice,Ocean,Ice_ocean_boundary,coupler_clocks,& +slow_ice_ocean_pelist,set_current_slow_ice_ocean_pelist) + +implicitnone + +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean +type(ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary +type(coupler_clock_type),intent(inout)::coupler_clocks +integer,dimension(:),optional,intent(in)::slow_ice_ocean_pelist +logical,optional,intent(in)::set_current_slow_ice_ocean_pelist + +logical::set_current_slow_ice_ocean_pelist_in + +set_current_slow_ice_ocean_pelist_in=.false. +if(present(set_current_slow_ice_ocean_pelist))& +set_current_slow_ice_ocean_pelist_in=set_current_slow_ice_ocean_pelist + +!UpdateIce_ocean_boundary;thefirstiterationissuppliedbyrestarts + +if(set_current_slow_ice_ocean_pelist_in)callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) + +callfms_mpp_clock_begin(coupler_clocks%flux_ice_to_ocean) +callflux_ice_to_ocean(ice,ocean,ice_ocean_boundary) +callfms_mpp_clock_end(coupler_clocks%flux_ice_to_ocean) + +endsubroutinecoupler_flux_ice_to_ocean + +subroutinecoupler_unpack_ocean_ice_boundary(nc,Time_flux_ocean_to_ice,Ice,Ocean_ice_boundary,coupler_clocks,& +coupler_chksum_obj) + +implicitnone + +integer,intent(in)::nc +type(FmsTime_type),intent(inout)::Time_flux_ocean_to_ice +type(ice_data_type),intent(inout)::Ice +type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary +type(coupler_clock_type),intent(inout)::coupler_clocks +type(coupler_chksum_type),intent(in)::coupler_chksum_obj + +callfms_mpp_set_current_pelist(ice%slow_pelist) +callfms_mpp_clock_begin(coupler_clocks%set_ice_surface_slow) + +!ThismaydodataoverrideordiagnosticsonIce_ocean_boundary. +callflux_ocean_to_ice_finish(time_flux_ocean_to_ice,ice,ocean_ice_boundary) +callunpack_ocean_ice_boundary(ocean_ice_boundary,ice) +if(do_chksum)callcoupler_chksum_obj%get_slow_ice_chksums('update_ice_slow+',nc) + +callfms_mpp_clock_end(coupler_clocks%set_ice_surface_slow) + +endsubroutinecoupler_unpack_ocean_ice_boundary + +subroutinecoupler_exchange_slow_to_fast_ice(Ice,coupler_clocks) + +implicitnone +type(ice_data_type),intent(inout)::Ice +type(coupler_clock_type),intent(inout)::coupler_clocks + +!Thiscouldbeapointwherethemodelisserializedifthefastand +!slowiceareondifferentPEs. +if(.not.ice%shared_slow_fast_PEs)callfms_mpp_set_current_pelist(ice%pelist) +callfms_mpp_clock_begin(coupler_clocks%set_ice_surface_exchange) +callexchange_slow_to_fast_ice(ice) +callfms_mpp_clock_end(coupler_clocks%set_ice_surface_exchange) + +endsubroutinecoupler_exchange_slow_to_fast_ice + +subroutinecoupler_exchange_fast_to_slow_ice(Ice,coupler_clocks,set_ice_current_pelist) + +implicitnone +type(ice_data_type),intent(inout)::Ice +type(coupler_clock_type),intent(inout)::coupler_clocks +logical,optional,intent(in)::set_ice_current_pelist + +logical::set_ice_current_pelist_in + +set_ice_current_pelist_in=.false. +if(present(set_ice_current_pelist))set_ice_current_pelist_in=set_ice_current_pelist + +if(set_ice_current_pelist_in.and..not.ice%shared_slow_fast_PEs)callfms_mpp_set_current_pelist(ice%pelist) +callfms_mpp_clock_begin(coupler_clocks%update_ice_model_slow_exchange) +callexchange_fast_to_slow_ice(ice) +callfms_mpp_clock_end(coupler_clocks%update_ice_model_slow_exchange) + +endsubroutinecoupler_exchange_fast_to_slow_ice + +subroutinecoupler_set_ice_surface_fields(Ice,coupler_clocks) + +implicitnone +type(ice_data_type),intent(inout)::Ice +type(coupler_clock_type),intent(inout)::coupler_clocks + +if(.not.ice%shared_slow_fast_PEs)callfms_mpp_set_current_pelist(ice%fast_pelist) +callfms_mpp_clock_begin(coupler_clocks%set_ice_surface_fast) +callset_ice_surface_fields(ice) +callfms_mpp_clock_end(coupler_clocks%set_ice_surface_fast) + +endsubroutinecoupler_set_ice_surface_fields + +subroutinecoupler_generate_sfc_xgrid(Land,Ice,coupler_clocks) + +implicitnone +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%generate_sfc_xgrid) +callgenerate_sfc_xgrid(land,ice) +callfms_mpp_clock_end(coupler_clocks%generate_sfc_xgrid) + +endsubroutinecoupler_generate_sfc_xgrid + +subroutinecoupler_atmos_tracer_driver_gather_data(Atm,coupler_clocks) + +implicitnone + +type(atmos_data_type),intent(inout)::Atm +type(coupler_clock_type),intent(inout)::coupler_clocks +callfms_mpp_clock_begin(coupler_clocks%atmos_tracer_driver_gather_data) +callatmos_tracer_driver_gather_data(atm%fields,atm%tr_bot) +callfms_mpp_clock_end(coupler_clocks%atmos_tracer_driver_gather_data) + +endsubroutinecoupler_atmos_tracer_driver_gather_data + +subroutinecoupler_sfc_boundary_layer(Atm,Land,Ice,Land_ice_atmos_boundary,& +Time_atmos,current_timestep,coupler_chksum_obj,coupler_clocks) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +type(FmsTime_type),intent(in)::Time_atmos +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%sfc_boundary_layer) + +callsfc_boundary_layer(real(dt_atmos),Time_atmos,Atm,Land,Ice,Land_ice_atmos_boundary) +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('sfc+',current_timestep) + +callfms_mpp_clock_end(coupler_clocks%sfc_boundary_layer) + +endsubroutinecoupler_sfc_boundary_layer + +subroutinecoupler_update_atmos_model_dynamics(Atm,current_timestep,coupler_chksum_obj,coupler_clocks) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_dynamics) +callupdate_atmos_model_dynamics(atm) +callfms_mpp_clock_end(coupler_clocks%update_atmos_model_dynamics) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_model_dynamics',current_timestep) +if(do_debug)callfms_memutils_print_memuse_stats('updatedyn') + +endsubroutinecoupler_update_atmos_model_dynamics + +subroutinecoupler_update_atmos_model_radiation(Atm,Land_ice_atmos_boundary,coupler_clocks,& +current_timestep,coupler_chksum_obj) + +implicitnone + +type(atmos_data_type),intent(inout)::Atm +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +type(coupler_clock_type),intent(inout)::coupler_clocks +integer,optional,intent(in)::current_timestep +type(coupler_chksum_type),optional,intent(in)::coupler_chksum_obj + +character(128)::memuse_stats_id='updateserialrad' + +callfms_mpp_clock_begin(coupler_clocks%radiation) +callupdate_atmos_model_radiation(land_ice_atmos_boundary,atm) +callfms_mpp_clock_end(coupler_clocks%radiation) + +if(do_chksum)then +if(.not.do_concurrent_radiation)& +callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_model_radiation(ser)',current_timestep) +endif + +if(do_debug)then +if(do_concurrent_radiation)memuse_stats_id='updateconcurrentrad' +callfms_memutils_print_memuse_stats(trim(memuse_stats_id)) +endif + +endsubroutinecoupler_update_atmos_model_radiation + +subroutinecoupler_update_atmos_model_down(Atm,Land_ice_atmos_boundary,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_down) +callupdate_atmos_model_down(land_ice_atmos_boundary,atm) +callfms_mpp_clock_end(coupler_clocks%update_atmos_model_down) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_down+',current_timestep) +if(do_debug)callfms_memutils_print_memuse_stats('updatedown') + +endsubroutinecoupler_update_atmos_model_down + +subroutinecoupler_flux_down_from_atmos(Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,& +Atmos_ice_boundary,Time_atmos,current_timestep,coupler_clocks,coupler_chksum_obj) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary +type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary +type(FmsTime_type),intent(in)::Time_atmos +integer,intent(in)::current_timestep +type(coupler_clock_type),intent(inout)::coupler_clocks +type(coupler_chksum_type),intent(in)::coupler_chksum_obj + +callfms_mpp_clock_begin(coupler_clocks%flux_down_from_atmos) +callflux_down_from_atmos(time_atmos,atm,land,ice,land_ice_atmos_boundary,& +atmos_land_boundary,atmos_ice_boundary) +callfms_mpp_clock_end(coupler_clocks%flux_down_from_atmos) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('flux_down_from_atmos+',current_timestep) + +endsubroutinecoupler_flux_down_from_atmos + +subroutinecoupler_update_land_model_fast(Land,Atmos_land_boundary,atm_pelist,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +implicitnone +type(land_data_type),intent(inout)::Land +type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary +integer,dimension(:),intent(in)::atm_pelist +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%update_land_model_fast) +if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(land%pelist) + +callupdate_land_model_fast(atmos_land_boundary,land) + +if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(atm_pelist) +callfms_mpp_clock_end(coupler_clocks%update_land_model_fast) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_land_fast+',current_timestep) +if(do_debug)callfms_memutils_print_memuse_stats('updateland') + +endsubroutinecoupler_update_land_model_fast + +subroutinecoupler_update_ice_model_fast(Ice,Atmos_ice_boundary,atm_pelist,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +implicitnone +type(ice_data_type),intent(inout)::Ice +type(Atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary +integer,dimension(:),intent(in)::atm_pelist +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%update_ice_model_fast) +if(ice_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(ice%fast_pelist) + +callupdate_ice_model_fast(atmos_ice_boundary,ice) + +if(ice_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(atm_pelist) +callfms_mpp_clock_end(coupler_clocks%update_ice_model_fast) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_ice_fast+',current_timestep) +if(do_debug)callfms_memutils_print_memuse_stats('updateice') + +endsubroutinecoupler_update_ice_model_fast + +subroutinecoupler_flux_up_to_atmos(Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,Atmos_ice_boundary,& +Time_atmos,current_timestep,coupler_chksum_obj,coupler_clocks) + +implicitnone +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary +type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary +type(FmsTime_type),intent(in)::Time_atmos +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(in)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%flux_up_to_atmos) +callflux_up_to_atmos(time_atmos,land,ice,land_ice_atmos_boundary,atmos_land_boundary,atmos_ice_boundary) +callfms_mpp_clock_end(coupler_clocks%flux_up_to_atmos) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('flux_up2atmos+',current_timestep) + +endsubroutinecoupler_flux_up_to_atmos + +subroutinecoupler_update_atmos_model_up(Atm,Land_ice_atmos_boundary,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_up) +callupdate_atmos_model_up(land_ice_atmos_boundary,atm) +callfms_mpp_clock_end(coupler_clocks%update_atmos_model_up) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_up+',current_timestep) +if(do_debug)callfms_memutils_print_memuse_stats('updateup') + +endsubroutinecoupler_update_atmos_model_up + +subroutinecoupler_flux_atmos_to_ocean(Atm,Atmos_ice_boundary,Ice,Time_atmos) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary +type(ice_data_type),intent(inout)::Ice +type(FmsTime_type),intent(in)::Time_atmos + +callflux_atmos_to_ocean(time_atmos,atm,atmos_ice_boundary,ice) +callflux_ex_arrays_dealloc + +endsubroutinecoupler_flux_atmos_to_ocean + +subroutinecoupler_update_atmos_model_state(Atm,current_timestep,coupler_chksum_obj,coupler_clocks) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_state) +callupdate_atmos_model_state(atm) +callfms_mpp_clock_end(coupler_clocks%update_atmos_model_state) + +if(do_chksum)& +callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_model_state+',current_timestep) +if(do_debug)callfms_memutils_print_memuse_stats('updatestate') + +endsubroutinecoupler_update_atmos_model_state + +subroutinecoupler_update_land_model_slow(Land,Atmos_land_boundary,atm_pelist,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +implicitnone +type(land_data_type),intent(inout)::Land +type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary +integer,dimension(:),intent(in)::atm_pelist +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%update_land_model_slow) + +if(land%pe)then +if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(land%pelist) +callupdate_land_model_slow(atmos_land_boundary,land) +endif + +if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(atm_pelist) +callfms_mpp_clock_end(coupler_clocks%update_land_model_slow) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_land_slow+',current_timestep) + +endsubroutinecoupler_update_land_model_slow + +subroutinecoupler_flux_land_to_ice(Land,Ice,Land_ice_boundary,Time,current_timestep,& +coupler_chksum_obj,coupler_clocks) + +implicitnone +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(land_ice_boundary_type),intent(inout)::Land_ice_boundary +type(FmsTime_type),intent(in)::Time +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +type(coupler_clock_type),intent(inout)::coupler_clocks + +callfms_mpp_clock_begin(coupler_clocks%flux_land_to_ice) +callflux_land_to_ice(time,land,ice,land_ice_boundary) +callfms_mpp_clock_end(coupler_clocks%flux_land_to_ice) + +if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('fluxlnd2ice+',current_timestep) + +endsubroutinecoupler_flux_land_to_ice + +subroutinecoupler_unpack_land_ice_boundary(Ice,Land_ice_boundary,coupler_clocks) + +implicitnone +type(ice_data_type),intent(inout)::Ice +type(land_ice_boundary_type),intent(inout)::Land_ice_boundary +type(coupler_clock_type),intent(inout)::coupler_clocks + +if(ice_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(ice%fast_pelist) +callfms_mpp_clock_begin(coupler_clocks%update_ice_model_slow_fast) + +callice_model_fast_cleanup(ice) +callunpack_land_ice_boundary(ice,land_ice_boundary) + +callfms_mpp_clock_end(coupler_clocks%update_ice_model_slow_fast) + +endsubroutinecoupler_unpack_land_ice_boundary + +subroutinecoupler_update_ice_model_slow_and_stocks(Ice,coupler_clocks) + +implicitnone +type(ice_data_type),intent(inout)::Ice +type(coupler_clock_type),intent(inout)::coupler_clocks + +if(slow_ice_with_ocean)callfms_mpp_set_current_pelist(ice%slow_pelist) +callfms_mpp_clock_begin(coupler_clocks%update_ice_model_slow_slow) + +callupdate_ice_model_slow(ice) + +callfms_mpp_clock_begin(coupler_clocks%flux_ice_to_ocean_stocks) +callflux_ice_to_ocean_stocks(ice) +callfms_mpp_clock_end(coupler_clocks%flux_ice_to_ocean_stocks) + +callfms_mpp_clock_end(coupler_clocks%update_ice_model_slow_slow) + +endsubroutinecoupler_update_ice_model_slow_and_stocks + +subroutinecoupler_update_ocean_model(Ocean,Ocean_state,Ice_ocean_boundary,& +Time_ocean,Time_step_cpld,current_timestep,coupler_chksum_obj) + +implicitnone +type(ocean_public_type),intent(inout)::Ocean +type(ocean_state_type),pointer,intent(inout)::Ocean_state +type(Ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary +type(FmsTime_type),intent(inout)::Time_ocean +type(FmsTime_type),intent(in)::Time_step_cpld +integer,intent(in)::current_timestep +type(coupler_chksum_type),intent(in)::coupler_chksum_obj + +callupdate_ocean_model(ice_ocean_boundary,ocean_state,ocean,time_ocean,time_step_cpld) +if(do_chksum)callcoupler_chksum_obj%get_ocean_chksums('update_ocean_model+',current_timestep) + +endsubroutinecoupler_update_ocean_model + +subroutinecoupler_intermediate_restart(Atm,Ice,Ocean,Ocean_state,Ocn_bc_restart,Ice_bc_restart,& +Time_current,Time_restart,Time_restart_current,Time_start) + +implicitnone +type(atmos_data_type),intent(inout)::Atm +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean +type(ocean_state_type),pointer,intent(inout)::Ocean_state +type(FmsNetcdfDomainFile_t),pointer,intent(inout)::Ocn_bc_restart(:) +type(FmsNetcdfDomainFile_t),pointer,intent(inout)::Ice_bc_restart(:) +type(FmsTime_type),intent(in)::Time_current,Time_start +type(FmsTime_type),intent(inout)::Time_restart,Time_restart_current +character(len=32)::timestamp +integer::outunit + +time_restart_current=time_current + +timestamp=fms_time_manager_date_to_string(time_restart_current) +outunit=fms_mpp_stdout() +write(outunit,*)'=>NOTEfromprogramcoupler:intermediaterestartfileiswrittenand',& +trim(timestamp),'isappendedasprefixtoeachrestartfilename' +if(atm%pe)then +callatmos_model_restart(atm,timestamp) +callland_model_restart(timestamp) +callice_model_restart(ice,timestamp) +endif +if(ocean%is_ocean_pe)callocean_model_restart(ocean_state,timestamp) + +callcoupler_restart(atm,ice,ocean,ocn_bc_restart,ice_bc_restart,& +time_current,time_restart_current,time_start,timestamp) + +time_restart=fms_time_manager_increment_date(time_current,restart_interval(1),restart_interval(2),& +restart_interval(3),restart_interval(4),restart_interval(5),restart_interval(6)) + +endsubroutinecoupler_intermediate_restart + +subroutinecoupler_summarize_timestep(current_timestep,num_cpld_calls,coupler_chksum_obj,& +is_atmos_pe,omp_sec,imb_sec) + +implicitnone +integer,intent(in)::current_timestep +integer,intent(in)::num_cpld_calls +type(coupler_chksum_type),intent(in)::coupler_chksum_obj +logical,intent(in)::is_atmos_pe +real,dimension(:),intent(inout)::omp_sec,imb_sec + +integer::outunit +character(len=80)::text + +if(do_chksum)callcoupler_chksum_obj%get_coupler_chksums('MAIN_LOOP+',current_timestep) +write(text,'(a,i6)')'Mainloopatcouplingtimestep=',current_timestep +callfms_memutils_print_memuse_stats(text) +outunit=fms_mpp_stdout() + +if(fms_mpp_pe()==fms_mpp_root_pe().and.is_atmos_pe.and.do_concurrent_radiation)& +write(outunit,102)'Atcouplingstep',current_timestep,'of',num_cpld_calls,'Atm&Rad(imbalance):',& +omp_sec(1),'(',imb_sec(1),')',omp_sec(2),'(',imb_sec(2),')' + +callflush(outunit) + +102format(a17,i5,a4,i5,a24,f10.4,a2,f10.4,a3,f10.4,a2,f10.4,a1) + +endsubroutinecoupler_summarize_timestep + +endmodulefull_coupler_mod + + + + diff --git a/docs/xml/ice__model_8_f90.xml b/docs/xml/ice__model_8_f90.xml new file mode 100644 index 00000000..8a3f633d --- /dev/null +++ b/docs/xml/ice__model_8_f90.xml @@ -0,0 +1,1324 @@ + + + + ice_model.F90 + ice_model_mod::ice_data_type + ice_model_mod::atmos_ice_boundary_type + ice_model_mod + +Handles ice component updates and time steps. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +moduleice_model_mod + +!!Components +useice_albedo_mod,only:ice_albedo_init,ice_albedo +useocean_albedo_mod,only:compute_ocean_albedo_new +useocean_rough_mod,only:compute_ocean_roughness,fixed_ocean_roughness + +!!FMS +usefms +usefmsconstants,only:hlv,hlf,tfreeze,pi + +implicitnone +private +real::cmin,cmax + +public::ice_data_type,atmos_ice_boundary_type,& +ice_model_init,ice_model_end,update_ice_model_fast,& +update_ice_model_slow +!---------------------------------------------------------------- +!---------NAMELISTINTERFACE--------- +! +!use_climo_ice=usemonthlyclimatologicalamipicemask +!use_annual_ice=useannualclimatologyamipicemask +!temp_ice_freeze=temperatureatwhichseaicemelts +!heat_capacity_ocean=heatcapacityforoceaninsimplemixedlayermodel +! +real::diff=2.092 +real::thickness_min=0.10 +real::specified_ice_thickness=2.0 +real::heat_capacity_ocean=1.e07 +real::temp_ice_freeze=-1.66 +real::roughness_ice=1.e-4 +logical::mixed_layer_ocean=.false. +logical::use_climo_ice=.false. +logical::use_annual_ice=.false. +logical::use_climo_sst=.false. +logical::use_annual_sst=.false. +character(len=64)::ice_method='prognostic'!none,uniform,orprognostic +character(len=64)::sst_method='specified' +real::temp_ice=270.!usedwhenice_method='uniform' +real::temp_sst=280.!usedwhensst_method='uniform' +real::sst_anom=0.!sstperturbationusedforsensitivityexperiments +character(len=64)::interp_method="bilinear"!conservativeorbilinear +logical::do_netcdf_restart=.true. + +namelist/ice_model_nml/diff,thickness_min,specified_ice_thickness,& +heat_capacity_ocean,temp_ice_freeze,roughness_ice,& +ice_method,use_climo_ice,use_annual_ice,temp_ice,& +sst_method,use_climo_sst,use_annual_sst,temp_sst,& +interp_method,do_netcdf_restart,sst_anom + +!---------------------------------------------------------------- + +typeice_data_type +type(FmsMppDomain2D),pointer::Domain + +real,pointer,dimension(:,:)::glon_bnd=>null(),& +glat_bnd=>null(),& +lon_bnd=>null(),& +lat_bnd=>null() + +real,pointer,dimension(:,:)::glon=>null(),& +glat=>null(),& +lon=>null(),& +lat=>null() + +logical,pointer,dimension(:,:)::gmask=>null(),& +mask=>null(),& +ice_mask=>null() + +real,pointer,dimension(:,:)::t_surf=>null(),& +albedo=>null(),& +albedo_vis_dir=>null(),& +albedo_nir_dir=>null(),& +albedo_vis_dif=>null(),& +albedo_nir_dif=>null(),& +rough_mom=>null(),& +rough_heat=>null(),& +rough_moist=>null(),& +thickness=>null() + +type(fmstime_type)::time_init,time,& +time_step_fast,& +time_step_slow +endtypeice_data_type + +!---------------------------------------------------------------- + +type::atmos_ice_boundary_type +real,dimension(:,:),pointer::u_star=>null(),& +t_flux=>null(),& +q_flux=>null(),& +lw_flux=>null(),& +sw_flux=>null(),& +lprec=>null(),& +fprec=>null() +real,dimension(:,:),pointer::dhdt=>null(),& +dedt=>null(),& +drdt=>null(),& +coszen=>null(),& +data=>null() +integer::xtype +endtypeatmos_ice_boundary_type + +!---------------------------------------------------------------- + +integer::is,ie,js,je +type(FmsAmipInterp_type),save::Amip_ice,Amip_sst +logical::module_is_initialized=.false. +character(len=64)::fname='INPUT/ice_model.res.nc' + +character(len=128)::version='$Id$' +character(len=128)::tagname='$Name$' + +real,parameter::LATENT=hlv+hlf + +contains + +!###################################################################### + +subroutineupdate_ice_model_fast(Atmos_boundary,Ice) +type(atmos_ice_boundary_type),intent(in)::Atmos_boundary +type(ice_data_type),intent(inout)::ice + +real,dimension(is:ie,js:je)::ts_new,gamma,flux_i,t_dt_surf,& +flux_t_new,flux_q_new,flux_lw_new,flux_sw_new,& +flux_u_new,flux_v_new,lprec_new,fprec_new,& +deriv + +logical,dimension(is:ie,js:je,2)::mask_ice +real,dimension(is:ie,js:je,2)::thickness_ice,t_surf_ice,albedo +real,dimension(is:ie,js:je)::albedo_vis_dir,albedo_nir_dir,& +albedo_vis_dif,albedo_nir_dif +integer::dt + +!----------------------------------------------------------------------- +! +!updatesicemodelontheatmospheric(fast)timestep +!averagesinputquantitiestobeseenbytheocean +! +!flux_u=zonalwindstress +!flux_v=meridionalwindstress +!flux_sw=netshortwaveradiation(down-up) +!flux_sw_vis=netvisibleshortwaveradiation(down-up) +!flux_sw_dir=netdirectshortwaveradiation(down-up) +!flux_sw_dif=netdiffuseshortwaveradiation(down-up) +!flux_sw_vis_dir=netvisibledirectshortwaveradiation(down-up) +!flux_sw_vis_dif=netvisiblediffuseshortwaveradiation(down-up) +!flux_lw=netlongwaveradiation(down-up) +!flux_t=sensibleheatflux +!flux_q=specifichumidityflux +!lprec=liquidprecipitiationrate(kg/m2/s) +!fprec=frozenprecipitiationrate(kg/m2/s) +!coszen=cosineofthezenithangle +! +!----------------------------------------------------------------------- +!-----implicitupdateoficesurfacetemperature----- + +if(trim(ice_method)=='prognostic')then + +where(ice%ice_mask) +gamma=diff/max(ice%thickness,thickness_min) +flux_i=gamma*(tfreeze+temp_ice_freeze-ice%t_surf) + +t_dt_surf=(flux_i+atmos_boundary%lw_flux+atmos_boundary%sw_flux-& +atmos_boundary%t_flux-atmos_boundary%q_flux*latent)& +/(atmos_boundary%dhdt+atmos_boundary%dedt*latent+& +atmos_boundary%drdt+gamma) +ts_new=ice%t_surf+t_dt_surf +elsewhere +ts_new=0. +endwhere + +!updateseaicetemperature +!newtemperaturecannotbegreaterthanfreezingtemperature +where(ice%ice_mask.and.ts_new>tfreeze) +ice%t_surf=tfreeze +endwhere + +where(ice%ice_mask.and.ts_new<=tfreeze) +ice%t_surf=ts_new +endwhere + +endif + + +if(trim(ice_method)=='uniform')then +where(ice%ice_mask) +!t_dt_surf=temp_ice-Ice%t_surf +ice%t_surf=temp_ice +endwhere +endif + +!----------------------------------------------------------------------- +!-----simplemixedlayerocean------ + +if(trim(sst_method)=='mixed_layer')then + +callfms_time_manager_get_time(ice%Time_step_slow,dt) + +where(ice%mask.and..not.ice%ice_mask) +flux_i=(atmos_boundary%lw_flux+atmos_boundary%sw_flux-& +atmos_boundary%t_flux-atmos_boundary%q_flux*hlv-& +atmos_boundary%fprec*hlf)*real(dt)/heat_capacity_ocean +deriv=-(atmos_boundary%dhdt+atmos_boundary%dedt*hlv+& +atmos_boundary%drdt)*real(dt)/heat_capacity_ocean +t_dt_surf=flux_i/(1.0-deriv) +ts_new=ice%t_surf+t_dt_surf +endwhere + +!updateseasurfacetemperature +!note:temperaturesallowedbelowfreezingforconservation +where(ice%mask.and..not.ice%ice_mask) +ice%t_surf=ts_new +endwhere + +endif + +if(trim(sst_method)=='uniform')then +where(ice%mask.and..not.ice%ice_mask) +ice%t_surf=temp_sst +endwhere +endif + +!----------------------------------------------------------------------- +!------updateocean/icesurfaceparameters-------- + +!----overalloceanpoints(regardlessofice)---- + +callcompute_ocean_roughness(ice%mask,& +atmos_boundary%u_star(:,:),& +ice%rough_mom(:,:),& +ice%rough_heat(:,:),& +ice%rough_moist(:,:)) + +callcompute_ocean_albedo_new(ice%mask,atmos_boundary%coszen(:,:),& +albedo_vis_dir,albedo_vis_dif,albedo_nir_dir,albedo_nir_dif,ice%lat) + +!----overonlyicepoints----- + +where(ice%ice_mask) +ice%rough_mom=roughness_ice +ice%rough_heat=roughness_ice +ice%rough_moist=roughness_ice +endwhere + +mask_ice(:,:,2)=ice%ice_mask +thickness_ice(:,:,2)=ice%thickness +t_surf_ice(:,:,2)=ice%t_surf +albedo(:,:,2)=ice%albedo +albedo(:,:,1)=ice%albedo +callice_albedo(mask_ice,thickness_ice,t_surf_ice,albedo) + +where(ice%ice_mask) +ice%albedo=albedo(:,:,2) +ice%albedo_vis_dir=albedo(:,:,2) +ice%albedo_nir_dir=albedo(:,:,2) +ice%albedo_vis_dif=albedo(:,:,2) +ice%albedo_nir_dif=albedo(:,:,2) +elsewhere +ice%albedo=albedo(:,:,1) +ice%albedo_vis_dir=albedo_vis_dir +ice%albedo_nir_dir=albedo_vis_dir +ice%albedo_vis_dif=albedo_vis_dir +ice%albedo_nir_dif=albedo_vis_dir +endwhere + +!----------------------------------------------------------------------- +!---------advancetime----------------- + +ice%Time=ice%Time+ice%Time_step_fast + +!----------------------------------------------------------------------- + +endsubroutineupdate_ice_model_fast + +!###################################################################### + +subroutineupdate_ice_model_slow(Atmos_boundary,Ice) +type(atmos_ice_boundary_type),intent(in)::Atmos_boundary +type(ice_data_type),intent(inout)::Ice + +!----getthespecifiedsea-icefraction----- + +if(trim(ice_method)=='prognostic'.or.trim(ice_method)=='uniform')then + +callprognostic_ice(ice) + +endif + +!----getthespecifiedoceantemperature----- + +if(trim(sst_method)=='specified')then + +callprognostic_sst(ice) + +endif + + +endsubroutineupdate_ice_model_slow + +!###################################################################### + +subroutineprognostic_ice(Ice) +type(ice_data_type),intent(inout)::Ice + +real,dimension(is:ie,js:je)::ice_frac + +!----getthespecifiedsea-icefraction----- + +callfms_amip_interp_get_amip_ice(ice%Time,amip_ice,ice_frac) + +!determinewhichgridboxeshaveicecoverage +where(ice%mask(:,:).and.ice_frac>0.5) +ice%thickness(:,:)=specified_ice_thickness +ice%ice_mask(:,:)=.true. +ice%t_surf(:,:)=min(ice%t_surf(:,:),tfreeze) +elsewhere +ice%thickness(:,:)=0.0 +ice%ice_mask(:,:)=.false. +ice%t_surf(:,:)=max(ice%t_surf(:,:),tfreeze) +endwhere + +endsubroutineprognostic_ice + +!###################################################################### + +subroutineprognostic_sst(Ice) +type(ice_data_type),intent(inout)::Ice + +real,dimension(is:ie,js:je)::sea_temp + +!----getthespecifiedoceantemperature----- + +callfms_amip_interp_get_amip_sst(ice%Time,amip_sst,sea_temp) + +!determinewhichgridboxeshaveopenoceancoverage---- +where(ice%mask(:,:).and..not.ice%ice_mask(:,:)) +ice%t_surf(:,:)=sea_temp +endwhere + +endsubroutineprognostic_sst + +!###################################################################### + +!subroutineupdate_ice_model_slow_up(Ocean_boundary,Ice) +!type(ocean_ice_boundary_type),intent(in)::Ocean_boundary +!type(ice_data_type),intent(inout)::Ice + +!settempatopenoceanpoints + +!endsubroutineupdate_ice_model_slow_up + +!###################################################################### + +subroutineice_model_init(Ice,Time_Init,Time,& +Time_step_fast,Time_step_slow,& +glon_bnd,glat_bnd,Atmos_domain) +type(ice_data_type),intent(inout)::Ice +type(FmsTime_type),intent(in)::Time_Init,Time,& +Time_step_fast,Time_step_slow +real,intent(in)::glon_bnd(:,:),glat_bnd(:,:) +type(FmsMppDomain2D),intent(in),target::Atmos_domain + +real::lon0,lond,latd,amp,t_control,dellon,dom_wid,siggy,tempi +integer::isg,ieg,jsg,jeg +integer::unit,ierr,io,i,j +integer::ndim,nvar,natt,ntime,nlon,nlat,mlon,mlat,layout(2) +logical::need_ic +type(FmsNetcdfDomainFile_t)::land_mask_fileobj +type(FmsNetcdfDomainFile_t)::ice_restart_fileobj + +if(module_is_initialized)then +return +endif + + +read(fms_mpp_input_nml_file,nml=ice_model_nml,iostat=io) +ierr=fms_check_nml_error(io,'ice_model_nml') + +do_netcdf_restart=.true. + +callfms_write_version_number(version,tagname) +if(fms_mpp_pe()==fms_mpp_root_pe())then +write(fms_mpp_stdlog(),nml=ice_model_nml) +endif + +!----errorchecks---- + +if(trim(ice_method)/='none'.and.& +trim(ice_method)/='uniform'.and.& +trim(ice_method)/='prognostic')callfms_error_mesg& +('ice_model_init','namelistvariableice_methodhasinvalidvalue',fatal) + +if(trim(sst_method)/='specified'.and.& +trim(sst_method)/='uniform'.and.& +trim(sst_method)/='aqua_planet_1'.and.& +trim(sst_method)/='aqua_planet_2'.and.& +trim(sst_method)/='aqua_planet_3'.and.& +trim(sst_method)/='aqua_planet_4'.and.& +trim(sst_method)/='aqua_planet_5'.and.& +trim(sst_method)/='aqua_planet_6'.and.& +trim(sst_method)/='aqua_planet_7'.and.& +trim(sst_method)/='aqua_planet_8'.and.& +trim(sst_method)/='aqua_planet_10N'.and.& +trim(sst_method)/='aqua_planet_15N'.and.& +trim(sst_method)/='aqua_planet_20N'.and.& +trim(sst_method)/='aqua_planet_25N'.and.& +trim(sst_method)/='aqua_planet_30N'.and.& +trim(sst_method)/='aqua_planet_35N'.and.& +trim(sst_method)/='aqua_planet_40N'.and.& +trim(sst_method)/='aqua_planet_45N'.and.& +trim(sst_method)/='aqua_planet_50N'.and.& +trim(sst_method)/='aqua_planet_55N'.and.& +trim(sst_method)/='aqua_planet_60N'.and.& +trim(sst_method)/='aqua_planet_65N'.and.& +trim(sst_method)/='aqua_planet_70N'.and.& +trim(sst_method)/='aqua_planet_75N'.and.& +trim(sst_method)/='aqua_planet_80N'.and.& +trim(sst_method)/='aqua_planet_85N'.and.& +trim(sst_method)/='aqua_planet_90N'.and.& +trim(sst_method)/='aqua_walker'.and.& +trim(sst_method)/='aqua_walker_cos'.and.& +trim(sst_method)/='aqua_walker_guass'.and.& +trim(sst_method)/='aqua_walker_guass_b'.and.& +trim(sst_method)/='aqua_walker_guass_c'.and.& +trim(sst_method)/='aqua_walker_guass_d'.and.& +trim(sst_method)/='mixed_layer')callfms_error_mesg& +('ice_model_init','namelistvariablesst_methodhasinvalidvalue',fatal) + +!---------------------------------------------------------- + +nlon=size(glon_bnd,1)-1 +nlat=size(glon_bnd,2)-1 + +!---------------------------------------------------------- +!---setupdomaintype--- + +!if(present(Atmos_domain))then +!callmpp_get_layout(Atmos_domain,layout) +!else +!callmpp_define_layout((/1,nlon,1,nlat/),fms_mpp_npes(),layout) +!endif + +!callmpp_define_domains((/1,nlon,1,nlat/),layout,Ice%Domain,& +!name='icegrid') + +ice%Domain=>atmos_domain + +!---------------------------------------------------------- +!getglobaldomainindices +!thisassumesthatFmsMppDomain2Dtypehasbeenassigned + +callfms_mpp_domains_get_global_domain(ice%Domain,isg,ieg,jsg,jeg) + +allocate(ice%glon_bnd(isg:ieg+1,jsg:jeg+1),& +ice%glat_bnd(isg:ieg+1,jsg:jeg+1),& +ice%glon(isg:ieg,jsg:jeg),& +ice%glat(isg:ieg,jsg:jeg),& +ice%gmask(isg:ieg,jsg:jeg)) + +!---------------------------------------------------------- +!---readgridinfo---- + +ice%glon_bnd=glon_bnd +ice%glat_bnd=glat_bnd +!doj=js,je+1 +!doi=is,ie+1 +!Ice%glon_bnd(i,j)=glon_bnd(i-isg+1,j-jsg+1) +!Ice%glat_bnd(i,j)=glat_bnd(i-isg+1,j-jsg+1) +!enddo +!enddo + +!setiodomainifnotthereinordertocheckfiles +if(.not.associated(fms_mpp_domains_get_io_domain(ice%domain)))then +callfms_mpp_domains_define_io_domain(ice%domain,(/1,1/)) +endif + +!readthelandmaskfromafile(land=1) +if(fms2_io_open_file(land_mask_fileobj,'INPUT/land_mask.nc','read',ice%domain))then +callfms2_io_read_data(land_mask_fileobj,'land_mask',ice%glon) +where(ice%glon>0.50) +ice%gmask=.false. +elsewhere +ice%gmask=.true. +endwhere +callfms2_io_close_file(land_mask_fileobj) +else +ice%gmask=.true.!aqua-planet +endif + +!mid-pointofgridbox +!if(is_latlon(glon_bnd,latb_out))then +!doj=js,je +!doi=is,ie +!Ice%glon(i,j)=(Ice%glon_bnd(i,j)+Ice%glon_bnd(i+1,j)+& +!Ice%glon_bnd(i,j+1)+Ice%glon_bnd(i+1,j+1))*0.25 +!Ice%glat(i,j)=(Ice%glat_bnd(i,j)+Ice%glat_bnd(i+1,j)+& +!Ice%glat_bnd(i,j+1)+Ice%glat_bnd(i+1,j+1))*0.25 +!enddo +!enddo +!else +callget_cell_center(ice%glon_bnd,ice%glat_bnd,ice%glon,ice%glat) +!endif + +!---------------------------------------------------------- +!getcomputedomainindices + +callfms_mpp_domains_get_compute_domain(ice%Domain,is,ie,js,je) + +allocate(ice%lon_bnd(is:ie+1,js:je+1),& +ice%lat_bnd(is:ie+1,js:je+1),& +ice%lon(is:ie,js:je),& +ice%lat(is:ie,js:je),& +ice%ice_mask(is:ie,js:je),& +ice%t_surf(is:ie,js:je),& +ice%albedo(is:ie,js:je),& +ice%albedo_vis_dir(is:ie,js:je),& +ice%albedo_nir_dir(is:ie,js:je),& +ice%albedo_vis_dif(is:ie,js:je),& +ice%albedo_nir_dif(is:ie,js:je),& +ice%rough_mom(is:ie,js:je),& +ice%rough_heat(is:ie,js:je),& +ice%rough_moist(is:ie,js:je),& +ice%thickness(is:ie,js:je),& +ice%mask(is:ie,js:je)) + +ice%lon_bnd=ice%glon_bnd(is:ie+1,js:je+1) +ice%lat_bnd=ice%glat_bnd(is:ie+1,js:je+1) +ice%lon=ice%glon(is:ie,js:je) +ice%lat=ice%glat(is:ie,js:je) +ice%mask=ice%gmask(is:ie,js:je) +ice%Time=time +ice%Time_init=time_init +ice%Time_step_fast=time_step_fast +ice%Time_step_slow=time_step_slow + +!---------------------------------------------------------- +!-----------readrestart------------- + +need_ic=.false. + +if(fms2_io_open_file(ice_restart_fileobj,'INPUT/ice_model.res.nc','read',ice%domain,is_restart=.true.))then +if(fms_mpp_pe()==fms_mpp_root_pe())callfms_error_mesg('ice_model_mod',& +'ReadingNetCDFformattedrestartfile:INPUT/ice_model.res.nc',note) + +callfms2_io_read_data(ice_restart_fileobj,'mlon',mlon) +callfms2_io_read_data(ice_restart_fileobj,'mlat',mlat) +if(mlon/=nlon.or.mlat/=nlat)& +callfms_error_mesg('ice_model_init',& +'incorrectresolutiononrestart',fatal) + +callice_register_restart(ice_restart_fileobj,ice) +callfms2_io_read_restart(ice_restart_fileobj) +callfms2_io_close_file(ice_restart_fileobj) +else +!---ifnorestartthennoice--- +need_ic=.true. +ice%t_surf=tfreeze!+temp_ice_freeze +ice%thickness=0.0!noiceinitially +ice%albedo=0.14 +ice%albedo_vis_dir=0.14 +ice%albedo_nir_dir=0.14 +ice%albedo_vis_dif=0.14 +ice%albedo_nir_dif=0.14 +ice%rough_mom=0.0004 +ice%rough_heat=0.0004 +ice%rough_moist=0.0004 +!Ice%ice_mask=.false.!noiceinitially + +!fixedroughness +callfixed_ocean_roughness(ice%mask,ice%rough_mom,& +ice%rough_heat,ice%rough_moist) +endif + +!initializemaskwhereiceexists +ice%ice_mask=ice%mask.and.ice%thickness.ge.thickness_min + +callice_albedo_init(tfreeze) + +!analyticdistributionwithnoice +!meltallice +if(sst_method=="aqua_planet_1")then +ice_method='none' +ice%ice_mask=.false. +where(ice%mask) +ice%t_surf=27.*(1.-sin(max(min(1.5*ice%lat,pi*0.5),-pi*0.5))**2)+tfreeze +endwhere +elseif(sst_method=="aqua_planet_2")then +ice_method='none' +ice%ice_mask=.false. +where(ice%mask) +ice%t_surf=27.*(1.-min(3.*abs(ice%lat)/pi,1.))+tfreeze +endwhere +elseif(sst_method=="aqua_planet_3")then +ice_method='none' +ice%ice_mask=.false. +where(ice%mask) +ice%t_surf=27.*(1.-sin(max(min(1.5*ice%lat,pi*0.5),-pi*0.5))**4)+tfreeze +endwhere +elseif(sst_method=="aqua_planet_4")then +ice_method='none' +ice%ice_mask=.false. +where(ice%mask) +ice%t_surf=max(min(1.5*ice%lat,pi*0.5),-pi*0.5)!uset_surfasworkarray +ice%t_surf=27.*(1.-0.5*(sin(ice%t_surf)**2+sin(ice%t_surf)**4))+tfreeze +endwhere +elseif(sst_method=="aqua_planet_5")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/36.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/36.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/36.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_6".or.sst_method=="aqua_planet_7")then +ice_method='none' +ice%ice_mask=.false. +!constants +lon0=0. +lond=30.*pi/180. +latd=15.*pi/180. +if(sst_method=="aqua_planet_6")amp=1. +if(sst_method=="aqua_planet_7")amp=3. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +t_control=27.*(1.-sin(max(min(1.5*ice%lat(i,j),pi*0.5),-pi*0.5))**2)+tfreeze +dellon=ice%lon(i,j)-lon0 +if(dellon>pi)dellon=dellon-2.*pi +if(dellon<-pi)dellon=dellon+2.*pi +ice%t_surf(i,j)=t_control+amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.))**2*& +cos(0.5*pi*min(max(ice%lat(i,j)/latd,-1.),1.))**2 +endif +enddo +enddo +elseif(sst_method=="aqua_walker")then +ice_method='none' +ice%ice_mask=.false. +!constants +lon0=0. +!lond=30.*pi/180. +lond=pi/36.!multiplyoriginallondby1/6 +latd=15.*pi/180. +amp=8. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +dellon=ice%lon(i,j)-lon0 +if(dellon>pi)dellon=dellon-2.*pi +if(dellon<-pi)dellon=dellon+2.*pi +!Ice%t_surf(i,j)=27.+TFREEZE+amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.))**2 +ice%t_surf(i,j)=297.+amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.))**2 +endif +enddo +enddo +elseif(sst_method=="aqua_walker_guass")then!seeWofsyandKuang +ice_method='none' +ice%ice_mask=.false. +!constants +lon0=0. +siggy=(pi/8.)*(1./6.)!sigmaintheguassiandistribution +!amp=1./(siggy*SQRT(2*pi)) +amp=8. +doj=js,je +tempi=real(j) +doi=is,ie +if(ice%mask(i,j))then +dellon=ice%lon(i,j)-lon0 +if(dellon>pi)dellon=dellon-2.*pi +if(dellon<-pi)dellon=dellon+2.*pi +ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) +endif +enddo +enddo +elseif(sst_method=="aqua_walker_guass_b")then!seeWofsyandKuang +ice_method='none' +ice%ice_mask=.false. +!constants +lon0=0. +siggy=(pi/12.)*(1./6.)!sigmaintheguassiandistribution +!amp=1./(siggy*SQRT(2*pi)) +amp=8. +doj=js,je +tempi=real(j) +doi=is,ie +if(ice%mask(i,j))then +dellon=ice%lon(i,j)-lon0 +if(dellon>pi)dellon=dellon-2.*pi +if(dellon<-pi)dellon=dellon+2.*pi +ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) +endif +enddo +enddo +elseif(sst_method=="aqua_walker_guass_c")then!seeWofsyandKuang +ice_method='none' +ice%ice_mask=.false. +!constants +lon0=0. +siggy=(pi/16.)*(1./6.)!sigmaintheguassiandistribution +!amp=1./(siggy*SQRT(2*pi)) +amp=8. +doj=js,je +tempi=real(j) +doi=is,ie +if(ice%mask(i,j))then +dellon=ice%lon(i,j)-lon0 +if(dellon>pi)dellon=dellon-2.*pi +if(dellon<-pi)dellon=dellon+2.*pi +ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) +endif +enddo +enddo +elseif(sst_method=="aqua_walker_guass_d")then!seeWofsyandKuang +ice_method='none' +ice%ice_mask=.false. +!constants +lon0=0. +siggy=(pi/20.)*(1./6.)!sigmaintheguassiandistribution +!amp=1./(siggy*SQRT(2*pi)) +amp=4. +doj=js,je +tempi=real(j) +doi=is,ie +if(ice%mask(i,j))then +dellon=ice%lon(i,j)-lon0 +if(dellon>pi)dellon=dellon-2.*pi +if(dellon<-pi)dellon=dellon+2.*pi +ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) +endif +enddo +enddo +elseif(sst_method=="aqua_walker_cos")then!seeWofsyandKuang +ice_method='none' +ice%ice_mask=.false. +!constants +lond=pi/36.!multiplyoriginallondby1/6 +lon0=0. +amp=8. +dom_wid=ice%lon(is,js)-ice%lon(is,je) +!dom_wid=real(ie)-real(is) +doj=js,je +tempi=real(j) +doi=is,ie +if(ice%mask(i,j))then +dellon=ice%lon(i,j)-lon0 +if(dellon>pi)dellon=dellon-2.*pi +if(dellon<-pi)dellon=dellon+2.*pi +ice%t_surf(i,j)=297.-amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.)) +endif +enddo +enddo +elseif(sst_method=="aqua_planet_8")then +ice_method='none' +ice%ice_mask=.false. +!constants +lon0=0. +latd=30.*pi/180. +amp=3. +where(ice%mask) +ice%t_surf=27.*(1.-sin(max(min(1.5*ice%lat,pi*0.5),-pi*0.5))**2)+tfreeze+& +amp*cos(ice%lon-lon0)*cos(0.5*pi*min(max(ice%lat/latd,-1.),1.))**2 +endwhere +elseif(sst_method=="aqua_planet_10N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/18.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/18.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/18.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_15N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/12.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/12.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/12.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_20N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/9.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/9.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/9.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_25N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>5.*pi/36.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-5.*pi/36.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-5.*pi/36.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_30N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/6.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/6.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/6.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_35N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>7.*pi/36.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-7.*pi/36.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-7.*pi/36.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_40N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>2.*pi/9.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-2.*pi/9.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-2.*pi/9.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_45N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/4.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/4.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/4.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_50N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>5.*pi/18.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-5.*pi/18.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-5.*pi/18.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_55N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>11.*pi/36.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-11.*pi/36.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-11.*pi/36.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_60N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/3.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/3.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/3.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_65N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>13.*pi/36.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-13.*pi/36.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-13.*pi/36.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_70N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>7.*pi/18.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-7.*pi/18.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-7.*pi/18.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_75N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>5.*pi/12.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-5.*pi/12.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-5.*pi/12.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_80N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>4.*pi/9.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-4.*pi/9.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-4.*pi/9.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_85N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>17.*pi/36.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-17.*pi/36.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-17.*pi/36.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +elseif(sst_method=="aqua_planet_90N")then +ice_method='none' +ice%ice_mask=.false. +doj=js,je +doi=is,ie +if(ice%mask(i,j))then +if(ice%lat(i,j)>pi/2.)then +ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/2.),pi*0.5))**2)+tfreeze +else +ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/2.),-pi*0.5))**2)+tfreeze +endif +endif +enddo +enddo +endif + + +!---------------------------------------------------------- + +if(trim(ice_method)=='prognostic'.or.& +trim(ice_method)=='uniform')then +if(trim(interp_method)=="conservative")then +amip_ice=fms_amip_interp_new(ice%lon_bnd(:,1),ice%lat_bnd(1,:),& +ice%mask(:,:),interp_method=interp_method,& +use_climo=use_climo_ice,use_annual=use_annual_ice) +elseif(trim(interp_method)=="bilinear")then +amip_ice=fms_amip_interp_new(ice%lon,ice%lat,& +ice%mask(:,:),interp_method=interp_method,& +use_climo=use_climo_ice,use_annual=use_annual_ice) +else +callfms_error_mesg('ice_model_init','interp_methodshouldbe'//& +'conservativeorbilinear',fatal) +endif +!initializeice(ifneeded) +if(need_ic)then +callprognostic_ice(ice) +endif +endif + +!---------------------------------------------------------- + +if(trim(sst_method)=='specified')then +if(trim(interp_method)=="conservative")then +amip_sst=fms_amip_interp_new(ice%lon_bnd(:,1),ice%lat_bnd(1,:),& +ice%mask(:,:),interp_method=interp_method,& +use_climo=use_climo_sst,use_annual=use_annual_sst) +elseif(trim(interp_method)=="bilinear")then +amip_sst=fms_amip_interp_new(ice%lon,ice%lat,& +ice%mask(:,:),interp_method=interp_method,& +use_climo=use_climo_sst,use_annual=use_annual_sst) +else +callfms_error_mesg('ice_model_init','interp_methodshouldbe'//& +'conservativeorbilinear',fatal) +endif +!initializesst(ifneeded) +if(need_ic)then +callprognostic_sst(ice) +endif +endif + +print*,'pe,count(ice,all,ocean)=',fms_mpp_pe(),count(ice%ice_mask),count(ice%mask),& +count(ice%mask.and..not.ice%ice_mask) + +!addonnon-zeroseasurfacetemperatureperturbation(namelistoption) +!thisperturbationmaybeusefulinaccessingmodelsensitivities + +if(abs(sst_anom)>0.0001)then +ice%t_surf(:,:)=ice%t_surf(:,:)+sst_anom +endif + +!---------------------------------------------------------- + +module_is_initialized=.true. + +!---------------------------------------------------------- + +endsubroutineice_model_init + +subroutineice_register_restart(fileobj,Ice) + +type(FmsNetcdfDomainFile_t),intent(inout)::fileobj +type(ice_data_type),intent(inout)::Ice +character(len=8),dimension(3)::dim_names + +dim_names(1)="xaxis_1" +dim_names(2)="yaxis_1" +dim_names(3)="Time" + +callfms2_io_register_axis(fileobj,dim_names(1),"x") +callfms2_io_register_axis(fileobj,dim_names(2),"y") +callfms2_io_register_axis(fileobj,dim_names(3),unlimited) + + +callfms2_io_register_field(fileobj,dim_names(1),"double",(/dim_names(1)/)) +callfms2_io_register_field(fileobj,dim_names(2),"double",(/dim_names(2)/)) + +callfms2_io_register_restart_field(fileobj,'t_surf',ice%t_surf,dim_names) +callfms2_io_register_restart_field(fileobj,'thickness',ice%thickness,dim_names) +callfms2_io_register_restart_field(fileobj,'albedo',ice%albedo,dim_names) +callfms2_io_register_restart_field(fileobj,'albedo_vis_dir',ice%albedo_vis_dir,dim_names) +callfms2_io_register_restart_field(fileobj,'albedo_nir_dir',ice%albedo_nir_dir,dim_names) +callfms2_io_register_restart_field(fileobj,'albedo_vis_dif',ice%albedo_vis_dif,dim_names) +callfms2_io_register_restart_field(fileobj,'albedo_nir_dif',ice%albedo_nir_dif,dim_names) +callfms2_io_register_restart_field(fileobj,'rough_mom',ice%rough_mom,dim_names) +callfms2_io_register_restart_field(fileobj,'rough_heat',ice%rough_heat,dim_names) +callfms2_io_register_restart_field(fileobj,'rough_moist',ice%rough_moist,dim_names) + +endsubroutineice_register_restart + +!###################################################################### + +subroutineice_model_end(Ice) +type(ice_data_type),intent(inout)::Ice +integer::unit +character(len=64)::fname='RESTART/ice_model.res.nc' +type(FmsNetcdfDomainFile_t)::ice_restart_fileobj + +if(.not.module_is_initialized)return +if(do_netcdf_restart)then + +if(fms_mpp_pe()==fms_mpp_root_pe())then +callfms_error_mesg('ice_model_mod','WritingNetCDFformattedrestartfile:RESTART/ice_model.res.nc',note) +endif + +if(fms2_io_open_file(ice_restart_fileobj,fname,'overwrite',ice%domain,is_restart=.true.))then +callice_register_restart(ice_restart_fileobj,ice) +callfms2_io_register_field(ice_restart_fileobj,"mlon","double") +callfms2_io_register_field(ice_restart_fileobj,"mlat","double") +callfms2_io_write_restart(ice_restart_fileobj) +callfms2_io_write_data(ice_restart_fileobj,'mlon',size(ice%gmask,1)) +callfms2_io_write_data(ice_restart_fileobj,'mlat',size(ice%gmask,2)) +calladd_domain_dimension_data(ice_restart_fileobj) +callfms2_io_close_file(ice_restart_fileobj) +endif +endif + + +deallocate(ice%glon_bnd,ice%glat_bnd,ice%glon,ice%glat,ice%gmask) +deallocate(ice%lon_bnd,ice%lat_bnd,ice%lon,ice%lat,ice%ice_mask,& +ice%t_surf,ice%albedo,ice%albedo_vis_dir,ice%albedo_nir_dir,& +ice%albedo_vis_dif,ice%albedo_nir_dif,ice%rough_mom,& +ice%rough_heat,ice%rough_moist,ice%thickness,ice%mask) + +module_is_initialized=.false. + +endsubroutineice_model_end + + +subroutineadd_domain_dimension_data(fileobj) +type(FmsNetcdfDomainFile_t)::fileobj +integer,dimension(:),allocatable::buffer +integer::is,ie + +callfms2_io_get_global_io_domain_indices(fileobj,"xaxis_1",is,ie,indices=buffer) +callfms2_io_write_data(fileobj,"xaxis_1",buffer) +deallocate(buffer) + +callfms2_io_get_global_io_domain_indices(fileobj,"yaxis_1",is,ie,indices=buffer) +callfms2_io_write_data(fileobj,"yaxis_1",buffer) +deallocate(buffer) +endsubroutineadd_domain_dimension_data + +!###################################################################### +!Routinesaddedforcomputingthen +!mid-pointofgridboxeswithcubedsphere +!###################################################################### + +functionis_latlon(lon,lat) +real,intent(in)::lon(:,:),lat(:,:) + +!Determinesifthelatitude/longitudevaluesforma +!regularlatitude/longitudegrid(orsomethingelse). +! + +logical::is_latlon +integer::i,j + +is_latlon=.true. + +doj=2,size(lon,2) +doi=1,size(lon,1) +if(lon(i,j).ne.lon(i,1))then +is_latlon=.false. +return +endif +enddo +enddo + +doj=1,size(lat,2) +doi=2,size(lat,1) +if(lat(i,j).ne.lat(1,j))then +is_latlon=.false. +return +endif +enddo +enddo + +endfunctionis_latlon + +!######################################################################## + +subroutineget_cell_center(lonb,latb,lon,lat) +!------------------------------------------------------------------! +!calculatecellcenter(lon,lat)! +!byaveragingcellcornerlocations(lonb,latb)inCartesiancoor! +!------------------------------------------------------------------! +real,dimension(:,:),intent(in)::lonb,latb +real,dimension(:,:),intent(out)::lon,lat +!------------------------------------------------------------------! +!localvariables! +!------------------------------------------------------------------! +real::sph_coor(2),xyz_corner(3,size(lonb,1),size(latb,2)),xyz_center(3),abs_center +integer::i,j,nx,ny + +nx=size(lonb,1) +ny=size(latb,2) + +doj=1,ny +doi=1,nx +sph_coor(1)=lonb(i,j) +sph_coor(2)=latb(i,j) +calllatlon2xyz(sph_coor,xyz_corner(1,i,j)) +enddo +enddo +doj=1,ny-1 +doi=1,nx-1 +xyz_center(:)=0.25*(xyz_corner(:,i,j)+xyz_corner(:,i+1,j)& ++xyz_corner(:,i,j+1)+xyz_corner(:,i+1,j+1)) +abs_center=xyz_center(1)*xyz_center(1)& ++xyz_center(2)*xyz_center(2)& ++xyz_center(3)*xyz_center(3) +xyz_center(:)=xyz_center(:)/abs_center +callxyz2latlon(xyz_center,sph_coor) +lon(i,j)=sph_coor(1) +lat(i,j)=sph_coor(2) +enddo +enddo + +endsubroutineget_cell_center + +!######################################################################## + +subroutinelatlon2xyz(sph_coor,xyz_coor) +!------------------------------------------------------------------! +!calculatecartesiancoordinatesfromsphericalcoordinates! +!! +!input:! +!sph_coor[rad]latloncoordinate! +!! +!output:! +!xyz_coor[1]normalizedcartesianvector! +!------------------------------------------------------------------! +real,dimension(2),intent(in)::sph_coor +real,dimension(3),intent(inout)::xyz_coor + +xyz_coor(1)=cos(sph_coor(2))*cos(sph_coor(1)) +xyz_coor(2)=cos(sph_coor(2))*sin(sph_coor(1)) +xyz_coor(3)=sin(sph_coor(2)) + +endsubroutinelatlon2xyz +!====================================================================! +subroutinexyz2latlon(xyz_coor,sph_coor) +!------------------------------------------------------------------! +!calculatesphericalcoordinatesfromcartesiancoordinates! +!! +!input:! +!xyz_coor[1]normalizedcartesianvector! +!! +!output:! +!sph_coor[rad]latloncoordinate! +!------------------------------------------------------------------! + +real,dimension(3),intent(in)::xyz_coor +real,dimension(2),intent(inout)::sph_coor +!------------------------------------------------------------------! +!localvariables! +!------------------------------------------------------------------! +real::coslat,radius +real,parameter::epsilon=1.e-7 +integer::i,j + + +radius=sqrt(xyz_coor(1)*xyz_coor(1)& ++xyz_coor(2)*xyz_coor(2)& ++xyz_coor(3)*xyz_coor(3)) + +sph_coor(1)=atan2(xyz_coor(2),xyz_coor(1)) +if(sph_coor(1)<0.)sph_coor(1)=sph_coor(1)+2*pi +sph_coor(2)=asin(xyz_coor(3)/radius) + +endsubroutinexyz2latlon + +!###################################################################### + +endmoduleice_model_mod + + + + + diff --git a/docs/xml/ice__ocean__flux__exchange_8_f90.xml b/docs/xml/ice__ocean__flux__exchange_8_f90.xml new file mode 100644 index 00000000..6d957e46 --- /dev/null +++ b/docs/xml/ice__ocean__flux__exchange_8_f90.xml @@ -0,0 +1,700 @@ + + + + ice_ocean_flux_exchange.F90 + ice_ocean_flux_exchange_mod + +Handles flux calculations and exchange grids for ice and ocean. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +moduleice_ocean_flux_exchange_mod + +!!FMS +usefms +usefmsconstants,only:hlf,hlv,cp_ocean +!!Components +useice_model_mod,only:ice_data_type,ocean_ice_boundary_type +useocean_model_mod,only:ocean_public_type,ice_ocean_boundary_type +useocean_model_mod,only:ocean_state_type,ocean_model_data_get +useocean_model_mod,only:ocean_model_init_sfc + +implicitnone;private + + +public::ice_ocean_flux_exchange_init,& +flux_ice_to_ocean,flux_ice_to_ocean_finish,& +flux_ocean_to_ice,flux_ocean_to_ice_finish,& +flux_ice_to_ocean_stocks,& +flux_ocean_from_ice_stocks + +!Balaji,setsboundary_type%xtype +!REGRID:gridsarephysicallydifferent,passviaexchangegrid +!REDIST:samephysicalgrid,differentdecomposition,mustmovedataaround +!DIRECT:samephysicalgrid,samedomaindecomposition,candirectlycopydata +integer,parameter::REGRID=1,redist=2,direct=3 + +logical::debug_stocks=.false. +logical::do_area_weighted_flux=.false. + +integer::cplOcnClock,fluxOceanIceClock,fluxIceOceanClock +real::Dt_cpl +integer,allocatable::slow_ice_ocean_pelist(:) + +contains + +subroutineice_ocean_flux_exchange_init(Time,Ice,Ocean,Ocean_state,ice_ocean_boundary,& +ocean_ice_boundary,Dt_cpl_in,debug_stocks_in,& +do_area_weighted_flux_in,ex_gas_fields_ice,ex_gas_fluxes,& +do_ocean,slow_ice_ocean_pelist_in) + +type(FmsTime_type),intent(in)::Time +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean +type(ocean_state_type),pointer::Ocean_state +type(ice_ocean_boundary_type),intent(inout)::ice_ocean_boundary +type(ocean_ice_boundary_type),intent(inout)::ocean_ice_boundary +real,intent(in)::Dt_cpl_in +logical,intent(in)::debug_stocks_in +logical,intent(in)::do_area_weighted_flux_in +type(FmsCoupler1dBC_type),intent(in)::ex_gas_fields_ice,ex_gas_fluxes +logical,intent(in)::do_ocean +integer,dimension(:),intent(in)::slow_ice_ocean_pelist_in +integer::is,ie,js,je + +dt_cpl=dt_cpl_in +debug_stocks=debug_stocks_in +do_area_weighted_flux=do_area_weighted_flux_in + +!ocean_ice_boundaryandice_ocean_boundarymustbedoneonallPES +!domainboundarieswillassurenospaceisallocatedonnon-relevantPEs. +callfms_mpp_domains_get_compute_domain(ice%slow_Domain_NH,is,ie,js,je) +!allocateocean_ice_boundary +allocate(ocean_ice_boundary%u(is:ie,js:je)) +allocate(ocean_ice_boundary%v(is:ie,js:je)) +allocate(ocean_ice_boundary%t(is:ie,js:je)) +allocate(ocean_ice_boundary%s(is:ie,js:je)) +!frazilandsea_levelareoptional,ifnotpresenttheyshouldbenullified +allocate(ocean_ice_boundary%frazil(is:ie,js:je)) +allocate(ocean_ice_boundary%sea_level(is:ie,js:je)) +!initializeboundaryfieldsforoverrideexperiments(mjh) +ocean_ice_boundary%u=0.0 +ocean_ice_boundary%v=0.0 +ocean_ice_boundary%t=273.0 +ocean_ice_boundary%s=0.0 +ocean_ice_boundary%frazil=0.0 +ocean_ice_boundary%sea_level=0.0 + +!allocatefieldsforextratracersinocean_ice_boundary +if(.not.fms_coupler_type_initialized(ocean_ice_boundary%fields))& +callfms_coupler_type_spawn(ex_gas_fields_ice,ocean_ice_boundary%fields,(/is,is,ie,ie/),& +(/js,js,je,je/),suffix='_ocn_ice') +if(ice%pe)& +callfms_coupler_type_set_diags(ocean_ice_boundary%fields,"ice_flux",ice%axes(1:2),time) + +! +!allocatefieldsandfluxesforextratracersfortheIcetype +! +if(.not.fms_coupler_type_initialized(ice%ocean_fluxes))& +callfms_coupler_type_spawn(ex_gas_fluxes,ice%ocean_fluxes,(/is,is,ie,ie/),& +(/js,js,je,je/),suffix='_ice') + +!Thiswasneverbeingsent,socommentitoutfornow. +!if(Ice%pe)& +!callcoupler_type_set_diags(Ice%ocean_fluxes,"ice_flux",Ice%axes(1:2),Time) + + +!allocateice_ocean_boundary +callfms_mpp_domains_get_compute_domain(ocean%domain,is,ie,js,je) +!MLoceanonlyrequirest,q,lw,sw,fprec,calving +!AMIPoceanneedsnoinputfields +!choiceoffieldswilleventuallybedoneatruntime +!viafield_manager +allocate(ice_ocean_boundary%u_flux(is:ie,js:je));ice_ocean_boundary%u_flux=0.0 +allocate(ice_ocean_boundary%v_flux(is:ie,js:je));ice_ocean_boundary%v_flux=0.0 +allocate(ice_ocean_boundary%t_flux(is:ie,js:je));ice_ocean_boundary%t_flux=0.0 +allocate(ice_ocean_boundary%q_flux(is:ie,js:je));ice_ocean_boundary%q_flux=0.0 +allocate(ice_ocean_boundary%salt_flux(is:ie,js:je));ice_ocean_boundary%salt_flux=0.0 +allocate(ice_ocean_boundary%lw_flux(is:ie,js:je));ice_ocean_boundary%lw_flux=0.0 +allocate(ice_ocean_boundary%sw_flux_vis_dir(is:ie,js:je));ice_ocean_boundary%sw_flux_vis_dir=0.0 +allocate(ice_ocean_boundary%sw_flux_vis_dif(is:ie,js:je));ice_ocean_boundary%sw_flux_vis_dif=0.0 +allocate(ice_ocean_boundary%sw_flux_nir_dir(is:ie,js:je));ice_ocean_boundary%sw_flux_nir_dir=0.0 +allocate(ice_ocean_boundary%sw_flux_nir_dif(is:ie,js:je));ice_ocean_boundary%sw_flux_nir_dif=0.0 +allocate(ice_ocean_boundary%lprec(is:ie,js:je));ice_ocean_boundary%lprec=0.0 +allocate(ice_ocean_boundary%fprec(is:ie,js:je));ice_ocean_boundary%fprec=0.0 +allocate(ice_ocean_boundary%runoff(is:ie,js:je));ice_ocean_boundary%runoff=0.0 +allocate(ice_ocean_boundary%calving(is:ie,js:je));ice_ocean_boundary%calving=0.0 +allocate(ice_ocean_boundary%runoff_hflx(is:ie,js:je));ice_ocean_boundary%runoff_hflx=0.0 +allocate(ice_ocean_boundary%calving_hflx(is:ie,js:je));ice_ocean_boundary%calving_hflx=0.0 +allocate(ice_ocean_boundary%p(is:ie,js:je));ice_ocean_boundary%p=0.0 +allocate(ice_ocean_boundary%mi(is:ie,js:je));ice_ocean_boundary%mi=0.0 +!Allocatingicebergfields,ifthecorrespondingfieldsareassosiatedintheseaicemodel(s) +if(associated(ice%ustar_berg))then +allocate(ice_ocean_boundary%ustar_berg(is:ie,js:je));ice_ocean_boundary%ustar_berg=0.0 +endif +if(associated(ice%area_berg))then +allocate(ice_ocean_boundary%area_berg(is:ie,js:je));ice_ocean_boundary%area_berg=0.0 +endif +if(associated(ice%mass_berg))then +allocate(ice_ocean_boundary%mass_berg(is:ie,js:je));ice_ocean_boundary%mass_berg=0.0 +endif +!Copythestaggerindicationvariablesfromtheiceprocessorstheocean +!PEsandviceversa.Thedefaultsarelargenegativenumbers,sothe +!globalmaxherepicksoutonlyvaluesthathavebeensetonactivePEs. +callfms_mpp_max(ice%flux_uv_stagger) +callfms_mpp_max(ocean%stagger) +ice_ocean_boundary%wind_stagger=ice%flux_uv_stagger +if(do_ocean)then +ocean_ice_boundary%stagger=ocean%stagger +else +ocean_ice_boundary%stagger=agrid +endif + +!allocatefieldsforextratracerfluxesinice_ocean_boundary +if(.not.fms_coupler_type_initialized(ice_ocean_boundary%fluxes))& +callfms_coupler_type_spawn(ex_gas_fluxes,ice_ocean_boundary%fluxes,(/is,is,ie,ie/),& +(/js,js,je,je/),suffix='_ice_ocn') +if(ocean%is_ocean_pe)& +callfms_coupler_type_set_diags(ice_ocean_boundary%fluxes,"ocean_flux",ocean%axes(1:2),time) + +!Thistypicallyonlyoccursonnon-oceanPEs. +if(.not.fms_coupler_type_initialized(ocean%fields))& +callfms_coupler_type_spawn(ex_gas_fields_ice,ocean%fields,(/is,is,ie,ie/),& +(/js,js,je,je/),suffix='_ocn') + +!initializeboundaryvaluesforoverrideexperiments +ocean_ice_boundary%xtype=redist +if(ocean%domain.EQ.ice%slow_Domain_NH)ocean_ice_boundary%xtype=direct +ice_ocean_boundary%xtype=ocean_ice_boundary%xtype + +!initializetheOceantypeforextrafieldsforsurfacefluxes +!Sameallocationofarraysandstuff +!(thismustbedoneaftertheOceanfieldsareallocatedasthefieldsontheOcean%fields +!arereadininthissubroutine) +! + +if(ocean%is_ocean_pe)then +callfms_mpp_set_current_pelist(ocean%pelist) +callocean_model_init_sfc(ocean_state,ocean) +endif +callfms_mpp_set_current_pelist() + +!z1lcheckthefluxconservation. +if(debug_stocks)callcheck_flux_conservation(ice,ocean,ice_ocean_boundary) +if(ice%slow_ice_PE.or.ocean%is_ocean_pe)then +allocate(slow_ice_ocean_pelist(size(slow_ice_ocean_pelist_in(:)))) +slow_ice_ocean_pelist=slow_ice_ocean_pelist_in +callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) +cplocnclock=fms_mpp_clock_id('Ice-oceancoupler',flags=fms_clock_flag_default,grain=clock_component) +fluxiceoceanclock=fms_mpp_clock_id('Fluxicetoocean',flags=fms_clock_flag_default,grain=clock_routine) +fluxoceaniceclock=fms_mpp_clock_id('Fluxoceantoice',flags=fms_clock_flag_default,grain=clock_routine) +endif + +endsubroutineice_ocean_flux_exchange_init + + +!####################################################################### +!!\briefTakestheicemodelstate(fluxesatthebottomoftheice)andinterpolatesittotheoceanmodelgrid. +!! +!!ThefollowingquantitiesaretransferredfromtheIcetotheice_ocean_boundary_type: +!!<pre> +!!flux_u=zonalwindstress(Pa) +!!flux_v=meridionalwindstress(Pa) +!!flux_t=sensibleheatflux(W/m2) +!!flux_q=specifichumidityflux(Kg/m2/s) +!!flux_salt=saltflux(Kg/m2/s) +!!flux_sw=net(down-up)shortwaveflux(W/m2) +!!flux_lw=net(down-up)longwaveflux(W/m2) +!!lprec=massofliquidprecipitationsincelast +!!timestep(Kg/m2) +!!fprec=massoffrozenprecipitationsincelast +!!timestep(Kg/m2) +!!runoff=massofrunoffsincelasttimestep(Kg/m2) +!!runoff=massofcalvingsincelasttimestep(Kg/m2) +!!p_surf=surfacepressure(Pa) +!!</pre> +subroutineflux_ice_to_ocean(Ice,Ocean,Ice_Ocean_Boundary) + +type(ice_data_type),intent(in)::Ice +type(ocean_public_type),intent(in)::Ocean +type(ice_ocean_boundary_type),intent(inout)::Ice_Ocean_Boundary + +integer::m +integer::n +logical::used + +callfms_mpp_clock_begin(cplocnclock) +callfms_mpp_clock_begin(fluxiceoceanclock) + +if(ASSOCIATED(ice_ocean_boundary%u_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_u,ice_ocean_boundary%u_flux,ice_ocean_boundary%xtype,.false.) + +if(ASSOCIATED(ice_ocean_boundary%v_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_v,ice_ocean_boundary%v_flux,ice_ocean_boundary%xtype,.false.) + +if(ASSOCIATED(ice_ocean_boundary%p))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%p_surf,ice_ocean_boundary%p,ice_ocean_boundary%xtype,.false.) + +if(ASSOCIATED(ice_ocean_boundary%mi))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%mi,ice_ocean_boundary%mi,ice_ocean_boundary%xtype,.false.) + +!Extrafluxes +if(ice_ocean_boundary%xtype==direct)then +callfms_coupler_type_copy_data(ice%ocean_fluxes,ice_ocean_boundary%fluxes) +else +callfms_coupler_type_redistribute_data(ice%ocean_fluxes,ice%slow_Domain_NH,& +ice_ocean_boundary%fluxes,ocean%Domain,complete=.true.) +endif + +!---Thefollowingvariablesmayrequireconservedfluxexchangefromicetooceanbecausethe +!---iceareamaybedifferentfromoceanarea. +if(ASSOCIATED(ice_ocean_boundary%t_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_t,ice_ocean_boundary%t_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%salt_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_salt,ice_ocean_boundary%salt_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%sw_flux_nir_dir))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_sw_nir_dir,ice_ocean_boundary%sw_flux_nir_dir,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%sw_flux_nir_dif))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_sw_nir_dif,ice_ocean_boundary%sw_flux_nir_dif,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%sw_flux_vis_dir))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_sw_vis_dir,ice_ocean_boundary%sw_flux_vis_dir,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%sw_flux_vis_dif))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_sw_vis_dif,ice_ocean_boundary%sw_flux_vis_dif,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%lw_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_lw,ice_ocean_boundary%lw_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%lprec))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%lprec,ice_ocean_boundary%lprec,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%fprec))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%fprec,ice_ocean_boundary%fprec,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%runoff))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%runoff,ice_ocean_boundary%runoff,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%calving))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%calving,ice_ocean_boundary%calving,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%ustar_berg))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%ustar_berg,ice_ocean_boundary%ustar_berg,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%area_berg))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%area_berg,ice_ocean_boundary%area_berg,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%mass_berg))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%mass_berg,ice_ocean_boundary%mass_berg,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%runoff_hflx))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%runoff_hflx,ice_ocean_boundary%runoff_hflx,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%calving_hflx))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%calving_hflx,ice_ocean_boundary%calving_hflx,ice_ocean_boundary%xtype,do_area_weighted_flux) + +if(ASSOCIATED(ice_ocean_boundary%q_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& +ice%flux_q,ice_ocean_boundary%q_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) + +callfms_mpp_clock_end(fluxiceoceanclock) +callfms_mpp_clock_end(cplocnclock) +!----------------------------------------------------------------------- + +endsubroutineflux_ice_to_ocean + +subroutineflux_ice_to_ocean_finish(Time,Ice_Ocean_Boundary) + +type(FmsTime_type),intent(in)::Time +type(ice_ocean_boundary_type),intent(inout)::Ice_Ocean_Boundary + +callfms_data_override('OCN','u_flux',ice_ocean_boundary%u_flux,time) +callfms_data_override('OCN','v_flux',ice_ocean_boundary%v_flux,time) +callfms_data_override('OCN','t_flux',ice_ocean_boundary%t_flux,time) +callfms_data_override('OCN','q_flux',ice_ocean_boundary%q_flux,time) +callfms_data_override('OCN','salt_flux',ice_ocean_boundary%salt_flux,time) +callfms_data_override('OCN','lw_flux',ice_ocean_boundary%lw_flux,time) +callfms_data_override('OCN','sw_flux_nir_dir',ice_ocean_boundary%sw_flux_nir_dir,time) +callfms_data_override('OCN','sw_flux_nir_dif',ice_ocean_boundary%sw_flux_nir_dif,time) +callfms_data_override('OCN','sw_flux_vis_dir',ice_ocean_boundary%sw_flux_vis_dir,time) +callfms_data_override('OCN','sw_flux_vis_dif',ice_ocean_boundary%sw_flux_vis_dif,time) +callfms_data_override('OCN','lprec',ice_ocean_boundary%lprec,time) +callfms_data_override('OCN','fprec',ice_ocean_boundary%fprec,time) +callfms_data_override('OCN','runoff',ice_ocean_boundary%runoff,time) +callfms_data_override('OCN','calving',ice_ocean_boundary%calving,time) +callfms_data_override('OCN','runoff_hflx',ice_ocean_boundary%runoff_hflx,time) +callfms_data_override('OCN','calving_hflx',ice_ocean_boundary%calving_hflx,time) +callfms_data_override('OCN','p',ice_ocean_boundary%p,time) +callfms_data_override('OCN','mi',ice_ocean_boundary%mi,time) + +!Aretheseifstatementsneeded,ordoesdata_overrideroutinecheckifvariableisassociated? +if(ASSOCIATED(ice_ocean_boundary%ustar_berg))& +callfms_data_override('OCN','ustar_berg',ice_ocean_boundary%ustar_berg,time) +if(ASSOCIATED(ice_ocean_boundary%area_berg))& +callfms_data_override('OCN','area_berg',ice_ocean_boundary%area_berg,time) +if(ASSOCIATED(ice_ocean_boundary%mass_berg))& +callfms_data_override('OCN','mass_berg',ice_ocean_boundary%mass_berg,time) + +!Extrafluxes +callfms_coupler_type_data_override('OCN',ice_ocean_boundary%fluxes,time) + +!Thesend_datacallforanyoftheIce_Ocean_Boundaryfluxeswouldgohere. +callfms_coupler_type_send_data(ice_ocean_boundary%fluxes,time) + +endsubroutineflux_ice_to_ocean_finish + +!####################################################################### +subroutineflux_ocean_to_ice(Ocean,Ice,Ocean_Ice_Boundary) + +type(ocean_public_type),intent(in)::Ocean +type(ice_data_type),intent(in)::Ice +type(ocean_ice_boundary_type),intent(inout)::Ocean_Ice_Boundary +real,allocatable,dimension(:,:)::tmp +integer::m +integer::n +logical::used + +callfms_mpp_clock_begin(cplocnclock) +callfms_mpp_clock_begin(fluxoceaniceclock) + +selectcase(ocean_ice_boundary%xtype) +case(direct) +!samegridanddomaindecompforoceanandice +if(ASSOCIATED(ocean_ice_boundary%u))ocean_ice_boundary%u=ocean%u_surf +if(ASSOCIATED(ocean_ice_boundary%v))ocean_ice_boundary%v=ocean%v_surf +if(ASSOCIATED(ocean_ice_boundary%t))ocean_ice_boundary%t=ocean%t_surf +if(ASSOCIATED(ocean_ice_boundary%s))ocean_ice_boundary%s=ocean%s_surf +if(ASSOCIATED(ocean_ice_boundary%sea_level))ocean_ice_boundary%sea_level=ocean%sea_lev +if(ASSOCIATED(ocean_ice_boundary%frazil))then +if(do_area_weighted_flux)then +ocean_ice_boundary%frazil=ocean%frazil*ocean%area +calldivide_by_area(data=ocean_ice_boundary%frazil,area=ice%area) +else +ocean_ice_boundary%frazil=ocean%frazil +endif +endif + +!Extrafluxes +callfms_coupler_type_copy_data(ocean%fields,ocean_ice_boundary%fields) + +case(redist) +!samegrid,differentdomaindecompforoceanandice +if(ASSOCIATED(ocean_ice_boundary%u))& +callfms_mpp_domains_redistribute(ocean%Domain,ocean%u_surf,ice%slow_Domain_NH,ocean_ice_boundary%u) +if(ASSOCIATED(ocean_ice_boundary%v))& +callfms_mpp_domains_redistribute(ocean%Domain,ocean%v_surf,ice%slow_Domain_NH,ocean_ice_boundary%v) +if(ASSOCIATED(ocean_ice_boundary%t))& +callfms_mpp_domains_redistribute(ocean%Domain,ocean%t_surf,ice%slow_Domain_NH,ocean_ice_boundary%t) +if(ASSOCIATED(ocean_ice_boundary%s))& +callfms_mpp_domains_redistribute(ocean%Domain,ocean%s_surf,ice%slow_Domain_NH,ocean_ice_boundary%s) + +if(ASSOCIATED(ocean_ice_boundary%sea_level))& +callfms_mpp_domains_redistribute(ocean%Domain,ocean%sea_lev,ice%slow_Domain_NH,& +ocean_ice_boundary%sea_level) + +if(ASSOCIATED(ocean_ice_boundary%frazil))then +if(do_area_weighted_flux)then +if(ocean%is_ocean_pe)then +allocate(tmp(size(ocean%area,1),size(ocean%area,2))) +tmp(:,:)=ocean%frazil(:,:)*ocean%area(:,:) +endif +callfms_mpp_domains_redistribute(ocean%Domain,tmp,ice%slow_Domain_NH,ocean_ice_boundary%frazil) +if(ice%slow_ice_pe)& +calldivide_by_area(data=ocean_ice_boundary%frazil,area=ice%area) +if(ocean%is_ocean_pe)deallocate(tmp) +else +callfms_mpp_domains_redistribute(ocean%Domain,ocean%frazil,ice%slow_Domain_NH,ocean_ice_boundary%frazil) +endif +endif + +!Extrafluxes +callfms_coupler_type_redistribute_data(ocean%fields,ocean%Domain,& +ocean_ice_boundary%fields,ice%slow_Domain_NH) +caseDEFAULT +callfms_mpp_error(fatal,'flux_ocean_to_ice:Ocean_Ice_Boundary%xtypemustbeDIRECTorREDIST.') +endselect + +callfms_mpp_clock_end(fluxoceaniceclock) +callfms_mpp_clock_end(cplocnclock) +!----------------------------------------------------------------------- + +endsubroutineflux_ocean_to_ice + +subroutineflux_ocean_to_ice_finish(Time,Ice,Ocean_Ice_Boundary) + +type(FmsTime_type),intent(in)::Time +type(ice_data_type),intent(in)::Ice +type(ocean_ice_boundary_type),intent(inout)::Ocean_Ice_Boundary +real::from_dq + +callfms_data_override('ICE','u',ocean_ice_boundary%u,time) +callfms_data_override('ICE','v',ocean_ice_boundary%v,time) +callfms_data_override('ICE','t',ocean_ice_boundary%t,time) +callfms_data_override('ICE','s',ocean_ice_boundary%s,time) +callfms_data_override('ICE','frazil',ocean_ice_boundary%frazil,time) +callfms_data_override('ICE','sea_level',ocean_ice_boundary%sea_level,time) +callfms_coupler_type_data_override('ICE',ocean_ice_boundary%fields,time) + +!Performdiagnosticoutputfortheocean_ice_boundaryfields +callfms_coupler_type_send_data(ocean_ice_boundary%fields,time) + +!frazil(alreadyinJ/m^2sononeedtomultiplybyDt_cpl) +from_dq=sum(ice%area*ocean_ice_boundary%frazil) +fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)=& +fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)-from_dq +fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)=& +fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)+from_dq + +endsubroutineflux_ocean_to_ice_finish + + +!####################################################################### + +subroutineflux_ice_to_ocean_stocks(Ice) + +type(ice_data_type),intent(in)::Ice + +real::from_dq + +!fluxesfromice->ocean,integrateoversurfaceandintime + +!precip-evap +from_dq=dt_cpl*sum(ice%area*(ice%lprec+ice%fprec-ice%flux_q)) +fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)=& +fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)-from_dq +fms_stock_constants_ocn_stock(istock_water)%dq(istock_top)=& +fms_stock_constants_ocn_stock(istock_water)%dq(istock_top)+from_dq + +!river +from_dq=dt_cpl*sum(ice%area*(ice%runoff+ice%calving)) +fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)=& +fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)-from_dq +fms_stock_constants_ocn_stock(istock_water)%dq(istock_side)=& +fms_stock_constants_ocn_stock(istock_water)%dq(istock_side)+from_dq + +!sensibleheat+shortwave+longwave+latentheat +from_dq=dt_cpl*sum(ice%area*(& +&ice%flux_sw_vis_dir+ice%flux_sw_vis_dif& +&+ice%flux_sw_nir_dir+ice%flux_sw_nir_dif+ice%flux_lw& +&-(ice%fprec+ice%calving)*hlf-ice%flux_t-ice%flux_q*hlv)) +fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)=& +fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)-from_dq +fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)=& +fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)+from_dq + +!heatcarriedbyriver+pme(assumingreferencetemperatureof0degCandriver/pmetemp=surfacetemp) +!Note:itdoesnotmatterwhatthereftemperatureisbutitmustbeconsistentwiththatinOCNandICE +from_dq=dt_cpl*sum(ice%area*(& +&(ice%lprec+ice%fprec-ice%flux_q+ice%runoff+ice%calving)*cp_ocean*ice%SST_C(:,:))) +fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)=& +fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)-from_dq +fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)=& +fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)+from_dq + +!SALTflux +from_dq=dt_cpl*sum(ice%area*(-ice%flux_salt)) +fms_stock_constants_ice_stock(istock_salt)%dq(istock_bottom)=& +fms_stock_constants_ice_stock(istock_salt)%dq(istock_bottom)-from_dq +fms_stock_constants_ocn_stock(istock_salt)%dq(istock_top)=& +fms_stock_constants_ocn_stock(istock_salt)%dq(istock_top)+from_dq + + +endsubroutineflux_ice_to_ocean_stocks + +!####################################################################### +subroutineflux_ocean_from_ice_stocks(ocean_state,Ocean,Ice_Ocean_boundary) +type(ocean_state_type),pointer::ocean_state +type(ocean_public_type),intent(in)::Ocean +type(ice_ocean_boundary_type),intent(in)::Ice_Ocean_Boundary +real::from_dq,cp_ocn +real,dimension(size(Ice_Ocean_Boundary%lprec,1),size(Ice_Ocean_Boundary%lprec,2))::& +ocean_cell_area,wet,t_surf,t_pme,t_calving,t_runoff,btfHeat +integer::isc,iec,jsc,jec + +callfms_mpp_domains_get_compute_domain(ocean%Domain,isc,iec,jsc,jec) +callocean_model_data_get(ocean_state,ocean,'area',ocean_cell_area,isc,jsc) +callocean_model_data_get(ocean_state,ocean,'mask',wet,isc,jsc) +callocean_model_data_get(ocean_state,ocean,'t_surf',t_surf,isc,jsc) +callocean_model_data_get(ocean_state,ocean,'t_runoff',t_runoff,isc,jsc) +callocean_model_data_get(ocean_state,ocean,'t_pme',t_pme,isc,jsc) +callocean_model_data_get(ocean_state,ocean,'t_calving',t_calving,isc,jsc) +callocean_model_data_get(ocean_state,ocean,'btfHeat',btfheat,isc,jsc) +callocean_model_data_get(ocean_state,ocean,'c_p',cp_ocn) + + +!fluxesfromice->ocean,integrateoversurfaceandintime + +!precip-evap +from_dq=sum(ocean_cell_area*wet*(ice_ocean_boundary%lprec+ice_ocean_boundary%fprec-ice_ocean_boundary%q_flux)) +fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_top)=& +fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_top)+from_dq*dt_cpl + +from_dq=sum(ocean_cell_area*wet*(ice_ocean_boundary%runoff+ice_ocean_boundary%calving)) +fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_side)=& +fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_side)+from_dq*dt_cpl + +!sensibleheat+shortwave+longwave+latentheat + +from_dq=sum(ocean_cell_area*wet*(ice_ocean_boundary%sw_flux_vis_dir+ice_ocean_boundary%sw_flux_vis_dif& ++ice_ocean_boundary%sw_flux_nir_dir+ice_ocean_boundary%sw_flux_nir_dif& ++ice_ocean_boundary%lw_flux& +-(ice_ocean_boundary%fprec+ice_ocean_boundary%calving)*hlf& +-ice_ocean_boundary%t_flux-ice_ocean_boundary%q_flux*hlv)) + +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)=& +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)+from_dq*dt_cpl + +!heatcarriedbyriver+pme(assumingreferencetemperatureof0degCandriver/pmetemp=surfacetemp) +!Note:itdoesnotmatterwhatthereftemperatureisbutitmustbeconsistentwiththatinOCNandICE + +from_dq=sum(ocean_cell_area*wet*cp_ocn*& +((ice_ocean_boundary%lprec+ice_ocean_boundary%fprec-ice_ocean_boundary%q_flux)*t_pme& ++ice_ocean_boundary%calving*t_calving& ++ice_ocean_boundary%runoff*t_runoff)) + +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)=& +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)+from_dq*dt_cpl + +!Bottomheatflux +from_dq=-sum(ocean_cell_area*wet*btfheat) + +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_bottom)=& +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_bottom)+from_dq*dt_cpl + +!Frazilheat + +from_dq=sum(ocean_cell_area*wet*ocean%frazil) +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)=& +fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)+from_dq + +!SALTflux +from_dq=sum(ocean_cell_area*wet*(-ice_ocean_boundary%salt_flux)) +fms_stock_constants_ocn_stock(istock_salt)%dq_IN(istock_top)=& +fms_stock_constants_ocn_stock(istock_salt)%dq_IN(istock_top)+from_dq*dt_cpl + + +endsubroutineflux_ocean_from_ice_stocks + +!####################################################################### +subroutineflux_ice_to_ocean_redistribute(ice,ocean,ice_data,ocn_bnd_data,type,do_area_weighted) + +!PerformsagloballyconservativefluxredistributionacrossICE/OCN. +!Assumesthattheice/ocngridsarethesame.Ifoceanispresent, +!thenassumedifferentmppdomansandredistribute + +!shouldbeinvokedbyallPEs + +type(ice_data_type),intent(in)::ice +type(ocean_public_type),intent(in)::ocean +real,dimension(:,:),intent(in)::ice_data +real,dimension(:,:),intent(out)::ocn_bnd_data +integer,intent(in)::type +logical,intent(in)::do_area_weighted + +real,allocatable,dimension(:,:)::tmp + +selectcase(type) +case(direct) +if(do_area_weighted)then +ocn_bnd_data=ice_data*ice%area +calldivide_by_area(data=ocn_bnd_data,area=ocean%area) +else +ocn_bnd_data=ice_data +endif +case(redist) +if(do_area_weighted)then +if(ice%slow_ice_pe)then +allocate(tmp(size(ice%area,1),size(ice%area,2))) +tmp(:,:)=ice_data(:,:)*ice%area(:,:) +endif +callfms_mpp_domains_redistribute(ice%slow_Domain_NH,tmp,ocean%Domain,ocn_bnd_data) +if(ocean%is_ocean_pe)calldivide_by_area(ocn_bnd_data,area=ocean%area) +if(ice%slow_ice_pe)deallocate(tmp) +else +callfms_mpp_domains_redistribute(ice%slow_Domain_NH,ice_data,ocean%Domain,ocn_bnd_data) +endif +caseDEFAULT +callfms_mpp_error(fatal,'FLUX_ICE_TO_OCEAN:Ice_Ocean_Boundary%xtypemustbeDIRECTorREDIST.') +endselect + +endsubroutineflux_ice_to_ocean_redistribute + +!###################################################################################### +subroutinedivide_by_area(data,area) +real,intent(inout)::data(:,:) +real,intent(in)::area(:,:) + +if(size(data,dim=1)/=size(area,dim=1).or.size(data,dim=2)/=size(area,dim=2))then +!noop +return +endif + +where(area/=0.0) +data=data/area +endwhere + +endsubroutinedivide_by_area + +!####################################################################### + +subroutinecheck_flux_conservation(Ice,Ocean,Ice_Ocean_Boundary) +type(ice_data_type),intent(inout)::Ice +type(ocean_public_type),intent(inout)::Ocean +type(ice_ocean_boundary_type),intent(inout)::ice_ocean_boundary + +real,allocatable,dimension(:,:)::ice_data,ocn_data +real::ice_sum,area_weighted_sum,non_area_weighted_sum +integer::outunit + +outunit=fms_mpp_stdout() +allocate(ice_data(size(ice%flux_q,1),size(ice%flux_q,2))) +allocate(ocn_data(size(ice_ocean_boundary%q_flux,1),size(ice_ocean_boundary%q_flux,2))) +callrandom_number(ice_data) +ice_sum=sum(ice_data*ice%area) +callfms_mpp_sum(ice_sum) +ocn_data=0.0 +callflux_ice_to_ocean_redistribute(ice,ocean,ice_data,ocn_data,ice_ocean_boundary%xtype,.false.) +non_area_weighted_sum=sum(ocn_data*ocean%area) +callfms_mpp_sum(non_area_weighted_sum) +ocn_data=0.0 +callflux_ice_to_ocean_redistribute(ice,ocean,ice_data,ocn_data,ice_ocean_boundary%xtype,.true.) +area_weighted_sum=sum(ocn_data*ocean%area) +callfms_mpp_sum(area_weighted_sum) +write(outunit,*)"NOTEfromflux_exchange_mod:checkforfluxconservationforflux_ice_to_ocean" +write(outunit,*)"*****Theglobalareasumofrandomnumberonicedomain(inputdata)is",ice_sum +write(outunit,*)"*****Theglobalareasumofdataafterflux_ice_to_ocean_redistributewith"//& +"do_area_weighted_flux=falseis",non_area_weighted_sum,& +"andthedifferencefromglobalinputareasum=",ice_sum-non_area_weighted_sum +write(outunit,*)"*****Theglobalareasumofdataafterflux_ice_to_ocean_redistributewith"//& +"do_area_weighted_flux=trueis",area_weighted_sum,& +"andthedifferencefromglobalinputareasum=",ice_sum-area_weighted_sum + + +endsubroutinecheck_flux_conservation + +endmoduleice_ocean_flux_exchange_mod + + + + diff --git a/docs/xml/index.xml b/docs/xml/index.xml new file mode 100644 index 00000000..ba385c19 --- /dev/null +++ b/docs/xml/index.xml @@ -0,0 +1,763 @@ + + + ice_model_mod::atmos_ice_boundary_type + u_star + t_flux + q_flux + lw_flux + sw_flux + lprec + fprec + dhdt + dedt + drdt + coszen + data + xtype + + full_coupler_mod::coupler_chksum_type + components + initialize_coupler_chksum_obj + get_components_obj + get_atmos_ice_land_ocean_chksums + get_atmos_ice_land_chksums + get_slow_ice_chksums + get_ocean_chksums + get_coupler_chksums + + full_coupler_mod::coupler_clock_type + initialization + main + generate_sfc_xgrid + flux_ocean_to_ice + flux_ice_to_ocean + atm + atmos_loop + atmos_tracer_driver_gather_data + sfc_boundary_layer + update_atmos_model_dynamics + update_atmos_model_down + flux_down_from_atmos + update_land_model_fast + update_ice_model_fast + flux_up_to_atmos + update_atmos_model_up + radiation + concurrent_atmos + update_atmos_model_state + update_land_model_slow + flux_land_to_ice + set_ice_surface_fast + update_ice_model_slow_fast + set_ice_surface_slow + update_ice_model_slow_slow + flux_ice_to_ocean_stocks + set_ice_surface_exchange + update_ice_model_slow_exchange + ocean + flux_check_stocks + intermediate_restart + final_flux_check_stocks + termination + atmos_model_init + land_model_init + ice_model_init + ocean_model_init + flux_exchange_init + + full_coupler_mod::coupler_components_type + atm + land + ice + ocean + land_ice_atmos_boundary + atmos_land_boundary + atmos_ice_boundary + land_ice_boundary + ice_ocean_boundary + ocean_ice_boundary + initialize_coupler_components_obj + get_component + + ice_model_mod::ice_data_type + domain + glon_bnd + glat_bnd + lon_bnd + lat_bnd + glon + glat + lon + lat + gmask + mask + ice_mask + t_surf + albedo + albedo_vis_dir + albedo_nir_dir + albedo_vis_dif + albedo_nir_dif + rough_mom + rough_heat + rough_moist + thickness + time_init + time + time_step_fast + time_step_slow + + atm_land_ice_flux_exchange_mod::put_logical_to_real + put_logical_to_real_sg + put_logical_to_real_ug + + surface_flux_mod::surface_flux + surface_flux_1d + surface_flux_2d + + atm_land_ice_flux_exchange_mod::tracer_exch_ind_type + exch + ice + lnd + + atm_land_ice_flux_exchange_mod::tracer_ind_type + atm + ice + lnd + + atm_land_ice_flux_exchange_mod + version + tag + xmap_sfc + n_xgrid_sfc + mod_name + id_b_star + id_del_h + id_del_m + id_del_q + id_drag_heat + id_drag_moist + id_drag_mom + id_gust + id_husslut_land + id_ice_mask + id_land_mask + id_p_atm + id_q_flux + id_q_flux_land + id_q_ref + id_q_ref_land + id_q_star + id_r_flux + id_rh_ref + id_rh_ref_cmip + id_rh_ref_land + id_rough_heat + id_rough_moist + id_rough_mom + id_rough_scale + id_slp + id_t_atm + id_t_ca + id_t_flux + id_t_ocean + id_t_ref + id_t_ref_land + id_t_surf + id_taslut_land + id_thv_atm + id_thv_surf + id_u_atm + id_u_flux + id_u_ref + id_u_ref_land + id_u_star + id_v_atm + id_v_flux + id_v_ref + id_v_ref_land + id_wind + id_wind_ref + id_z_atm + id_co2_atm_dvmr + id_co2_surf_dvmr + id_co2_bot + id_co2_flux_pcair_atm + id_o2_flux_pcair_atm + id_tr_atm + id_tr_surf + id_tr_flux + id_tr_mol_flux + id_tr_ref + id_tr_ref_land + id_tr_mol_flux0 + id_tr_flux_land + id_tr_mol_flux_land + id_tr_con_atm + id_tr_con_atm_land + id_tr_con_ref + id_tr_con_ref_land + id_evspsbl + id_height10m + id_height2m + id_hfls + id_hfss + id_hurs + id_huss + id_psl + id_rhs + id_sfcwind + id_sftlf + id_sic + id_tas + id_tauu + id_tauv + id_tos + id_ts + id_tslsi + id_uas + id_vas + id_evspsbl_g + id_hfls_g + id_hfss_g + id_rls_g + id_tas_g + id_tasl_g + id_ts_g + first_static + do_init + remap_method + d622 + d378 + d608 + tfreeze + frac_precip + z_ref_heat + z_ref_mom + do_area_weighted_flux + do_forecast + nblocks + partition_fprec_from_lprec + scale_precip_2d + my_nblocks + block_start + block_end + ex_albedo_fix + ex_albedo_nir_dif_fix + ex_albedo_nir_dir_fix + ex_albedo_vis_dif_fix + ex_albedo_vis_dir_fix + ex_b_star + ex_cd_m + ex_cd_t + ex_con_atm + ex_dedt_surf + ex_dhdt_atm + ex_dhdt_surf + ex_dqsatdt_surf + ex_drdt_surf + ex_dtaudu_atm + ex_dtaudv_atm + ex_e_q_n + ex_flux_lw + ex_flux_t + ex_flux_u + ex_flux_v + ex_old_albedo + ex_p_surf + ex_seawater + ex_slp + ex_t_ca + ex_t_surf + ex_t_surf_miz + ex_u_star + ex_wind + ex_z_atm + ex_dfdtr_atm + ex_dfdtr_surf + ex_e_tr_n + ex_f_tr_delt_n + ex_flux_tr + ex_tr_con_ref + ex_tr_con_atm + ex_tr_surf + ex_avail + ex_land + ex_e_t_n + ex_f_t_delt_n + n_atm_tr + n_atm_tr_tot + n_lnd_tr + n_lnd_tr_tot + n_exch_tr + n_gex_atm2lnd + n_gex_lnd2atm + tr_table + tr_table_map + isphum + ico2 + inh3 + ex_gas_fields_atm + ex_gas_fields_ice + ex_gas_fluxes + regrid + redist + redirect + cplclock + sfcclock + fluxatmdnclock + regenclock + fluxatmupclock + x1_grid_atm + x1_grid_ice + x1_grid_lnd + dt_atm + atmospheric + timestep + s + ni_atm + nj_atm + nxc_ice + nyc_ice + nk_ice + nxc_lnd + nyc_lnd + atm_land_ice_flux_exchange_init + sfc_boundary_layer + flux_down_from_atmos + generate_sfc_xgrid + flux_up_to_atmos + flux_ex_arrays_dealloc + flux_atmos_to_ocean + put_logical_to_real_sg + put_logical_to_real_ug + diag_field_init + divide_by_area + send_ice_mask_sic + atm_stock_integrate + + atmos_ocean_dep_fluxes_calc_mod + mod_name + atmos_ocean_dep_fluxes_calc + + atmos_ocean_fluxes_calc_mod + mod_name + epsln + atmos_ocean_fluxes_calc + calc_kw + calc_ka + calc_kl + schmidt_g + d_air + p_air + v_air + n_air + + flux_exchange_mod + version + tag + do_init + bound_tol + d622 + d378 + z_ref_heat + z_ref_mom + do_area_weighted_flux + debug_stocks + divert_stocks_report + do_runoff + do_forecast + nblocks + partition_fprec_from_lprec + tfreeze + scale_precip_2d + gas_fluxes_initialized + ex_gas_fields_atm + ex_gas_fields_ice + ex_gas_fluxes + ni_atm + nj_atm + ccc + cplclock + dt_atm + dt_cpl + atm_precip_new + mod_name + id_drag_moist + id_drag_heat + id_drag_mom + id_rough_moist + id_rough_heat + id_rough_mom + id_u_star + id_b_star + id_q_star + id_u_flux + id_v_flux + id_t_surf + id_t_flux + id_q_flux + id_r_flux + id_t_atm + id_u_atm + id_v_atm + id_wind + id_thv_atm + id_thv_surf + id_t_ref + id_rh_ref + id_u_ref + id_v_ref + id_q_ref + id_del_h + id_del_m + id_del_q + id_albedo + id_gust + id_t_ca + id_q_surf + id_q_atm + id_z_atm + id_p_atm + id_land_mask + id_ice_mask + id_rough_scale + id_albedo_vis_dir + id_albedo_nir_dir + id_albedo_vis_dif + id_albedo_nir_dif + id_tas + id_uas + id_vas + id_ts + id_psl + id_sfcwind + id_tauu + id_tauv + id_hurs + id_huss + id_evspsbl + id_hfls + id_hfss + id_height2m + id_height10m + first_static + do_read_nml + isphum + n_atm_tr_tot + n_atm_tr + use_existing_grid_spec + all_ocean + all_land + is + ie + js + je + t_surf + t_ca + q_surf + p_surf + e_t_n + f_t_delt_n + e_q_n + f_q_delt_n + dhdt_surf + dedt_surf + dedq_surf + drdt_surf + dhdt_atm + dedq_atm + flux_t + flux_q + flux_lw + flux_u + flux_v + drag_q + dtaudu_atm + dtaudv_atm + cd_t + cd_m + b_star + u_star + wind + used + gas_exchange_init + flux_exchange_init + flux_check_stocks + flux_init_stocks + check_atm_grid + sfc_boundary_layer + flux_down_from_atmos + flux_up_to_atmos + flux_exchange_init + read_namelist + diag_field_init + flux_exchange_end + surface_flux_2d + + FMS + + full_coupler_mod + restart_interval + current_date + calendar + force_date_from_namelist + months + days + hours + minutes + seconds + dt_atmos + dt_cpld + atmos_npes + ocean_npes + ice_npes + land_npes + atmos_nthreads + ocean_nthreads + radiation_nthreads + do_atmos + do_land + do_ice + do_ocean + do_flux + concurrent + do_concurrent_radiation + use_lag_fluxes + concurrent_ice + slow_ice_with_ocean + combined_ice_and_ocean + do_chksum + do_endpoint_chksum + do_debug + check_stocks + use_hyper_thread + text + mod_name + calendar_type + date_init + coupler_init + initialize_coupler_components_obj + get_component + initialize_coupler_chksum_obj + get_components_obj + coupler_end + add_domain_dimension_data + coupler_restart + get_coupler_chksums + get_atmos_ice_land_ocean_chksums + get_atmos_ice_land_chksums + get_slow_ice_chksums + get_ocean_chksums + coupler_set_clock_ids + coupler_flux_init_finish_stocks + coupler_flux_check_stocks + coupler_flux_ocean_to_ice + coupler_flux_ice_to_ocean + coupler_unpack_ocean_ice_boundary + coupler_exchange_slow_to_fast_ice + coupler_exchange_fast_to_slow_ice + coupler_set_ice_surface_fields + coupler_generate_sfc_xgrid + coupler_atmos_tracer_driver_gather_data + coupler_sfc_boundary_layer + coupler_update_atmos_model_dynamics + coupler_update_atmos_model_radiation + coupler_update_atmos_model_down + coupler_flux_down_from_atmos + coupler_update_land_model_fast + coupler_update_ice_model_fast + coupler_flux_up_to_atmos + coupler_update_atmos_model_up + coupler_flux_atmos_to_ocean + coupler_update_atmos_model_state + coupler_update_land_model_slow + coupler_flux_land_to_ice + coupler_unpack_land_ice_boundary + coupler_update_ice_model_slow_and_stocks + coupler_update_ocean_model + coupler_intermediate_restart + coupler_summarize_timestep + + ice_model_mod + cmin + cmax + diff + thickness_min + specified_ice_thickness + heat_capacity_ocean + temp_ice_freeze + roughness_ice + mixed_layer_ocean + use_climo_ice + use_annual_ice + use_climo_sst + use_annual_sst + ice_method + sst_method + specified + uniform + or + mixed_layer + temp_ice + temp_sst + sst_anom + interp_method + do_netcdf_restart + is + ie + js + je + amip_ice + amip_sst + module_is_initialized + fname + version + tagname + latent + update_ice_model_fast + update_ice_model_slow + prognostic_ice + prognostic_sst + ice_model_init + ice_register_restart + ice_model_end + add_domain_dimension_data + is_latlon + get_cell_center + latlon2xyz + xyz2latlon + + ice_ocean_flux_exchange_mod + regrid + redist + direct + debug_stocks + do_area_weighted_flux + cplocnclock + fluxoceaniceclock + fluxiceoceanclock + dt_cpl + slow_ice_ocean_pelist + ice_ocean_flux_exchange_init + flux_ice_to_ocean + flux_ice_to_ocean_finish + flux_ocean_to_ice + flux_ocean_to_ice_finish + flux_ice_to_ocean_stocks + flux_ocean_from_ice_stocks + flux_ice_to_ocean_redistribute + divide_by_area + check_flux_conservation + + iso_fortran_env + + land_ice_flux_exchange_mod + xmap_runoff + n_xgrid_runoff + x2_grid_lnd + x2_grid_ice + cplclock + fluxlandiceclock + do_runoff + dt_cpl + land_ice_flux_exchange_init + flux_land_to_ice + + omp_lib + + surface_flux_mod + version + tagname + module_is_initialized + d622 + d378 + hlars + gcp + kappa + d608 + rough_scheme_ocean + no_neg_q + use_virtual_temp + alt_gustiness + old_dtaudv + use_mixing_ratio + gust_const + gust_min + ncar_ocean_flux + ncar_ocean_flux_orig + ncar_ocean_flux_multilevel + do_iter_monin_obukhov + use_u10_neutral + bulk_zu + bulk_zt + bulk_zq + raoult_sat_vap + do_simple + niter_monin_obukhov + surface_flux_1d + surface_flux_0d + surface_flux_2d + surface_flux_init + ncar_ocean_fluxes + ncar_ocean_fluxes_multilevel + iter_monin_obukhov_ocean + + atm_land_ice_flux_exchange.F90 + FMS_DATA_OVERRIDE_ + FMS_XGRID_PUT_TO_XGRID_ + FMS_XGRID_STOCK_MOVE_ + FMS_XGRID_SET_FRAC_AREA_ + FMS_XGRID_GET_FROM_XGRID_ + FMS_DIAG_REGISTER_FIELD_ + + atmos_ocean_dep_fluxes_calc.F90 + + atmos_ocean_fluxes_calc.F90 + + coupler_main.F90 + coupler_main + + coupler_main.F90 + coupler_main + coupler_init + coupler_restart + coupler_end + + coupler_main.F90 + coupler_main + coupler_init + coupler_end + coupler_chksum + + flux_exchange.F90 + + flux_exchange.F90 + + full_coupler_mod.F90 + + ice_ocean_flux_exchange.F90 + + land_ice_flux_exchange.F90 + + surface_flux.F90 + + ice_model.F90 + + coupler_config + + flux_exchange_conf + + surface_flux_config + + full + + shared + + SHiELD + + simple + + index + + diff --git a/docs/xml/index.xsd b/docs/xml/index.xsd new file mode 100644 index 00000000..d7ab2a90 --- /dev/null +++ b/docs/xml/index.xsd @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/xml/indexpage.xml b/docs/xml/indexpage.xml new file mode 100644 index 00000000..151fe097 --- /dev/null +++ b/docs/xml/indexpage.xml @@ -0,0 +1,53 @@ + + + + index + FMS Coupler + +FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean) on different logically rectangular grids. + +FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean) on different logically rectangular grids. This repository holds 3 separate directories with driver programs for different usages along with modules with routines for common operations.There are currently 3 coupler_main driver programs, each with their own directory: +the original 'full' coupler_maina slimmed down 'simple' versiona SHiELD version for use with the model +Additionally, files in the 'shared' directory holds modules used by multiple drivers. The information below is provided for the full coupler, but there is considerable overlap between the other versions. Documentation on all programs and modules is available through the files tab.Bruce Wyman Bruce.Wyman@noaa.gov +V. Balaji V.Balaji@noaa.gov +coupler_main.F90 couples component models for atmosphere, ocean, land and sea ice on independent grids. It also controls the time integration.This version couples model components representing atmosphere, ocean, land and sea ice on independent grids. Each model component is represented by a data type giving the instantaneous model state.The component models are coupled to allow implicit vertical diffusion of heat and moisture at the interfaces of the atmosphere, land, and ice models. As a result, the atmosphere, land, and ice models all use the same time step. The atmospheric model has been separated into down and up calls that correspond to the down and up sweeps of the standard tridiagonal elimination.The ocean interface uses explicit mixing. Fluxes to and from the ocean must be passed through the ice model. This includes atmospheric fluxes as well as fluxes from the land to the ocean (runoff).This program contains the model's main time loop. Each iteration of the main time loop is one coupled (slow) time step. Within this slow time step loop is a fast time step loop, using the atmospheric time step, where the tridiagonal vertical diffusion equations are solved. Exchange between sea ice and ocean occurs once every slow timestep. +Namelists +The three components of coupler: coupler_main , flux_exchange_mod, and surface_flux_mod are configured through three namelists +coupler_nmlflux_exchange_nmlsurface_flux_nml + +If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.The run length must be an intergal multiple of the coupling timestep dt_cpld. + + + +Program Example +Below is some pseudo-code to illustrate the runtime loop of the coupler_main drivers.DOslowtimesteps(ocean) +callflux_ocean_to_ice + +callset_ice_surface_fields + +DOfasttimesteps(atmos) +callflux_calculation + +callatmos_down + +callflux_down_from_atmos + +callland_fast + +callice_fast + +callflux_up_to_atmos + +callatmos_up +ENDDO + +callice_slow + +callflux_ice_to_ocean + +callocean +enddo + + + + diff --git a/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml b/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml new file mode 100644 index 00000000..a4b0bcdb --- /dev/null +++ b/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml @@ -0,0 +1,105 @@ + + + + atm_land_ice_flux_exchange_mod::put_logical_to_real + + + subroutine + subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg + (mask, id, ex_mask, xmap) + put_logical_to_real_sg + + mask + mask + + + id + id + + + ex_mask + ex_mask + + + xmap + xmap + + +Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND + + + +mask + + +land/ice mask to map to exchange grid + + + +ex_mask + + +converted mask on exchange grid + + + + + + + + + subroutine + subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug + (mask, id, ex_mask, xmap) + put_logical_to_real_ug + + mask + mask + + + id + id + + + ex_mask + ex_mask + + + xmap + xmap + + +Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND + + + +mask + + +mask on component grid + + + +ex_mask + + +converted mask on exchange grid + + + + + + + + + + + + + + + atm_land_ice_flux_exchange_mod::put_logical_to_realput_logical_to_real_sg + atm_land_ice_flux_exchange_mod::put_logical_to_realput_logical_to_real_ug + + + diff --git a/docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml b/docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml new file mode 100644 index 00000000..498ca679 --- /dev/null +++ b/docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml @@ -0,0 +1,529 @@ + + + + surface_flux_mod::surface_flux + + + subroutine + subroutine surface_flux_mod::surface_flux::surface_flux_1d + (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) + surface_flux_1d + + t_atm + t_atm + Air temp lowest atmospheric level. + + + q_atm_in + q_atm_in + Mixing ratio at lowest atmospheric level (kg/kg). + + + u_atm + u_atm + Zonal wind velocity at lowest atmospheric level. + + + v_atm + v_atm + Meridional wind velocity at lowest atmospheric level. + + + p_atm + p_atm + Pressure lowest atmospheric level. + + + z_atm + z_atm + Height lowest atmospheric level. + + + p_surf + p_surf + Pressure at the Earth's surface + + + t_surf + t_surf + Temp at the Earth's surface + + + t_ca + t_ca + Air temp at the canopy + + + q_surf + q_surf + Mixing ratio at the Earth's surface (kg/kg) + + + u_surf + u_surf + Zonal wind velocity at the Earth's surface + + + v_surf + v_surf + Meridional wind velocity at the Earth's surface + + + rough_mom + rough_mom + Momentum roughness length + + + rough_heat + rough_heat + Heat roughness length + + + rough_moist + rough_moist + + + rough_scale + rough_scale + Scale factor used to topographic roughness calculation + + + gust + gust + + + flux_t + flux_t + Sensible heat flux + + + flux_q + flux_q + Evaporative water flux + + + flux_r + flux_r + Radiative energy flux + + + flux_u + flux_u + Zonal momentum flux + + + flux_v + flux_v + Meridional momentum flux + + + cd_m + cd_m + Momentum exchange coefficient + + + cd_t + cd_t + + + cd_q + cd_q + + + w_atm + w_atm + Absolute wind at the lowest atmospheric level + + + u_star + u_star + Turbulent velocity scale + + + b_star + b_star + Turbulent buoyant scale + + + q_star + q_star + Turbulent moisture scale + + + thv_atm + thv_atm + + + thv_surf + thv_surf + + + dhdt_surf + dhdt_surf + Sensible heat flux temperature sensitivity + + + dedt_surf + dedt_surf + Moisture flux temperature sensitivity + + + dedq_surf + dedq_surf + Moisture flux humidity sensitivity + + + drdt_surf + drdt_surf + Radiative energy flux temperature sensitivity + + + dhdt_atm + dhdt_atm + Derivative of sensible heat flux over temp at the lowest atmos level + + + dedq_atm + dedq_atm + Derivative of water vapor flux over temp at the lowest atmos level + + + dtaudu_atm + dtaudu_atm + Derivative of zonal wind stress with respect to the lowest level + + + dtaudv_atm + dtaudv_atm + Derivative of meridional wind stress with respect to the lowest + + + dt + dt + + + land + land + Indicates where land exists (.TRUE. if exchange cell is on land + + + seawater + seawater + Indicates where liquid ocean water exists + + + avail + avail + + + + + + +avail + + +.TRUE. where the exchange cell is active + + + +gust + + +Gustiness factor + + + +cd_q + + +Moisture exchange coefficient + + + +rough_moist + + +Moisture roughness length + + + +dt + + +Time step (it is not used presently) + + + + + + + + + subroutine + subroutine surface_flux_mod::surface_flux::surface_flux_2d + (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) + surface_flux_2d + + t_atm + t_atm + Air temp lowest atmospheric level. + + + q_atm_in + q_atm_in + Mixing ratio at lowest atmospheric level (kg/kg). + + + u_atm + u_atm + Zonal wind velocity at lowest atmospheric level. + + + v_atm + v_atm + Meridional wind velocity at lowest atmospheric level. + + + p_atm + p_atm + Pressure lowest atmospheric level. + + + z_atm + z_atm + Height lowest atmospheric level. + + + p_surf + p_surf + Pressure at the Earth's surface + + + t_surf + t_surf + Temp at the Earth's surface + + + t_ca + t_ca + Air temp at the canopy + + + q_surf + q_surf + Mixing ratio at the Earth's surface (kg/kg) + + + u_surf + u_surf + Zonal wind velocity at the Earth's surface + + + v_surf + v_surf + Meridional wind velocity at the Earth's surface + + + rough_mom + rough_mom + Momentum roughness length + + + rough_heat + rough_heat + Heat roughness length + + + rough_moist + rough_moist + + + rough_scale + rough_scale + Scale factor used to topographic roughness calculation + + + gust + gust + + + flux_t + flux_t + Sensible heat flux + + + flux_q + flux_q + Evaporative water flux + + + flux_r + flux_r + Radiative energy flux + + + flux_u + flux_u + Zonal momentum flux + + + flux_v + flux_v + Meridional momentum flux + + + cd_m + cd_m + Momentum exchange coefficient + + + cd_t + cd_t + + + cd_q + cd_q + + + w_atm + w_atm + Absolute wind at the lowest atmospheric level + + + u_star + u_star + Turbulent velocity scale + + + b_star + b_star + Turbulent buoyant scale + + + q_star + q_star + Turbulent moisture scale + + + thv_atm + thv_atm + + + thv_surf + thv_surf + + + dhdt_surf + dhdt_surf + Sensible heat flux temperature sensitivity + + + dedt_surf + dedt_surf + Moisture flux temperature sensitivity + + + dedq_surf + dedq_surf + Moisture flux humidity sensitivity + + + drdt_surf + drdt_surf + Radiative energy flux temperature sensitivity + + + dhdt_atm + dhdt_atm + Derivative of sensible heat flux over temp at the lowest + + + dedq_atm + dedq_atm + Derivative of water vapor flux over temp at the lowest atmos level + + + dtaudu_atm + dtaudu_atm + Derivative of zonal wind stress with respect to the lowest level + + + dtaudv_atm + dtaudv_atm + Derivative of meridional wind stress with respect to the lowest + + + dt + dt + + + land + land + Indicates where land exists (.TRUE. if exchange cell is on land + + + seawater + seawater + Indicates where liquid ocean water exists + + + avail + avail + + + + + + +avail + + +.TRUE. where the exchange cell is active + + + +gust + + +Gustiness factor + + + +cd_q + + +Moisture exchange coefficient + + + +rough_moist + + +Moisture roughness length + + + +dt + + +Time step (it is not used presently) + + + + + + + + + +For the calculation of fluxes on the exchange grids. + +For the calculation of fluxes on the exchange grids. + + + surface_flux_mod::surface_fluxsurface_flux_1d + surface_flux_mod::surface_fluxsurface_flux_2d + + + diff --git a/docs/xml/land__ice__flux__exchange_8_f90.xml b/docs/xml/land__ice__flux__exchange_8_f90.xml new file mode 100644 index 00000000..0b73a8dd --- /dev/null +++ b/docs/xml/land__ice__flux__exchange_8_f90.xml @@ -0,0 +1,169 @@ + + + + land_ice_flux_exchange.F90 + land_ice_flux_exchange_mod + +Handles flux exchanges and exchange grids between land and ice grids. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +moduleland_ice_flux_exchange_mod + +!!FMS +usefms +usefmsconstants,only:radius +!!Components +useland_model_mod,only:land_data_type +useice_model_mod,only:ice_data_type,land_ice_boundary_type + +implicitnone +private + + +!----exchangegridmaps----- + +type(FmsXgridXmap_type),save::xmap_runoff +integer::n_xgrid_runoff=0 + +!Exchangegridindices +integer::X2_GRID_LND,X2_GRID_ICE + +public::flux_land_to_ice,land_ice_flux_exchange_init + +integer::cplClock,fluxLandIceClock +logical::do_runoff +real::Dt_cpl +contains + +subroutineland_ice_flux_exchange_init(Land,Ice,land_ice_boundary,Dt_cpl_in,do_runoff_in,cplClock_in) +type(land_data_type),intent(in)::Land +type(ice_data_type),intent(inout)::Ice +type(land_ice_boundary_type),intent(inout)::land_ice_boundary +real,intent(in)::Dt_cpl_in +logical,intent(in)::do_runoff_in +integer,intent(in)::cplClock_in + +integer::is,ie,js,je + +do_runoff=do_runoff_in +cplclock=cplclock_in +dt_cpl=dt_cpl_in +fluxlandiceclock=fms_mpp_clock_id('Fluxlandtoice',flags=fms_clock_flag_default,grain=clock_routine) + +if(do_runoff)then +callfms_xgrid_setup_xmap(xmap_runoff,(/'LND','OCN'/),& +(/land%Domain,ice%Domain/),& +"INPUT/grid_spec.nc") +!exchangegridindices +x2_grid_lnd=1;x2_grid_ice=2; +n_xgrid_runoff=max(fms_xgrid_count(xmap_runoff),1) +if(n_xgrid_runoff.eq.1)write(*,'(a,i6,6x,a)')'PE=',fms_mpp_pe(),'Runoffexchangesizeequalsone.' +endif + +callfms_mpp_domains_get_compute_domain(ice%domain,is,ie,js,je) + +!allocateland_ice_boundary +allocate(land_ice_boundary%runoff(is:ie,js:je)) +allocate(land_ice_boundary%calving(is:ie,js:je)) +allocate(land_ice_boundary%runoff_hflx(is:ie,js:je)) +allocate(land_ice_boundary%calving_hflx(is:ie,js:je)) +!initializevaluesforoverrideexperiments(mjh) +land_ice_boundary%runoff=0.0 +land_ice_boundary%calving=0.0 +land_ice_boundary%runoff_hflx=0.0 +land_ice_boundary%calving_hflx=0.0 + + +endsubroutineland_ice_flux_exchange_init + +!####################################################################### +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +!flux_land_to_ice-translaterunofffromlandtoicegrids! +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +subroutineflux_land_to_ice(Time,Land,Ice,Land_Ice_Boundary) +type(FmsTime_type),intent(in)::Time +type(land_data_type),intent(in)::Land +type(ice_data_type),intent(in)::Ice +!real,dimension(:,:),intent(out)::runoff_ice,calving_ice +type(land_ice_boundary_type),intent(inout)::Land_Ice_Boundary + +integer::ier +real,dimension(n_xgrid_runoff)::ex_runoff,ex_calving,ex_runoff_hflx,ex_calving_hflx +real,dimension(size(Land_Ice_Boundary%runoff,1),size(Land_Ice_Boundary%runoff,2),1)::ice_buf + +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(fluxlandiceclock) + +!ccc=conservation_check(Land%discharge,'LND',xmap_runoff) +!if(fms_mpp_pe()==fms_mpp_root_pe())print*,'RUNOFF',ccc + +if(do_runoff)then +callfms_xgrid_put_to_xgrid(land%discharge,'LND',ex_runoff,xmap_runoff) +callfms_xgrid_put_to_xgrid(land%discharge_snow,'LND',ex_calving,xmap_runoff) +callfms_xgrid_put_to_xgrid(land%discharge_heat,'LND',ex_runoff_hflx,xmap_runoff) +callfms_xgrid_put_to_xgrid(land%discharge_snow_heat,'LND',ex_calving_hflx,xmap_runoff) +callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_runoff,xmap_runoff) +land_ice_boundary%runoff=ice_buf(:,:,1); +callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_calving,xmap_runoff) +land_ice_boundary%calving=ice_buf(:,:,1); +callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_runoff_hflx,xmap_runoff) +land_ice_boundary%runoff_hflx=ice_buf(:,:,1); +callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_calving_hflx,xmap_runoff) +land_ice_boundary%calving_hflx=ice_buf(:,:,1); +!Balaji +callfms_data_override('ICE','runoff',land_ice_boundary%runoff,time) +callfms_data_override('ICE','calving',land_ice_boundary%calving,time) +callfms_data_override('ICE','runoff_hflx',land_ice_boundary%runoff_hflx,time) +callfms_data_override('ICE','calving_hflx',land_ice_boundary%calving_hflx,time) + +!computestockincrement +ice_buf(:,:,1)=land_ice_boundary%runoff+land_ice_boundary%calving +callfms_xgrid_stock_move(from=fms_stock_constants_lnd_stock(istock_water),& +&to=fms_stock_constants_ice_stock(istock_water),& +&grid_index=x2_grid_ice,& +&stock_data3d=ice_buf,& +&xmap=xmap_runoff,& +&delta_t=dt_cpl,& +&from_side=istock_side,to_side=istock_side,& +&radius=radius,ier=ier,verbose='stockmoveRUNOFF+CALVING(Lnd->Ice)') +else +land_ice_boundary%runoff=0.0 +land_ice_boundary%calving=0.0 +land_ice_boundary%runoff_hflx=0.0 +land_ice_boundary%calving_hflx=0.0 +endif + +callfms_mpp_clock_end(fluxlandiceclock) +callfms_mpp_clock_end(cplclock) + +endsubroutineflux_land_to_ice + + +!####################################################################### + +endmoduleland_ice_flux_exchange_mod + + + + diff --git a/docs/xml/namespace_f_m_s.xml b/docs/xml/namespace_f_m_s.xml new file mode 100644 index 00000000..fcff1314 --- /dev/null +++ b/docs/xml/namespace_f_m_s.xml @@ -0,0 +1,11 @@ + + + + FMS + + + + + + + diff --git a/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml b/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml new file mode 100644 index 00000000..82248dc5 --- /dev/null +++ b/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml @@ -0,0 +1,3370 @@ + + + + atm_land_ice_flux_exchange_mod + atm_land_ice_flux_exchange_mod::put_logical_to_real + atm_land_ice_flux_exchange_mod::tracer_exch_ind_type + atm_land_ice_flux_exchange_mod::tracer_ind_type + + + character(len=128) + character(len=128) atm_land_ice_flux_exchange_mod::version + + version + = '$Id$' + +coupler version number + + + + + + + + character(len=128) + character(len=128) atm_land_ice_flux_exchange_mod::tag + + tag + = '$Name$' + +coupler tag + + + + + + + + type(fmsxgridxmap_type), save + type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc + + xmap_sfc + +holds exchange grid between different components + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc + + n_xgrid_sfc + =0 + +total number of exchange grid cells + + + + + + + + character(len=4), parameter + character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name + + mod_name + = 'flux' + +module name used to register diag_manager + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_b_star + + id_b_star + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_del_h + + id_del_h + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_del_m + + id_del_m + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_del_q + + id_del_q + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_drag_heat + + id_drag_heat + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_drag_moist + + id_drag_moist + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_drag_mom + + id_drag_mom + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_gust + + id_gust + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_husslut_land + + id_husslut_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_ice_mask + + id_ice_mask + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_land_mask + + id_land_mask + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_p_atm + + id_p_atm + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_q_flux + + id_q_flux + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_q_flux_land + + id_q_flux_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_q_ref + + id_q_ref + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_q_ref_land + + id_q_ref_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_q_star + + id_q_star + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_r_flux + + id_r_flux + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rh_ref + + id_rh_ref + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip + + id_rh_ref_cmip + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rh_ref_land + + id_rh_ref_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rough_heat + + id_rough_heat + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rough_moist + + id_rough_moist + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rough_mom + + id_rough_mom + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rough_scale + + id_rough_scale + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_slp + + id_slp + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_t_atm + + id_t_atm + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_t_ca + + id_t_ca + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_t_flux + + id_t_flux + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_t_ocean + + id_t_ocean + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_t_ref + + id_t_ref + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_t_ref_land + + id_t_ref_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_t_surf + + id_t_surf + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_taslut_land + + id_taslut_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_thv_atm + + id_thv_atm + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_thv_surf + + id_thv_surf + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_u_atm + + id_u_atm + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_u_flux + + id_u_flux + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_u_ref + + id_u_ref + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_u_ref_land + + id_u_ref_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_u_star + + id_u_star + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_v_atm + + id_v_atm + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_v_flux + + id_v_flux + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_v_ref + + id_v_ref + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_v_ref_land + + id_v_ref_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_wind + + id_wind + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_wind_ref + + id_wind_ref + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_z_atm + + id_z_atm + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr + + id_co2_atm_dvmr + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr + + id_co2_surf_dvmr + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_co2_bot + + id_co2_bot + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm + + id_co2_flux_pcair_atm + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm + + id_o2_flux_pcair_atm + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm + + id_tr_atm + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf + + id_tr_surf + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux + + id_tr_flux + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux + + id_tr_mol_flux + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref + + id_tr_ref + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land + + id_tr_ref_land + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0 + + id_tr_mol_flux0 + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land + + id_tr_flux_land + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land + + id_tr_mol_flux_land + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm + + id_tr_con_atm + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land + + id_tr_con_atm_land + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref + + id_tr_con_ref + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land + + id_tr_con_ref_land + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_evspsbl + + id_evspsbl + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_height10m + + id_height10m + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_height2m + + id_height2m + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_hfls + + id_hfls + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_hfss + + id_hfss + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_hurs + + id_hurs + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_huss + + id_huss + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_psl + + id_psl + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rhs + + id_rhs + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_sfcwind + + id_sfcwind + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_sftlf + + id_sftlf + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_sic + + id_sic + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_tas + + id_tas + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_tauu + + id_tauu + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_tauv + + id_tauv + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_tos + + id_tos + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_ts + + id_ts + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_tslsi + + id_tslsi + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_uas + + id_uas + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_vas + + id_vas + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_evspsbl_g + + id_evspsbl_g + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_hfls_g + + id_hfls_g + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_hfss_g + + id_hfss_g + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_rls_g + + id_rls_g + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_tas_g + + id_tas_g + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_tasl_g + + id_tasl_g + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::id_ts_g + + id_ts_g + + + + + + + + + + logical + logical atm_land_ice_flux_exchange_mod::first_static + + first_static + = .true. + +If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. + + + + + + + + logical + logical atm_land_ice_flux_exchange_mod::do_init + + do_init + = .true. + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::remap_method + + remap_method + = 1 + + + + + + + + + + real, parameter + real, parameter atm_land_ice_flux_exchange_mod::d622 + + d622 + = rdgas/rvgas + + + + + + + + + + real, parameter + real, parameter atm_land_ice_flux_exchange_mod::d378 + + d378 + = 1.0-d622 + + + + + + + + + + real, parameter + real, parameter atm_land_ice_flux_exchange_mod::d608 + + d608 + = d378/d622 + + + + + + + + + + real, parameter + real, parameter atm_land_ice_flux_exchange_mod::tfreeze + + tfreeze + = 273.15 + +freezing point of water at 1 atm [K] + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip + + frac_precip + + + + + + + + + + real + real atm_land_ice_flux_exchange_mod::z_ref_heat + + z_ref_heat + = 2. + + + + + + + + + + real + real atm_land_ice_flux_exchange_mod::z_ref_mom + + z_ref_mom + = 10. + + + + + + + + + + logical + logical atm_land_ice_flux_exchange_mod::do_area_weighted_flux + + do_area_weighted_flux + = .FALSE. + + + + + + + + + + logical + logical atm_land_ice_flux_exchange_mod::do_forecast + + do_forecast + = .false. + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::nblocks + + nblocks + = 1 + + + + + + + + + + logical + logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec + + partition_fprec_from_lprec + = .FALSE. + + + + + + + + + + logical + logical atm_land_ice_flux_exchange_mod::scale_precip_2d + + scale_precip_2d + = .false. + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::my_nblocks + + my_nblocks + = 1 + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start + + block_start + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end + + block_end + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix + + ex_albedo_fix + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix + + ex_albedo_nir_dif_fix + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix + + ex_albedo_nir_dir_fix + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix + + ex_albedo_vis_dif_fix + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix + + ex_albedo_vis_dir_fix + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star + + ex_b_star + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m + + ex_cd_m + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t + + ex_cd_t + +drag coefficient for heat on exchange grid + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm + + ex_con_atm + +deposition velocity at lowest atmospheric level on exchange grid + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf + + ex_dedt_surf + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm + + ex_dhdt_atm + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf + + ex_dhdt_surf + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf + + ex_dqsatdt_surf + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf + + ex_drdt_surf + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm + + ex_dtaudu_atm + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm + + ex_dtaudv_atm + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n + + ex_e_q_n + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw + + ex_flux_lw + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t + + ex_flux_t + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u + + ex_flux_u + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v + + ex_flux_v + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo + + ex_old_albedo + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf + + ex_p_surf + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater + + ex_seawater + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp + + ex_slp + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca + + ex_t_ca + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf + + ex_t_surf + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz + + ex_t_surf_miz + +miz NEED HELP + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star + + ex_u_star + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind + + ex_wind + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm + + ex_z_atm + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm + + ex_dfdtr_atm + +d(tracer flux)/d(atm tracer) + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf + + ex_dfdtr_surf + +d(tracer flux)/d(surf tracer) + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n + + ex_e_tr_n + +coefficient in implicit scheme + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n + + ex_f_tr_delt_n + +coefficient in implicit scheme + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr + + ex_flux_tr + +tracer fluxes + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref + + ex_tr_con_ref + +deposition velocity at reference height + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm + + ex_tr_con_atm + +deposition velocity at atmospheric height + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf + + ex_tr_surf + +near-surface tracer fields + + + + + + + + logical, dimension(:), allocatable + logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail + + ex_avail + +true where data on exchange grid are available + + + + + + + + logical, dimension(:), allocatable + logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land + + ex_land + +true if exchange grid cell is over land + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n + + ex_e_t_n + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n + + ex_f_t_delt_n + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_atm_tr + + n_atm_tr + +number of prognostic tracers in the atmos model + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot + + n_atm_tr_tot + +number of prognostic tracers in the atmos model + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_lnd_tr + + n_lnd_tr + +number of prognostic tracers in the land model + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot + + n_lnd_tr_tot + +number of prognostic tracers in the land model + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_exch_tr + + n_exch_tr + +number of tracers exchanged between models + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd + + n_gex_atm2lnd + +number of gex fields exchanged between land and atmosphere + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm + + n_gex_lnd2atm + +number of gex fields exchanged between atmosphere and land + + + + + + + + type(tracer_ind_type), dimension(:), allocatable + type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table + + tr_table + +table of tracers passed through flux exchange + + + + + + + + type(tracer_exch_ind_type), dimension(:), allocatable + type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map + + tr_table_map + +map atm tracers to exchange, ice and land variables + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::isphum + + isphum + = NO_TRACER + +tracer index for specific humidity + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::ico2 + + ico2 + = NO_TRACER + +tracer index for co2 + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::inh3 + + inh3 + = NO_TRACER + +tracer index for nh3 + + + + + + + + type(fmscoupler1dbc_type), pointer + type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm + + ex_gas_fields_atm + =>NULL() + +gas fields in atm place holder for various atmospheric fields. + + + + + + + + type(fmscoupler1dbc_type), pointer + type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice + + ex_gas_fields_ice + =>NULL() + +gas fields on ice + + + + + + + + type(fmscoupler1dbc_type), pointer + type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes + + ex_gas_fluxes + =>NULL() + +gas flux place holder of intermediate calculations, such as piston velocities etc. + + + + + + + + integer, parameter + integer, parameter atm_land_ice_flux_exchange_mod::regrid + + regrid + =1 + +grids are physically different, pass via exchange grid + + + + + + + + integer, parameter + integer, parameter atm_land_ice_flux_exchange_mod::redist + + redist + =2 + +same physical grid, different decomposition, must move data around + + + + + + + + integer, parameter + integer, parameter atm_land_ice_flux_exchange_mod::redirect + + redirect + =3 + +same physical grid, same domain decomposition, can directly copy data + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::cplclock + + cplclock + + + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::sfcclock + + sfcclock + +FMS clock id to profile sfc_boundary_layer. + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::fluxatmdnclock + + fluxatmdnclock + +FMS clock id to profile flux down from atmosphere. + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::regenclock + + regenclock + +FMS clock to profile exchange grid generation. + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::fluxatmupclock + + fluxatmupclock + +FMS clock to profile flux up to atmosphere. + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::x1_grid_atm + + x1_grid_atm + +=1, exchange grid index for xgrid_stock_move + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::x1_grid_ice + + x1_grid_ice + +=2, exchange grid index for xgrid_stock_move + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::x1_grid_lnd + + x1_grid_lnd + +=3 exchange grid index for xgrid_stock_move + + + + + + + + real + real atm_land_ice_flux_exchange_mod::dt_atm + + dt_atm + + + + + + + + + + real + real atm_land_ice_flux_exchange_mod::atmospheric + + atmospheric + + + + + + + + + + real + real atm_land_ice_flux_exchange_mod::timestep + + timestep + + + + + + + + + + real + real atm_land_ice_flux_exchange_mod::s + + s + +coupled timestep [s] + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::ni_atm + + ni_atm + +number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::nj_atm + + nj_atm + +number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::nxc_ice + + nxc_ice + =0 + +number of x points in ice compute domain + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::nyc_ice + + nyc_ice + =0 + +number of y points in ice compute domain + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::nk_ice + + nk_ice + =0 + +number of vertical levels in ice + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::nxc_lnd + + nxc_lnd + =0 + +number of x points in land compute domain + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::nyc_lnd + + nyc_lnd + =0 + +number of y points in land compute domain + + + + + + + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init + (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in) + atm_land_ice_flux_exchange_init + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + atmos_ice_boundary + atmos_ice_boundary + + + land_ice_atmos_boundary + land_ice_atmos_boundary + + + Dt_atm_in + Dt_atm_in + + + Dt_cpl_in + Dt_cpl_in + + + z_ref_heat_in + z_ref_heat_in + + + z_ref_mom_in + z_ref_mom_in + + + do_area_weighted_flux_in + do_area_weighted_flux_in + + + do_forecast_in + do_forecast_in + + + partition_fprec_from_lprec_in + partition_fprec_from_lprec_in + + + scale_precip_2d_in + scale_precip_2d_in + + + nblocks_in + nblocks_in + + + cplClock_in + cplClock_in + + + ex_gas_fields_atm_in + ex_gas_fields_atm_in + + + ex_gas_fields_ice_in + ex_gas_fields_ice_in + + + ex_gas_fluxes_in + ex_gas_fluxes_in + + +module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module + + + +time + + +model's current time + + + +atm + + +derived data type to specify atmosphere boundary data + + + +land + + +derived data type to specify land boundary data + + + +ice + + +derived data type to specify ice boundary data + + + +atmos_ice_boundary + + +derived type to specify properties and fluxes passed from atmosphere to ice + + + +land_ice_atmos_boundary + + +derived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice + + + +dt_atm_in + + +atmosphere time step in seconds + + + +dt_cpl_in + + +coupled time step in seconds + + + +z_ref_heat_in + + +reference height for temperature and relative humidity diagnostics [m] + + + +z_ref_mom_in + + +reference height for momentum diagnostics [m] + + + +scale_precip_2d_in + + +if true, rescale Atmlprec by a field from diag_table + + + +do_area_weighted_flux_in + + +if true, divide flux by area + + + +do_forecast_in + + +if true, put atmsurf_diffsst_miz on the exchange grid if AM3_physics is used + + + +partition_fprec_from_lprec_in + + +if true, will convert liquid precip to snow when t_ref < tfreeze + + + +nblocks_in + + +divide the surface exchange grid to nblocks for OpenMP parallelizatio + + + +cplclock_in + + +clock to measure processes, mainly used for development and debugging + + + +ex_gas_fields_atm_in + + +gas fields in Atm. Contains atmospheric surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters + + + +ex_gas_fields_ice_in + + +gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters + + + +ex_gas_fluxes_in + + +gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between the atmosphere and ocean. Values defined from the field table or computed during model run + + + + +INITIALIZE MODULE LEVEL VARIABLESGET FILE UNIT FOR STDOUT AND STDLOGFROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LANDASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERSGET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND HELP: WHAT IS GENERIC EXCHANGE?SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFERGET THE TRACER INDEX OF SPECIFIC HUMIDITYINITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUESET UP THE EXCHANGE GRIDINITIALIZE SURFACE_FLUXINITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGERGET THE SIZE OF THE ATM GRIDALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZEROALLOCATE FIELDS FOR EXTRA FLUXESALLOCATE LAND_ICE_ATMOS_BOUNDARYALLOCATE FIELDS FOR EXTRA TRACERSGET DIMENSION OF THE DECOMPOSED ICE DOMAINGET DIMENSION OF THE DECOMPOSED LAND DOMAININITIALIZE CLOCKS FOR PROFILING + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer + (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary) + sfc_boundary_layer + + dt + dt + + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Land_Ice_Atmos_Boundary + Land_Ice_Atmos_Boundary + + +Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. + + + t_surf_atm: surface temperature used for radiation [K] + albedo_atm: surface albedo used for radiation [dimensionless] + rough_mom_atm: surface roughness for momentum [m] + land_frac_atm: fractional area of land beneath an atmospheric grid box + dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)] + flux_u_atm: zonal wind stress [Pa] + flux_v_atm: meridional wind stress [Pa] + u_star_atm: friction velocity [m/s] + b_star_atm: buoyancy scale [m2/s] + Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data between one component grid to another component grid. Computed fluxes can also be overwritten with calls to data_override. Note, data_override will not override data if the tracers u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface. + + +dt + + +timestep + + + +time + + +current model time + + + +atm + + +derived type to specify atmosphere boundary data + + + +land + + +derived type to specify land boundary data + + + +ice + + +derived data type to specify ice boundary data + + + +land_ice_atmos_boundary + + +derived data type to specify properties and fluxes passed between land and ice to atmos + + + + +Initialize clocks for profilingALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOSALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARYALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHREALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDSSET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDSOVERRIDE ATM ATMT_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLECONVERT CO2 TRACER UNITS to WET_MMR UNITSOVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLEOVERRIDE ICET_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. OVERRIDE LANDT_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLEMAP ATM FIELDS ONTO THE EXCHANGE GRIDINITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYERMAP ICE FIELDS ONTO THE EXCHANGE GRIDGENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRIDINITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRIDMAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRIDCALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRIDCOMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRIDCALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRIDCOMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRIDCOMPUTE EXPLICIT OCEAN FLUXESOVERRIDE LAND AND ICE TRACER FLUXES DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLECOMPUTE T_SURF**4 + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos + (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary) + flux_down_from_atmos + + Time + Time + + + Atm + Atm + + + Atmos_boundary + Atmos_boundary + + + Land_boundary + Land_boundary + + + Ice_boundary + Ice_boundary + + +Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. + + + +time + + +Current model time + + + +atm + + +A derived data type holding atmosphere boundary data + + + +atmos_boundary + + +A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice + + + +land_boundary + + +A derived data type to specify properties and fluxes passed from atmosphere to land + + + +ice_boundary + + +A derived data type to specify properties and fluxes passed from atmosphere to ice + + + + +start clocks for profilinginitialize reusable flag. data_override will return ov=.true. if data was overwrittenupdate Atm fields with override values. Note, data_override will only overwrite data if the field is specified in the data_tablescale liquid precipitation by frac_precip if scale_precip_2d is true scale_precip_2d is set during module initialization call to atm_land_ice_flux_exchange_init frac_precip is set with data_overridepartition preciptation to liquid precipitation and frozen precipitation if partition_fprec_from_lprec = .true. partiion_fprec_from_lprec is set as part of module initialization call in atm_land_ice_flux_exchange Note, the partitioning only occurs on mpi ranks for atmosphereupdate more Atm fields with override values. Note, data_override will only overwriteMap atmosphere quantities onto the exchange grid in order to exchange quantities with other componentsupdate u and v stress on the exchange gridfix shortwave radiation flux of visible light on the exchange gridAdjust fluxes for implicit dependence (TOM HELP, this sounds awkward)map fluxes from the exchange grid to the land gridoverride land fluxes only if the field is specified in the data_tableMap ice fields from the exchange grid to the Ice gridoverride Ice fields only if the field is specified in the data tableCompute stock changes between componentssend data to diag_manager buffer where if the field is specified in the diag_table, data will be outputted at the end of the simulationend clock for profiling + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid + (Land, Ice) + generate_sfc_xgrid + + Land + Land + + + Ice + Ice + + +Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) + + + +land + + +A derived data type to specify land boundary data + + + +ice + + +A derived data type to specify ice boundary data + + + + +update fractional areas of ice and land on the exchange gridreset the number of exchange grid cells saved in the module + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos + (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary) + flux_up_to_atmos + + Time + Time + + + Land + Land + + + Ice + Ice + + + Land_Ice_Atmos_Boundary + Land_Ice_Atmos_Boundary + + + Land_boundary + Land_boundary + + + Ice_boundary + Ice_boundary + + +Corrects the fluxes for consistency with the new surface temperatures in land and ice models. + +Corrects the fluxes for consistency with the new surface temperatures in land and ice models. Final increments for temperature and specific humidity in the lowest atmospheric layer are computed and returned to the atmospheric model so that it can finalize the increments in the rest of the atmosphere.The following elements of the land_ice_atmos_boundary_type are computed: + dt_t = temperature change at the lowest + atmospheric level (deg k) + dt_q = specific humidity change at the lowest + atmospheric level (kg/kg) + + +time + + +current model time + + + +land + + +derived data type holding land boundary data + + + +ice + + +derived data type holding ice boundary data + + + +land_ice_atmos_boundary + + +A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice + + + +land_boundary + + +A derived data type to specify properties and fluxes passed from atmosphere to land + + + +ice_boundary + + +A derived data type to specify properties and fluxes passed from atmosphere to ice + + + + +override Ice and Land temperature fields. Note, data_override will only overwrite data if the field is specified in the data_tableCOMPUTE CHANGE IN SURFACE TEMPERATUREUPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATUREUPDATE TRACER TENDENCIES IN THE ATMOSPHEREMAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRIDSEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUNCOMPUTE STOCK EXCHANGE BETWEEN COMPONENTS + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc + () + flux_ex_arrays_dealloc + +Internal subroutine to deallocate exchange fields. + + + + + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean + (Time, Atm, Ice_boundary, Ice) + flux_atmos_to_ocean + + Time + Time + + + Atm + Atm + + + Ice_boundary + Ice_boundary + + + Ice + Ice + + +Computes deposition gas fluxes between atmosphere and ocean. + + + +time + + +Current time + + + +atm + + +A derived data type to specify atmosphere boundary data + + + +ice_boundary + + +A derived data type to specify properties and fluxes passed from atmosphere to ice + + + + +MAP ATMOSPHERE FIELDS TO THE EXCHANGE MAP FOR FLUX EXCHANGE WITH OCEANCALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRIDMAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRIDUPDATE AIR_SEA_DEPOSITION FLUXES + + + + subroutine + subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg + (mask, id, ex_mask, xmap) + put_logical_to_real_sg + + mask + mask + + + id + id + + + ex_mask + ex_mask + + + xmap + xmap + + +Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND + + + +mask + + +land/ice mask to map to exchange grid + + + +ex_mask + + +converted mask on exchange grid + + + + + + + + + subroutine + subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug + (mask, id, ex_mask, xmap) + put_logical_to_real_ug + + mask + mask + + + id + id + + + ex_mask + ex_mask + + + xmap + xmap + + +Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND + + + +mask + + +mask on component grid + + + +ex_mask + + +converted mask on exchange grid + + + + + + + + + subroutine + subroutine atm_land_ice_flux_exchange_mod::diag_field_init + (Time, atmos_axes, land_axes, land_pe) + diag_field_init + + Time + Time + + + atmos_axes + atmos_axes + + + land_axes + land_axes + + + land_pe + land_pe + + +Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run. + + + +Convert diagnostic labels from integers to strings + + + + subroutine + subroutine atm_land_ice_flux_exchange_mod::divide_by_area + (data, area) + divide_by_area + + data + data + + + area + area + + +Divide data by area where grid cell area is not zero. + + + +check the size of data and area are the samedivide data in each grid cell by grid cell area + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic + (Time) + send_ice_mask_sic + + Time + Time + + +compute and send fractional amount of sea ice to diag_manager buffer + + + +time + + +Current time + + + + +initialize ice_frac + + + remap ice_mask (fractional amount of sea ice) to the atm gridsend ice_mask to diag_manager buffer + compute sea ice area fraction for cells on atm grid that are over ocean normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean + + + + subroutine, public + subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate + (Atm, res) + atm_stock_integrate + + Atm + Atm + + + res + res + + +integrate the total precipitation in atmosphere and multipy by dt + + + +atm + + +derived type to holding atmosphere boundary data + + + +res + + +integrated value + + + + + + + + + + + + + + + diff --git a/docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml b/docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml new file mode 100644 index 00000000..f2825098 --- /dev/null +++ b/docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml @@ -0,0 +1,87 @@ + + + + atmos_ocean_dep_fluxes_calc_mod + + + character(len= *), parameter + character(len=*), parameter atmos_ocean_dep_fluxes_calc_mod::mod_name + + mod_name + = "aodfc" + + + + + + + + + + + + subroutine + subroutine atmos_ocean_dep_fluxes_calc_mod::atmos_ocean_dep_fluxes_calc + (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater) + atmos_ocean_dep_fluxes_calc + + gas_fields_atm + gas_fields_atm + + + gas_fields_ice + gas_fields_ice + + + gas_fluxes + gas_fluxes + + + seawater + seawater + + +atmos_ocean_dep_fluxes_calc + + + +gas_fields_atm + + +Structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. + + + +gas_fields_ice + + +Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. + + + +gas_fluxes + + +Structure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes. + + + +seawater + + +1 for the open water category, 0 if ice or land. + + + + + + + + + + + + + + + diff --git a/docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml b/docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml new file mode 100644 index 00000000..6e17c368 --- /dev/null +++ b/docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml @@ -0,0 +1,533 @@ + + + + atmos_ocean_fluxes_calc_mod + + + character(len= *), parameter + character(len=*), parameter atmos_ocean_fluxes_calc_mod::mod_name + + mod_name + = "cdwfe" + + + + + + + + + + real, parameter + real, parameter atmos_ocean_fluxes_calc_mod::epsln + + epsln + =1.0e-30 + + + + + + + + + + + + subroutine, public + subroutine, public atmos_ocean_fluxes_calc_mod::atmos_ocean_fluxes_calc + (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater, tsurf, ustar, cd_m) + atmos_ocean_fluxes_calc + + gas_fields_atm + gas_fields_atm + + + gas_fields_ice + gas_fields_ice + + + gas_fluxes + gas_fluxes + + + seawater + seawater + + + tsurf + tsurf + + + ustar + ustar + + + cd_m + cd_m + + +Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive. + + + +gas_fields_atm + + +Structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. + + + +gas_fields_ice + + +Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. + + + +gas_fluxes + + +Structure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes. + + + +seawater + + +1 for the open water category, 0 if ice or land. + + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::calc_kw + (tk, p, u10, h, vb, mw, sc_w, ustar, cd_m) + calc_kw + + tk + tk + + + p + p + + + u10 + u10 + + + h + h + + + vb + vb + + + mw + mw + + + sc_w + sc_w + + + ustar + ustar + + + cd_m + cd_m + + +Calculate $k_w$. + +Taken from Johnson, Ocean Science, 2010. (http://doi.org/10.5194/os-6-913-2010)Uses equations defined in Liss[1974], \[ F = K_g(c_g - H C_l) = K_l(c_g/H - C_l) \] where $c_g$ and $C_l$ are the bulk gas and liquid concentrations, $H$ is the Henry's law constant ( $H = c_{sg}/C_{sl}$, where $c_{sg}$ is the equilibrium concentration in gas phase ( $g/cm^3$ of air) and $C_{sl}$ is the equilibrium concentration of unionised dissolved gas in liquid phase ( $g/cm^3$ of water)), \[ 1/K_g = 1/k_g + H/k_l \] and \[ 1/K_l = 1/k_l + 1/{Hk_g} \] where $k_g$ and $k_l$ are the exchange constants for the gas and liquid phases, respectively. + +tk + + +temperature at surface in kelvin + + + +p + + +pressure at surface in pa + + + +u10 + + +wind speed at 10m above the surface in m/s + + + +h + + +Henry's law constant ( $H=c_sg/C_sl$) (unitless) + + + +vb + + +Molar volume + + + +mw + + +molecular weight (g/mol) + + + +ustar + + +Friction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$. + + + +cd_m + + +Drag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$ + + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::calc_ka + (t, p, mw, vb, u10, ustar, cd_m) + calc_ka + + t + t + + + p + p + + + mw + mw + + + vb + vb + + + u10 + u10 + + + ustar + ustar + + + cd_m + cd_m + + +Calculate $k_a$. + +See calc_kw + +t + + +temperature at surface in C + + + +p + + +pressure at surface in pa + + + +mw + + +molecular weight (g/mol) + + + +vb + + +molar volume + + + +u10 + + +wind speed at 10m above the surface in m/s + + + +ustar + + +Friction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$. + + + +cd_m + + +Drag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$ + + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::calc_kl + (t, v, sc) + calc_kl + + t + t + + + v + v + + + sc + sc + + +Calculate $k_l$. + +See calc_kw, and Nightingale, Global Biogeochemical Cycles, 2000 (https://doi.org/10.1029/1999GB900091) + +t + + +temperature at surface in C + + + +v + + +wind speed at surface in m/s + + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::schmidt_g + (t, p, mw, vb) + schmidt_g + + t + t + + + p + p + + + mw + mw + + + vb + vb + + +Schmidt number of the gas in air. + + + +t + + +temperature at surface in C + + + +p + + +pressure at surface in pa + + + +mw + + +molecular weight (g/mol) + + + +vb + + +molar volume + + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::d_air + (t, p, mw, vb) + d_air + + t + t + + + p + p + + + mw + mw + + + vb + vb + + +From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007) + + + +t + + +temperature in c + + + +p + + +pressure in pa + + + +mw + + +molecular weight (g/mol) + + + +vb + + +diffusion coefficient ( $cm3/mol$) + + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::p_air + (t) + p_air + + t + t + + +kinematic viscosity in air + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::v_air + (t) + v_air + + t + t + + +Kinematic viscosity in air ( $m^2/s$. + + + +t + + +temperature in C + + + + + + + + + real function + real function atmos_ocean_fluxes_calc_mod::n_air + (t) + n_air + + t + t + + +dynamic viscosity in air + + + +t + + +temperature in C + + + + + + + + + + + + + + + diff --git a/docs/xml/namespaceflux__exchange__mod.xml b/docs/xml/namespaceflux__exchange__mod.xml new file mode 100644 index 00000000..8fd4b6c6 --- /dev/null +++ b/docs/xml/namespaceflux__exchange__mod.xml @@ -0,0 +1,2438 @@ + + + + flux_exchange_mod + + + character(len=128) + character(len=128) flux_exchange_mod::version + + version + = '$Id$' + + + + + + + + + + character(len=128) + character(len=128) flux_exchange_mod::tag + + tag + = '$Name$' + + + + + + + + + + logical + logical flux_exchange_mod::do_init + + do_init + = .true. + + + + + + + + + + real, parameter + real, parameter flux_exchange_mod::bound_tol + + bound_tol + = 1e-7 + + + + + + + + + + real, parameter + real parameter flux_exchange_mod::d622 + + d622 + = rdgas/rvgas + + + + + + + + + + real, parameter + real parameter flux_exchange_mod::d378 + + d378 + = 1.0-d622 + + + + + + + + + + real + real flux_exchange_mod::z_ref_heat + + z_ref_heat + = 2. + +Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) + + + + + + + + real + real flux_exchange_mod::z_ref_mom + + z_ref_mom + = 10. + +Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) + + + + + + + + logical + logical flux_exchange_mod::do_area_weighted_flux + + do_area_weighted_flux + = .FALSE. + + + + + + + + + + logical + logical flux_exchange_mod::debug_stocks + + debug_stocks + = .FALSE. + + + + + + + + + + logical + logical flux_exchange_mod::divert_stocks_report + + divert_stocks_report + = .FALSE. + + + + + + + + + + logical + logical flux_exchange_mod::do_runoff + + do_runoff + = .TRUE. + +Turns on/off the land runoff interpolation to the ocean. + + + + + + + + logical + logical flux_exchange_mod::do_forecast + + do_forecast + = .false. + + + + + + + + + + integer + integer flux_exchange_mod::nblocks + + nblocks + = 1 + + + + + + + + + + logical + logical flux_exchange_mod::partition_fprec_from_lprec + + partition_fprec_from_lprec + = .FALSE. + +option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter + + + + + + + + real, parameter + real, parameter flux_exchange_mod::tfreeze + + tfreeze + = 273.15 + + + + + + + + + + logical + logical flux_exchange_mod::scale_precip_2d + + scale_precip_2d + = .false. + + + + + + + + + + logical + logical flux_exchange_mod::gas_fluxes_initialized + + gas_fluxes_initialized + = .false. + + + + + + + + + + type(fmscoupler1dbc_type), target + type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_atm + + ex_gas_fields_atm + +Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. + + + + + + + + type(fmscoupler1dbc_type), target + type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_ice + + ex_gas_fields_ice + +Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. + + + + + + + + type(fmscoupler1dbc_type), target + type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fluxes + + ex_gas_fluxes + +A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. + + + + + + + + integer + integer flux_exchange_mod::ni_atm + + ni_atm + + + + + + + + + + integer + integer flux_exchange_mod::nj_atm + + nj_atm + +to do atmos diagnostic from flux_ocean_to_ice + + + + + + + + real, dimension(3) + real, dimension(3) flux_exchange_mod::ccc + + ccc + +for conservation checks + + + + + + + + integer + integer flux_exchange_mod::cplclock + + cplclock + + + + + + + + + + real + real flux_exchange_mod::dt_atm + + dt_atm + + + + + + + + + + real + real flux_exchange_mod::dt_cpl + + dt_cpl + + + + + + + + + + real + real flux_exchange_mod::atm_precip_new + + atm_precip_new + + + + + + + + + + character(len=14), parameter + character(len=14), parameter flux_exchange_mod::mod_name + + mod_name + = 'flux' + + + + + + + + + + integer + integer flux_exchange_mod::id_drag_moist + + id_drag_moist + + + + + + + + + + integer + integer flux_exchange_mod::id_drag_heat + + id_drag_heat + + + + + + + + + + integer + integer flux_exchange_mod::id_drag_mom + + id_drag_mom + + + + + + + + + + integer + integer flux_exchange_mod::id_rough_moist + + id_rough_moist + + + + + + + + + + integer + integer flux_exchange_mod::id_rough_heat + + id_rough_heat + + + + + + + + + + integer + integer flux_exchange_mod::id_rough_mom + + id_rough_mom + + + + + + + + + + integer + integer flux_exchange_mod::id_u_star + + id_u_star + + + + + + + + + + integer + integer flux_exchange_mod::id_b_star + + id_b_star + + + + + + + + + + integer + integer flux_exchange_mod::id_q_star + + id_q_star + + + + + + + + + + integer + integer flux_exchange_mod::id_u_flux + + id_u_flux + + + + + + + + + + integer + integer flux_exchange_mod::id_v_flux + + id_v_flux + + + + + + + + + + integer + integer flux_exchange_mod::id_t_surf + + id_t_surf + + + + + + + + + + integer + integer flux_exchange_mod::id_t_flux + + id_t_flux + + + + + + + + + + integer + integer flux_exchange_mod::id_q_flux + + id_q_flux + + + + + + + + + + integer + integer flux_exchange_mod::id_r_flux + + id_r_flux + + + + + + + + + + integer + integer flux_exchange_mod::id_t_atm + + id_t_atm + + + + + + + + + + integer + integer flux_exchange_mod::id_u_atm + + id_u_atm + + + + + + + + + + integer + integer flux_exchange_mod::id_v_atm + + id_v_atm + + + + + + + + + + integer + integer flux_exchange_mod::id_wind + + id_wind + + + + + + + + + + integer + integer flux_exchange_mod::id_thv_atm + + id_thv_atm + + + + + + + + + + integer + integer flux_exchange_mod::id_thv_surf + + id_thv_surf + + + + + + + + + + integer + integer flux_exchange_mod::id_t_ref + + id_t_ref + + + + + + + + + + integer + integer flux_exchange_mod::id_rh_ref + + id_rh_ref + + + + + + + + + + integer + integer flux_exchange_mod::id_u_ref + + id_u_ref + + + + + + + + + + integer + integer flux_exchange_mod::id_v_ref + + id_v_ref + + + + + + + + + + integer + integer flux_exchange_mod::id_q_ref + + id_q_ref + + + + + + + + + + integer + integer flux_exchange_mod::id_del_h + + id_del_h + + + + + + + + + + integer + integer flux_exchange_mod::id_del_m + + id_del_m + + + + + + + + + + integer + integer flux_exchange_mod::id_del_q + + id_del_q + + + + + + + + + + integer + integer flux_exchange_mod::id_albedo + + id_albedo + + + + + + + + + + integer + integer flux_exchange_mod::id_gust + + id_gust + + + + + + + + + + integer + integer flux_exchange_mod::id_t_ca + + id_t_ca + + + + + + + + + + integer + integer flux_exchange_mod::id_q_surf + + id_q_surf + + + + + + + + + + integer + integer flux_exchange_mod::id_q_atm + + id_q_atm + + + + + + + + + + integer + integer flux_exchange_mod::id_z_atm + + id_z_atm + + + + + + + + + + integer + integer flux_exchange_mod::id_p_atm + + id_p_atm + + + + + + + + + + integer + integer flux_exchange_mod::id_land_mask + + id_land_mask + + + + + + + + + + integer + integer flux_exchange_mod::id_ice_mask + + id_ice_mask + + + + + + + + + + integer + integer flux_exchange_mod::id_rough_scale + + id_rough_scale + + + + + + + + + + integer + integer flux_exchange_mod::id_albedo_vis_dir + + id_albedo_vis_dir + + + + + + + + + + integer + integer flux_exchange_mod::id_albedo_nir_dir + + id_albedo_nir_dir + + + + + + + + + + integer + integer flux_exchange_mod::id_albedo_vis_dif + + id_albedo_vis_dif + + + + + + + + + + integer + integer flux_exchange_mod::id_albedo_nir_dif + + id_albedo_nir_dif + + + + + + + + + + integer + integer flux_exchange_mod::id_tas + + id_tas + + + + + + + + + + integer + integer flux_exchange_mod::id_uas + + id_uas + + + + + + + + + + integer + integer flux_exchange_mod::id_vas + + id_vas + + + + + + + + + + integer + integer flux_exchange_mod::id_ts + + id_ts + + + + + + + + + + integer + integer flux_exchange_mod::id_psl + + id_psl + + + + + + + + + + integer + integer flux_exchange_mod::id_sfcwind + + id_sfcwind + + + + + + + + + + integer + integer flux_exchange_mod::id_tauu + + id_tauu + + + + + + + + + + integer + integer flux_exchange_mod::id_tauv + + id_tauv + + + + + + + + + + integer + integer flux_exchange_mod::id_hurs + + id_hurs + + + + + + + + + + integer + integer flux_exchange_mod::id_huss + + id_huss + + + + + + + + + + integer + integer flux_exchange_mod::id_evspsbl + + id_evspsbl + + + + + + + + + + integer + integer flux_exchange_mod::id_hfls + + id_hfls + + + + + + + + + + integer + integer flux_exchange_mod::id_hfss + + id_hfss + + + + + + + + + + integer + integer flux_exchange_mod::id_height2m + + id_height2m + + + + + + + + + + integer + integer flux_exchange_mod::id_height10m + + id_height10m + + + + + + + + + + logical + logical flux_exchange_mod::first_static + + first_static + = .true. + + + + + + + + + + logical + logical flux_exchange_mod::do_read_nml + + do_read_nml + = .true. + + + + + + + + + + integer + integer flux_exchange_mod::isphum + + isphum + + + + + + + + + + integer + integer flux_exchange_mod::n_atm_tr_tot + + n_atm_tr_tot + + + + + + + + + + integer + integer flux_exchange_mod::n_atm_tr + + n_atm_tr + + + + + + + + + + logical + logical flux_exchange_mod::use_existing_grid_spec + + use_existing_grid_spec + = .false. + + + + + + + + + + logical + logical flux_exchange_mod::all_ocean + + all_ocean + = .true. + + + + + + + + + + logical + logical flux_exchange_mod::all_land + + all_land + = .false. + + + + + + + + + + integer + integer flux_exchange_mod::is + + is + + + + + + + + + + integer + integer flux_exchange_mod::ie + + ie + + + + + + + + + + integer + integer flux_exchange_mod::js + + js + + + + + + + + + + integer + integer flux_exchange_mod::je + + je + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::t_surf + + t_surf + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::t_ca + + t_ca + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::q_surf + + q_surf + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::p_surf + + p_surf + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::e_t_n + + e_t_n + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::f_t_delt_n + + f_t_delt_n + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::e_q_n + + e_q_n + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::f_q_delt_n + + f_q_delt_n + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::dhdt_surf + + dhdt_surf + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::dedt_surf + + dedt_surf + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::dedq_surf + + dedq_surf + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::drdt_surf + + drdt_surf + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::dhdt_atm + + dhdt_atm + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::dedq_atm + + dedq_atm + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::flux_t + + flux_t + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::flux_q + + flux_q + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::flux_lw + + flux_lw + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::flux_u + + flux_u + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::flux_v + + flux_v + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::drag_q + + drag_q + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::dtaudu_atm + + dtaudu_atm + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::dtaudv_atm + + dtaudv_atm + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::cd_t + + cd_t + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::cd_m + + cd_m + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::b_star + + b_star + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::u_star + + u_star + + + + + + + + + + real, dimension(:,:), allocatable + real, dimension(:,:), allocatable flux_exchange_mod::wind + + wind + + + + + + + + + + logical + logical flux_exchange_mod::used + + used + + + + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::gas_exchange_init + (gas_fields_atm, gas_fields_ice, gas_fluxes) + gas_exchange_init + + gas_fields_atm + gas_fields_atm + + + gas_fields_ice + gas_fields_ice + + + gas_fluxes + gas_fluxes + + +Gas and tracer exchange initialization routine. + +This routine causes the field table to be read to determine which fields will be needed for the exchanges of gasses and tracers between the atmosphere and ocean. The metadata for these fields are stored in the ex_gas_fluxes and ex_gas_fields arrays, although the data is not allocated yet. This is intended to be called (optionally) prior to flux_exchange_init. + +gas_fields_atm + + +Pointer to a structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. + + + +gas_fields_ice + + +Pointer to a structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. + + + +gas_fluxes + + +Pointer to a s structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::flux_exchange_init + (Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld) + flux_exchange_init + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Ocean + Ocean + + + Ocean_state + Ocean_state + + + atmos_ice_boundary + atmos_ice_boundary + + + land_ice_atmos_boundary + land_ice_atmos_boundary + + + land_ice_boundary + land_ice_boundary + + + ice_ocean_boundary + ice_ocean_boundary + + + ocean_ice_boundary + ocean_ice_boundary + + + do_ocean + do_ocean + + + slow_ice_ocean_pelist + slow_ice_ocean_pelist + + + dt_atmos + dt_atmos + + + dt_cpld + dt_cpld + + +Initialization routine. + +Initializes the interpolation routines,diagnostics and boundary data + +FATAL +grid_spec.nc incompatible with atmosphere resolution + + +The atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere resolution from atmosphere model. + + + +FATAL +grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat) + + +The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model. + + + +FATAL +grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat) + + +The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model. + + + +FATAL +grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc) + + +The latitude from file grid_spec.nc is different from the latitude from atmosphere model. + + + + +time + + +The model's current time + + + +atm + + +A derived data type to specify atmosphere boundary data + + + +land + + +A derived data type to specify land boundary data + + + +ice + + +A derived data type to specify ice boundary data + + + +ocean + + +A derived data type to specify ocean boundary data + + + +atmos_ice_boundary + + +A derived data type to specify properties and fluxes passed from atmosphere to ice + + + +land_ice_atmos_boundary + + +A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice + + + +land_ice_boundary + + +A derived data type to specify properties and fluxes passed from land to ice + + + +ice_ocean_boundary + + +A derived data type to specify properties and fluxes passed from ice to ocean + + + +ocean_ice_boundary + + +A derived data type to specify properties and fluxes passed from ocean to ice + + + +dt_atmos + + +Atmosphere time step in seconds + + + +dt_cpld + + +Coupled time step in seconds + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::flux_check_stocks + (Time, Atm, Lnd, Ice, Ocn_state) + flux_check_stocks + + Time + Time + + + Atm + Atm + + + Lnd + Lnd + + + Ice + Ice + + + Ocn_state + Ocn_state + + +Check stock values. + +Will print out any difference between the integrated flux (in time and space) feeding into a component, and the stock stored in that component. + + + + + + subroutine, public + subroutine, public flux_exchange_mod::flux_init_stocks + (Time, Atm, Lnd, Ice, Ocn_state) + flux_init_stocks + + Time + Time + + + Atm + Atm + + + Lnd + Lnd + + + Ice + Ice + + + Ocn_state + Ocn_state + + +Initialize stock values. + +This will call the various component stock_pe routines to store the the initial stock values. + + + + + + subroutine + subroutine flux_exchange_mod::check_atm_grid + (Atm, grid_file) + check_atm_grid + + Atm + Atm + + + grid_file + grid_file + + + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::sfc_boundary_layer + (dt, Time, Atm, Land, Ice, Boundary) + sfc_boundary_layer + + dt + dt + + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Boundary + Boundary + + + + + + +dt + + +Time step + + + +time + + +Current time + + + +atm + + +A derived data type to specify atmospheric boundary data + + + +land + + +A derived data type to specify land boundary data + + + +ice + + +A derived data type to specify ice boundary data + + + +boundary + + +A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::flux_down_from_atmos + (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary) + flux_down_from_atmos + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Atmos_boundary + Atmos_boundary + + + Land_boundary + Land_boundary + + + Ice_boundary + Ice_boundary + + + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::flux_up_to_atmos + (Time, Land, Ice, Boundary) + flux_up_to_atmos + + Time + Time + + + Land + Land + + + Ice + Ice + + + Boundary + Boundary + + + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::flux_exchange_init + (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary) + flux_exchange_init + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + atmos_ice_boundary + atmos_ice_boundary + + + land_ice_atmos_boundary + land_ice_atmos_boundary + + + + + + + + + + + subroutine + subroutine flux_exchange_mod::read_namelist + + read_namelist + + + + + + + + + + subroutine + subroutine flux_exchange_mod::diag_field_init + (Time, atmos_axes) + diag_field_init + + Time + Time + + + atmos_axes + atmos_axes + + + + + + + + + + + subroutine, public + subroutine, public flux_exchange_mod::flux_exchange_end + (Atm) + flux_exchange_end + + Atm + Atm + + + + + + + + + + + subroutine + subroutine flux_exchange_mod::surface_flux_2d + (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) + surface_flux_2d + + t_atm + t_atm + + + q_atm_in + q_atm_in + + + u_atm + u_atm + + + v_atm + v_atm + + + p_atm + p_atm + + + z_atm + z_atm + + + p_surf + p_surf + + + t_surf + t_surf + + + t_ca + t_ca + + + q_surf + q_surf + + + u_surf + u_surf + + + v_surf + v_surf + + + rough_mom + rough_mom + + + rough_heat + rough_heat + + + rough_moist + rough_moist + + + rough_scale + rough_scale + + + gust + gust + + + flux_t + flux_t + + + flux_q + flux_q + + + flux_r + flux_r + + + flux_u + flux_u + + + flux_v + flux_v + + + cd_m + cd_m + + + cd_t + cd_t + + + cd_q + cd_q + + + w_atm + w_atm + + + u_star + u_star + + + b_star + b_star + + + q_star + q_star + + + thv_atm + thv_atm + + + thv_surf + thv_surf + + + dhdt_surf + dhdt_surf + + + dedt_surf + dedt_surf + + + dedq_surf + dedq_surf + + + drdt_surf + drdt_surf + + + dhdt_atm + dhdt_atm + + + dedq_atm + dedq_atm + + + dtaudu_atm + dtaudu_atm + + + dtaudv_atm + dtaudv_atm + + + dt + dt + + + land + land + + + seawater + seawater + + + avail + avail + + + + + + + + + + + + + + + + + diff --git a/docs/xml/namespacefull__coupler__mod.xml b/docs/xml/namespacefull__coupler__mod.xml new file mode 100644 index 00000000..3e77df1b --- /dev/null +++ b/docs/xml/namespacefull__coupler__mod.xml @@ -0,0 +1,2749 @@ + + + + full_coupler_mod + full_coupler_mod::coupler_chksum_type + full_coupler_mod::coupler_clock_type + full_coupler_mod::coupler_components_type + + + integer, dimension(6), public + integer, dimension(6), public full_coupler_mod::restart_interval + + restart_interval + = (/ 0, 0, 0, 0, 0, 0/) + +namelist interface + +The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out + + + + + + integer, dimension(6) + integer, dimension(6) full_coupler_mod::current_date + + current_date + = (/ 0, 0, 0, 0, 0, 0 /) + +The date that the current integration starts with. (See force_date_from_namelist.) + +The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' cannot be used because the time_manager's date functions are used. All values must be lower case. + + + + + + character(len=17) + character(len=17) full_coupler_mod::calendar + + calendar + = ' ' + + + + + + + + + + logical + logical full_coupler_mod::force_date_from_namelist + + force_date_from_namelist + = .false. + +Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used. + + + + + + + + integer, public + integer, public full_coupler_mod::months + + months + =0 + +Number of months the current integration will be run. + + + + + + + + integer, public + integer, public full_coupler_mod::days + + days + =0 + +Number of days the current integration will be run. + + + + + + + + integer, public + integer, public full_coupler_mod::hours + + hours + =0 + +Number of hours the current integration will be run. + + + + + + + + integer, public + integer, public full_coupler_mod::minutes + + minutes + =0 + +Number of minutes the current integration will be run. + + + + + + + + integer, public + integer, public full_coupler_mod::seconds + + seconds + =0 + +Number of seconds the current integration will be run. + + + + + + + + integer, public + integer, public full_coupler_mod::dt_atmos + + dt_atmos + = 0 + +Atmospheric model time step in seconds, including the fast coupling with land and sea ice. + + + + + + + + integer, public + integer, public full_coupler_mod::dt_cpld + + dt_cpld + = 0 + +Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. + + + + + + + + integer, public + integer, public full_coupler_mod::atmos_npes + + atmos_npes + =0 + +The number of MPI tasks to use for the atmosphere. + + + + + + + + integer, public + integer, public full_coupler_mod::ocean_npes + + ocean_npes + =0 + +The number of MPI tasks to use for the ocean. + + + + + + + + integer, public + integer, public full_coupler_mod::ice_npes + + ice_npes + =0 + +The number of MPI tasks to use for the ice. + + + + + + + + integer, public + integer, public full_coupler_mod::land_npes + + land_npes + =0 + +The number of MPI tasks to use for the land. + + + + + + + + integer, public + integer, public full_coupler_mod::atmos_nthreads + + atmos_nthreads + =1 + +Number of OpenMP threads to use in the atmosphere. + + + + + + + + integer, public + integer, public full_coupler_mod::ocean_nthreads + + ocean_nthreads + =1 + +Number of OpenMP threads to use in the ocean. + + + + + + + + integer, public + integer, public full_coupler_mod::radiation_nthreads + + radiation_nthreads + =1 + +Number of threads to use for the radiation. + + + + + + + + logical, public + logical, public full_coupler_mod::do_atmos + + do_atmos + =.true. + +Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only. + + + + + + + + logical, public + logical, public full_coupler_mod::do_land + + do_land + =.true. + +See do_atmos. + + + + + + + + logical, public + logical, public full_coupler_mod::do_ice + + do_ice + =.true. + +See do_atmos. + + + + + + + + logical, public + logical, public full_coupler_mod::do_ocean + + do_ocean + =.true. + +See do_atmos. + + + + + + + + logical, public + logical, public full_coupler_mod::do_flux + + do_flux + =.true. + +See do_atmos. + + + + + + + + logical, public + logical, public full_coupler_mod::concurrent + + concurrent + =.FALSE. + +If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean... + + + + + + + + logical, public + logical, public full_coupler_mod::do_concurrent_radiation + + do_concurrent_radiation + =.FALSE. + +If .TRUE. then radiation is done concurrently. + + + + + + + + logical, public + logical, public full_coupler_mod::use_lag_fluxes + + use_lag_fluxes + =.TRUE. + +If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. + + + + + + + + logical, public + logical, public full_coupler_mod::concurrent_ice + + concurrent_ice + =.FALSE. + +If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. + + + + + + + + logical, public + logical, public full_coupler_mod::slow_ice_with_ocean + + slow_ice_with_ocean + =.FALSE. + +If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. + +If true, there is a single call from the coupler to advance both the slow sea-ice and the ocean. slow_ice_with_ocean and concurrent_ice must both be true if combined_ice_and_ocean is true. + + + + + + logical, public + logical, public full_coupler_mod::combined_ice_and_ocean + + combined_ice_and_ocean + =.FALSE. + + + + + + + + + + logical, public + logical, public full_coupler_mod::do_chksum + + do_chksum + =.FALSE. + +If .TRUE., do multiple checksums throughout the execution of the model. + + + + + + + + logical, public + logical, public full_coupler_mod::do_endpoint_chksum + + do_endpoint_chksum + =.TRUE. + +If .TRUE., do checksums of the initial and final states. + + + + + + + + logical, public + logical, public full_coupler_mod::do_debug + + do_debug + =.FALSE. + +If .TRUE. print additional debugging messages. + + + + + + + + integer, public + integer, public full_coupler_mod::check_stocks + + check_stocks + = 0 + +-1: never 0: at end of run only n>0: every n coupled steps + + + + + + + + logical, public + logical, public full_coupler_mod::use_hyper_thread + + use_hyper_thread + = .false. + + + + + + + + + + character(len=80) + character(len=80) full_coupler_mod::text + + text + + + + + + + + + + character(len=48), parameter + character(len=48), parameter full_coupler_mod::mod_name + + mod_name + = 'coupler_main_mod' + + + + + + + + + + integer + integer full_coupler_mod::calendar_type + + calendar_type + = INVALID_CALENDAR + + + + + + + + + + integer, dimension(6) + integer, dimension(6) full_coupler_mod::date_init + + date_init + = (/ 0, 0, 0, 0, 0, 0 /) + +coupled model initial date + + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_init + (Atm, Ocean, Land, Ice, Ocean_state, Atmos_land_boundary, Atmos_ice_boundary, Ocean_ice_boundary, Ice_ocean_boundary, Land_ice_atmos_boundary, Land_ice_boundary, Ice_ocean_driver_CS, Ice_bc_restart, Ocn_bc_restart, ensemble_pelist, slow_ice_ocean_pelist, conc_nthreads, coupler_clocks, coupler_components_obj, coupler_chksum_obj, Time_step_cpld, Time_step_atmos, Time_atmos, Time_ocean, num_cpld_calls, num_atmos_calls, Time, Time_start, Time_end, Time_restart, Time_restart_current) + coupler_init + + Atm + Atm + + + Ocean + Ocean + + + Land + Land + + + Ice + Ice + + + Ocean_state + Ocean_state + + + Atmos_land_boundary + Atmos_land_boundary + + + Atmos_ice_boundary + Atmos_ice_boundary + + + Ocean_ice_boundary + Ocean_ice_boundary + + + Ice_ocean_boundary + Ice_ocean_boundary + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + Land_ice_boundary + Land_ice_boundary + + + Ice_ocean_driver_CS + Ice_ocean_driver_CS + + + Ice_bc_restart + Ice_bc_restart + + + Ocn_bc_restart + Ocn_bc_restart + + + ensemble_pelist + ensemble_pelist + + + slow_ice_ocean_pelist + slow_ice_ocean_pelist + + + conc_nthreads + conc_nthreads + + + coupler_clocks + coupler_clocks + + + coupler_components_obj + coupler_components_obj + + + coupler_chksum_obj + coupler_chksum_obj + + + Time_step_cpld + Time_step_cpld + + + Time_step_atmos + Time_step_atmos + + + Time_atmos + Time_atmos + + + Time_ocean + Time_ocean + + + num_cpld_calls + num_cpld_calls + + + num_atmos_calls + num_atmos_calls + + + Time + Time + + + Time_start + Time_start + + + Time_end + Time_end + + + Time_restart + Time_restart + + + Time_restart_current + Time_restart_current + + +Initialize all defined exchange grids and all boundary maps. + + + +The pelists need to be set before initializing the clocksInitialize coupler_components_obj memebers to point to model componentsInitialize coupler_chksum_obj + + + + subroutine + subroutine full_coupler_mod::initialize_coupler_components_obj + (this, Atm, Land, Ice, Ocean, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Land_ice_boundary, Ice_ocean_boundary, Ocean_ice_boundary) + initialize_coupler_components_obj + + this + this + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Ocean + Ocean + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + Atmos_land_boundary + Atmos_land_boundary + + + Atmos_ice_boundary + Atmos_ice_boundary + + + Land_ice_boundary + Land_ice_boundary + + + Ice_ocean_boundary + Ice_ocean_boundary + + + Ocean_ice_boundary + Ocean_ice_boundary + + +This subroutine associates the pointer in an object of coupler_components_type to the model components. + + + +this + + +self + + + + + + + + + subroutine + subroutine full_coupler_mod::get_component + (this, retrieve_component) + get_component + + this + this + + + retrieve_component + retrieve_component + + +Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm. + + + +this + + +the coupler_components_type object + + + +retrieve_component + + +requested component to be retrieve. retrieve_component can be of type atmos_data_type, land_data_type, ice_data_type, ocean_public_type, land_ice_atmos_boundary_type, atmos_land_boundary_type, atmos_ice_boundary_type, land_ice_boundary_type, ice_ocean_boundary_type, ocean_ice_boundary_type + + + + + + + + + subroutine + subroutine full_coupler_mod::initialize_coupler_chksum_obj + (this, components_obj) + initialize_coupler_chksum_obj + + this + this + + + components_obj + components_obj + + +This subroutine associates the pointer in an object of coupler_chksum_type to the component models. + + + + + + + + subroutine + subroutine full_coupler_mod::get_components_obj + (this, components_obj) + get_components_obj + + this + this + + + components_obj + components_obj + + +This subroutine retrieves coupler_chksum_objcomponents_obj. + + + +this + + +coupler_chksum_type + + + +components_obj + + +coupler_components_type to be returned + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_end + (Atm, Land, Ice, Ocean, Ocean_state, Land_ice_atmos_boundary, Atmos_ice_boundary, Atmos_land_boundary, Ice_ocean_boundary, Ocean_ice_boundary, Ocn_bc_restart, Ice_bc_restart, current_timestep, Time_current, Time_start, Time_end, Time_restart_current, coupler_chksum_obj, coupler_clocks) + coupler_end + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Ocean + Ocean + + + Ocean_state + Ocean_state + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + Atmos_ice_boundary + Atmos_ice_boundary + + + Atmos_land_boundary + Atmos_land_boundary + + + Ice_ocean_boundary + Ice_ocean_boundary + + + Ocean_ice_boundary + Ocean_ice_boundary + + + Ocn_bc_restart + Ocn_bc_restart + + + Ice_bc_restart + Ice_bc_restart + + + current_timestep + current_timestep + + + Time_current + Time_current + + + Time_start + Time_start + + + Time_end + Time_end + + + Time_restart_current + Time_restart_current + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time. + + + +land_ice_atmos_boundary + + +Land_ice_boundary + + + +ocn_bc_restart + + +required for coupler_restart + + + +ice_bc_restart + + +required for coupler_restart + + + +current_timestep + + +current_timestep (nc) + + + +coupler_chksum_obj + + +required for chksum computations + + + +time_current + + +Current timestep + + + +time_start + + +model starting time + + + +time_end + + +model run time + + + +time_restart_current + + +Time corresponding to last restart time + + + + + + + + + subroutine + subroutine full_coupler_mod::add_domain_dimension_data + (fileobj) + add_domain_dimension_data + + fileobj + fileobj + + +Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1. + + + +fileobj + + +Fms2io domain decomposed fileobj + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_restart + (Atm, Ice, Ocean, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart_current, Time_start, time_stamp) + coupler_restart + + Atm + Atm + + + Ice + Ice + + + Ocean + Ocean + + + Ocn_bc_restart + Ocn_bc_restart + + + Ice_bc_restart + Ice_bc_restart + + + Time_current + Time_current + + + Time_restart_current + Time_restart_current + + + Time_start + Time_start + + + time_stamp + time_stamp + + +Writing restart file that contains running time and restart file writing time. + + + +ocn_bc_restart + + +required for restarts + + + +ice_bc_restart + + +required for restarts + + + +time_current + + +current model runtime (Time) + + + +time_restart_current + + +current restart time + + + +time_start + + +model start time + + + +time_stamp + + +time_stamp for restart + + + + + + + + + subroutine + subroutine full_coupler_mod::get_coupler_chksums + (this, id, timestep) + get_coupler_chksums + + this + this + + + id + id + + + timestep + timestep + + +Print out checksums for several atm, land and ice variables. + + + +this + + +self + + + +id + + +id to label CHECKSUMS in stdout + + + + + + + + + subroutine + subroutine full_coupler_mod::get_atmos_ice_land_ocean_chksums + (this, id, timestep) + get_atmos_ice_land_ocean_chksums + + this + this + + + id + id + + + timestep + timestep + + +This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum. + + + +this + + +self + + + +id + + +ID labelling the set of checksums + + + + + + + + + subroutine + subroutine full_coupler_mod::get_atmos_ice_land_chksums + (this, id, timestep) + get_atmos_ice_land_chksums + + this + this + + + id + id + + + timestep + timestep + + +This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way. if(atm%pe)then +callmpp_set_current_pelist(atm%pelist) +callatmos_ice_land_chksum('MAIN_LOOP-',nc) +endif + If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking callmpp_set_current_pelist() + after you exit. This is only necessary if you need to return to the global pelist. + + + +this + + +self + + + +id + + +id to label CHECKSUMS in stdout + + + + + + + + + subroutine + subroutine full_coupler_mod::get_slow_ice_chksums + (this, id, timestep) + get_slow_ice_chksums + + this + this + + + id + id + + + timestep + timestep + + +This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way. if(ice%slow_ice_pe)then +callmpp_set_current_pelist(ice%slow_pelist) +callslow_ice_chksum('MAIN_LOOP-',nc) +endif + If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking callmpp_set_current_pelist() + after you exit. This is only necessary if you need to return to the global pelist. + + + +this + + +self + + + +id + + +id to label CHECKSUMS in stdout + + + + + + + + + subroutine + subroutine full_coupler_mod::get_ocean_chksums + (this, id, timestep) + get_ocean_chksums + + this + this + + + id + id + + + timestep + timestep + + +This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way. if(ocean%is_ocean_pe)then +callmpp_set_current_pelist(ocean%pelist) +callocean_chksum('MAIN_LOOP-',nc) +endif + If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking callmpp_set_current_pelist() + after you exit. This is only necessary if you need to return to the global pelist. + + + +this + + +self + + + +id + + +ID labelling the set of CHECKSUMS + + + + + + + + + subroutine + subroutine full_coupler_mod::coupler_set_clock_ids + (coupler_clocks, Atm, Land, Ice, Ocean, ensemble_pelist, slow_ice_ocean_pelist, ensemble_id) + coupler_set_clock_ids + + coupler_clocks + coupler_clocks + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Ocean + Ocean + + + ensemble_pelist + ensemble_pelist + + + slow_ice_ocean_pelist + slow_ice_ocean_pelist + + + ensemble_id + ensemble_id + + +This subroutine sets the ID for clocks used in coupler_main. + + + +atm + + +Atm, required to retrieve pe information + + + +land + + +Land, required to retrieve pe information + + + +ocean + + +Ocean, required to retrieve pe information + + + +ice + + +Ice, required to retrieve pe information + + + +slow_ice_ocean_pelist + + +slow_ice_oean_pelist + + + +ensemble_id + + +ensemble_id used as index in ensemble_pelist + + + + +initialization clock + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_init_finish_stocks + (Time, Atm, Land, Ice, Ocean_state, coupler_clocks, init_stocks, finish_stocks) + coupler_flux_init_finish_stocks + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Ocean_state + Ocean_state + + + coupler_clocks + coupler_clocks + + + init_stocks + init_stocks + + + finish_stocks + finish_stocks + + +This subroutine calls flux_init_stocks or does the final call to flux_check_stocks. + + + +time + + +current Time + + + +finish_stocks + + +control flags to either call flux_init_stocks or the final flux_check_stocks + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_check_stocks + (nc, Time, Atm, Land, Ice, Ocean_state, coupler_clocks) + coupler_flux_check_stocks + + nc + nc + + + Time + Time + + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Ocean_state + Ocean_state + + + coupler_clocks + coupler_clocks + + +This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks. + + + +nc + + +current outerloop timestep + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_ocean_to_ice + (Ocean, Ice, Ocean_ice_boundary, coupler_clocks, slow_ice_ocean_pelist) + coupler_flux_ocean_to_ice + + Ocean + Ocean + + + Ice + Ice + + + Ocean_ice_boundary + Ocean_ice_boundary + + + coupler_clocks + coupler_clocks + + + slow_ice_ocean_pelist + slow_ice_ocean_pelist + + +This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice. + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_ice_to_ocean + (Ice, Ocean, Ice_ocean_boundary, coupler_clocks, slow_ice_ocean_pelist, set_current_slow_ice_ocean_pelist) + coupler_flux_ice_to_ocean + + Ice + Ice + + + Ocean + Ocean + + + Ice_ocean_boundary + Ice_ocean_boundary + + + coupler_clocks + coupler_clocks + + + slow_ice_ocean_pelist + slow_ice_ocean_pelist + + + set_current_slow_ice_ocean_pelist + set_current_slow_ice_ocean_pelist + + +This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True. + + + +set_current_slow_ice_ocean_pelist + + +if true, will call mpp_set_current_pelist(slow_ice_ocean_pelist) + + + + +mpp_set_current_pelist(slow_ice_ocean_pelist) is not required if coupler_flux_ice_to_ocean is being called after coupler_flux_ocean_to_ice: mpp_set_current_pelist(slow_ice_ocean_pelist) is called in coupler_flux_ocean_to_ice + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_unpack_ocean_ice_boundary + (nc, Time_flux_ocean_to_ice, Ice, Ocean_ice_boundary, coupler_clocks, coupler_chksum_obj) + coupler_unpack_ocean_ice_boundary + + nc + nc + + + Time_flux_ocean_to_ice + Time_flux_ocean_to_ice + + + Ice + Ice + + + Ocean_ice_boundary + Ocean_ice_boundary + + + coupler_clocks + coupler_clocks + + + coupler_chksum_obj + coupler_chksum_obj + + +This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True. + + + +nc + + +Current outer loop timestep + + + +time_flux_ocean_to_ice + + +Time flux_ocean_to_ice + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_exchange_slow_to_fast_ice + (Ice, coupler_clocks) + coupler_exchange_slow_to_fast_ice + + Ice + Ice + + + coupler_clocks + coupler_clocks + + +This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls. + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_exchange_fast_to_slow_ice + (Ice, coupler_clocks, set_ice_current_pelist) + coupler_exchange_fast_to_slow_ice + + Ice + Ice + + + coupler_clocks + coupler_clocks + + + set_ice_current_pelist + set_ice_current_pelist + + +This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true. + + + +set_ice_current_pelist + + +If true, call mpp_set_current_pelist(Icepelist) + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_set_ice_surface_fields + (Ice, coupler_clocks) + coupler_set_ice_surface_fields + + Ice + Ice + + + coupler_clocks + coupler_clocks + + +This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call. + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_generate_sfc_xgrid + (Land, Ice, coupler_clocks) + coupler_generate_sfc_xgrid + + Land + Land + + + Ice + Ice + + + coupler_clocks + coupler_clocks + + +This subroutine calls generate_sfc_xgrid. Clocks are set and before the call. + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_atmos_tracer_driver_gather_data + (Atm, coupler_clocks) + coupler_atmos_tracer_driver_gather_data + + Atm + Atm + + + coupler_clocks + coupler_clocks + + +This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call. + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_sfc_boundary_layer + (Atm, Land, Ice, Land_ice_atmos_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_sfc_boundary_layer + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + Time_atmos + Time_atmos + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics. + + + +time_atmos + + +Atmos time + + + +current_timestep + + +(nc-1)*num_atmos_cal + na + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_atmos_model_dynamics + (Atm, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_update_atmos_model_dynamics + + Atm + Atm + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. + + + +current_timestep + + +Current timestep + + + +coupler_chksum_obj + + +coupler_chksum_obj pointing to component types + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_atmos_model_radiation + (Atm, Land_ice_atmos_boundary, coupler_clocks, current_timestep, coupler_chksum_obj) + coupler_update_atmos_model_radiation + + Atm + Atm + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + coupler_clocks + coupler_clocks + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + +This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True. + + + +current_timestep + + +Current timestep + + + +coupler_chksum_obj + + +points to component types + + + + +cannot put mpp_chksum for concurrent_radiation as it requires the ability to have two different OpenMP threads inside of MPI at the same time which is not currently allowed + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_atmos_model_down + (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_update_atmos_model_down + + Atm + Atm + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. + + + +land_ice_atmos_boundary + + +Land ice_atmos_boundary + + + +current_timestep + + +Current timestep + + + +coupler_chksum_obj + + +coupler_chksum_obj pointing to component types + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_down_from_atmos + (Atm, Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_clocks, coupler_chksum_obj) + coupler_flux_down_from_atmos + + Atm + Atm + + + Land + Land + + + Ice + Ice + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + Atmos_land_boundary + Atmos_land_boundary + + + Atmos_ice_boundary + Atmos_ice_boundary + + + Time_atmos + Time_atmos + + + current_timestep + current_timestep + + + coupler_clocks + coupler_clocks + + + coupler_chksum_obj + coupler_chksum_obj + + +This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True. + + + +time_atmos + + +Time_atmos FmsTime_type containing time in seconds + + + +coupler_chksum_obj + + +used to compute chksum + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_land_model_fast + (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_update_land_model_fast + + Land + Land + + + Atmos_land_boundary + Atmos_land_boundary + + + atm_pelist + atm_pelist + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. + + + +atm_pelist + + +Atmpelist to reset the pelist to Atmpelist + + + +current_timestep + + +current timestep + + + +coupler_chksum_obj + + +points to component types + + + +coupler_clocks + + +current pelist=Atmpelist + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_ice_model_fast + (Ice, Atmos_ice_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_update_ice_model_fast + + Ice + Ice + + + Atmos_ice_boundary + Atmos_ice_boundary + + + atm_pelist + atm_pelist + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. + + + +atm_pelist + + +Atmpelist to reset the pelist to Atmpelist + + + +coupler_chksum_obj + + +points to component types + + + +coupler_clocks + + +current pelist = Atmpelist + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_up_to_atmos + (Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_flux_up_to_atmos + + Land + Land + + + Ice + Ice + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + Atmos_land_boundary + Atmos_land_boundary + + + Atmos_ice_boundary + Atmos_ice_boundary + + + Time_atmos + Time_atmos + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. + + + +time_atmos + + +Time_atmos, time in seconds + + + +current_timestep + + +current timestep + + + +coupler_chksum_obj + + +points to component types + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_atmos_model_up + (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_update_atmos_model_up + + Atm + Atm + + + Land_ice_atmos_boundary + Land_ice_atmos_boundary + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. + + + +coupler_chksum_obj + + +points to component types + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_atmos_to_ocean + (Atm, Atmos_ice_boundary, Ice, Time_atmos) + coupler_flux_atmos_to_ocean + + Atm + Atm + + + Atmos_ice_boundary + Atmos_ice_boundary + + + Ice + Ice + + + Time_atmos + Time_atmos + + +This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc. + + + +time_atmos + + +Time in seconds + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_atmos_model_state + (Atm, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_update_atmos_model_state + + Atm + Atm + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively. + + + +coupler_chksum_obj + + +used to compute chksums + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_land_model_slow + (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_update_land_model_slow + + Land + Land + + + Atmos_land_boundary + Atmos_land_boundary + + + atm_pelist + atm_pelist + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True. + + + +atm_pelist + + +atm_pelist used for clocks + + + +current_timestep + + +current timestep + + + +coupler_chksum_obj + + +coupler_chksum_obj for chksum computation + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_flux_land_to_ice + (Land, Ice, Land_ice_boundary, Time, current_timestep, coupler_chksum_obj, coupler_clocks) + coupler_flux_land_to_ice + + Land + Land + + + Ice + Ice + + + Land_ice_boundary + Land_ice_boundary + + + Time + Time + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + + coupler_clocks + coupler_clocks + + +This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True. + + + +time + + +Time (in seconds) + + + +current_timestep + + +current timestep + + + +coupler_chksum_obj + + +coupler_chksum_obj to compute chksums + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_unpack_land_ice_boundary + (Ice, Land_ice_boundary, coupler_clocks) + coupler_unpack_land_ice_boundary + + Ice + Ice + + + Land_ice_boundary + Land_ice_boundary + + + coupler_clocks + coupler_clocks + + +This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary. + + + +These two calls occur on whichever PEs handle the fast ice processess. + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_ice_model_slow_and_stocks + (Ice, coupler_clocks) + coupler_update_ice_model_slow_and_stocks + + Ice + Ice + + + coupler_clocks + coupler_clocks + + +This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks. + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_update_ocean_model + (Ocean, Ocean_state, Ice_ocean_boundary, Time_ocean, Time_step_cpld, current_timestep, coupler_chksum_obj) + coupler_update_ocean_model + + Ocean + Ocean + + + Ocean_state + Ocean_state + + + Ice_ocean_boundary + Ice_ocean_boundary + + + Time_ocean + Time_ocean + + + Time_step_cpld + Time_step_cpld + + + current_timestep + current_timestep + + + coupler_chksum_obj + coupler_chksum_obj + + +This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True. + + + +time_step_cpld + + +total number of timesteps + + + +current_timestep + + +current timestep + + + +coupler_chksum_obj + + +used for checksum computation + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_intermediate_restart + (Atm, Ice, Ocean, Ocean_state, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart, Time_restart_current, Time_start) + coupler_intermediate_restart + + Atm + Atm + + + Ice + Ice + + + Ocean + Ocean + + + Ocean_state + Ocean_state + + + Ocn_bc_restart + Ocn_bc_restart + + + Ice_bc_restart + Ice_bc_restart + + + Time_current + Time_current + + + Time_restart + Time_restart + + + Time_restart_current + Time_restart_current + + + Time_start + Time_start + + +Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time. + + + +ocn_bc_restart + + +used for coupler type restarts + + + +ice_bc_restart + + +used for coupler type restarts + + + +time_start + + +current Timestep and model start time + + + +time_restart + + +Restart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart. + + + +time_restart_current + + +Restart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart. + + + + + + + + + subroutine, public + subroutine, public full_coupler_mod::coupler_summarize_timestep + (current_timestep, num_cpld_calls, coupler_chksum_obj, is_atmos_pe, omp_sec, imb_sec) + coupler_summarize_timestep + + current_timestep + current_timestep + + + num_cpld_calls + num_cpld_calls + + + coupler_chksum_obj + coupler_chksum_obj + + + is_atmos_pe + is_atmos_pe + + + omp_sec + omp_sec + + + imb_sec + imb_sec + + +This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True. + + + +current_timestep + + +current_timestep, nc + + + +num_cpld_calls + + +total number of outerloop timestep + + + +is_atmos_pe + + +Atmpe + + + +imb_sec + + +from omp computation + + + + + + + + + + + + + + + diff --git a/docs/xml/namespaceice__model__mod.xml b/docs/xml/namespaceice__model__mod.xml new file mode 100644 index 00000000..176925c9 --- /dev/null +++ b/docs/xml/namespaceice__model__mod.xml @@ -0,0 +1,786 @@ + + + + ice_model_mod + ice_model_mod::atmos_ice_boundary_type + ice_model_mod::ice_data_type + + + real + real ice_model_mod::cmin + + cmin + + + + + + + + + + real + real ice_model_mod::cmax + + cmax + + + + + + + + + + real + real ice_model_mod::diff + + diff + = 2.092 + + + + + + + + + + real + real ice_model_mod::thickness_min + + thickness_min + = 0.10 + + + + + + + + + + real + real ice_model_mod::specified_ice_thickness + + specified_ice_thickness + = 2.0 + + + + + + + + + + real + real ice_model_mod::heat_capacity_ocean + + heat_capacity_ocean + = 1.e07 + + + + + + + + + + real + real ice_model_mod::temp_ice_freeze + + temp_ice_freeze + = -1.66 + + + + + + + + + + real + real ice_model_mod::roughness_ice + + roughness_ice + = 1.e-4 + + + + + + + + + + logical + logical ice_model_mod::mixed_layer_ocean + + mixed_layer_ocean + = .false. + + + + + + + + + + logical + logical ice_model_mod::use_climo_ice + + use_climo_ice + = .false. + + + + + + + + + + logical + logical ice_model_mod::use_annual_ice + + use_annual_ice + = .false. + + + + + + + + + + logical + logical ice_model_mod::use_climo_sst + + use_climo_sst + = .false. + + + + + + + + + + logical + logical ice_model_mod::use_annual_sst + + use_annual_sst + = .false. + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::ice_method + + ice_method + = 'prognostic' + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::sst_method + + sst_method + = 'specified' + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::specified + + specified + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::uniform + + uniform + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::or + + or + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::mixed_layer + + mixed_layer + + + + + + + + + + real + real ice_model_mod::temp_ice + + temp_ice + = 270. + + + + + + + + + + real + real ice_model_mod::temp_sst + + temp_sst + = 280. + + + + + + + + + + real + real ice_model_mod::sst_anom + + sst_anom + = 0. + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::interp_method + + interp_method + = "bilinear" + + + + + + + + + + logical + logical ice_model_mod::do_netcdf_restart + + do_netcdf_restart + = .true. + + + + + + + + + + integer + integer ice_model_mod::is + + is + + + + + + + + + + integer + integer ice_model_mod::ie + + ie + + + + + + + + + + integer + integer ice_model_mod::js + + js + + + + + + + + + + integer + integer ice_model_mod::je + + je + + + + + + + + + + type(fmsamipinterp_type), save + type(fmsamipinterp_type), save ice_model_mod::amip_ice + + amip_ice + + + + + + + + + + type(fmsamipinterp_type), save + type(fmsamipinterp_type), save ice_model_mod::amip_sst + + amip_sst + + + + + + + + + + logical + logical ice_model_mod::module_is_initialized + + module_is_initialized + = .false. + + + + + + + + + + character(len=64) + character(len=64) ice_model_mod::fname + + fname + = 'INPUT/ice_model.res.nc' + + + + + + + + + + character(len=128) + character(len=128) ice_model_mod::version + + version + = '$Id$' + + + + + + + + + + character(len=128) + character(len=128) ice_model_mod::tagname + + tagname + = '$Name$' + + + + + + + + + + real, parameter + real, parameter ice_model_mod::latent + + latent + = HLV + HLF + + + + + + + + + + + + subroutine, public + subroutine, public ice_model_mod::update_ice_model_fast + (Atmos_boundary, Ice) + update_ice_model_fast + + Atmos_boundary + Atmos_boundary + + + Ice + Ice + + + + + + + + + + + subroutine, public + subroutine, public ice_model_mod::update_ice_model_slow + (Atmos_boundary, Ice) + update_ice_model_slow + + Atmos_boundary + Atmos_boundary + + + Ice + Ice + + + + + + + + + + + subroutine + subroutine ice_model_mod::prognostic_ice + (Ice) + prognostic_ice + + Ice + Ice + + + + + + + + + + + subroutine + subroutine ice_model_mod::prognostic_sst + (Ice) + prognostic_sst + + Ice + Ice + + + + + + + + + + + subroutine, public + subroutine, public ice_model_mod::ice_model_init + (Ice, Time_Init, Time, Time_step_fast, Time_step_slow, glon_bnd, glat_bnd, Atmos_domain) + ice_model_init + + Ice + Ice + + + Time_Init + Time_Init + + + Time + Time + + + Time_step_fast + Time_step_fast + + + Time_step_slow + Time_step_slow + + + glon_bnd + glon_bnd + + + glat_bnd + glat_bnd + + + Atmos_domain + Atmos_domain + + + + + + + + + + + subroutine + subroutine ice_model_mod::ice_register_restart + (fileobj, Ice) + ice_register_restart + + fileobj + fileobj + + + Ice + Ice + + + + + + +fileobj + + +Ice restart domain decomposed fileobj + + + +ice + + +Ice data type + + + + + + + + + subroutine, public + subroutine, public ice_model_mod::ice_model_end + (Ice) + ice_model_end + + Ice + Ice + + + + + + + + + + + subroutine + subroutine ice_model_mod::add_domain_dimension_data + (fileobj) + add_domain_dimension_data + + fileobj + fileobj + + + + + + +fileobj + + +Fms2io domain decomposed fileobj + + + + + + + + + logical function + logical function ice_model_mod::is_latlon + (lon, lat) + is_latlon + + lon + lon + + + lat + lat + + + + + + + + + + + subroutine + subroutine ice_model_mod::get_cell_center + (lonb, latb, lon, lat) + get_cell_center + + lonb + lonb + + + latb + latb + + + lon + lon + + + lat + lat + + + + + + + + + + + subroutine + subroutine ice_model_mod::latlon2xyz + (sph_coor, xyz_coor) + latlon2xyz + + sph_coor + sph_coor + + + xyz_coor + xyz_coor + + + + + + + + + + + subroutine + subroutine ice_model_mod::xyz2latlon + (xyz_coor, sph_coor) + xyz2latlon + + xyz_coor + xyz_coor + + + sph_coor + sph_coor + + + + + + + + + + + + + + + + + diff --git a/docs/xml/namespaceice__ocean__flux__exchange__mod.xml b/docs/xml/namespaceice__ocean__flux__exchange__mod.xml new file mode 100644 index 00000000..c75609e4 --- /dev/null +++ b/docs/xml/namespaceice__ocean__flux__exchange__mod.xml @@ -0,0 +1,578 @@ + + + + ice_ocean_flux_exchange_mod + + + integer, parameter + integer, parameter ice_ocean_flux_exchange_mod::regrid + + regrid + =1 + + + + + + + + + + integer, parameter + integer, parameter ice_ocean_flux_exchange_mod::redist + + redist + =2 + + + + + + + + + + integer, parameter + integer, parameter ice_ocean_flux_exchange_mod::direct + + direct + =3 + + + + + + + + + + logical + logical ice_ocean_flux_exchange_mod::debug_stocks + + debug_stocks + = .false. + + + + + + + + + + logical + logical ice_ocean_flux_exchange_mod::do_area_weighted_flux + + do_area_weighted_flux + = .false. + + + + + + + + + + integer + integer ice_ocean_flux_exchange_mod::cplocnclock + + cplocnclock + + + + + + + + + + integer + integer ice_ocean_flux_exchange_mod::fluxoceaniceclock + + fluxoceaniceclock + + + + + + + + + + integer + integer ice_ocean_flux_exchange_mod::fluxiceoceanclock + + fluxiceoceanclock + + + + + + + + + + real + real ice_ocean_flux_exchange_mod::dt_cpl + + dt_cpl + + + + + + + + + + integer, dimension(:), allocatable + integer, dimension(:), allocatable ice_ocean_flux_exchange_mod::slow_ice_ocean_pelist + + slow_ice_ocean_pelist + + + + + + + + + + + + subroutine, public + subroutine, public ice_ocean_flux_exchange_mod::ice_ocean_flux_exchange_init + (Time, Ice, Ocean, Ocean_state, ice_ocean_boundary, ocean_ice_boundary, Dt_cpl_in, debug_stocks_in, do_area_weighted_flux_in, ex_gas_fields_ice, ex_gas_fluxes, do_ocean, slow_ice_ocean_pelist_in) + ice_ocean_flux_exchange_init + + Time + Time + + + Ice + Ice + + + Ocean + Ocean + + + Ocean_state + Ocean_state + + + ice_ocean_boundary + ice_ocean_boundary + + + ocean_ice_boundary + ocean_ice_boundary + + + Dt_cpl_in + Dt_cpl_in + + + debug_stocks_in + debug_stocks_in + + + do_area_weighted_flux_in + do_area_weighted_flux_in + + + ex_gas_fields_ice + ex_gas_fields_ice + + + ex_gas_fluxes + ex_gas_fluxes + + + do_ocean + do_ocean + + + slow_ice_ocean_pelist_in + slow_ice_ocean_pelist_in + + + + + + +time + + +The model's current time + + + +ice + + +A derived data type to specify ice boundary data + + + +ocean + + +A derived data type to specify ocean boundary data + + + +ice_ocean_boundary + + +A derived data type to specify properties and fluxes passed from ice to ocean + + + +ocean_ice_boundary + + +A derived data type to specify properties and fluxes passed from ocean to ice + + + + + + + + + subroutine, public + subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean + (Ice, Ocean, Ice_Ocean_Boundary) + flux_ice_to_ocean + + Ice + Ice + + + Ocean + Ocean + + + Ice_Ocean_Boundary + Ice_Ocean_Boundary + + + + + + +ice + + +A derived data type to specify ice boundary data + + + +ocean + + +A derived data type to specify ocean boundary data + + + +ice_ocean_boundary + + +A derived data type to specify properties and fluxes passed from ice to ocean + + + + + + + + + subroutine, public + subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_finish + (Time, Ice_Ocean_Boundary) + flux_ice_to_ocean_finish + + Time + Time + + + Ice_Ocean_Boundary + Ice_Ocean_Boundary + + +flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics. + + + +time + + +Current time + + + +ice_ocean_boundary + + +A derived data type to specify properties and fluxes passed from ice to ocean + + + + + + + + + subroutine, public + subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice + (Ocean, Ice, Ocean_Ice_Boundary) + flux_ocean_to_ice + + Ocean + Ocean + + + Ice + Ice + + + Ocean_Ice_Boundary + Ocean_Ice_Boundary + + +Takes the ocean model state and interpolates it onto the bottom of the ice. + +The following quantities are transferred from the Ocean to the ocean_ice_boundary_type: + t_surf = surface temperature (deg K) + frazil = frazil fluxes since the last coupling step (J/m2) + u_surf = zonal ocean current/ice motion (m/s) + v_surf = meridional ocean current/ice motion (m/s) + v_surf = meridional ocean current/ice motion (m/s) + sea_lev = sea level used to drive ice accelerations (m) + + +FATAL +Ocean_Ice_Boundary%xtype must be DIRECT or REDIST. + + +The value of variable xtype of ice_ocean_boundary_type data must be DIRECT or REDIST. + + + + +ocean + + +A derived data type to specify ocean boundary data + + + +ice + + +A derived data type to specify ice boundary data + + + +ocean_ice_boundary + + +A derived data type to specify properties and fluxes passed from ocean to ice + + + + + + + + + subroutine, public + subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice_finish + (Time, Ice, Ocean_Ice_Boundary) + flux_ocean_to_ice_finish + + Time + Time + + + Ice + Ice + + + Ocean_Ice_Boundary + Ocean_Ice_Boundary + + +flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics. + + + +time + + +Current time + + + +ice + + +A derived data type to specify ice boundary data + + + +ocean_ice_boundary + + +A derived data type to specify properties and fluxes passed from ocean to ice + + + + + + + + + subroutine, public + subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks + (Ice) + flux_ice_to_ocean_stocks + + Ice + Ice + + +Updates Ice and Ocean stocks. + +Integrate the fluxes over the surface and in time. + +ice + + +A derived data type to specify ice boundary data + + + + + + + + + subroutine, public + subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_from_ice_stocks + (ocean_state, Ocean, Ice_Ocean_boundary) + flux_ocean_from_ice_stocks + + ocean_state + ocean_state + + + Ocean + Ocean + + + Ice_Ocean_boundary + Ice_Ocean_boundary + + +Updates Ocean stocks due to input that the Ocean model gets. + +This subroutine updates the stocks of Ocean by the amount of input that the Ocean gets from Ice component. Unlike subroutine flux_ice_to_ocean_stocks() that uses Icefluxes to update the stocks due to the amount of output from Ice,this subroutine uses Ice_Ocean_boundaryfluxes to calculate the amount of input to the Ocean. These fluxes are the ones that Ocean model uses internally to calculate its budgets. Hence there should be no difference between this input and what Ocean model internal diagnostics uses. This bypasses the possible mismatch in cell areas between Ice and Ocean in diagnosing the stocks of Ocean and should report a conserving Ocean component regardless of the glitches in fluxes.The use of this subroutine in conjunction with subroutine flux_ice_to_ocean_stocks() will also allow to directly diagnose the amount "stocks lost in exchange" between Ice and Ocean + + + + + + subroutine + subroutine ice_ocean_flux_exchange_mod::flux_ice_to_ocean_redistribute + (ice, ocean, ice_data, ocn_bnd_data, type, do_area_weighted) + flux_ice_to_ocean_redistribute + + ice + ice + + + ocean + ocean + + + ice_data + ice_data + + + ocn_bnd_data + ocn_bnd_data + + + type + type + + + do_area_weighted + do_area_weighted + + +Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute. + +Should be invoked by all PEs + + + + + + + subroutine + subroutine ice_ocean_flux_exchange_mod::divide_by_area + (data, area) + divide_by_area + + data + data + + + area + area + + +Divide data by area while avoiding zero area elements. + + + + + + + + subroutine + subroutine ice_ocean_flux_exchange_mod::check_flux_conservation + (Ice, Ocean, Ice_Ocean_Boundary) + check_flux_conservation + + Ice + Ice + + + Ocean + Ocean + + + Ice_Ocean_Boundary + Ice_Ocean_Boundary + + +Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true. + + + + + + + + + + + + + + diff --git a/docs/xml/namespaceiso__fortran__env.xml b/docs/xml/namespaceiso__fortran__env.xml new file mode 100644 index 00000000..67c332cf --- /dev/null +++ b/docs/xml/namespaceiso__fortran__env.xml @@ -0,0 +1,11 @@ + + + + iso_fortran_env + + + + + + + diff --git a/docs/xml/namespaceland__ice__flux__exchange__mod.xml b/docs/xml/namespaceland__ice__flux__exchange__mod.xml new file mode 100644 index 00000000..1ea775f8 --- /dev/null +++ b/docs/xml/namespaceland__ice__flux__exchange__mod.xml @@ -0,0 +1,240 @@ + + + + land_ice_flux_exchange_mod + + + type(fmsxgridxmap_type), save + type(fmsxgridxmap_type), save land_ice_flux_exchange_mod::xmap_runoff + + xmap_runoff + + + + + + + + + + integer + integer land_ice_flux_exchange_mod::n_xgrid_runoff + + n_xgrid_runoff + =0 + + + + + + + + + + integer + integer land_ice_flux_exchange_mod::x2_grid_lnd + + x2_grid_lnd + + + + + + + + + + integer + integer land_ice_flux_exchange_mod::x2_grid_ice + + x2_grid_ice + + + + + + + + + + integer + integer land_ice_flux_exchange_mod::cplclock + + cplclock + + + + + + + + + + integer + integer land_ice_flux_exchange_mod::fluxlandiceclock + + fluxlandiceclock + + + + + + + + + + logical + logical land_ice_flux_exchange_mod::do_runoff + + do_runoff + + + + + + + + + + real + real land_ice_flux_exchange_mod::dt_cpl + + dt_cpl + + + + + + + + + + + + subroutine, public + subroutine, public land_ice_flux_exchange_mod::land_ice_flux_exchange_init + (Land, Ice, land_ice_boundary, Dt_cpl_in, do_runoff_in, cplClock_in) + land_ice_flux_exchange_init + + Land + Land + + + Ice + Ice + + + land_ice_boundary + land_ice_boundary + + + Dt_cpl_in + Dt_cpl_in + + + do_runoff_in + do_runoff_in + + + cplClock_in + cplClock_in + + + + + + +land + + +A derived data type to specify land boundary data + + + +ice + + +A derived data type to specify ice boundary data + + + +land_ice_boundary + + +A derived data type to specify properties and fluxes passed from land to ice + + + + + + + + + subroutine, public + subroutine, public land_ice_flux_exchange_mod::flux_land_to_ice + (Time, Land, Ice, Land_Ice_Boundary) + flux_land_to_ice + + Time + Time + + + Land + Land + + + Ice + Ice + + + Land_Ice_Boundary + Land_Ice_Boundary + + +Conservative transfer of water and snow discharge from the land model to sea ice/ocean model. + +The following elements are transferred from the Land to the Land_ice_boundary: + discharge --> runoff (kg/m2) + discharge_snow --> calving (kg/m2) + + +time + + +Current time + + + +land + + +A derived data type to specify land boundary data + + + +ice + + +A derived data type to specify ice boundary data + + + +land_ice_boundary + + +A derived data type to specify properties and fluxes passed from land to ice + + + + + + + + + + + + + + + diff --git a/docs/xml/namespaceomp__lib.xml b/docs/xml/namespaceomp__lib.xml new file mode 100644 index 00000000..651331d5 --- /dev/null +++ b/docs/xml/namespaceomp__lib.xml @@ -0,0 +1,11 @@ + + + + omp_lib + + + + + + + diff --git a/docs/xml/namespacesurface__flux__mod.xml b/docs/xml/namespacesurface__flux__mod.xml new file mode 100644 index 00000000..ef93be1c --- /dev/null +++ b/docs/xml/namespacesurface__flux__mod.xml @@ -0,0 +1,1451 @@ + + + + surface_flux_mod + surface_flux_mod::surface_flux + + + character(len= *), parameter + character(len=*), parameter surface_flux_mod::version + + version + = '$Id$' + + + + + + + + + + character(len= *), parameter + character(len=*), parameter surface_flux_mod::tagname + + tagname + = '$Name$' + + + + + + + + + + logical + logical surface_flux_mod::module_is_initialized + + module_is_initialized + = .false. + + + + + + + + + + real, parameter + real, parameter surface_flux_mod::d622 + + d622 + = rdgas/rvgas + + + + + + + + + + real, parameter + real, parameter surface_flux_mod::d378 + + d378 + = 1.-d622 + + + + + + + + + + real, parameter + real, parameter surface_flux_mod::hlars + + hlars + = hlv/rvgas + + + + + + + + + + real, parameter + real, parameter surface_flux_mod::gcp + + gcp + = grav/cp_air + + + + + + + + + + real, parameter + real, parameter surface_flux_mod::kappa + + kappa + = rdgas/cp_air + + + + + + + + + + real + real surface_flux_mod::d608 + + d608 + = d378/d622 + + + + + + + + + + character(len=32) + character(len=32) surface_flux_mod::rough_scheme_ocean + + rough_scheme_ocean + +ocean roughness length scheme to be read from ocean_rough_nml + + + + + + + + logical + logical surface_flux_mod::no_neg_q + + no_neg_q + = .false. + +If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0. + + + + + + + + logical + logical surface_flux_mod::use_virtual_temp + + use_virtual_temp + = .true. + +If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp. + + + + + + + + logical + logical surface_flux_mod::alt_gustiness + + alt_gustiness + = .false. + +An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const. + + + + + + + + logical + logical surface_flux_mod::old_dtaudv + + old_dtaudv + = .false. + +The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency. + + + + + + + + logical + logical surface_flux_mod::use_mixing_ratio + + use_mixing_ratio + = .false. + +An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). + + + + + + + + real + real surface_flux_mod::gust_const + + gust_const + = 1.0 + +Constant for alternative gustiness calculation. + + + + + + + + real + real surface_flux_mod::gust_min + + gust_min + = 0.0 + +Minimum gustiness used when alt_gustiness is .FALSE. + + + + + + + + logical + logical surface_flux_mod::ncar_ocean_flux + + ncar_ocean_flux + = .false. + +Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. + + + + + + + + logical + logical surface_flux_mod::ncar_ocean_flux_orig + + ncar_ocean_flux_orig + = .false. + +Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. + + + + + + + + logical + logical surface_flux_mod::ncar_ocean_flux_multilevel + + ncar_ocean_flux_multilevel + = .false. + +Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum. + + + + + + + + logical + logical surface_flux_mod::do_iter_monin_obukhov + + do_iter_monin_obukhov + = .false. + +If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star. + + + + + + + + logical + logical surface_flux_mod::use_u10_neutral + + use_u10_neutral + = .false. + +If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist. + + + + + + + + real + real surface_flux_mod::bulk_zu + + bulk_zu + = 10. + +Reference height for wind speed (meters) + + + + + + + + real + real surface_flux_mod::bulk_zt + + bulk_zt + = 10. + +Reference height for atm temperature (meters) + + + + + + + + real + real surface_flux_mod::bulk_zq + + bulk_zq + = 10. + +Reference height for atm humidity (meters) + + + + + + + + logical + logical surface_flux_mod::raoult_sat_vap + + raoult_sat_vap + = .false. + +Reduce saturation vapor pressure to account for seawater. + + + + + + + + logical + logical surface_flux_mod::do_simple + + do_simple + = .false. + + + + + + + + + + integer + integer surface_flux_mod::niter_monin_obukhov + + niter_monin_obukhov + = 5 + +iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge + + + + + + + + + + subroutine + subroutine surface_flux_mod::surface_flux_1d + (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) + surface_flux_1d + + t_atm + t_atm + Air temp lowest atmospheric level. + + + q_atm_in + q_atm_in + Mixing ratio at lowest atmospheric level (kg/kg). + + + u_atm + u_atm + Zonal wind velocity at lowest atmospheric level. + + + v_atm + v_atm + Meridional wind velocity at lowest atmospheric level. + + + p_atm + p_atm + Pressure lowest atmospheric level. + + + z_atm + z_atm + Height lowest atmospheric level. + + + p_surf + p_surf + Pressure at the Earth's surface + + + t_surf + t_surf + Temp at the Earth's surface + + + t_ca + t_ca + Air temp at the canopy + + + q_surf + q_surf + Mixing ratio at the Earth's surface (kg/kg) + + + u_surf + u_surf + Zonal wind velocity at the Earth's surface + + + v_surf + v_surf + Meridional wind velocity at the Earth's surface + + + rough_mom + rough_mom + Momentum roughness length + + + rough_heat + rough_heat + Heat roughness length + + + rough_moist + rough_moist + + + rough_scale + rough_scale + Scale factor used to topographic roughness calculation + + + gust + gust + + + flux_t + flux_t + Sensible heat flux + + + flux_q + flux_q + Evaporative water flux + + + flux_r + flux_r + Radiative energy flux + + + flux_u + flux_u + Zonal momentum flux + + + flux_v + flux_v + Meridional momentum flux + + + cd_m + cd_m + Momentum exchange coefficient + + + cd_t + cd_t + + + cd_q + cd_q + + + w_atm + w_atm + Absolute wind at the lowest atmospheric level + + + u_star + u_star + Turbulent velocity scale + + + b_star + b_star + Turbulent buoyant scale + + + q_star + q_star + Turbulent moisture scale + + + thv_atm + thv_atm + + + thv_surf + thv_surf + + + dhdt_surf + dhdt_surf + Sensible heat flux temperature sensitivity + + + dedt_surf + dedt_surf + Moisture flux temperature sensitivity + + + dedq_surf + dedq_surf + Moisture flux humidity sensitivity + + + drdt_surf + drdt_surf + Radiative energy flux temperature sensitivity + + + dhdt_atm + dhdt_atm + Derivative of sensible heat flux over temp at the lowest atmos level + + + dedq_atm + dedq_atm + Derivative of water vapor flux over temp at the lowest atmos level + + + dtaudu_atm + dtaudu_atm + Derivative of zonal wind stress with respect to the lowest level + + + dtaudv_atm + dtaudv_atm + Derivative of meridional wind stress with respect to the lowest + + + dt + dt + + + land + land + Indicates where land exists (.TRUE. if exchange cell is on land + + + seawater + seawater + Indicates where liquid ocean water exists + + + avail + avail + + + + + + +avail + + +.TRUE. where the exchange cell is active + + + +gust + + +Gustiness factor + + + +cd_q + + +Moisture exchange coefficient + + + +rough_moist + + +Moisture roughness length + + + +dt + + +Time step (it is not used presently) + + + + + + + + + subroutine + subroutine surface_flux_mod::surface_flux_0d + (t_atm_0, q_atm_0, u_atm_0, v_atm_0, p_atm_0, z_atm_0, p_surf_0, t_surf_0, t_ca_0, q_surf_0, u_surf_0, v_surf_0, rough_mom_0, rough_heat_0, rough_moist_0, rough_scale_0, gust_0, flux_t_0, flux_q_0, flux_r_0, flux_u_0, flux_v_0, cd_m_0, cd_t_0, cd_q_0, w_atm_0, u_star_0, b_star_0, q_star_0, thv_atm_0, thv_surf_0, dhdt_surf_0, dedt_surf_0, dedq_surf_0, drdt_surf_0, dhdt_atm_0, dedq_atm_0, dtaudu_atm_0, dtaudv_atm_0, dt, land_0, seawater_0, avail_0) + surface_flux_0d + + t_atm_0 + t_atm_0 + Air temp lowest atmospheric level. + + + q_atm_0 + q_atm_0 + Mixing ratio at lowest atmospheric level (kg/kg). + + + u_atm_0 + u_atm_0 + Zonal wind velocity at lowest atmospheric level. + + + v_atm_0 + v_atm_0 + Meridional wind velocity at lowest atmospheric level. + + + p_atm_0 + p_atm_0 + Pressure lowest atmospheric level. + + + z_atm_0 + z_atm_0 + Height lowest atmospheric level. + + + p_surf_0 + p_surf_0 + Pressure at the Earth's surface + + + t_surf_0 + t_surf_0 + Temp at the Earth's surface + + + t_ca_0 + t_ca_0 + Air temp at the canopy + + + q_surf_0 + q_surf_0 + + + u_surf_0 + u_surf_0 + Zonal wind velocity at the Earth's surface + + + v_surf_0 + v_surf_0 + Meridional wind velocity at the Earth's surface + + + rough_mom_0 + rough_mom_0 + Momentum roughness length + + + rough_heat_0 + rough_heat_0 + Heat roughness length + + + rough_moist_0 + rough_moist_0 + Moisture roughness length + + + rough_scale_0 + rough_scale_0 + Scale factor used to topographic roughness calculation + + + gust_0 + gust_0 + + + flux_t_0 + flux_t_0 + Sensible heat flux + + + flux_q_0 + flux_q_0 + Evaporative water flux + + + flux_r_0 + flux_r_0 + Radiative energy flux + + + flux_u_0 + flux_u_0 + Zonal momentum flux + + + flux_v_0 + flux_v_0 + Meridional momentum flux + + + cd_m_0 + cd_m_0 + Momentum exchange coefficient + + + cd_t_0 + cd_t_0 + + + cd_q_0 + cd_q_0 + + + w_atm_0 + w_atm_0 + Absolute wind at the lowest atmospheric level + + + u_star_0 + u_star_0 + Turbulent velocity scale + + + b_star_0 + b_star_0 + Turbulent buoyant scale + + + q_star_0 + q_star_0 + Turbulent moisture scale + + + thv_atm_0 + thv_atm_0 + + + thv_surf_0 + thv_surf_0 + + + dhdt_surf_0 + dhdt_surf_0 + Sensible heat flux temperature sensitivity + + + dedt_surf_0 + dedt_surf_0 + Moisture flux temperature sensitivity + + + dedq_surf_0 + dedq_surf_0 + Moisture flux humidity sensitivity + + + drdt_surf_0 + drdt_surf_0 + Radiative energy flux temperature sensitivity + + + dhdt_atm_0 + dhdt_atm_0 + Derivative of sensible heat flux over temp at the lowest atmos level + + + dedq_atm_0 + dedq_atm_0 + Derivative of water vapor flux over temp at the lowest atmos level + + + dtaudu_atm_0 + dtaudu_atm_0 + Derivative of zonal wind stress with respect to the lowest level zonal wind + + + dtaudv_atm_0 + dtaudv_atm_0 + Derivative of meridional wind stress with respect to the lowest level + + + dt + dt + + + land_0 + land_0 + Indicates where land exists (.TRUE. if exchange cell is on land + + + seawater_0 + seawater_0 + Indicates where liquid ocean water exists + + + avail_0 + avail_0 + + + + + + +avail_0 + + +.TRUE. where the exchange cell is active + + + +gust_0 + + +Gustiness factor + + + +cd_q_0 + + +Moisture exchange coefficient + + + +q_surf_0 + + +Mixing ratio at the Earth's surface (kg/kg) + + + +dt + + +Time step (it is not used presently) + + + + + + + + + subroutine + subroutine surface_flux_mod::surface_flux_2d + (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) + surface_flux_2d + + t_atm + t_atm + Air temp lowest atmospheric level. + + + q_atm_in + q_atm_in + Mixing ratio at lowest atmospheric level (kg/kg). + + + u_atm + u_atm + Zonal wind velocity at lowest atmospheric level. + + + v_atm + v_atm + Meridional wind velocity at lowest atmospheric level. + + + p_atm + p_atm + Pressure lowest atmospheric level. + + + z_atm + z_atm + Height lowest atmospheric level. + + + p_surf + p_surf + Pressure at the Earth's surface + + + t_surf + t_surf + Temp at the Earth's surface + + + t_ca + t_ca + Air temp at the canopy + + + q_surf + q_surf + Mixing ratio at the Earth's surface (kg/kg) + + + u_surf + u_surf + Zonal wind velocity at the Earth's surface + + + v_surf + v_surf + Meridional wind velocity at the Earth's surface + + + rough_mom + rough_mom + Momentum roughness length + + + rough_heat + rough_heat + Heat roughness length + + + rough_moist + rough_moist + + + rough_scale + rough_scale + Scale factor used to topographic roughness calculation + + + gust + gust + + + flux_t + flux_t + Sensible heat flux + + + flux_q + flux_q + Evaporative water flux + + + flux_r + flux_r + Radiative energy flux + + + flux_u + flux_u + Zonal momentum flux + + + flux_v + flux_v + Meridional momentum flux + + + cd_m + cd_m + Momentum exchange coefficient + + + cd_t + cd_t + + + cd_q + cd_q + + + w_atm + w_atm + Absolute wind at the lowest atmospheric level + + + u_star + u_star + Turbulent velocity scale + + + b_star + b_star + Turbulent buoyant scale + + + q_star + q_star + Turbulent moisture scale + + + thv_atm + thv_atm + + + thv_surf + thv_surf + + + dhdt_surf + dhdt_surf + Sensible heat flux temperature sensitivity + + + dedt_surf + dedt_surf + Moisture flux temperature sensitivity + + + dedq_surf + dedq_surf + Moisture flux humidity sensitivity + + + drdt_surf + drdt_surf + Radiative energy flux temperature sensitivity + + + dhdt_atm + dhdt_atm + Derivative of sensible heat flux over temp at the lowest + + + dedq_atm + dedq_atm + Derivative of water vapor flux over temp at the lowest atmos level + + + dtaudu_atm + dtaudu_atm + Derivative of zonal wind stress with respect to the lowest level + + + dtaudv_atm + dtaudv_atm + Derivative of meridional wind stress with respect to the lowest + + + dt + dt + + + land + land + Indicates where land exists (.TRUE. if exchange cell is on land + + + seawater + seawater + Indicates where liquid ocean water exists + + + avail + avail + + + + + + +avail + + +.TRUE. where the exchange cell is active + + + +gust + + +Gustiness factor + + + +cd_q + + +Moisture exchange coefficient + + + +rough_moist + + +Moisture roughness length + + + +dt + + +Time step (it is not used presently) + + + + + + + + + subroutine, public + subroutine, public surface_flux_mod::surface_flux_init + + surface_flux_init + +Initialization of the surface flux modulereads the nml. + + + + + + + + subroutine + subroutine surface_flux_mod::ncar_ocean_fluxes + (u_del, t, ts, q, qs, z, avail, cd, ch, ce, ustar, bstar) + ncar_ocean_fluxes + + u_del + u_del + + + t + t + + + ts + ts + + + q + q + + + qs + qs + + + z + z + + + avail + avail + + + cd + cd + + + ch + ch + + + ce + ce + + + ustar + ustar + + + bstar + bstar + + +Over-ocean fluxes following Large and Yeager (used in NCAR models) ! + +Original code: GFDL.Climate.Model.Info@noaa.gov <br > Update Jul2007: GFDL.Climate.Model.Info@noaa.gov (ch and ce exchange coeff bugfix) + + + + + + subroutine + subroutine surface_flux_mod::ncar_ocean_fluxes_multilevel + (u_del, t, ts, q, qs, zu, zt, zq, avail, cd, ch, ce, ustar, bstar) + ncar_ocean_fluxes_multilevel + + u_del + u_del + + + t + t + + + ts + ts + + + q + q + + + qs + qs + + + zu + zu + + + zt + zt + + + zq + zq + + + avail + avail + + + cd + cd + + + ch + ch + + + ce + ce + + + ustar + ustar + + + bstar + bstar + + +Over-ocean fluxes following Large and Yeager (used in NCAR models) ! + +Original code: Multi-level capable LY2004, R. Dussin 2020 <br > + + + + + + subroutine + subroutine surface_flux_mod::iter_monin_obukhov_ocean + (z_atm, u_atm, v_atm, w_atm, thv_atm, q_atm, u_surf, v_surf, thv_surf, q_surf0, rough_mom, rough_heat, rough_moist, cd_m, cd_t, cd_q, u_star, b_star, avail, seawater) + iter_monin_obukhov_ocean + + z_atm + z_atm + Height at the lowest atmospheric level + + + u_atm + u_atm + Zonal wind velocity at the lowest atmospheric level + + + v_atm + v_atm + Meridional wind velocity at the lowest atmospheric level + + + w_atm + w_atm + Absolute wind at the lowest atmospheric level + + + thv_atm + thv_atm + Surface air theta_v + + + q_atm + q_atm + Mixing ratio at lowest atmospheric level (kg/kg) + + + u_surf + u_surf + Zonal wind velocity at the Earth's surface + + + v_surf + v_surf + Meridional wind velocity at the Earth's surface + + + thv_surf + thv_surf + Surface theta_v + + + q_surf0 + q_surf0 + + + rough_mom + rough_mom + Momentum roughness length + + + rough_heat + rough_heat + Heat roughness length + + + rough_moist + rough_moist + Moisture roughness length + + + cd_m + cd_m + Momentum exchange coefficient + + + cd_t + cd_t + Heat exchange coefficient + + + cd_q + cd_q + Moisture exchange coefficient + + + u_star + u_star + Turbulent velocity scale + + + b_star + b_star + + + avail + avail + .TRUE. where the exchange cell is active + + + seawater + seawater + + +Update air-sea flux variables to be consistent with the concurrent atmospheric states. + +Right now, it is only effective when ocean_rough = 'hwrf17', but this can be expanded if necessarily to incorporate other roughness schemies contact: Kun.Gao@noaa.gov; Baoqiang.Xiang@noaa.gov + + +q_surf0 + + +Surface air humidity + + + +b_star + + +Turbulent buoyant scale + + + +seawater + + +Indicates where liquid ocean water exists (.TRUE. if exchange cell is on liquid ocean water) + + + + + + + + + +Module for the calculation of fluxes on the exchange grids. + + + + + diff --git a/docs/xml/simple_2coupler__main_8_f90.xml b/docs/xml/simple_2coupler__main_8_f90.xml new file mode 100644 index 00000000..aec76008 --- /dev/null +++ b/docs/xml/simple_2coupler__main_8_f90.xml @@ -0,0 +1,672 @@ + + + + coupler_main.F90 + + + program + program coupler_main + + coupler_main + + + + + + + + + + subroutine + subroutine coupler_main::coupler_init + + coupler_init + +reads namelist and restart files, initializes all defined exchange grids and all boundary maps + + + + + + + + subroutine + subroutine coupler_main::coupler_end + + coupler_end + +Finalizes a run and writes restart files. + + + + + + + + subroutine + subroutine coupler_main::coupler_chksum + (id, timestep) + coupler_chksum + + id + id + + + timestep + timestep + + +Print out checksums for several atm, land and ice variables. + + + + + + + + +Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90 + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +programcoupler_main + +!----------------------------------------------------------------------- +! +! +!----------------------------------------------------------------------- + +!---F90moduleforOpenMP +useomp_lib + +!---modelcomponentmodules +useatmos_model_mod,only:atmos_model_init,atmos_model_end,& +update_atmos_model_dynamics,& +update_atmos_model_radiation,& +update_atmos_model_down,& +update_atmos_model_up,& +update_atmos_model_state,& +atmos_data_type,& +land_ice_atmos_boundary_type + +useland_model_mod,only:land_model_init,land_model_end,& +update_land_model_fast,& +update_land_model_slow,& +land_data_type,& +atmos_land_boundary_type + +useice_model_mod,only:ice_model_init,ice_model_end,& +update_ice_model_fast,& +update_ice_model_slow,& +ice_data_type,& +atmos_ice_boundary_type +!land_ice_boundary_type + +useflux_exchange_mod,only:flux_exchange_init,& +sfc_boundary_layer,& +flux_down_from_atmos,& +flux_up_to_atmos!,& +!flux_exchange_end!maynotbeused? +!---FMSmodules +usefms +usefmsconstants,only:fmsconstants_init + +!---FMSoldio +#ifdefuse_deprecated_io +usefms_io_mod,only:fms_io_exit!<thiscan'tberemoveduntilfms_ioisnotusedatall +#endif + +implicitnone + +!----------------------------------------------------------------------- + +character(len=128)::version='unknown' +character(len=128)::tag='fmscoupler_simple' + +!----------------------------------------------------------------------- +!----modeldefined-types---- + +type(atmos_data_type)::Atm +type(land_data_type)::Land +type(ice_data_type)::Ice + +type(atmos_land_boundary_type)::Atmos_land_boundary +type(atmos_ice_boundary_type)::Atmos_ice_boundary +type(land_ice_atmos_boundary_type)::Land_ice_atmos_boundary + +!----------------------------------------------------------------------- +!----storageforfluxes---- + +real,allocatable,dimension(:,:)::& +t_surf_atm,albedo_atm,land_frac_atm,dt_t_atm,dt_q_atm,& +flux_u_atm,flux_v_atm,dtaudv_atm,u_star_atm,b_star_atm,& +rough_mom_atm + +!----------------------------------------------------------------------- +!-----coupledmodeltime----- + +type(FmsTime_type)::Time_atmos,Time_init,Time_end,& +Time_step_atmos,Time_step_ocean +integer::num_cpld_calls,num_atmos_calls,nc,na + +!-----coupledmodelinitialdate----- + +integer::date_init(6) +integer::calendar_type=-99 + +!-----timingflags----- + +integer::initClock,mainClock,termClock +integer,parameter::timing_level=1 + +!----------------------------------------------------------------------- + +integer,dimension(6)::current_date=(/0,0,0,0,0,0/)!<Thedatethatthecurrentintegrationstarts +!!with.(Seeforce_date_from_namelist.) +character(len=17)::calendar=''!<Thecalendartypeusedbythecurrentintegration. +!!Validvaluesareconsistentwiththetime_managermodule: +!!'gregorian','julian','noleap',or'thirty_day'. +!!Thevalue'no_calendar'cannotbeusedbecausethe +!!time_manager'sdatefunctionsareused. +!!Allvaluesmustbelowercase. +logical::force_date_from_namelist=.false. +integer::months=0 +integer::days=0 +integer::hours=0 +integer::minutes=0 +integer::seconds=0 +integer::dt_atmos=0 +integer::dt_ocean=0 +integer::atmos_nthreads=1 + +logical::do_chksum=.false. +logical::do_land=.false. +logical::use_hyper_thread=.false. + +namelist/coupler_nml/current_date,calendar,force_date_from_namelist,& +months,days,hours,minutes,seconds,& +dt_atmos,dt_ocean,atmos_nthreads,& +do_chksum,do_land,use_hyper_thread + +!####################################################################### + +callfms_init() +callfms_mpp_init() +initclock=fms_mpp_clock_id('Initialization') +mainclock=fms_mpp_clock_id('Mainloop') +termclock=fms_mpp_clock_id('Termination') +callfms_mpp_clock_begin(initclock) + +callfms_init +callfmsconstants_init +callfms_affinity_init +callfms_gex_init + +callcoupler_init +if(do_chksum)callcoupler_chksum('coupler_init+',0) + +callfms_mpp_clock_end(initclock)!endinitialization +callfms_mpp_clock_begin(mainclock)!beginmainloop + + +!------ocean/slow-iceintegrationloop------ +donc=1,num_cpld_calls +if(do_chksum)callcoupler_chksum('top_of_coupled_loop+',nc) + +!------atmos/fast-land/fast-iceintegrationloop------- +dona=1,num_atmos_calls +if(do_chksum)callcoupler_chksum('top_of_atm_loop+',na) + +time_atmos=time_atmos+time_step_atmos + +callsfc_boundary_layer(real(dt_atmos),Time_atmos,Atm,Land,Ice,& +Land_ice_atmos_boundary) +if(do_chksum)callcoupler_chksum('sfc+',na) + +!---atmosphericdynamicalcore +callupdate_atmos_model_dynamics(atm) +if(do_chksum)callcoupler_chksum('model_dynamics+',na) + +!---atmosphericradiation +callupdate_atmos_model_radiation(land_ice_atmos_boundary,atm) +if(do_chksum)callcoupler_chksum('update_radiation+',na) + +!---atmosphericphyiscalparameterizations-downphase +callupdate_atmos_model_down(land_ice_atmos_boundary,atm) +if(do_chksum)callcoupler_chksum('atmos_model_down+',nc) + +!---exchangefluxesdownfromatmospheretosurface +callflux_down_from_atmos(time_atmos,atm,land,ice,& +land_ice_atmos_boundary,& +atmos_land_boundary,& +atmos_ice_boundary) +if(do_chksum)callcoupler_chksum('flux_down+',nc) + +!---fastphaseland +if(do_land)then +callupdate_land_model_fast(atmos_land_boundary,land) +if(do_chksum)callcoupler_chksum('update_land+',na) +endif + +!---fastphaseice +callupdate_ice_model_fast(atmos_ice_boundary,ice) +if(do_chksum)callcoupler_chksum('update_ice+',na) + +!---exchangefluxesupfromsurfacetoatmosphere +callflux_up_to_atmos(time_atmos,land,ice,land_ice_atmos_boundary) +if(do_chksum)callcoupler_chksum('flux_up+',na) + +!---atmosphericphyiscalparameterizations-upphase +callupdate_atmos_model_up(land_ice_atmos_boundary,atm) +if(do_chksum)callcoupler_chksum('update_atmos_model_up+',na) + +!---updateatmosphericstate +callupdate_atmos_model_state(atm) +if(do_chksum)callcoupler_chksum('update_model_state+',na) + +enddo + +!---slowphaseland +if(do_land)then +callupdate_land_model_slow(atmos_land_boundary,land) +if(do_chksum)callcoupler_chksum('land_slow_diag+',nc) +endif + +!needfluxcalltoputrunoffandp_surfonicegrid +!callflux_land_to_ice(Time_atmos,Land,Ice,Land_ice_boundary) + +!---slowphaseiceandproscribedoceanstate +callupdate_ice_model_slow(atmos_ice_boundary,ice) +if(do_chksum)callcoupler_chksum('ice_model_slow+',nc) + +enddo + +!----------------------------------------------------------------------- + +callfms_mpp_clock_end(mainclock) +callfms_mpp_clock_begin(termclock) + +callcoupler_end +callfms_mpp_clock_end(termclock) + +callfms_end + +!----------------------------------------------------------------------- + +contains + +!####################################################################### + +subroutinecoupler_init + +integer::total_days,total_seconds,ierr,io +integer::n,gnlon,gnlat +integer::date(6),flags +type(fmstime_type)::run_length +character(len=9)::month +logical::use_namelist + +character(len=:),dimension(:),allocatable::restart_file +integer::time_stamp_unit +integer::ascii_unit + +logical,allocatable,dimension(:,:)::mask +real,allocatable,dimension(:,:)::glon_bnd,glat_bnd +!----------------------------------------------------------------------- +!-----initializationtimingidentifiers---- + +!-----readnamelist------- +!-----forbackwardscompatibiltyreadfromfilecoupler.nml----- + +read(fms_mpp_input_nml_file,nml=coupler_nml,iostat=io) +ierr=fms_check_nml_error(io,'coupler_nml') + +!-----writenamelisttologfile----- + +callfms_write_version_number(version,tag) +if(fms_mpp_pe()==fms_mpp_root_pe())write(fms_mpp_stdlog(),nml=coupler_nml) + +!-----allocateandsetthepelist(totheglobalpelist)----- +allocate(atm%pelist(fms_mpp_npes())) +callfms_mpp_get_current_pelist(atm%pelist) + +!-----readrestartfile----- + +if(fms2_io_file_exists('INPUT/coupler.res'))then +callfms2_io_ascii_read('INPUT/coupler.res',restart_file) +read(restart_file(1),*)calendar_type +read(restart_file(2),*)date_init +read(restart_file(3),*)date +deallocate(restart_file) +else +force_date_from_namelist=.true. +endif + +!-----usenamelistvalue(eithernorestartoroverrideflagon)--- + +if(force_date_from_namelist)then + +if(sum(current_date)<=0)then +callfms_error_mesg('programcoupler',& +'nonamelistvalueforcurrent_date',fatal) +else +date=current_date +endif + +!-----overridecalendartypewithnamelistvalue----- + +selectcase(fms_mpp_uppercase(trim(calendar))) +case('GREGORIAN') +calendar_type=gregorian +case('JULIAN') +calendar_type=julian +case('NOLEAP') +calendar_type=noleap +case('THIRTY_DAY') +calendar_type=thirty_day_months +case('NO_CALENDAR') +calendar_type=no_calendar +casedefault +callfms_mpp_error(fatal,'COUPLER_MAIN:coupler_nmlentrycalendarmust'//& +'beoneofGREGORIAN|JULIAN|NOLEAP|THIRTY_DAY|NO_CALENDAR.') +endselect + +endif + +callfms_time_manager_set_calendar_type(calendar_type) + +!-----writecurrent/initialdateactuallyusedtologfilefile----- + +if(fms_mpp_pe()==fms_mpp_root_pe())then +write(fms_mpp_stdlog(),16)date(1),trim(fms_time_manager_month_name(date(2))),date(3:6) +endif + +16format('currentdateused=',i4,1x,a,2i3,2(':',i2.2),'gmt') + +!---settingaffinity +!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads) +!$callomp_set_num_threads(atmos_nthreads) + +!----------------------------------------------------------------------- +!------initializediagnosticsmanager------ + +callfms_diag_init + +!-----alwaysoverrideinitial/basedatewithdiag_managervalue----- + +callfms_diag_get_base_date(date_init(1),date_init(2),date_init(3),& +date_init(4),date_init(5),date_init(6)) + +!-----usecurrentdateifnobasedate------ + +if(date_init(1)==0)date_init=date + +!-----setinitialandcurrenttimetypes------ + +time_init=fms_time_manager_set_date(date_init(1),date_init(2),date_init(3),& +date_init(4),date_init(5),date_init(6)) + +time_atmos=fms_time_manager_set_date(date(1),date(2),date(3),& +date(4),date(5),date(6)) + +!----------------------------------------------------------------------- +!-----computetheendingtime(computedaysineachmonthfirst)----- +! +!(NOTE:ifrunlengthinmonthsthenstartingdaymustbe<=28) + +if(months>0.and.date(3)>28)& +callfms_error_mesg('programcoupler',& +'ifrunlengthinmonthsthenstartingdaymustbe<=28',fatal) + +time_end=time_atmos +total_days=0 +don=1,months +total_days=total_days+fms_time_manager_days_in_month(time_end) +time_end=time_atmos+fms_time_manager_set_time(0,total_days) +enddo + +total_days=total_days+days +total_seconds=hours*3600+minutes*60+seconds +run_length=fms_time_manager_set_time(total_seconds,total_days) +time_end=time_atmos+run_length + +!NeedtopassTime_endintodiag_managerformultiplethreadcase. +callfms_diag_set_time_end(time_end) + + +!----------------------------------------------------------------------- +!-----writetimestamps(forstarttimeandendtime)------ +if(fms_mpp_pe().EQ.fms_mpp_root_pe())& +open(newunit=time_stamp_unit,file='time_stamp.out',status='replace',form='formatted') + +month=fms_time_manager_month_name(date(2)) +if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) + +callfms_time_manager_get_date(time_end,date(1),date(2),date(3),& +date(4),date(5),date(6)) +month=fms_time_manager_month_name(date(2)) +if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) + +if(fms_mpp_pe().EQ.fms_mpp_root_pe())close(time_stamp_unit) + +20format(6i4,2x,a3) + +!----------------------------------------------------------------------- +!-----computethetimesteps------ + +time_step_atmos=fms_time_manager_set_time(dt_atmos,0) +time_step_ocean=fms_time_manager_set_time(dt_ocean,0) +num_cpld_calls=run_length/time_step_ocean +num_atmos_calls=time_step_ocean/time_step_atmos + +!----------------------------------------------------------------------- +!-------------------someerrorchecks--------------------------------- + +!-----initialtimecannotbegreaterthancurrenttime------- + +if(time_init>time_atmos)callfms_error_mesg('programcoupler',& +'initialtimeisgreaterthancurrenttime',fatal) + +!-----makesurerunlengthisamultipleofoceantimestep------ + +if(num_cpld_calls*time_step_ocean/=run_length)& +callfms_error_mesg('programcoupler',& +'runlengthmustbemultipleofoceantimestep',fatal) + +!----makesurecpldtimestepisamultipleofatmostimestep---- + +if(num_atmos_calls*time_step_atmos/=time_step_ocean)& +callfms_error_mesg('programcoupler',& +'atmostimestepisnotamultipleoftheoceantimestep',fatal) + + +!------initializecomponentmodels------ + +callatmos_model_init(atm,time_init,time_atmos,time_step_atmos,& +.false.)!do_concurrent_radiation + +callfms_mpp_domains_get_global_domain(atm%Domain,xsize=gnlon,ysize=gnlat) +allocate(glon_bnd(gnlon+1,gnlat+1),glat_bnd(gnlon+1,gnlat+1)) +callfms_mpp_domains_set_domain_symmetry(atm%Domain,.true.) +callfms_mpp_domains_global_field(atm%Domain,atm%lon_bnd,glon_bnd,position=corner) +callfms_mpp_domains_global_field(atm%Domain,atm%lat_bnd,glat_bnd,position=corner) +callfms_mpp_domains_set_domain_symmetry(atm%Domain,.false.) + +callland_model_init(atmos_land_boundary,land,& +time_init,time_atmos,time_step_atmos,time_step_ocean,& +#ifdefLAND_LAD +glon_bnd,glat_bnd,atmos_domain=atm%Domain) +#else +glon_bnd,glat_bnd,domain_in=atm%Domain) +#endif +callice_model_init(ice,time_init,time_atmos,time_step_atmos,time_step_ocean,& +glon_bnd,glat_bnd,atmos_domain=atm%Domain) + +!------initializedata_override----- +callfms_data_override_init(atm_domain_in=atm%domain) +callfms_data_override_init(ice_domain_in=ice%domain) +callfms_data_override_init(land_domain_in=land%domain) + +!------------------------------------------------------------------------ +!----setupallocatablestorageforfluxesexchangedbetweenmodels---- +!----uselocalgrids----- + +callflux_exchange_init(time_atmos,atm,land,ice,& +!!!!!atmos_land_boundary,& +atmos_ice_boundary,& +land_ice_atmos_boundary) + +!----------------------------------------------------------------------- +!----openandclosedummyfileinrestartdirtocheckifdirexists-- +if(fms_mpp_pe().EQ.fms_mpp_root_pe())then +open(newunit=ascii_unit,file='RESTART/file',status='replace',form='formatted') +close(ascii_unit,status="delete") +endif + +!----------------------------------------------------------------------- + +endsubroutinecoupler_init + +!####################################################################### +subroutinecoupler_end + +integer::date(6) +integer::restart_unit +!----------------------------------------------------------------------- + +!-----computecurrentdate------ + +callfms_time_manager_get_date(time_atmos,date(1),date(2),date(3),& +date(4),date(5),date(6)) + +!-----checktimeversusexpectedendingtime---- + +if(time_atmos/=time_end)callfms_error_mesg('programcoupler',& +'finaltimedoesnotmatchexpectedendingtime',warning) + +!-----writerestartfile------ + +if(fms_mpp_pe()==fms_mpp_root_pe())then +open(newunit=restart_unit,file='RESTART/coupler.res',status='replace',form='formatted') +write(restart_unit,'(i6,8x,a)')calendar_type,& +'(Calendar:no_calendar=0,thirty_day_months=1,julian=2,gregorian=3,noleap=4)' + +write(restart_unit,'(6i6,8x,a)')date_init,& +'Modelstarttime:year,month,day,hour,minute,second' +write(restart_unit,'(6i6,8x,a)')date,& +'Currentmodeltime:year,month,day,hour,minute,second' +close(restart_unit) +endif + + +!-----finalizemodelcomponents,andoutputofdiagnosticfields---- +callatmos_model_end(atm) +callland_model_end(atmos_land_boundary,land) +callice_model_end(ice) + +callfms_diag_end(time_atmos) +#ifdefuse_deprecated_io +callfms_io_exit +#endif + +!callflux_exchange_end(Atm) + + +!----------------------------------------------------------------------- + +endsubroutinecoupler_end + +subroutinecoupler_chksum(id,timestep) + +character(len=*),intent(in)::id +integer,intent(in)::timestep + +type::tracer_ind_type +integer::atm,ice,lnd!indicesofthetracerintherespectivemodels +endtypetracer_ind_type +integer::n_atm_tr,n_lnd_tr,n_exch_tr +integer::n_atm_tr_tot,n_lnd_tr_tot +integer::i,tr,n,m,outunit +type(tracer_ind_type),allocatable::tr_table(:) +character(32)::tr_name + +callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,& +num_prog=n_atm_tr) +callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,& +num_prog=n_lnd_tr) + +!Assemblethetableoftracernumbertranslationbymatchingnamesof +!prognostictracersintheatmosphereandsurfacemodels;skipallatmos. +!tracersthathavenocorrespondingsurfacetracers. +allocate(tr_table(n_atm_tr)) +n=1 +doi=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) +tr_table(n)%atm=i +tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) +tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) +if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)n=n+1 +enddo +n_exch_tr=n-1 + +100FORMAT("CHECKSUM::",a32,"=",z20) +101FORMAT("CHECKSUM::",a16,a,'%',a,"=",z20) + + +outunit=fms_mpp_stdout() +write(outunit,*)'BEGINCHECKSUM(Atm)::',id,timestep +write(outunit,100)'atm%t_bot',fms_mpp_chksum(atm%t_bot) +write(outunit,100)'atm%z_bot',fms_mpp_chksum(atm%z_bot) +write(outunit,100)'atm%p_bot',fms_mpp_chksum(atm%p_bot) +write(outunit,100)'atm%u_bot',fms_mpp_chksum(atm%u_bot) +write(outunit,100)'atm%v_bot',fms_mpp_chksum(atm%v_bot) +write(outunit,100)'atm%p_surf',fms_mpp_chksum(atm%p_surf) +write(outunit,100)'atm%gust',fms_mpp_chksum(atm%gust) +dotr=1,n_exch_tr +n=tr_table(tr)%atm +if(n/=no_tracer)then +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +write(outunit,100)'atm%'//trim(tr_name),fms_mpp_chksum(atm%tr_bot(:,:,n)) +endif +enddo + +write(outunit,100)'ice%t_surf',fms_mpp_chksum(ice%t_surf) +write(outunit,100)'ice%rough_mom',fms_mpp_chksum(ice%rough_mom) +write(outunit,100)'ice%rough_heat',fms_mpp_chksum(ice%rough_heat) +write(outunit,100)'ice%rough_moist',fms_mpp_chksum(ice%rough_moist) +write(outunit,*)'STOPCHECKSUM(Atm)::',id,timestep + +deallocate(tr_table) + + +endsubroutinecoupler_chksum + + + +!####################################################################### + +endprogramcoupler_main + + + + + diff --git a/docs/xml/simple_2flux__exchange_8_f90.xml b/docs/xml/simple_2flux__exchange_8_f90.xml new file mode 100644 index 00000000..8c72aa61 --- /dev/null +++ b/docs/xml/simple_2flux__exchange_8_f90.xml @@ -0,0 +1,1240 @@ + + + + flux_exchange.F90 + flux_exchange_mod + +Routines to handle flux exchanges through exchange grids for the simple coupler. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** +moduleflux_exchange_mod + +!----------------------------------------------------------------------- +!!Components +useatmos_model_mod,only:atmos_data_type,land_ice_atmos_boundary_type +useland_model_mod,only:land_data_type,atmos_land_boundary_type +useice_model_mod,only:ice_data_type,atmos_ice_boundary_type +#ifndefuse_AM3_physics +useatmos_cmip_diag_mod,only:register_cmip_diag_field_2d +#endif +usesurface_flux_mod,only:surface_flux,surface_flux_init + +!!FMS +usefms +usefmsconstants,only:rdgas,rvgas,cp_air,hlv,hlf,pi + +implicitnone +private + +public::flux_exchange_init,& +sfc_boundary_layer,& +flux_down_from_atmos,& +flux_up_to_atmos,& +flux_exchange_end + +!----------------------------------------------------------------------- +character(len=128)::version='$Id$' +character(len=128)::tag='$Name$' + +!----------------------------------------------------------------------- +!--------namelist(fordiagnostics)------ + +character(len=14),parameter::mod_name='flux' + +integer::id_drag_moist,id_drag_heat,id_drag_mom,& +id_rough_moist,id_rough_heat,id_rough_mom,& +id_u_star,id_b_star,id_q_star,id_u_flux,id_v_flux,& +id_t_surf,id_t_flux,id_q_flux,id_r_flux,& +id_t_atm,id_u_atm,id_v_atm,id_wind,& +id_thv_atm,id_thv_surf,& +id_t_ref,id_rh_ref,id_u_ref,id_v_ref,id_q_ref,& +id_del_h,id_del_m,id_del_q,id_albedo,id_gust,& +id_t_ca,id_q_surf,id_q_atm,id_z_atm,id_p_atm,& +id_land_mask,id_ice_mask,id_rough_scale,& +id_albedo_vis_dir,id_albedo_nir_dir,& +id_albedo_vis_dif,id_albedo_nir_dif + +!t_ref(tas),u_ref,v_ref,t_surf,id_wind(check) +!v_flux(windstress?check) +!q_ref(huss),t_flux(hfss) + +!Atm%slpcanbesavedaspsl + +!probablydon'tneedid_tos,id_tslsibutcheckdatarequest + +!lgsid'sforcmipspecificfieldsforaquaplanet +integer::id_tas,id_uas,id_vas,id_ts,id_psl,& +id_sfcWind,id_tauu,id_tauv,& +id_hurs,id_huss,id_evspsbl,id_hfls,id_hfss,& +!id_sftlf,id_tos,id_tslsi,id_sic,& +id_height2m,id_height10m + +logical::first_static=.true. +logical::do_init=.true. +logical::do_read_nml=.true. + +!indexintracerarrayforwatervapor +integer::isphum,n_atm_tr_tot,n_atm_tr + +!----------------------------------------------------------------------- + +real::z_ref_heat=2.,& +z_ref_mom=10. + +logical::use_existing_grid_spec=.false. +logical::all_ocean=.true. +logical::all_land=.false.!note:ifbothall_ocean=all_land=.true. +!thenall_ocean=.true.willbeused + +namelist/flux_exchange_nml/z_ref_heat,z_ref_mom,& +use_existing_grid_spec,& +all_ocean,all_land + +!----------------------------------------------------------------------- + +!----gridindices---- + +integer::is,ie,js,je + +!----allocatablemodulestorage------ + +real,allocatable,dimension(:,:)::t_surf,t_ca,q_surf,p_surf + +real,allocatable,dimension(:,:)::e_t_n,f_t_delt_n,& +e_q_n,f_q_delt_n + +real,allocatable,dimension(:,:)::dhdt_surf,dedt_surf,dedq_surf,& +drdt_surf,dhdt_atm,dedq_atm,& +flux_t,flux_q,flux_lw + +real,allocatable,dimension(:,:)::flux_u,flux_v,drag_q,& +dtaudu_atm,dtaudv_atm + +real,allocatable,dimension(:,:)::cd_t,cd_m,b_star,u_star,wind + +!----------------------------------------------------------------------- + +real,parameter::d622=rdgas/rvgas +real,parameter::d378=1.0-d622 + +logical::used + +!----------------------------------------------------------------------- + +contains + +!####################################################################### + +subroutinesfc_boundary_layer(dt,Time,Atm,Land,Ice,Boundary) + +real,intent(in)::dt +type(fmstime_type),intent(in)::time +type(atmos_data_type),intent(in)::atm +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(land_ice_atmos_boundary_type),intent(inout)::Boundary + +real,dimension(is:ie,js:je)::u_surf,v_surf,rough_heat,rough_moist,& +rough_mom,rough_scale,q_star,cd_q,& +albedo,albedo_vis_dir,albedo_nir_dir,& +albedo_vis_dif,albedo_nir_dif,& +del_m,del_h,del_q,land_frac,& +ref,ref2,t_ref,qs_ref,qs_ref_cmip,& +thv_atm,thv_surf + +logical,dimension(is:ie,js:je)::mask,seawater,avail +real::zrefm,zrefh + + +!----------------------------------------------------------------------- + +if(do_init)callfms_error_mesg('sfc_boundary_layer',& +'mustcallsimple_surface_initfirst',fatal) + +!----------------------------------------------------------------------- +!------allocatestoragealsoneededinflux_up_to_atmos----- + +allocate(e_t_n(is:ie,js:je),& +e_q_n(is:ie,js:je),& +f_t_delt_n(is:ie,js:je),& +f_q_delt_n(is:ie,js:je),& +dhdt_surf(is:ie,js:je),& +dedt_surf(is:ie,js:je),& +dedq_surf(is:ie,js:je),& +drdt_surf(is:ie,js:je),& +dhdt_atm(is:ie,js:je),& +dedq_atm(is:ie,js:je),& +flux_t(is:ie,js:je),& +flux_q(is:ie,js:je),& +flux_lw(is:ie,js:je),& +flux_u(is:ie,js:je),& +flux_v(is:ie,js:je),& +dtaudu_atm(is:ie,js:je),& +dtaudv_atm(is:ie,js:je),& +drag_q(is:ie,js:je),& +t_surf(is:ie,js:je),& +t_ca(is:ie,js:je),& +p_surf(is:ie,js:je),& +q_surf(is:ie,js:je)) + +allocate(cd_t(is:ie,js:je),& +cd_m(is:ie,js:je),& +b_star(is:ie,js:je),& +u_star(is:ie,js:je),& +wind(is:ie,js:je)) + + +u_surf=0.0 +v_surf=0.0 + +!----donotuseifrelaxtime/=0---- +cd_t=0.0 +cd_m=0.0 +cd_q=0.0 + +avail=.true. + +!----atmospherequantities---- + +p_surf=atm%p_surf + +!----icequantities---- + +where(ice%mask) +t_surf=ice%t_surf +t_ca=ice%t_surf!todefinevaluesovertheice/ocean +rough_mom=ice%rough_mom +rough_heat=ice%rough_heat +rough_moist=ice%rough_moist +rough_scale=rough_mom +albedo=ice%albedo +albedo_vis_dir=ice%albedo_vis_dir +albedo_nir_dir=ice%albedo_nir_dir +albedo_vis_dif=ice%albedo_vis_dif +albedo_nir_dif=ice%albedo_nir_dif +land_frac=0.0 +endwhere + +!----landquantities---- + +where(land%mask(:,:,1)) +t_surf=land%t_surf(:,:,1) +t_ca=land%t_ca(:,:,1) +q_surf=land%tr(:,:,1,1) +rough_mom=land%rough_mom(:,:,1) +rough_heat=land%rough_heat(:,:,1) +rough_moist=land%rough_heat(:,:,1) +rough_scale=land%rough_scale(:,:,1) +albedo=land%albedo(:,:,1) +albedo_vis_dir=land%albedo_vis_dir(:,:,1) +albedo_nir_dir=land%albedo_nir_dir(:,:,1) +albedo_vis_dif=land%albedo_vis_dif(:,:,1) +albedo_nir_dif=land%albedo_nir_dif(:,:,1) +land_frac=1.0 +endwhere + +!---computeexplicitfluxesandtendenciesatallavailablepoints--- + +avail=.true. +callsurface_flux_2d(atm%t_bot,atm%tr_bot(:,:,isphum),atm%u_bot,atm%v_bot,& +atm%p_bot,atm%z_bot,& +p_surf,t_surf,t_ca,q_surf,u_surf,v_surf,& +rough_mom,rough_heat,rough_moist,rough_scale,& +atm%gust,& +flux_t,flux_q,flux_lw,flux_u,flux_v,& +cd_m,cd_t,cd_q,wind,& +u_star,b_star,q_star,& +thv_atm,thv_surf,& +dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& +dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& +dt,land%mask(:,:,1),seawater,avail) + +!additionalcalculationtoavoidpassingextra +!argumentoutofsurface_flux(dataduplication) +drag_q=wind*cd_q + +!putrelevantquantitiesontoatmosphericboundary + +boundary%t=t_surf +boundary%albedo=albedo +boundary%albedo_vis_dir=albedo_vis_dir +boundary%albedo_nir_dir=albedo_nir_dir +boundary%albedo_vis_dif=albedo_vis_dif +boundary%albedo_nir_dif=albedo_nir_dif +boundary%rough_mom=rough_mom +boundary%land_frac=land_frac +boundary%u_flux=flux_u +boundary%v_flux=flux_v +boundary%dtaudu=dtaudu_atm +boundary%dtaudv=dtaudv_atm +boundary%u_star=u_star +boundary%b_star=b_star +boundary%q_star=q_star + +!additionalboundaryvariablesforuseinncep-edmf +boundary%shflx=flux_t +boundary%lhflx=flux_q +boundary%wind=wind +boundary%thv_atm=thv_atm +boundary%thv_surf=thv_surf + + +!======================================================================= +!--------------------diagnosticssection------------------------------ + +if(first_static)then +if(id_land_mask>0)used=fms_diag_send_data(id_land_mask,boundary%land_frac,time) +!near-surfaceheights +if(id_height2m>0)used=fms_diag_send_data(id_height2m,z_ref_heat,time) +if(id_height10m>0)used=fms_diag_send_data(id_height10m,z_ref_mom,time) + +first_static=.false. +endif +if(id_wind>0)used=fms_diag_send_data(id_wind,wind,time) +if(id_drag_moist>0)used=fms_diag_send_data(id_drag_moist,cd_q,time) +if(id_drag_heat>0)used=fms_diag_send_data(id_drag_heat,cd_t,time) +if(id_drag_mom>0)used=fms_diag_send_data(id_drag_mom,cd_m,time) +if(id_rough_moist>0)used=fms_diag_send_data(id_rough_moist,rough_moist,time) +if(id_rough_heat>0)used=fms_diag_send_data(id_rough_heat,rough_heat,time) +if(id_rough_mom>0)used=fms_diag_send_data(id_rough_mom,rough_mom,time) +if(id_u_star>0)used=fms_diag_send_data(id_u_star,u_star,time) +if(id_b_star>0)used=fms_diag_send_data(id_b_star,b_star,time) +if(id_q_star>0)used=fms_diag_send_data(id_q_star,q_star,time) +if(id_thv_atm>0)used=fms_diag_send_data(id_thv_atm,thv_atm,time) +if(id_thv_surf>0)used=fms_diag_send_data(id_thv_surf,thv_surf,time) +if(id_t_atm>0)used=fms_diag_send_data(id_t_atm,atm%t_bot,time) +if(id_u_atm>0)used=fms_diag_send_data(id_u_atm,atm%u_bot,time) +if(id_v_atm>0)used=fms_diag_send_data(id_v_atm,atm%v_bot,time) +if(id_q_atm>0)used=fms_diag_send_data(id_q_atm,atm%tr_bot(:,:,isphum),time) +if(id_p_atm>0)used=fms_diag_send_data(id_p_atm,atm%p_bot,time) +if(id_z_atm>0)used=fms_diag_send_data(id_z_atm,atm%z_bot,time) +if(id_gust>0)used=fms_diag_send_data(id_gust,atm%gust,time) +if(id_u_flux>0)used=fms_diag_send_data(id_u_flux,flux_u,time) +if(id_v_flux>0)used=fms_diag_send_data(id_v_flux,flux_v,time) +if(id_albedo>0)used=fms_diag_send_data(id_albedo,albedo,time) +if(id_albedo_vis_dir>0)used=fms_diag_send_data(id_albedo_vis_dir,albedo_vis_dir,time) +if(id_albedo_nir_dir>0)used=fms_diag_send_data(id_albedo_nir_dir,albedo_nir_dir,time) +if(id_albedo_vis_dif>0)used=fms_diag_send_data(id_albedo_vis_dif,albedo_vis_dif,time) +if(id_albedo_nir_dif>0)used=fms_diag_send_data(id_albedo_nir_dif,albedo_nir_dif,time) + +!----icefraction---- +if(id_ice_mask>0)then +where(ice%ice_mask) +ref=1.0 +elsewhere +ref=0.0 +endwhere +used=fms_diag_send_data(id_ice_mask,ref,time) +endif + +!diagnosticsforfieldsatreferencelevel + +if(id_t_ref>0.or.id_rh_ref>0.or.& +id_u_ref>0.or.id_v_ref>0.or.& +id_q_ref>0)then + +zrefm=z_ref_mom +zrefh=z_ref_heat +!----optimizecalculation---- +if(id_t_ref<=0)zrefh=zrefm + +callfms_monin_obukhov_mo_profile(zrefm,zrefh,atm%z_bot,& +rough_mom,rough_heat,rough_moist,& +u_star,b_star,q_star,& +del_m,del_h,del_q) + +!----referencerelativehumidity---- +if(id_rh_ref>0.or.id_q_ref>0.or.id_hurs>0.or.id_huss>0)then +ref=q_surf+(atm%tr_bot(:,:,isphum)-q_surf)*del_q +if(id_q_ref>0)used=fms_diag_send_data(id_q_ref,ref,time) +if(id_huss>0)used=fms_diag_send_data(id_huss,ref,time) + +t_ref=t_ca+(atm%t_bot-t_ca)*del_h +!callescomp(t_ref,qs_ref) +callfms_sat_vapor_pres_compute_qs(t_ref,p_surf,qs_ref,q=ref) +callfms_sat_vapor_pres_compute_qs(t_ref,p_surf,qs_ref_cmip,& +q=ref,es_over_liq_and_ice=.true.) +qs_ref=d622*qs_ref/(p_surf-d378*qs_ref) + +ref=100.*ref/qs_ref +ref2=100.*ref/qs_ref_cmip + +if(id_rh_ref>0)used=fms_diag_send_data(id_rh_ref,ref,time) +if(id_hurs>0)used=fms_diag_send_data(id_hurs,ref2,time) +endif + +!----referencetemperature---- +if(id_t_ref>0)then +ref=t_ca+(atm%t_bot-t_ca)*del_h +used=fms_diag_send_data(id_t_ref,ref,time) +endif + +!----referenceucomp---- +if(id_u_ref>0.or.id_uas>0)then +ref=u_surf+(atm%u_bot-u_surf)*del_m +used=fms_diag_send_data(id_u_ref,ref,time) +endif +if(id_uas>0)used=fms_diag_send_data(id_uas,ref,time) + +!----referencevcomp---- +if(id_v_ref>0.or.id_vas>0)then +ref=v_surf+(atm%v_bot-v_surf)*del_m +used=fms_diag_send_data(id_v_ref,ref,time) +endif +if(id_vas>0)used=fms_diag_send_data(id_vas,ref,time) + +!-------reference-levelabsolutewind----------- +if(id_sfcwind>0)then +ref=sqrt((u_surf+(atm%u_bot-u_surf)*del_m)**2& ++(v_surf+(atm%v_bot-v_surf)*del_m)**2) +if(id_sfcwind>0)used=fms_diag_send_data(id_sfcwind,ref,time) +endif + + +!----interpfactors---- +if(id_del_h>0)used=fms_diag_send_data(id_del_h,del_h,time) +if(id_del_m>0)used=fms_diag_send_data(id_del_m,del_m,time) +if(id_del_q>0)used=fms_diag_send_data(id_del_q,del_q,time) + +endif + +!topographicroughnessscale +if(id_rough_scale>0)then +ref=(log(atm%z_bot/rough_mom+1)/log(atm%z_bot/rough_scale+1))**2 +used=fms_diag_send_data(id_rough_scale,ref,time) +endif + +!lgslinebelowisfromatm_land_ice_flux_exchange.F90whatshoulddiag_atmbe? +!if(id_tas>0)used=fms_diag_send_data(id_tas,diag_atm,Time) +if(id_tas>0)used=fms_diag_send_data(id_tas,t_ref,time) +if(id_psl>0)used=fms_diag_send_data(id_psl,atm%slp,time) + + +!======================================================================= + +endsubroutinesfc_boundary_layer + +!####################################################################### + +subroutineflux_down_from_atmos(Time,Atm,Land,Ice,& +Atmos_boundary,Land_boundary,Ice_boundary) + +type(fmstime_type),intent(in)::time +type(atmos_data_type),intent(in)::atm +type(land_data_type),intent(in)::land +type(ice_data_type),intent(in)::ice +type(land_ice_atmos_boundary_type),intent(in)::Atmos_boundary +type(atmos_land_boundary_type),intent(inout)::Land_boundary +type(atmos_ice_boundary_type),intent(inout)::Ice_boundary + +!real,dimension(:,:),intent(out)::dt_t_atm,dt_q_atm + +real,dimension(is:ie,js:je)::gamma,dtmass,delta_t,delta_q,& +dflux_t,dflux_q,flux,deriv,dt_t_surf + +real,parameter::CP_INV=1./cp_air + +!updatestressesusingatmosdelta's + +flux_u=flux_u+atm%Surf_Diff%delta_u*dtaudu_atm +flux_v=flux_v+atm%Surf_Diff%delta_v*dtaudv_atm + +!-----computenetlongwaveflux(down-up)----- +!(note:lwupalreadyinflux_lw) + +flux_lw=atm%flux_lw-flux_lw + +!-----adjustfluxesforimplicitdependenceonatmosphere---- + +dtmass=atm%Surf_Diff%dtmass +delta_t=atm%Surf_Diff%delta_t +delta_q=atm%Surf_Diff%delta_tr(:,:,isphum) +dflux_t=atm%Surf_Diff%dflux_t +dflux_q=atm%Surf_Diff%dflux_tr(:,:,isphum) + +!temperature + +gamma=1./(1.0-dtmass*(dflux_t+dhdt_atm*cp_inv)) +e_t_n=dtmass*dhdt_surf*cp_inv*gamma +f_t_delt_n=(delta_t+dtmass*flux_t*cp_inv)*gamma + +flux_t=flux_t+dhdt_atm*f_t_delt_n +dhdt_surf=dhdt_surf+dhdt_atm*e_t_n + +!moisture + +gamma=1./(1.0-dtmass*(dflux_q+dedq_atm)) +e_q_n=dtmass*(dedt_surf+dedq_surf)*gamma +f_q_delt_n=(delta_q+dtmass*flux_q)*gamma + +flux_q=flux_q+dedq_atm*f_q_delt_n +dedt_surf=dedt_surf+dedq_atm*e_q_n +dedq_surf=dedq_surf+dedq_atm*e_q_n + +!----------------------------------------------------------------------- +!----outputfieldsonthelandgrid------- + +land_boundary%lprec(:,:,1)=0.0 +land_boundary%fprec(:,:,1)=0.0 + +where(land%mask(:,:,1)) +land_boundary%t_flux(:,:,1)=flux_t +land_boundary%tr_flux(:,:,1,1)=flux_q +land_boundary%sw_flux(:,:,1)=atm%flux_sw +land_boundary%sw_flux_down_vis_dir(:,:,1)=atm%flux_sw_down_vis_dir +land_boundary%sw_flux_down_total_dir(:,:,1)=atm%flux_sw_down_total_dir +land_boundary%sw_flux_down_vis_dif(:,:,1)=atm%flux_sw_down_vis_dif +land_boundary%sw_flux_down_total_dif(:,:,1)=atm%flux_sw_down_total_dif +land_boundary%lw_flux(:,:,1)=flux_lw +land_boundary%dhdt(:,:,1)=dhdt_surf +!Land_boundary%dedt(:,:,1)=dedt_surf +land_boundary%dfdtr(:,:,1,1)=dedq_surf +land_boundary%drdt(:,:,1)=drdt_surf +land_boundary%lprec(:,:,1)=atm%lprec +land_boundary%fprec(:,:,1)=atm%fprec +!Land_boundary%drag_q(:,:,1)=drag_q +land_boundary%p_surf(:,:,1)=p_surf + +!----------------------------------------------------------------------- +!----outputfieldsontheicegrid------- + +elsewhere +ice_boundary%t_flux=flux_t +ice_boundary%q_flux=flux_q +ice_boundary%sw_flux=atm%flux_sw +ice_boundary%lw_flux=flux_lw +ice_boundary%dhdt=dhdt_surf +ice_boundary%dedt=dedt_surf +ice_boundary%drdt=drdt_surf +ice_boundary%lprec=atm%lprec +ice_boundary%fprec=atm%fprec +ice_boundary%u_star=atmos_boundary%u_star +ice_boundary%coszen=atm%coszen +endwhere + +if(associated(land_boundary%drag_q))then +where(land%mask(:,:,1))land_boundary%drag_q(:,:,1)=drag_q +endif +if(associated(land_boundary%lwdn_flux))then +where(land%mask(:,:,1))land_boundary%lwdn_flux(:,:,1)=atm%flux_lw +endif +if(associated(land_boundary%cd_m))then +where(land%mask(:,:,1))land_boundary%cd_m(:,:,1)=cd_m +endif +if(associated(land_boundary%cd_t))then +where(land%mask(:,:,1))land_boundary%cd_t(:,:,1)=cd_t +endif +if(associated(land_boundary%bstar))then +where(land%mask(:,:,1))land_boundary%bstar(:,:,1)=b_star +endif +if(associated(land_boundary%ustar))then +where(land%mask(:,:,1))land_boundary%ustar(:,:,1)=u_star +endif +if(associated(land_boundary%wind))then +where(land%mask(:,:,1))land_boundary%wind(:,:,1)=wind +endif +if(associated(land_boundary%z_bot))then +where(land%mask(:,:,1))land_boundary%z_bot(:,:,1)=atm%z_bot +endif + +deallocate(flux_u,flux_v,dtaudu_atm,dtaudv_atm) + +!----------------------------------------------------------------------- +!--------------------diagnosticssection------------------------------ + +if(id_u_flux>0)used=fms_diag_send_data(id_u_flux,atmos_boundary%u_flux,time) +if(id_tauu>0)used=fms_diag_send_data(id_tauu,-atmos_boundary%u_flux,time) +if(id_v_flux>0)used=fms_diag_send_data(id_v_flux,atmos_boundary%v_flux,time) +if(id_tauv>0)used=fms_diag_send_data(id_tauv,-atmos_boundary%v_flux,time) + +!----------------------------------------------------------------------- + +endsubroutineflux_down_from_atmos + +!####################################################################### + +subroutineflux_up_to_atmos(Time,Land,Ice,Boundary) + +type(FmsTime_type),intent(in)::Time +type(land_data_type),intent(inout)::Land +type(ice_data_type),intent(inout)::Ice +type(land_ice_atmos_boundary_type),intent(inout)::Boundary + + +real,dimension(is:ie,js:je)::t_surf_new,dt_t_surf,& +q_surf_new,dt_q_surf,& +delta_t_n,delta_q_n,& +t_ca_new,dt_t_ca + +!computesurfacetemperaturechange + +where(land%mask(:,:,1)) +t_surf_new=land%t_surf(:,:,1) +t_ca_new=land%t_ca(:,:,1) +elsewhere +t_surf_new=ice%t_surf +t_ca_new=t_surf_new +endwhere + +!???????shouldthisbedoneinlandmodel?????? +callfms_sat_vapor_pres_escomp(t_surf_new,q_surf_new) +where(land%mask(:,:,1)) +q_surf_new=land%tr(:,:,1,1) +elsewhere +q_surf_new=d622*q_surf_new/(p_surf-d378*q_surf_new) +endwhere + +dt_t_ca=t_ca_new-t_ca!changesinnear-surfaceT +dt_t_surf=t_surf_new-t_surf!changesinradiativeT +dt_q_surf=q_surf_new-q_surf!changesinnear-surfaceq + +!adjustfluxesandatmosphericincrementsfor +!implicitdependenceonsurfacetemperature + +flux_t=flux_t+dt_t_ca*dhdt_surf +flux_lw=flux_lw-dt_t_surf*drdt_surf +boundary%dt_t=f_t_delt_n+dt_t_ca*e_t_n + +where(land%mask(:,:,1)) +flux_q=flux_q+dt_q_surf*dedq_surf +boundary%dt_tr(:,:,isphum)=f_q_delt_n+dt_q_surf*e_q_n +elsewhere +flux_q=flux_q+dt_t_surf*dedt_surf +boundary%dt_tr(:,:,isphum)=f_q_delt_n+dt_t_surf*e_q_n +endwhere + + +!======================================================================= +!--------------------diagnosticssection------------------------------ + +if(id_t_surf>0)used=fms_diag_send_data(id_t_surf,t_surf_new,time) +if(id_t_ca>0)used=fms_diag_send_data(id_t_ca,t_ca_new,time) +if(id_q_surf>0)used=fms_diag_send_data(id_q_surf,q_surf_new,time) +if(id_t_flux>0)used=fms_diag_send_data(id_t_flux,flux_t,time) +if(id_r_flux>0)used=fms_diag_send_data(id_r_flux,flux_lw,time) +if(id_q_flux>0)used=fms_diag_send_data(id_q_flux,flux_q,time) +if(id_evspsbl>0)used=fms_diag_send_data(id_evspsbl,flux_q,time) +if(id_hfls>0)used=fms_diag_send_data(id_hfls,hlv*flux_q,time) +if(id_hfss>0)used=fms_diag_send_data(id_hfss,flux_t,time) +if(id_ts>0)used=fms_diag_send_data(id_ts,t_surf_new,time) + +callfms_sum_diag_integral_field('evap',flux_q*86400.) + +!======================================================================= +!----deallocatemodulestorage---- + + +deallocate(f_t_delt_n,f_q_delt_n,e_t_n,e_q_n) +deallocate(dhdt_surf,dedt_surf,dedq_surf,& +drdt_surf,dhdt_atm,dedq_atm,& +flux_t,flux_q,flux_lw,drag_q) +deallocate(t_surf,p_surf,t_ca,q_surf) +deallocate(cd_t,cd_m,b_star,u_star,wind) + +!----------------------------------------------------------------------- + +endsubroutineflux_up_to_atmos + +!####################################################################### + +subroutineflux_exchange_init(Time,Atm,Land,Ice,& +!atmos_land_boundary,& +atmos_ice_boundary,& +land_ice_atmos_boundary) + +type(fmstime_type),intent(in)::time +type(atmos_data_type),intent(in)::atm +type(land_data_type),intent(in)::land +type(ice_data_type),intent(in)::ice +!type(atmos_land_boundary_type),intent(inout)::atmos_land_boundary +type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary +type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary + + +integer::j,kd +integer::isc,iec,jsc,jec +real::xx,lat + +!----------------------------------------------------------------------- +!------readnamelist------ + +if(do_read_nml)callread_namelist + +!----------------------------------------------------------------------- +!-----savethegridindices----- + +callfms_mpp_domains_get_compute_domain(atm%Domain,is,ie,js,je) + +!---------writeversionnumberandnamelist------------------ + +callfms_write_version_number(version,tag) +if(fms_mpp_pe()==fms_mpp_root_pe())write(fms_mpp_stdlog(),nml=flux_exchange_nml) + + +callfms_diag_integral_field_init('evap','f6.3') +calldiag_field_init(time,atm%axes(1:2)) + +!-----findoutnumberofatmosphericprognostictracersandindexofspecific +!humidityinthetracertable +callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,& +num_prog=n_atm_tr) +isphum=fms_tracer_manager_get_tracer_index(model_atmos,'sphum') +if(isphum==no_tracer)& +callfms_error_mesg('flux_exchange_mod','CannotfindwatervaporinATMtracertable',fatal) +!----------------------------------------------------------------------- +!------allocateatmos_land_boundary------ + +callfms_mpp_domains_get_compute_domain(land%Domain,isc,iec,jsc,jec) +if(isc/=is.or.iec/=ie.or.jsc/=js.or.jec/=je)& +callfms_error_mesg('flux_exchange_init','landmodel'//& +'domaindoesnotmatchatmospheredomain',fatal) +kd=size(land%mask,3)!mustbe1(shouldcheck) +!allocate(atmos_land_boundary%t_flux(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%q_flux(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%lw_flux(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%sw_flux(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%sw_flux_down_vis_dir(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%sw_flux_down_total_dir(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%sw_flux_down_vis_dif(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%sw_flux_down_total_dif(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%lprec(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%fprec(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%dhdt(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%dedt(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%dedq(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%drdt(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%drag_q(is:ie,js:je,kd)) +!allocate(atmos_land_boundary%p_surf(is:ie,js:je,kd)) + +!------initializeboundaryvalues------ + +!atmos_land_boundary%t_flux=0.0 +!atmos_land_boundary%q_flux=0.0 +!atmos_land_boundary%lw_flux=0.0 +!atmos_land_boundary%sw_flux=0.0 +!atmos_land_boundary%sw_flux_down_vis_dir=0.0 +!atmos_land_boundary%sw_flux_down_total_dir=0.0 +!atmos_land_boundary%sw_flux_down_vis_dif=0.0 +!atmos_land_boundary%sw_flux_down_total_dif=0.0 +!atmos_land_boundary%lprec=0.0 +!atmos_land_boundary%fprec=0.0 +!atmos_land_boundary%dhdt=0.0 +!atmos_land_boundary%dedt=0.0 +!atmos_land_boundary%dedq=0.0 +!atmos_land_boundary%drdt=0.0 +!atmos_land_boundary%drag_q=0.0 +!atmos_land_boundary%p_surf=0.0 + +!----------------------------------------------------------------------- +!------allocateatmosiceboundary------ + +callfms_mpp_domains_get_compute_domain(ice%Domain,isc,iec,jsc,jec) +if(isc/=is.or.iec/=ie.or.jsc/=js.or.jec/=je)& +callfms_error_mesg('flux_exchange_init','icemodel'//& +'domaindoesnotmatchatmospheredomain',fatal) + +allocate(atmos_ice_boundary%u_star(is:ie,js:je)) +allocate(atmos_ice_boundary%t_flux(is:ie,js:je)) +allocate(atmos_ice_boundary%q_flux(is:ie,js:je)) +allocate(atmos_ice_boundary%lw_flux(is:ie,js:je)) +allocate(atmos_ice_boundary%sw_flux(is:ie,js:je)) +allocate(atmos_ice_boundary%lprec(is:ie,js:je)) +allocate(atmos_ice_boundary%fprec(is:ie,js:je)) +allocate(atmos_ice_boundary%dhdt(is:ie,js:je)) +allocate(atmos_ice_boundary%dedt(is:ie,js:je)) +allocate(atmos_ice_boundary%drdt(is:ie,js:je)) +allocate(atmos_ice_boundary%coszen(is:ie,js:je)) + +!------initializeboundaryvalues------ + +atmos_ice_boundary%u_star=0.0 +atmos_ice_boundary%t_flux=0.0 +atmos_ice_boundary%q_flux=0.0 +atmos_ice_boundary%lw_flux=0.0 +atmos_ice_boundary%sw_flux=0.0 +atmos_ice_boundary%lprec=0.0 +atmos_ice_boundary%fprec=0.0 +atmos_ice_boundary%dhdt=0.0 +atmos_ice_boundary%dedt=0.0 +atmos_ice_boundary%drdt=0.0 +atmos_ice_boundary%coszen=0.0 + +!----------------------------------------------------------------------- +!------allocateland-ice-atmosboundary + +allocate(land_ice_atmos_boundary%t(is:ie,js:je)) +allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je)) +allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je)) +allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je)) +allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je)) +allocate(land_ice_atmos_boundary%albedo(is:ie,js:je)) +allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je)) +allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je)) +allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je)) +allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je)) +allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je)) +allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je)) +allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr)) +allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je)) +allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je)) +allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je)) +allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je)) +allocate(land_ice_atmos_boundary%u_star(is:ie,js:je)) +allocate(land_ice_atmos_boundary%b_star(is:ie,js:je)) +allocate(land_ice_atmos_boundary%q_star(is:ie,js:je)) +#ifndefuse_AM3_physics +allocate(land_ice_atmos_boundary%shflx(is:ie,js:je))!miz +allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je))!miz +#endif +allocate(land_ice_atmos_boundary%wind(is:ie,js:je)) +allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je)) +allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je)) +allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je)) +allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je)) + +!------initializeboundaryvalues------ + +land_ice_atmos_boundary%t=273.0 +land_ice_atmos_boundary%t_ref=273.0!cjg:PBLdepthmods +land_ice_atmos_boundary%q_ref=0.0!cjg:PBLdepthmods +land_ice_atmos_boundary%albedo=0.0 +land_ice_atmos_boundary%albedo_vis_dir=0.0 +land_ice_atmos_boundary%albedo_nir_dir=0.0 +land_ice_atmos_boundary%albedo_vis_dif=0.0 +land_ice_atmos_boundary%albedo_nir_dif=0.0 +land_ice_atmos_boundary%land_frac=0.0 +land_ice_atmos_boundary%dt_t=0.0 +land_ice_atmos_boundary%dt_tr=0.0 +land_ice_atmos_boundary%u_flux=0.0 +land_ice_atmos_boundary%v_flux=0.0 +land_ice_atmos_boundary%dtaudu=0.0 +land_ice_atmos_boundary%dtaudv=0.0 +land_ice_atmos_boundary%u_star=0.0 +land_ice_atmos_boundary%b_star=0.0 +land_ice_atmos_boundary%q_star=0.0 +#ifndefuse_AM3_physics +land_ice_atmos_boundary%shflx=0.0 +land_ice_atmos_boundary%lhflx=0.0 +#endif +land_ice_atmos_boundary%wind=0.0 +land_ice_atmos_boundary%thv_atm=0.0 +land_ice_atmos_boundary%thv_surf=0.0 +land_ice_atmos_boundary%rough_mom=0.01 +land_ice_atmos_boundary%frac_open_sea=0.0 + +callsurface_flux_init() +!----------------------------------------------------------------------- + +do_init=.false. + +!----------------------------------------------------------------------- + +endsubroutineflux_exchange_init + +!####################################################################### + +subroutineread_namelist + +integer::ierr,io + +read(fms_mpp_input_nml_file,nml=flux_exchange_nml,iostat=io) +ierr=fms_check_nml_error(io,'flux_exchange_nml') + +do_read_nml=.false. + +endsubroutineread_namelist + +!####################################################################### + +subroutinediag_field_init(Time,atmos_axes) + +type(FmsTime_type),intent(in)::Time +integer,intent(in)::atmos_axes(2) + +integer::iref +character(len=6)::label_zm,label_zh +real,dimension(2)::trange=(/100.,400./),& +vrange=(/-400.,400./),& +frange=(/-0.01,1.01/) +integer::area_id +!----------------------------------------------------------------------- +!initializesdiagnosticfieldsthatmaybeoutputfromthismodule +!(theidnumbersmaybereferencedanywhereinthismodule) +!----------------------------------------------------------------------- + +!------labelsfordiagnostics------- +!(z_ref_mom,z_ref_heatarenamelistvariables) + +iref=int(z_ref_mom+0.5) +if(real(iref)==z_ref_mom)then +write(label_zm,105)iref +if(iref<10)write(label_zm,100)iref +else +write(label_zm,110)z_ref_mom +endif + +iref=int(z_ref_heat+0.5) +if(real(iref)==z_ref_heat)then +write(label_zh,105)iref +if(iref<10)write(label_zh,100)iref +else +write(label_zh,110)z_ref_heat +endif + +100format(i1,'m',3x) +105format(i2,'m',2x) +110format(f4.1,'m') + +!---------initializestaticdiagnosticfields-------------------- + +id_land_mask=& +fms_diag_register_static_field(mod_name,'land_mask',atmos_axes,& +'fractionalamountofland','none',& +range=frange) + +!---------initializediagnosticfields-------------------- + +id_ice_mask=& +fms_diag_register_diag_field(mod_name,'ice_mask',atmos_axes,time,& +'fractionalamountofseaice','none',& +range=frange) + +id_wind=& +fms_diag_register_diag_field(mod_name,'wind',atmos_axes,time,& +'windspeedforfluxcalculations','m/s',& +range=(/0.,vrange(2)/)) + +id_drag_moist=& +fms_diag_register_diag_field(mod_name,'drag_moist',atmos_axes,time,& +'dragcoeffformoisture','none') + +id_drag_heat=& +fms_diag_register_diag_field(mod_name,'drag_heat',atmos_axes,time,& +'dragcoeffforheat','none') + +id_drag_mom=& +fms_diag_register_diag_field(mod_name,'drag_mom',atmos_axes,time,& +'dragcoeffformomentum','none') + +id_rough_moist=& +fms_diag_register_diag_field(mod_name,'rough_moist',atmos_axes,time,& +'surfaceroughnessformoisture','m') + +id_rough_heat=& +fms_diag_register_diag_field(mod_name,'rough_heat',atmos_axes,time,& +'surfaceroughnessforheat','m') + +id_rough_mom=& +fms_diag_register_diag_field(mod_name,'rough_mom',atmos_axes,time,& +'surfaceroughnessformomentum','m') + +id_u_star=& +fms_diag_register_diag_field(mod_name,'u_star',atmos_axes,time,& +'frictionvelocity','m/s') + +id_b_star=& +fms_diag_register_diag_field(mod_name,'b_star',atmos_axes,time,& +'buoyancyscale','m/s2') + +id_q_star=& +fms_diag_register_diag_field(mod_name,'q_star',atmos_axes,time,& +'moisturescale','kgwater/kgair') + +id_thv_atm=& +fms_diag_register_diag_field(mod_name,'thv_atm',atmos_axes,time,& +'surfaceairvirtualpotentialtemperature','K') + +id_thv_surf=& +fms_diag_register_diag_field(mod_name,'thv_surf',atmos_axes,time,& +'surfacevirtualpotentialtemperature','K') + +id_u_flux=& +fms_diag_register_diag_field(mod_name,'tau_x',atmos_axes,time,& +'zonalwindstress','pa') + +id_v_flux=& +fms_diag_register_diag_field(mod_name,'tau_y',atmos_axes,time,& +'meridionalwindstress','pa') + +id_t_surf=& +fms_diag_register_diag_field(mod_name,'t_surf',atmos_axes,time,& +'surfacetemperature','deg_k',& +range=trange) + +id_t_ca=& +fms_diag_register_diag_field(mod_name,'t_ca',atmos_axes,time,& +'canopyairtemperature','deg_k',& +range=trange) + +id_q_atm=& +fms_diag_register_diag_field(mod_name,'q_atm',atmos_axes,time,& +'specifichumidityatbtmlevel','kg/kg') + +id_q_surf=& +fms_diag_register_diag_field(mod_name,'q_surf',atmos_axes,time,& +'surfacespecifichumidity','kg/kg') + +id_z_atm=& +fms_diag_register_diag_field(mod_name,'z_atm',atmos_axes,time,& +'heightofbtmlevel','m') + +id_p_atm=& +fms_diag_register_diag_field(mod_name,'p_atm',atmos_axes,time,& +'pressureatbtmlevel','pa') + +id_gust=& +fms_diag_register_diag_field(mod_name,'gust',atmos_axes,time,& +'gustscale','m/s') + +id_t_flux=& +fms_diag_register_diag_field(mod_name,'shflx',atmos_axes,time,& +'sensibleheatflux','w/m2') + +id_q_flux=& +fms_diag_register_diag_field(mod_name,'evap',atmos_axes,time,& +'evaporationrate','kg/m2/s') + +id_r_flux=& +fms_diag_register_diag_field(mod_name,'lwflx',atmos_axes,time,& +'net(down-up)longwaveflux','w/m2') + +id_t_atm=& +fms_diag_register_diag_field(mod_name,'t_atm',atmos_axes,time,& +'temperatureatbtmlevel','deg_k',& +range=trange) + +id_u_atm=& +fms_diag_register_diag_field(mod_name,'u_atm',atmos_axes,time,& +'uwindcomponentatbtmlevel','m/s',& +range=vrange) + +id_v_atm=& +fms_diag_register_diag_field(mod_name,'v_atm',atmos_axes,time,& +'vwindcomponentatbtmlevel','m/s',& +range=vrange) + +id_t_ref=& +fms_diag_register_diag_field(mod_name,'t_ref',atmos_axes,time,& +'temperatureat'//label_zh,'deg_k',& +range=trange) + +id_rh_ref=& +fms_diag_register_diag_field(mod_name,'rh_ref',atmos_axes,time,& +'relativehumidityat'//label_zh,'percent') + +id_u_ref=& +fms_diag_register_diag_field(mod_name,'u_ref',atmos_axes,time,& +'zonalwindcomponentat'//label_zm,'m/s',& +range=vrange) + +id_v_ref=& +fms_diag_register_diag_field(mod_name,'v_ref',atmos_axes,time,& +'meridionalwindcomponentat'//label_zm,'m/s',& +range=vrange) +id_q_ref=& +fms_diag_register_diag_field(mod_name,'q_ref',atmos_axes,time,& +'specifichumidityat'//trim(label_zh),'kg/kg',missing_value=-1.0) + +id_del_h=& +fms_diag_register_diag_field(mod_name,'del_h',atmos_axes,time,& +'refheightinterpfactorforheat','none') +id_del_m=& +fms_diag_register_diag_field(mod_name,'del_m',atmos_axes,time,& +'refheightinterpfactorformomentum','none') +id_del_q=& +fms_diag_register_diag_field(mod_name,'del_q',atmos_axes,time,& +'refheightinterpfactorformoisture','none') +id_albedo=& +fms_diag_register_diag_field(mod_name,'albedo',atmos_axes,time,& +'surfacealbedo','none') +id_albedo_vis_dir=& +fms_diag_register_diag_field(mod_name,'albedo_vis_dir',atmos_axes,time,& +'VISdirectsurfacealbedo','none') +id_albedo_nir_dir=& +fms_diag_register_diag_field(mod_name,'albedo_nir_dir',atmos_axes,time,& +'NIRdirectsurfacealbedo','none') +id_albedo_vis_dif=& +fms_diag_register_diag_field(mod_name,'albedo_vis_dif',atmos_axes,time,& +'VISdiffusesurfacealbedo','none') +id_albedo_nir_dif=& +fms_diag_register_diag_field(mod_name,'albedo_nir_dif',atmos_axes,time,& +'NIRdiffusesurfacealbedo','none') + +!-------------------------------------------------------------------- +!retrievethediag_manageridfortheareadiagnostic, +!neededforcmorizingvariousdiagnostics. +!-------------------------------------------------------------------- +area_id=fms_diag_get_field_id('dynamics','area') +if(area_id.eq.diag_field_not_found)callfms_error_mesg& +('diag_field_initinatm_land_ice_flux_exchange_mod',& +'diagnosticfield"dynamics","area"isnotinthediag_table',note) +!----------------------------------------------------------------------- +!registercmipvariablenames +!----------------------------------------------------------------------- +#ifndefuse_AM3_physics +id_tas=register_cmip_diag_field_2d(mod_name,'tas',time,& +'Near-SurfaceAirTemperature','K',& +standard_name='air_temperature') +if(id_tas>0.and.id_height2m>0)& +callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') +!indiagtableincludeheight2mwherevertasisincluded + +id_evspsbl=register_cmip_diag_field_2d(mod_name,'evspsbl',time,& +'Evaporation','kgm-2s-1',& +standard_name='water_evaporation_flux') + +id_uas=register_cmip_diag_field_2d(mod_name,'uas',time,& +'EastwardNear-SurfaceWind','ms-1',& +standard_name='eastward_wind') +if(id_uas>0.and.id_height10m>0)& +callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') + +id_vas=register_cmip_diag_field_2d(mod_name,'vas',time,& +'NorthwardNear-SurfaceWind','ms-1',& +standard_name='northward_wind') +if(id_vas>0.and.id_height10m>0)& +callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') + +id_sfcwind=register_cmip_diag_field_2d(mod_name,'sfcWind',time,& +'Near-SurfaceWindSpeed','ms-1',& +standard_name='wind_speed') +if(id_sfcwind>0.and.id_height10m>0)& +callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') + +id_huss=register_cmip_diag_field_2d(mod_name,'huss',time,& +'Near-SurfaceSpecificHumidity','1.0',& +standard_name='specific_humidity') +if(id_huss>0.and.id_height2m>0)& +callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') + +id_hurs=register_cmip_diag_field_2d(mod_name,'hurs',time,& +'Near-SurfaceRelativeHumidity','%',& +standard_name='relative_humidity') +if(id_hurs>0.and.id_height2m>0)& +callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') + +id_ts=register_cmip_diag_field_2d(mod_name,'ts',time,& +'SurfaceTemperature','K',& +standard_name='surface_temperature') + +id_psl=register_cmip_diag_field_2d(mod_name,'psl',time,& +'SeaLevelPressure','Pa',& +standard_name='air_pressure_at_sea_level') + +id_tauu=register_cmip_diag_field_2d(mod_name,'tauu',time,& +'SurfaceDownwardEastwardWindStress','Pa',& +standard_name='surface_downward_eastward_stress') + +id_tauv=register_cmip_diag_field_2d(mod_name,'tauv',time,& +'SurfaceDownwardNorthwardWindStress','Pa',& +standard_name='surface_downward_northward_stress') + +id_hfls=register_cmip_diag_field_2d(mod_name,'hfls',time,& +'SurfaceUpwardLatentHeatFlux','Wm-2',& +standard_name='surface_upward_latent_heat_flux') +if(id_hfls>0)& +callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') + +id_hfss=register_cmip_diag_field_2d(mod_name,'hfss',time,& +'SurfaceUpwardSensibleHeatFlux','Wm-2',& +standard_name='surface_upward_sensible_heat_flux') +#endif + +!----------------------------------------------------------------------- + +endsubroutinediag_field_init + + +!######################################################################## + +subroutineflux_exchange_end(Atm) + +type(atmos_data_type),intent(in)::atm +integer::unit + +endsubroutineflux_exchange_end + +!############################################################################ +!copiedfromsurface_flux_mod + +subroutinesurface_flux_2d(& +t_atm,q_atm_in,u_atm,v_atm,p_atm,z_atm,& +p_surf,t_surf,t_ca,q_surf,& +u_surf,v_surf,& +rough_mom,rough_heat,rough_moist,rough_scale,gust,& +flux_t,flux_q,flux_r,flux_u,flux_v,& +cd_m,cd_t,cd_q,& +w_atm,u_star,b_star,q_star,& +thv_atm,thv_surf,& +dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& +dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& +dt,land,seawater,avail) + + +!----arguments----------------------------------------------------------- +logical,intent(in),dimension(:,:)::land,seawater,avail +real,intent(in),dimension(:,:)::& +t_atm,q_atm_in,u_atm,v_atm,& +p_atm,z_atm,t_ca,& +p_surf,t_surf,u_surf,v_surf,& +rough_scale,gust +real,intent(out),dimension(:,:)::& +flux_t,flux_q,flux_r,flux_u,flux_v,& +dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& +dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& +w_atm,u_star,b_star,q_star,& +thv_atm,thv_surf,& +cd_m,cd_t,cd_q +real,intent(inout),dimension(:,:)::q_surf,rough_mom,& +rough_heat,rough_moist +real,intent(in)::dt + +!----localvars----------------------------------------------------------- +integer::j + +doj=1,size(t_atm,2) +callsurface_flux(& +t_atm(:,j),q_atm_in(:,j),u_atm(:,j),v_atm(:,j),p_atm(:,j),z_atm(:,j),& +p_surf(:,j),t_surf(:,j),t_ca(:,j),q_surf(:,j),& +u_surf(:,j),v_surf(:,j),& +rough_mom(:,j),rough_heat(:,j),rough_moist(:,j),rough_scale(:,j),gust(:,j),& +flux_t(:,j),flux_q(:,j),flux_r(:,j),flux_u(:,j),flux_v(:,j),& +cd_m(:,j),cd_t(:,j),cd_q(:,j),& +w_atm(:,j),u_star(:,j),b_star(:,j),q_star(:,j),& +thv_atm(:,j),thv_surf(:,j),& +dhdt_surf(:,j),dedt_surf(:,j),dedq_surf(:,j),drdt_surf(:,j),& +dhdt_atm(:,j),dedq_atm(:,j),dtaudu_atm(:,j),dtaudv_atm(:,j),& +dt,land(:,j),seawater(:,j),avail(:,j)) +enddo + +endsubroutinesurface_flux_2d + + +!############################################################################ + +endmoduleflux_exchange_mod + + + + + diff --git a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml new file mode 100644 index 00000000..e6de21ca --- /dev/null +++ b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml @@ -0,0 +1,60 @@ + + + + atm_land_ice_flux_exchange_mod::tracer_exch_ind_type + + + integer + integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::exch + + exch + = 0 + +exchange grid index + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice + + ice + = 0 + +ice model index + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd + + lnd + = 0 + +land model index + + + + + + + + + + + + + + atm_land_ice_flux_exchange_mod::tracer_exch_ind_typeexch + atm_land_ice_flux_exchange_mod::tracer_exch_ind_typeice + atm_land_ice_flux_exchange_mod::tracer_exch_ind_typelnd + + + diff --git a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml new file mode 100644 index 00000000..27225e7b --- /dev/null +++ b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml @@ -0,0 +1,57 @@ + + + + atm_land_ice_flux_exchange_mod::tracer_ind_type + + + integer + integer atm_land_ice_flux_exchange_mod::tracer_ind_type::atm + + atm + +tracer index in atm model + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::tracer_ind_type::ice + + ice + +tracer index in ice model + + + + + + + + integer + integer atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd + + lnd + +tracer index in lnd model + + + + + + + + + + + + + + atm_land_ice_flux_exchange_mod::tracer_ind_typeatm + atm_land_ice_flux_exchange_mod::tracer_ind_typeice + atm_land_ice_flux_exchange_mod::tracer_ind_typelnd + + + diff --git a/docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml b/docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml new file mode 100644 index 00000000..1827e99d --- /dev/null +++ b/docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml @@ -0,0 +1,204 @@ + + + + full_coupler_mod::coupler_chksum_type + + + type(coupler_components_type), pointer + type(coupler_components_type), pointer full_coupler_mod::coupler_chksum_type::components + + components + + + + + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj + + initialize_coupler_chksum_obj + +associates the pointers above to model components + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_chksum_type::get_components_obj + + get_components_obj + +subroutine to retrieve the requested component of an object of this type + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums + + get_atmos_ice_land_ocean_chksums + +subroutine to compute chksums for atmos - ocean + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums + + get_atmos_ice_land_chksums + +subroutine to compute chksums for atmos_ice_land + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums + + get_slow_ice_chksums + +subroutine to compute chskums for slow_ice + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_chksum_type::get_ocean_chksums + + get_ocean_chksums + +subroutine to compute chksums for ocean + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_chksum_type::get_coupler_chksums + + get_coupler_chksums + +subroutine to compute chksums for select fields + + + + + + + + +The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. + + + + + + + + + + + + + + components + + + + + + + + + + land_ice_boundary + + + land + + + atmos_ice_boundary + + + land_ice_atmos_boundary + + + ocean + + + ice_ocean_boundary + + + atmos_land_boundary + + + ice + + + atm + + + ocean_ice_boundary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + full_coupler_mod::coupler_chksum_typecomponents + full_coupler_mod::coupler_chksum_typeget_atmos_ice_land_chksums + full_coupler_mod::coupler_chksum_typeget_atmos_ice_land_ocean_chksums + full_coupler_mod::coupler_chksum_typeget_components_obj + full_coupler_mod::coupler_chksum_typeget_coupler_chksums + full_coupler_mod::coupler_chksum_typeget_ocean_chksums + full_coupler_mod::coupler_chksum_typeget_slow_ice_chksums + full_coupler_mod::coupler_chksum_typeinitialize_coupler_chksum_obj + + + diff --git a/docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml b/docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml new file mode 100644 index 00000000..2207d719 --- /dev/null +++ b/docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml @@ -0,0 +1,547 @@ + + + + full_coupler_mod::coupler_clock_type + + + integer + integer full_coupler_mod::coupler_clock_type::initialization + + initialization + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::main + + main + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::generate_sfc_xgrid + + generate_sfc_xgrid + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_ocean_to_ice + + flux_ocean_to_ice + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean + + flux_ice_to_ocean + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::atm + + atm + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::atmos_loop + + atmos_loop + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::atmos_tracer_driver_gather_data + + atmos_tracer_driver_gather_data + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::sfc_boundary_layer + + sfc_boundary_layer + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_atmos_model_dynamics + + update_atmos_model_dynamics + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_atmos_model_down + + update_atmos_model_down + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_down_from_atmos + + flux_down_from_atmos + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_land_model_fast + + update_land_model_fast + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_ice_model_fast + + update_ice_model_fast + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_up_to_atmos + + flux_up_to_atmos + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_atmos_model_up + + update_atmos_model_up + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::radiation + + radiation + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::concurrent_atmos + + concurrent_atmos + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_atmos_model_state + + update_atmos_model_state + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_land_model_slow + + update_land_model_slow + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_land_to_ice + + flux_land_to_ice + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::set_ice_surface_fast + + set_ice_surface_fast + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_fast + + update_ice_model_slow_fast + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::set_ice_surface_slow + + set_ice_surface_slow + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_slow + + update_ice_model_slow_slow + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean_stocks + + flux_ice_to_ocean_stocks + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::set_ice_surface_exchange + + set_ice_surface_exchange + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_exchange + + update_ice_model_slow_exchange + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::ocean + + ocean + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_check_stocks + + flux_check_stocks + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::intermediate_restart + + intermediate_restart + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::final_flux_check_stocks + + final_flux_check_stocks + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::termination + + termination + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::atmos_model_init + + atmos_model_init + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::land_model_init + + land_model_init + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::ice_model_init + + ice_model_init + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::ocean_model_init + + ocean_model_init + + + + + + + + + + integer + integer full_coupler_mod::coupler_clock_type::flux_exchange_init + + flux_exchange_init + + + + + + + + + + +coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. + + + + + full_coupler_mod::coupler_clock_typeatm + full_coupler_mod::coupler_clock_typeatmos_loop + full_coupler_mod::coupler_clock_typeatmos_model_init + full_coupler_mod::coupler_clock_typeatmos_tracer_driver_gather_data + full_coupler_mod::coupler_clock_typeconcurrent_atmos + full_coupler_mod::coupler_clock_typefinal_flux_check_stocks + full_coupler_mod::coupler_clock_typeflux_check_stocks + full_coupler_mod::coupler_clock_typeflux_down_from_atmos + full_coupler_mod::coupler_clock_typeflux_exchange_init + full_coupler_mod::coupler_clock_typeflux_ice_to_ocean + full_coupler_mod::coupler_clock_typeflux_ice_to_ocean_stocks + full_coupler_mod::coupler_clock_typeflux_land_to_ice + full_coupler_mod::coupler_clock_typeflux_ocean_to_ice + full_coupler_mod::coupler_clock_typeflux_up_to_atmos + full_coupler_mod::coupler_clock_typegenerate_sfc_xgrid + full_coupler_mod::coupler_clock_typeice_model_init + full_coupler_mod::coupler_clock_typeinitialization + full_coupler_mod::coupler_clock_typeintermediate_restart + full_coupler_mod::coupler_clock_typeland_model_init + full_coupler_mod::coupler_clock_typemain + full_coupler_mod::coupler_clock_typeocean + full_coupler_mod::coupler_clock_typeocean_model_init + full_coupler_mod::coupler_clock_typeradiation + full_coupler_mod::coupler_clock_typeset_ice_surface_exchange + full_coupler_mod::coupler_clock_typeset_ice_surface_fast + full_coupler_mod::coupler_clock_typeset_ice_surface_slow + full_coupler_mod::coupler_clock_typesfc_boundary_layer + full_coupler_mod::coupler_clock_typetermination + full_coupler_mod::coupler_clock_typeupdate_atmos_model_down + full_coupler_mod::coupler_clock_typeupdate_atmos_model_dynamics + full_coupler_mod::coupler_clock_typeupdate_atmos_model_state + full_coupler_mod::coupler_clock_typeupdate_atmos_model_up + full_coupler_mod::coupler_clock_typeupdate_ice_model_fast + full_coupler_mod::coupler_clock_typeupdate_ice_model_slow_exchange + full_coupler_mod::coupler_clock_typeupdate_ice_model_slow_fast + full_coupler_mod::coupler_clock_typeupdate_ice_model_slow_slow + full_coupler_mod::coupler_clock_typeupdate_land_model_fast + full_coupler_mod::coupler_clock_typeupdate_land_model_slow + + + diff --git a/docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml b/docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml new file mode 100644 index 00000000..f75cd5a4 --- /dev/null +++ b/docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml @@ -0,0 +1,253 @@ + + + + full_coupler_mod::coupler_components_type + + + type(atmos_data_type), pointer + type(atmos_data_type), pointer full_coupler_mod::coupler_components_type::atm + + atm + +pointer to Atm + + + + + + + + type(land_data_type), pointer + type(land_data_type), pointer full_coupler_mod::coupler_components_type::land + + land + +pointer to Land + + + + + + + + type(ice_data_type), pointer + type(ice_data_type), pointer full_coupler_mod::coupler_components_type::ice + + ice + +pointer to Ice + + + + + + + + type(ocean_public_type), pointer + type(ocean_public_type), pointer full_coupler_mod::coupler_components_type::ocean + + ocean + +pointer to Ocean + + + + + + + + type(land_ice_atmos_boundary_type), pointer + type(land_ice_atmos_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_atmos_boundary + + land_ice_atmos_boundary + +pointer to Land_ice_atmos_boundary + + + + + + + + type(atmos_land_boundary_type), pointer + type(atmos_land_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_land_boundary + + atmos_land_boundary + +pointer to Atmos_land_boundary + + + + + + + + type(atmos_ice_boundary_type), pointer + type(atmos_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_ice_boundary + + atmos_ice_boundary + +pointer to Atmos_ice_boundary + + + + + + + + type(land_ice_boundary_type), pointer + type(land_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_boundary + + land_ice_boundary + +pointer to Land_ice_boundary + + + + + + + + type(ice_ocean_boundary_type), pointer + type(ice_ocean_boundary_type), pointer full_coupler_mod::coupler_components_type::ice_ocean_boundary + + ice_ocean_boundary + +pointer to Ice_ocean_boundary + + + + + + + + type(ocean_ice_boundary_type), pointer + type(ocean_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::ocean_ice_boundary + + ocean_ice_boundary + +pointer to Ocean_ice_boundary + + + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_components_type::initialize_coupler_components_obj + + initialize_coupler_components_obj + + + + + + + + + + procedure, public + procedure, public full_coupler_mod::coupler_components_type::get_component + + get_component + +subroutine to retrieve the requested component of an object of this type + + + + + + + + + + + + + + + + + + + + + + + + + + land_ice_boundary + + + land + + + atmos_ice_boundary + + + land_ice_atmos_boundary + + + ocean + + + ice_ocean_boundary + + + atmos_land_boundary + + + ice + + + atm + + + ocean_ice_boundary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + full_coupler_mod::coupler_components_typeatm + full_coupler_mod::coupler_components_typeatmos_ice_boundary + full_coupler_mod::coupler_components_typeatmos_land_boundary + full_coupler_mod::coupler_components_typeget_component + full_coupler_mod::coupler_components_typeice + full_coupler_mod::coupler_components_typeice_ocean_boundary + full_coupler_mod::coupler_components_typeinitialize_coupler_components_obj + full_coupler_mod::coupler_components_typeland + full_coupler_mod::coupler_components_typeland_ice_atmos_boundary + full_coupler_mod::coupler_components_typeland_ice_boundary + full_coupler_mod::coupler_components_typeocean + full_coupler_mod::coupler_components_typeocean_ice_boundary + + + diff --git a/docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml b/docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml new file mode 100644 index 00000000..af09b4d0 --- /dev/null +++ b/docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml @@ -0,0 +1,209 @@ + + + + ice_model_mod::atmos_ice_boundary_type + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::u_star + + u_star + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::t_flux + + t_flux + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::q_flux + + q_flux + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lw_flux + + lw_flux + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::sw_flux + + sw_flux + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lprec + + lprec + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::fprec + + fprec + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dhdt + + dhdt + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dedt + + dedt + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::drdt + + drdt + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::coszen + + coszen + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::data + + data + =>NULL() + + + + + + + + + + integer + integer ice_model_mod::atmos_ice_boundary_type::xtype + + xtype + + + + + + + + + + + + + + + + ice_model_mod::atmos_ice_boundary_typecoszen + ice_model_mod::atmos_ice_boundary_typedata + ice_model_mod::atmos_ice_boundary_typededt + ice_model_mod::atmos_ice_boundary_typedhdt + ice_model_mod::atmos_ice_boundary_typedrdt + ice_model_mod::atmos_ice_boundary_typefprec + ice_model_mod::atmos_ice_boundary_typelprec + ice_model_mod::atmos_ice_boundary_typelw_flux + ice_model_mod::atmos_ice_boundary_typeq_flux + ice_model_mod::atmos_ice_boundary_typesw_flux + ice_model_mod::atmos_ice_boundary_typet_flux + ice_model_mod::atmos_ice_boundary_typeu_star + ice_model_mod::atmos_ice_boundary_typextype + + + diff --git a/docs/xml/structice__model__mod_1_1ice__data__type.xml b/docs/xml/structice__model__mod_1_1ice__data__type.xml new file mode 100644 index 00000000..ef887500 --- /dev/null +++ b/docs/xml/structice__model__mod_1_1ice__data__type.xml @@ -0,0 +1,400 @@ + + + + ice_model_mod::ice_data_type + + + type(fmsmppdomain2d), pointer + type(fmsmppdomain2d), pointer ice_model_mod::ice_data_type::domain + + domain + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon_bnd + + glon_bnd + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat_bnd + + glat_bnd + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon_bnd + + lon_bnd + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat_bnd + + lat_bnd + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon + + glon + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat + + glat + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon + + lon + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat + + lat + =>NULL() + + + + + + + + + + logical, dimension(:,:), pointer + logical, dimension(:,:), pointer ice_model_mod::ice_data_type::gmask + + gmask + =>NULL() + + + + + + + + + + logical, dimension(:,:), pointer + logical, dimension(:,:), pointer ice_model_mod::ice_data_type::mask + + mask + =>NULL() + + + + + + + + + + logical, dimension(:,:), pointer + logical, dimension(:,:), pointer ice_model_mod::ice_data_type::ice_mask + + ice_mask + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::t_surf + + t_surf + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo + + albedo + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dir + + albedo_vis_dir + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dir + + albedo_nir_dir + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dif + + albedo_vis_dif + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dif + + albedo_nir_dif + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_mom + + rough_mom + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_heat + + rough_heat + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_moist + + rough_moist + =>NULL() + + + + + + + + + + real, dimension(:,:), pointer + real, dimension(:,:), pointer ice_model_mod::ice_data_type::thickness + + thickness + =>NULL() + + + + + + + + + + type(fmstime_type) + type (fmstime_type) ice_model_mod::ice_data_type::time_init + + time_init + + + + + + + + + + type(fmstime_type) + type (fmstime_type) ice_model_mod::ice_data_type::time + + time + + + + + + + + + + type(fmstime_type) + type (fmstime_type) ice_model_mod::ice_data_type::time_step_fast + + time_step_fast + + + + + + + + + + type(fmstime_type) + type (fmstime_type) ice_model_mod::ice_data_type::time_step_slow + + time_step_slow + + + + + + + + + + + + + + + + ice_model_mod::ice_data_typealbedo + ice_model_mod::ice_data_typealbedo_nir_dif + ice_model_mod::ice_data_typealbedo_nir_dir + ice_model_mod::ice_data_typealbedo_vis_dif + ice_model_mod::ice_data_typealbedo_vis_dir + ice_model_mod::ice_data_typedomain + ice_model_mod::ice_data_typeglat + ice_model_mod::ice_data_typeglat_bnd + ice_model_mod::ice_data_typeglon + ice_model_mod::ice_data_typeglon_bnd + ice_model_mod::ice_data_typegmask + ice_model_mod::ice_data_typeice_mask + ice_model_mod::ice_data_typelat + ice_model_mod::ice_data_typelat_bnd + ice_model_mod::ice_data_typelon + ice_model_mod::ice_data_typelon_bnd + ice_model_mod::ice_data_typemask + ice_model_mod::ice_data_typerough_heat + ice_model_mod::ice_data_typerough_moist + ice_model_mod::ice_data_typerough_mom + ice_model_mod::ice_data_typet_surf + ice_model_mod::ice_data_typethickness + ice_model_mod::ice_data_typetime + ice_model_mod::ice_data_typetime_init + ice_model_mod::ice_data_typetime_step_fast + ice_model_mod::ice_data_typetime_step_slow + + + diff --git a/docs/xml/surface__flux_8_f90.xml b/docs/xml/surface__flux_8_f90.xml new file mode 100644 index 00000000..bd97c76a --- /dev/null +++ b/docs/xml/surface__flux_8_f90.xml @@ -0,0 +1,1025 @@ + + + + surface_flux.F90 + surface_flux_mod::surface_flux + surface_flux_mod + +Handles calculation of fluxes on the exchange grids, see module page for more information. + + + +!*********************************************************************** +!*GNULesserGeneralPublicLicense +!* +!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. +!* +!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify +!*itunderthetermsoftheGNULesserGeneralPublicLicenseas +!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe +!*License,or(atyouroption)anylaterversion. +!* +!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but +!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof +!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU +!*GeneralPublicLicenseformoredetails. +!* +!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic +!*LicensealongwithFMSCoupler. +!*Ifnot,see<http://www.gnu.org/licenses/>. +!*********************************************************************** + + +modulesurface_flux_mod + +usefms +usefmsconstants,only:cp_air,hlv,stefan,rdgas,rvgas,grav,vonkarm +useocean_rough_mod,only:cal_z0_hwrf17,cal_zt_hwrf17,read_ocean_rough_scheme +useconstants_mod,only:vonkarm +usefms_mod,only:mpp_pe,mpp_root_pe,stdout + + +implicitnone +private + +!====publicinterface====================================================== +publicsurface_flux,surface_flux_init +!====endofpublicinterface=============================================== + +interfacesurface_flux +!moduleproceduresurface_flux_0d +moduleproceduresurface_flux_1d +moduleproceduresurface_flux_2d +endinterface + + +!----------------------------------------------------------------------- + +character(len=*),parameter::version='$Id$' +character(len=*),parameter::tagname='$Name$' + +logical::module_is_initialized=.false. + +real,parameter::d622=rdgas/rvgas +real,parameter::d378=1.-d622 +real,parameter::hlars=hlv/rvgas +real,parameter::gcp=grav/cp_air +real,parameter::kappa=rdgas/cp_air +real::d608=d378/d622 +!d608settozeroatinitializationiftheuseof +!virtualtemperaturesisturnedoffinnamelist +character(len=32)::rough_scheme_ocean + +!----namelistwithdefaultvalues------------------------------------------ +logical::no_neg_q=.false. +logical::use_virtual_temp=.true. +logical::alt_gustiness=.false. +logical::old_dtaudv=.false. +logical::use_mixing_ratio=.false. +real::gust_const=1.0 +real::gust_min=0.0 +logical::ncar_ocean_flux=.false. +logical::ncar_ocean_flux_orig=.false. +logical::ncar_ocean_flux_multilevel=.false. +logical::do_iter_monin_obukhov=.false. +logical::use_u10_neutral=.false. +real::bulk_zu=10. +real::bulk_zt=10. +real::bulk_zq=10. +logical::raoult_sat_vap=.false. +logical::do_simple=.false. +integer::niter_monin_obukhov=5 + +namelist/surface_flux_nml/no_neg_q,& +use_virtual_temp,& +alt_gustiness,& +gust_const,& +gust_min,& +old_dtaudv,& +use_mixing_ratio,& +ncar_ocean_flux,& +ncar_ocean_flux_orig,& +ncar_ocean_flux_multilevel,& +bulk_zu,& +bulk_zt,& +bulk_zq,& +raoult_sat_vap,& +do_simple,& +do_iter_monin_obukhov,& +use_u10_neutral,& +niter_monin_obukhov + +contains + + +!============================================================================ +subroutinesurface_flux_1d(& +t_atm,q_atm_in,u_atm,v_atm,p_atm,z_atm,& +p_surf,t_surf,t_ca,q_surf,& +u_surf,v_surf,& +rough_mom,rough_heat,rough_moist,rough_scale,gust,& +flux_t,flux_q,flux_r,flux_u,flux_v,& +cd_m,cd_t,cd_q,& +w_atm,u_star,b_star,q_star,& +thv_atm,thv_surf,& +dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& +dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& +dt,land,seawater,avail) +!----arguments----------------------------------------------------------- +logical,intent(in),dimension(:)::land,&!<Indicateswherelandexists(.TRUE.ifexchangecellisonland +seawater,&!<Indicateswhereliquidoceanwaterexists +!!(.TRUE.ifexchangecellisonliquidoceanwater) +avail +real,intent(in),dimension(:)::t_atm,&!<Airtemplowestatmosphericlevel. +q_atm_in,&!<Mixingratioatlowestatmosphericlevel(kg/kg). +u_atm,&!<Zonalwindvelocityatlowestatmosphericlevel. +v_atm,&!<Meridionalwindvelocityatlowestatmosphericlevel. +p_atm,&!<Pressurelowestatmosphericlevel. +z_atm,&!<Heightlowestatmosphericlevel. +t_ca,&!<Airtempatthecanopy +p_surf,&!<PressureattheEarth'ssurface +t_surf,&!<TempattheEarth'ssurface +u_surf,&!<ZonalwindvelocityattheEarth'ssurface +v_surf,&!<MeridionalwindvelocityattheEarth'ssurface +rough_scale,&!<Scalefactorusedtotopographicroughnesscalculation +gust +real,intent(out),dimension(:)::flux_t,&!<Sensibleheatflux +flux_q,&!<Evaporativewaterflux +flux_r,&!<Radiativeenergyflux +flux_u,&!<Zonalmomentumflux +flux_v,&!<Meridionalmomentumflux +dhdt_surf,&!<Sensibleheatfluxtemperaturesensitivity +dedt_surf,&!<Moisturefluxtemperaturesensitivity +dedq_surf,&!<Moisturefluxhumiditysensitivity +drdt_surf,&!<Radiativeenergyfluxtemperaturesensitivity +dhdt_atm,&!<Derivativeofsensibleheatfluxovertempatthelowestatmoslevel +dedq_atm,&!<Derivativeofwatervaporfluxovertempatthelowestatmoslevel +dtaudu_atm,&!<Derivativeofzonalwindstresswithrespecttothelowestlevel +!!zonalwindspeedoftheatmos +dtaudv_atm,& +w_atm,& +u_star,& +b_star,& +q_star,& +thv_atm,&!Surfaceairtheta_v +thv_surf,&!Surfacetheta_v +cd_m,& +cd_t,&!Heatexchangecoefficient +cd_q +real,intent(inout),dimension(:)::q_surf,&!<MixingratioattheEarth'ssurface(kg/kg) +rough_mom,&!<Momentumroughnesslength +rough_heat,&!<Heatroughnesslength +rough_moist!<Moistureroughnesslength +real,intent(in)::dt!<Timestep(itisnotusedpresently) + +!----localconstants----------------------------------------------------- +!temperatureincrementanditsreciprocalvalueforcomp.ofderivatives +real,parameter::del_temp=0.1,del_temp_inv=1.0/del_temp + +!----localvars---------------------------------------------------------- +real,dimension(size(t_atm(:)))::& +th_atm,tv_atm,&!thv_atmandthv_surfaremovedtooutput +e_sat,e_sat1,q_sat,q_sat1,p_ratio,& +t_surf0,t_surf1,u_dif,v_dif,& +rho_drag,drag_t,drag_m,drag_q,rho,& +q_atm,q_surf0,dw_atmdu,dw_atmdv,w_gust,& +zu,zt,zq + +integer::i,nbad + + +.not.if(module_is_initialized)& +callfms_mpp_error(FATAL,"surface_flux_1d:surface_flux_initisnotcalled") + +!----uselocalvalueofsurftemp---- + +t_surf0=200.!avoidsout-of-boundsineslookup +where(avail) +where(land) +t_surf0=t_ca +elsewhere +t_surf0=t_surf +endwhere +endwhere + +t_surf1=t_surf0+del_temp + +callfms_sat_vapor_pres_escomp(t_surf0,e_sat)!saturationvaporpressure +callfms_sat_vapor_pres_escomp(t_surf1,e_sat1)!perturbedvaporpressure + +if(use_mixing_ratio)then +!surfacemixingratioatsaturation +q_sat=d622*e_sat/(p_surf-e_sat) +q_sat1=d622*e_sat1/(p_surf-e_sat1) +elseif(do_simple)then!rif:(09/02/09) +q_sat=d622*e_sat/p_surf +q_sat1=d622*e_sat1/p_surf +else +!surfacespecifichumidityatsaturation +q_sat=d622*e_sat/(p_surf-d378*e_sat) +q_sat1=d622*e_sat1/(p_surf-d378*e_sat1) +endif + +!initilaizesurfaceairhumidityaccordingtosurfacetype +where(land) +q_surf0=q_surf!landcalculatesit +elsewhere +q_surf0=q_sat!everythingelseassumessaturatedsfchumidity +endwhere + +if(raoult_sat_vap)where(seawater)q_surf0=0.98*q_surf0 + +!checkfornegativeatmospherichumidities +where(avail)q_atm=q_atm_in +if(no_neg_q)then +.and.where(availq_atm_in<0.0)q_atm=0.0 +endif + +!generateinformationneededbymonin_obukhov +where(avail) +p_ratio=(p_surf/p_atm)**kappa + +tv_atm=t_atm*(1.0+d608*q_atm)!virtualtemperature +th_atm=t_atm*p_ratio!potentialT,usingp_surfasrefernce +thv_atm=tv_atm*p_ratio!virt.potentialT,usingp_surfasreference +thv_surf=t_surf0*(1.0+d608*q_surf0)!surfacevirtual(potential)T +!thv_surf=t_surf0!surfacevirtual(potential)T--justfortestingtunofftheq_surf + +u_dif=u_surf-u_atm!velocitycomponentsrelativetosurface +v_dif=v_surf-v_atm +endwhere + +if(alt_gustiness)then +doi=1,size(avail) +.not.if(avail(i))cycle +w_atm(i)=max(sqrt(u_dif(i)**2+v_dif(i)**2),gust_const) +!derivativesofsurfacewindw.r.t.atm.windcomponents +if(w_atm(i)>gust_const)then +dw_atmdu(i)=u_dif(i)/w_atm(i) +dw_atmdv(i)=v_dif(i)/w_atm(i) +else +dw_atmdu(i)=0.0 +dw_atmdv(i)=0.0 +endif +enddo +else +if(gust_min>0.0)then +where(avail) +w_gust=max(gust,gust_min)!minimumgustiness +endwhere +else +where(avail) +w_gust=gust +endwhere +endif + +where(avail) +w_atm=sqrt(u_dif*u_dif+v_dif*v_dif+w_gust*w_gust) +!derivativesofsurfacewindw.r.t.atm.windcomponents +dw_atmdu=u_dif/w_atm +dw_atmdv=v_dif/w_atm +endwhere +endif + +!monin-obukhovsimilaritytheory +callfms_monin_obukhov_mo_drag(thv_atm,thv_surf,z_atm,& +rough_mom,rough_heat,rough_moist,w_atm,& +cd_m,cd_t,cd_q,u_star,b_star,avail) + +!-iteratemonin-obukhovoveroceanwithupdatedroughnesslength +!-thefollowingfields,cd_m,cd_g,cd_q,u_star,b_starwillbeoverrideen +!-onlyeffectivewhentherough_scheme_oceanishwrf17 +if(do_iter_monin_obukhov)then +calliter_monin_obukhov_ocean(& +z_atm,u_atm,v_atm,w_atm,thv_atm,q_atm,& +u_surf,v_surf,thv_surf,q_surf0,& +rough_mom,rough_heat,rough_moist,& +cd_m,cd_t,cd_q,u_star,b_star,avail,seawater) +endif + +!overridewithoceanfluxesfromNCARcalculation +.or..and..not.if((ncar_ocean_fluxncar_ocean_flux_orig)(ncar_ocean_flux_multilevel))then +callncar_ocean_fluxes(w_atm,th_atm,t_surf0,q_atm,q_surf0,z_atm,& +seawater,cd_m,cd_t,cd_q,u_star,b_star) +endif + +if(ncar_ocean_flux_multilevel)then +zu(:)=bulk_zu!usingconstantvaluefromnamelist +zt(:)=bulk_zt!butallowsforvariableheights +zq(:)=bulk_zq!ifneededinthefuture +callncar_ocean_fluxes_multilevel(w_atm,th_atm,t_surf0,q_atm,q_surf0,zu,zt,zq,& +seawater,cd_m,cd_t,cd_q,u_star,b_star) +!atthispointth_atmandq_atmhavebeenupdatedtothe10mvalues +!tobeconsistentwiththetransfercoef.whencomputingfluxes +endif + +where(avail) +!scalemomentumdragcoefficientonorographicroughness +.not.where(seawater) +cd_m=cd_m*(log(z_atm/rough_mom+1)/log(z_atm/rough_scale+1))**2 +endwhere +!surfacelayerdragcoefficients +drag_t=cd_t*w_atm +drag_q=cd_q*w_atm +drag_m=cd_m*w_atm + +!density +rho=p_atm/(rdgas*tv_atm) + +!sensibleheatflux +rho_drag=cp_air*drag_t*rho +flux_t=rho_drag*(t_surf0-th_atm)!fluxofsensibleheat(W/m**2) +dhdt_surf=rho_drag!d(sensibleheatflux)/d(surfacetemperature) +dhdt_atm=-rho_drag*p_ratio!d(sensibleheatflux)/d(atmostemperature) + +!evaporation +rho_drag=drag_q*rho +flux_q=rho_drag*(q_surf0-q_atm)!fluxofwatervapor(Kg/(m**2s)) + +where(land) +dedq_surf=rho_drag +dedt_surf=0 +elsewhere +dedq_surf=0 +dedt_surf=rho_drag*(q_sat1-q_sat)*del_temp_inv +endwhere + +dedq_atm=-rho_drag!d(latentheatflux)/d(atmosphericmixingratio) + +q_star=flux_q/(u_star*rho)!moisturescale +!askChrisandSteveKifwestillwanttokeepthisfordiagnostics +q_surf=q_atm+flux_q/(rho*cd_q*w_atm)!surfacespecifichumidity + +!upwardlongwaveradiation +flux_r=stefan*t_surf**4!(W/m**2) +drdt_surf=4*stefan*t_surf**3!d(upwardlongwave)/d(surfacetemperature) + +!stresses +rho_drag=drag_m*rho +flux_u=rho_drag*u_dif!zonalcomponentofstress(Nt/m**2) +flux_v=rho_drag*v_dif!meridionalcomponentofstress + +elsewhere +!zero-outun-availabledatainoutputonlyfields +flux_t=0.0 +flux_q=0.0 +flux_r=0.0 +flux_u=0.0 +flux_v=0.0 +dhdt_surf=0.0 +dedt_surf=0.0 +dedq_surf=0.0 +drdt_surf=0.0 +dhdt_atm=0.0 +dedq_atm=0.0 +u_star=0.0 +b_star=0.0 +q_star=0.0 +q_surf=0.0 +w_atm=0.0 +thv_atm=0.0 +thv_surf=0.0 +endwhere + +!calculated(stresscomponent)/d(atmoswindcomponent) +dtaudu_atm=0.0 +dtaudv_atm=0.0 +if(old_dtaudv)then +where(avail) +dtaudv_atm=-rho_drag +dtaudu_atm=-rho_drag +endwhere +else +where(avail) +dtaudu_atm=-cd_m*rho*(dw_atmdu*u_dif+w_atm) +dtaudv_atm=-cd_m*rho*(dw_atmdv*v_dif+w_atm) +endwhere +endif + +endsubroutinesurface_flux_1d + + +!####################################################################### +subroutinesurface_flux_0d(& +t_atm_0,q_atm_0,u_atm_0,v_atm_0,p_atm_0,z_atm_0,& +p_surf_0,t_surf_0,t_ca_0,q_surf_0,& +u_surf_0,v_surf_0,& +rough_mom_0,rough_heat_0,rough_moist_0,rough_scale_0,gust_0,& +flux_t_0,flux_q_0,flux_r_0,flux_u_0,flux_v_0,& +cd_m_0,cd_t_0,cd_q_0,& +w_atm_0,u_star_0,b_star_0,q_star_0,& +thv_atm_0,thv_surf_0,& +dhdt_surf_0,dedt_surf_0,dedq_surf_0,drdt_surf_0,& +dhdt_atm_0,dedq_atm_0,dtaudu_atm_0,dtaudv_atm_0,& +dt,land_0,seawater_0,avail_0) + +!----arguments----------------------------------------------------------- +logical,intent(in)::land_0,&!<Indicateswherelandexists(.TRUE.ifexchangecellisonland +seawater_0,&!<Indicateswhereliquidoceanwaterexists +!!(.TRUE.ifexchangecellisonliquidoceanwater) +avail_0!<.TRUE.wheretheexchangecellisactive +real,intent(in)::t_atm_0,&!<Airtemplowestatmosphericlevel. +q_atm_0,&!<Mixingratioatlowestatmosphericlevel(kg/kg). +u_atm_0,&!<Zonalwindvelocityatlowestatmosphericlevel. +v_atm_0,&!<Meridionalwindvelocityatlowestatmosphericlevel. +p_atm_0,&!<Pressurelowestatmosphericlevel. +z_atm_0,&!<Heightlowestatmosphericlevel. +t_ca_0,&!<Airtempatthecanopy +p_surf_0,&!<PressureattheEarth'ssurface +t_surf_0,&!<TempattheEarth'ssurface +u_surf_0,&!<ZonalwindvelocityattheEarth'ssurface +v_surf_0,&!<MeridionalwindvelocityattheEarth'ssurface +rough_mom_0,&!<Momentumroughnesslength +rough_heat_0,&!<Heatroughnesslength +rough_moist_0,&!<Moistureroughnesslength +rough_scale_0,&!<Scalefactorusedtotopographicroughnesscalculation +gust_0!<Gustinessfactor +real,intent(out)::flux_t_0,&!<Sensibleheatflux +flux_q_0,&!<Evaporativewaterflux +flux_r_0,&!<Radiativeenergyflux +flux_u_0,&!<Zonalmomentumflux +flux_v_0,&!<Meridionalmomentumflux +dhdt_surf_0,&!<Sensibleheatfluxtemperaturesensitivity +dedt_surf_0,&!<Moisturefluxtemperaturesensitivity +dedq_surf_0,&!<Moisturefluxhumiditysensitivity +drdt_surf_0,&!<Radiativeenergyfluxtemperaturesensitivity +dhdt_atm_0,&!<Derivativeofsensibleheatfluxovertempatthelowestatmoslevel +dedq_atm_0,&!<Derivativeofwatervaporfluxovertempatthelowestatmoslevel +dtaudu_atm_0,&!<Derivativeofzonalwindstresswithrespecttothelowestlevelzonalwind +!!speedoftheatmos +dtaudv_atm_0,&!<Derivativeofmeridionalwindstresswithrespecttothelowestlevel +!!meridionalwindspeedoftheatmos +w_atm_0,&!<Absolutewindatthelowestatmosphericlevel +u_star_0,&!<Turbulentvelocityscale +b_star_0,&!<Turbulentbuoyantscale +q_star_0,&!<Turbulentmoisturescale +thv_atm_0,&!Surfaceairtheta_v +thv_surf_0,&!Surfacetheta_v +cd_m_0,&!<Momentumexchangecoefficient +cd_t_0,&!Heatexchangecoefficient +cd_q_0!<Moistureexchangecoefficient +real,intent(inout)::q_surf_0!<MixingratioattheEarth'ssurface(kg/kg) +real,intent(in)::dt + +!----localvars---------------------------------------------------------- +logical,dimension(1)::land,seawater,avail +real,dimension(1)::& +t_atm,q_atm,u_atm,v_atm,& +p_atm,z_atm,t_ca,& +p_surf,t_surf,u_surf,v_surf,& +rough_mom,rough_heat,rough_moist,rough_scale,gust +real,dimension(1)::& +flux_t,flux_q,flux_r,flux_u,flux_v,& +dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& +dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& +w_atm,u_star,b_star,q_star,& +thv_atm,thv_surf,& +cd_m,cd_t,cd_q +real,dimension(1)::q_surf + + +avail=.true. + +t_atm(1)=t_atm_0 +q_atm(1)=q_atm_0 +u_atm(1)=u_atm_0 +v_atm(1)=v_atm_0 +p_atm(1)=p_atm_0 +z_atm(1)=z_atm_0 +t_ca(1)=t_ca_0 +p_surf(1)=p_surf_0 +t_surf(1)=t_surf_0 +u_surf(1)=u_surf_0 +v_surf(1)=v_surf_0 +rough_mom(1)=rough_mom_0 +rough_heat(1)=rough_heat_0 +rough_moist(1)=rough_moist_0 +rough_scale(1)=rough_scale_0 +gust(1)=gust_0 +q_surf(1)=q_surf_0 +land(1)=land_0 +seawater(1)=seawater_0 +avail(1)=avail_0 + +callsurface_flux_1d(& +t_atm,q_atm,u_atm,v_atm,p_atm,z_atm,& +p_surf,t_surf,t_ca,q_surf,& +u_surf,v_surf,& +rough_mom,rough_heat,rough_moist,rough_scale,gust,& +flux_t,flux_q,flux_r,flux_u,flux_v,& +cd_m,cd_t,cd_q,& +w_atm,u_star,b_star,q_star,& +thv_atm,thv_surf,& +dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& +dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& +dt,land,seawater,avail) + +flux_t_0=flux_t(1) +flux_q_0=flux_q(1) +flux_r_0=flux_r(1) +flux_u_0=flux_u(1) +flux_v_0=flux_v(1) +dhdt_surf_0=dhdt_surf(1) +dedt_surf_0=dedt_surf(1) +dedq_surf_0=dedq_surf(1) +drdt_surf_0=drdt_surf(1) +dhdt_atm_0=dhdt_atm(1) +dedq_atm_0=dedq_atm(1) +dtaudu_atm_0=dtaudu_atm(1) +dtaudv_atm_0=dtaudv_atm(1) +w_atm_0=w_atm(1) +u_star_0=u_star(1) +b_star_0=b_star(1) +q_star_0=q_star(1) +q_surf_0=q_surf(1) +thv_atm_0=thv_atm(1) +thv_surf_0=thv_surf(1) +cd_m_0=cd_m(1) +cd_t_0=cd_t(1) +cd_q_0=cd_q(1) + +endsubroutinesurface_flux_0d + +subroutinesurface_flux_2d(& +t_atm,q_atm_in,u_atm,v_atm,p_atm,z_atm,& +p_surf,t_surf,t_ca,q_surf,& +u_surf,v_surf,& +rough_mom,rough_heat,rough_moist,rough_scale,gust,& +flux_t,flux_q,flux_r,flux_u,flux_v,& +cd_m,cd_t,cd_q,& +w_atm,u_star,b_star,q_star,& +thv_atm,thv_surf,& +dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& +dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& +dt,land,seawater,avail) + +!----arguments----------------------------------------------------------- +logical,intent(in),dimension(:,:)::land,&!<Indicateswherelandexists(.TRUE.ifexchangecellisonland +seawater,&!<Indicateswhereliquidoceanwaterexists +!!(.TRUE.ifexchangecellisonliquidoceanwater) +avail +real,intent(in),dimension(:,:)::t_atm,&!<Airtemplowestatmosphericlevel. +q_atm_in,&!<Mixingratioatlowestatmosphericlevel(kg/kg). +u_atm,&!<Zonalwindvelocityatlowestatmosphericlevel. +v_atm,&!<Meridionalwindvelocityatlowestatmosphericlevel. +p_atm,&!<Pressurelowestatmosphericlevel. +z_atm,&!<Heightlowestatmosphericlevel. +t_ca,&!<Airtempatthecanopy +p_surf,&!<PressureattheEarth'ssurface +t_surf,&!<TempattheEarth'ssurface +u_surf,&!<ZonalwindvelocityattheEarth'ssurface +v_surf,&!<MeridionalwindvelocityattheEarth'ssurface +rough_scale,&!<Scalefactorusedtotopographicroughnesscalculation +gust +real,intent(out),dimension(:,:)::flux_t,&!<Sensibleheatflux +flux_q,&!<Evaporativewaterflux +flux_r,&!<Radiativeenergyflux +flux_u,&!<Zonalmomentumflux +flux_v,&!<Meridionalmomentumflux +dhdt_surf,&!<Sensibleheatfluxtemperaturesensitivity +dedt_surf,&!<Moisturefluxtemperaturesensitivity +dedq_surf,&!<Moisturefluxhumiditysensitivity +drdt_surf,&!<Radiativeenergyfluxtemperaturesensitivity +dhdt_atm,&!<Derivativeofsensibleheatfluxovertempatthelowest +!!atmoslevel +dedq_atm,& +dtaudu_atm,& +dtaudv_atm,& +w_atm,& +u_star,& +b_star,& +q_star,& +thv_atm,&!Surfaceairtheta_v +thv_surf,&!Surfacetheta_v +cd_m,& +cd_t,&!Heatexchangecoefficient +cd_q +real,intent(inout),dimension(:,:)::q_surf,&!<MixingratioattheEarth'ssurface(kg/kg) +rough_mom,&!<Momentumroughnesslength +rough_heat,&!<Heatroughnesslength +rough_moist!<Moistureroughnesslength +real,intent(in)::dt!<Timestep(itisnotusedpresently) + +!----localvars----------------------------------------------------------- +integer::j + +doj=1,size(t_atm,2) +callsurface_flux_1d(& +t_atm(:,j),q_atm_in(:,j),u_atm(:,j),v_atm(:,j),p_atm(:,j),z_atm(:,j),& +p_surf(:,j),t_surf(:,j),t_ca(:,j),q_surf(:,j),& +u_surf(:,j),v_surf(:,j),& +rough_mom(:,j),rough_heat(:,j),rough_moist(:,j),rough_scale(:,j),gust(:,j),& +flux_t(:,j),flux_q(:,j),flux_r(:,j),flux_u(:,j),flux_v(:,j),& +cd_m(:,j),cd_t(:,j),cd_q(:,j),& +w_atm(:,j),u_star(:,j),b_star(:,j),q_star(:,j),& +thv_atm(:,j),thv_surf(:,j),& +dhdt_surf(:,j),dedt_surf(:,j),dedq_surf(:,j),drdt_surf(:,j),& +dhdt_atm(:,j),dedq_atm(:,j),dtaudu_atm(:,j),dtaudv_atm(:,j),& +dt,land(:,j),seawater(:,j),avail(:,j)) +enddo +endsubroutinesurface_flux_2d + + +!============================================================================ +!>\briefInitializationofthesurfacefluxmodule--readsthenml. +subroutinesurface_flux_init + +!----localvars---------------------------------------------------------- +integer::unit,ierr,io,outunit + +outunit=stdout() + +!readnamelist +read(fms_mpp_input_nml_file,surface_flux_nml,iostat=io) +ierr=fms_check_nml_error(io,'surface_flux_nml') + +!readrough_scheme_oceanfromocean_roughnamelist +!Notethatweshouldnotusethevariable'rough_scheme'directlyfromocean_rough, +!becausetheintializationofocean_roughislaterthanthesurface_flux_init. +if(do_iter_monin_obukhov)then +callread_ocean_rough_scheme(rough_scheme_ocean) +if(mpp_pe()==mpp_root_pe())then +write(outunit,*)'oceanroughnessscheme:',rough_scheme_ocean +write(outunit,*)'Warning:ifoceanroughnessschemeisnothwrf17,& +iter_monin_obukhov_oceanisnoteffective' +endif +endif + +!writeversionnumber +callfms_write_version_number(version,tagname) + +unit=fms_mpp_stdlog() +if(fms_mpp_pe()==fms_mpp_root_pe())write(unit,nml=surface_flux_nml) + +.not.if(use_virtual_temp)d608=0.0 + +callfms_monin_obukhov_init() + +module_is_initialized=.true. + +endsubroutinesurface_flux_init + + + +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +!>\briefOver-oceanfluxesfollowingLargeandYeager(usedinNCARmodels)! +!! +!!Originalcode:GFDL.Climate.Model.Info@noaa.gov<br\> +!!UpdateJul2007:GFDL.Climate.Model.Info@noaa.gov(chandceexchangecoeffbugfix) +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +! +subroutinencar_ocean_fluxes(u_del,t,ts,q,qs,z,avail,& +cd,ch,ce,ustar,bstar) +real,intent(in),dimension(:)::u_del,t,ts,q,qs,z +logical,intent(in),dimension(:)::avail +real,intent(inout),dimension(:)::cd,ch,ce,ustar,bstar + +real::cd_n10,ce_n10,ch_n10,cd_n10_rt!neutral10mdragcoefficients +real::cd_rt!fulldragcoefficients@z +real::zeta,x2,x,psi_m,psi_h!stabilityparameters +real::u,u10,tv,tstar,qstar,z0,xx,stab +integer,parameter::n_itts=2 +integeri,j + +if(ncar_ocean_flux_orig)then + +doi=1,size(u_del(:)) +if(avail(i))then +tv=t(i)*(1+0.608*q(i)); +u=max(u_del(i),0.5);!0.5m/sflooronwind(undocumentedNCAR) +u10=u;!firstguess10mwind + +cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6a +cd_n10_rt=sqrt(cd_n10); +ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6b +stab=0.5+sign(0.5,t(i)-ts(i)) +ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6c + +cd(i)=cd_n10;!firstguessforexchangecoeff'satz +ch(i)=ch_n10; +ce(i)=ce_n10; +doj=1,n_itts!Monin-Obukhoviteration +cd_rt=sqrt(cd(i)); +ustar(i)=cd_rt*u;!L-Yeqn.7a +tstar=(ch(i)/cd_rt)*(t(i)-ts(i));!L-Yeqn.7b +qstar=(ce(i)/cd_rt)*(q(i)-qs(i));!L-Yeqn.7c +bstar(i)=grav*(tstar/tv+qstar/(q(i)+1/0.608)); +zeta=vonkarm*bstar(i)*z(i)/(ustar(i)*ustar(i));!L-Yeqn.8a +zeta=sign(min(abs(zeta),10.0),zeta);!undocumentedNCAR +x2=sqrt(abs(1-16*zeta));!L-Yeqn.8b +x2=max(x2,1.0);!undocumentedNCAR +x=sqrt(x2); + +if(zeta>0)then +psi_m=-5*zeta;!L-Yeqn.8c +psi_h=-5*zeta;!L-Yeqn.8c +else +psi_m=log((1+2*x+x2)*(1+x2)/8)-2*(atan(x)-atan(1.0));!L-Yeqn.8d +psi_h=2*log((1+x2)/2);!L-Yeqn.8e +endif + +u10=u/(1+cd_n10_rt*(log(z(i)/10)-psi_m)/vonkarm);!L-Yeqn.9 +cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6aagain +cd_n10_rt=sqrt(cd_n10); +ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6bagain +stab=0.5+sign(0.5,zeta) +ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6cagain +z0=10*exp(-vonkarm/cd_n10_rt);!diagnostic + +xx=(log(z(i)/10)-psi_m)/vonkarm; +cd(i)=cd_n10/(1+cd_n10_rt*xx)**2;!L-Y10a +xx=(log(z(i)/10)-psi_h)/vonkarm; +ch(i)=ch_n10/(1+ch_n10*xx/cd_n10_rt)**2;!10b(thiscodeiswrong) +ce(i)=ce_n10/(1+ce_n10*xx/cd_n10_rt)**2;!10c(thiscodeiswrong) +enddo +endif +enddo + +else + +doi=1,size(u_del(:)) +if(avail(i))then +tv=t(i)*(1+0.608*q(i)); +u=max(u_del(i),0.5);!0.5m/sflooronwind(undocumentedNCAR) +u10=u;!firstguess10mwind + +cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6a +cd_n10_rt=sqrt(cd_n10); +ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6b +stab=0.5+sign(0.5,t(i)-ts(i)) +ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6c + +cd(i)=cd_n10;!firstguessforexchangecoeff'satz +ch(i)=ch_n10; +ce(i)=ce_n10; +doj=1,n_itts!Monin-Obukhoviteration +cd_rt=sqrt(cd(i)); +ustar(i)=cd_rt*u;!L-Yeqn.7a +tstar=(ch(i)/cd_rt)*(t(i)-ts(i));!L-Yeqn.7b +qstar=(ce(i)/cd_rt)*(q(i)-qs(i));!L-Yeqn.7c +bstar(i)=grav*(tstar/tv+qstar/(q(i)+1/0.608)); +zeta=vonkarm*bstar(i)*z(i)/(ustar(i)*ustar(i));!L-Yeqn.8a +zeta=sign(min(abs(zeta),10.0),zeta);!undocumentedNCAR +x2=sqrt(abs(1-16*zeta));!L-Yeqn.8b +x2=max(x2,1.0);!undocumentedNCAR +x=sqrt(x2); + +if(zeta>0)then +psi_m=-5*zeta;!L-Yeqn.8c +psi_h=-5*zeta;!L-Yeqn.8c +else +psi_m=log((1+2*x+x2)*(1+x2)/8)-2*(atan(x)-atan(1.0));!L-Yeqn.8d +psi_h=2*log((1+x2)/2);!L-Yeqn.8e +endif + +u10=u/(1+cd_n10_rt*(log(z(i)/10)-psi_m)/vonkarm);!L-Yeqn.9 +cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6aagain +cd_n10_rt=sqrt(cd_n10); +ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6bagain +stab=0.5+sign(0.5,zeta) +ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6cagain +z0=10*exp(-vonkarm/cd_n10_rt);!diagnostic + +xx=(log(z(i)/10)-psi_m)/vonkarm; +cd(i)=cd_n10/(1+cd_n10_rt*xx)**2;!L-Y10a +xx=(log(z(i)/10)-psi_h)/vonkarm; +ch(i)=ch_n10/(1+ch_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10b(correctedcode) +ce(i)=ce_n10/(1+ce_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10c(correctedcode) +enddo +endif +enddo + +endif + +endsubroutinencar_ocean_fluxes + +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! +! +subroutinencar_ocean_fluxes_multilevel(u_del,t,ts,q,qs,zu,zt,zq,avail,& +cd,ch,ce,ustar,bstar) +real,intent(in),dimension(:)::u_del!windspeedatz=zu +real,intent(inout),dimension(:)::t!atmtempatz=zt,willbeupdatedtozuinoutput +real,intent(in),dimension(:)::ts!surfacetemp(SST) +real,intent(inout),dimension(:)::q!atspec.hum.atz=zq,willbeupdatedtozuinoutput +real,intent(in),dimension(:)::qs!saturationhumidity +real,intent(in),dimension(:)::zu!refheightforwind +real,intent(in),dimension(:)::zt!refheightforatmtemp +real,intent(in),dimension(:)::zq!refheightforatmspec.hum. +logical,intent(in),dimension(:)::avail!ispointoversea +real,intent(out),dimension(:)::cd!momentumtransfercoef. +real,intent(out),dimension(:)::ch!heattransfercoef. +real,intent(out),dimension(:)::ce!evaporationtransfercoef. +real,intent(out),dimension(:)::ustar!turbulentscaleformomentum +real,intent(out),dimension(:)::bstar!turbulentscaleforbuoyancy? + +real::cd_n10,ce_n10,ch_n10,cd_n10_rt!neutral10mdragcoefficients +real::cd_rt!sqrtdragcoefficientsforz=zu +real::zeta_zu,x2_zu,x_zu,psi_m_zu,psi_h_zu!stabilityparametersforz=zu +real::zeta_zt,x2_zt,x_zt,psi_m_zt,psi_h_zt!stabilityparametersforz=zt +real::zeta_zq,x2_zq,x_zq,psi_m_zq,psi_h_zq!stabilityparametersforz=zq +real::u!windspeed>0.5m/s +real::u10!neutralwindat10m +real::t10!temperatureat10m +real::q10!humidityat10m +real::tv!virtualtemperature +real::tstar!turbulentscaleforheat +real::qstar!turbulentscaleforevap/latent +real::xx!cosmetics +real::stab!stabilityflag +integer,parameter::n_itts=2!numberofiterations +integer::i +integer::kiter + +doi=1,size(u_del(:)) +if(avail(i))then +u=max(u_del(i),0.5)!0.5m/sflooronwind(undocumentedNCAR) +u10=u!firstguess10mwind +t10=t(i)!firstguess:T(z=10)=T(zt) +q10=q(i)!firstguess:Q(z=10)=Q(zq) + +cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3!L-Yeqn.6a +cd_n10_rt=sqrt(cd_n10) +ce_n10=34.6*cd_n10_rt/1e3!L-Yeqn.6b +stab=0.5+sign(0.5,t10-ts(i)) +ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3!L-Yeqn.6c + +cd(i)=cd_n10!firstguessforexchangecoeff'satz +ch(i)=ch_n10 +ce(i)=ce_n10 +dokiter=1,n_itts!looptwice +!computevirtualtemperature: +!infirstiterationitwilluseT(zt)andQ(zq) +!inseconditerationitwilluseT(zu)andQ(zu) +tv=t10*(1+0.608*q10) + +cd_rt=sqrt(cd(i)) +ustar(i)=cd_rt*u!L-Yeqn.7a +!samegoesforT(zt),Q(zq)updatedtoT(zu),Q(zu) +!usedintheturbulentscalescomputation +tstar=(ch(i)/cd_rt)*(t10-ts(i))!L-Yeqn.7b +qstar=(ce(i)/cd_rt)*(q10-qs(i))!L-Yeqn.7c +bstar(i)=grav*(tstar/tv+qstar/(q10+1/0.608)) +!stabilityparametersforthedifferentheights +zeta_zu=vonkarm*bstar(i)*zu(i)/(ustar(i)*ustar(i))!L-Yeqn.8a +zeta_zt=vonkarm*bstar(i)*zt(i)/(ustar(i)*ustar(i))!L-Yeqn.8a +zeta_zq=vonkarm*bstar(i)*zq(i)/(ustar(i)*ustar(i))!L-Yeqn.8a +!ensurethatabs(zeta)<10.,lookslikealimiterbutunsureif +!forstableorunstableconditions +zeta_zu=sign(min(abs(zeta_zu),10.0),zeta_zu)!undocumentedNCAR +zeta_zt=sign(min(abs(zeta_zt),10.0),zeta_zt)!undocumentedNCAR +zeta_zq=sign(min(abs(zeta_zq),10.0),zeta_zq)!undocumentedNCAR + +x2_zu=sqrt(abs(1-16*zeta_zu))!L-Yeqn.8b +x2_zt=sqrt(abs(1-16*zeta_zt))!L-Yeqn.8b +x2_zq=sqrt(abs(1-16*zeta_zq))!L-Yeqn.8b + +!anotherlimiter +x2_zu=max(x2_zu,1.0) +x2_zt=max(x2_zt,1.0) +x2_zq=max(x2_zq,1.0) + +x_zu=sqrt(x2_zu) +x_zt=sqrt(x2_zt) +x_zq=sqrt(x2_zq) + +!fluxprofiles +!Idoubtzeta_Xhavedifferentstabilitiesbutlet'sdoitanyway +if(zeta_zu>=0)then +psi_m_zu=-5*zeta_zu!L-Yeqn.8c +psi_h_zu=-5*zeta_zu!L-Yeqn.8c +else +psi_m_zu=log((1+2*x_zu+x2_zu)*(1+x2_zu)/8)-2*(atan(x_zu)-atan(1.0))!L-Yeqn.8d +psi_h_zu=2*log((1+x2_zu)/2)!L-Yeqn.8e +endif + +if(zeta_zt>=0)then +psi_m_zt=-5*zeta_zt!L-Yeqn.8c +psi_h_zt=-5*zeta_zt!L-Yeqn.8c +else +psi_m_zt=log((1+2*x_zt+x2_zt)*(1+x2_zt)/8)-2*(atan(x_zt)-atan(1.0))!L-Yeqn.8d +psi_h_zt=2*log((1+x2_zt)/2)!L-Yeqn.8e +endif + +if(zeta_zq>=0)then +psi_m_zq=-5*zeta_zq!L-Yeqn.8c +psi_h_zq=-5*zeta_zq!L-Yeqn.8c +else +psi_m_zq=log((1+2*x_zq+x2_zq)*(1+x2_zq)/8)-2*(atan(x_zq)-atan(1.0))!L-Yeqn.8d +psi_h_zq=2*log((1+x2_zq)/2)!L-Yeqn.8e +endif + +!attheendofthefirstiteration,computetherealneutralwindat10m +!andupdatetempandspec.hum.towindheight +u10=u/(1+cd_n10_rt*(log(zu(i)/10.)-psi_m_zu)/vonkarm)!L-Yeqn.9a +t10=t(i)-(tstar/vonkarm)*(log(zt(i)/zu(i))+psi_h_zu-psi_h_zt)!L-Yeqn.9b +q10=q(i)-(qstar/vonkarm)*(log(zq(i)/zu(i))+psi_h_zu-psi_h_zq)!L-Yeqn.9c + +!updateneutral10mtransfercoeficients +cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3!L-Yeqn.6aagain +cd_n10_rt=sqrt(cd_n10) +ce_n10=34.6*cd_n10_rt/1e3!L-Yeqn.6bagain +stab=0.5+sign(0.5,zeta_zu)!needtopickazeta +ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3!L-Yeqn.6cagain + +xx=(log(zu(i)/10.)-psi_m_zu)/vonkarm +cd(i)=cd_n10/(1+cd_n10_rt*xx)**2!L-Y10a +xx=(log(zu(i)/10.)-psi_h_zu)/vonkarm +ch(i)=ch_n10/(1+ch_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10b(correctedcode) +ce(i)=ce_n10/(1+ce_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10c(correctedcode) + +enddo +!updateT,Qforfluxcomputationoutsideofroutine +t(i)=t10 +q(i)=q10 +endif +enddo + +endsubroutinencar_ocean_fluxes_multilevel + +subroutineiter_monin_obukhov_ocean(& +z_atm,u_atm,v_atm,w_atm,thv_atm,q_atm,& +u_surf,v_surf,thv_surf,q_surf0,& +rough_mom,rough_heat,rough_moist,& +cd_m,cd_t,cd_q,u_star,b_star,avail,seawater) + +real,intent(in),dimension(:)::& +z_atm,&!<Heightatthelowestatmosphericlevel +u_atm,&!<Zonalwindvelocityatthelowestatmosphericlevel +v_atm,&!<Meridionalwindvelocityatthelowestatmosphericlevel +w_atm,&!<Absolutewindatthelowestatmosphericlevel +thv_atm,&!<Surfaceairtheta_v +q_atm,&!<Mixingratioatlowestatmosphericlevel(kg/kg) +u_surf,&!<ZonalwindvelocityattheEarth'ssurface +v_surf,&!<MeridionalwindvelocityattheEarth'ssurface +thv_surf,&!<Surfacetheta_v +q_surf0 + +real,intent(inout),dimension(:)::& +rough_mom,&!<Momentumroughnesslength +rough_heat,&!<Heatroughnesslength +rough_moist,&!<Moistureroughnesslength +cd_m,&!<Momentumexchangecoefficient +cd_t,&!<Heatexchangecoefficient +cd_q,&!<Moistureexchangecoefficient +u_star,&!<Turbulentvelocityscale +b_star +logical,intent(in),dimension(:)::& +avail,&!<.TRUE.wheretheexchangecellisactive +seawater + +!----localvars----------------------------------------------------------- +real,dimension(size(z_atm(:)))::& +flux_q,q_star,& +ref_u,ref_v,u10,del_m,del_h,del_q,& +rough_mom1,rough_heat1,rough_moist1 +integeri,j + +doi=1,niter_monin_obukhov +doj=1,size(avail) +if(avail(j).and.seawater(j))then + +!getq_star(notimportantbutrequiredbymo_profile) +flux_q(j)=cd_q(j)*w_atm(j)*(q_surf0(j)-q_atm(j)) +q_star(j)=flux_q(j)/u_star(j) + +!getdel_mfordiagnosingu10 +!thisstepcanbeskippedifusingneutralwindtocalculatez0/zt +callfms_monin_obukhov_mo_profile(10.,2.,z_atm(j),& +rough_mom(j),rough_heat(j),rough_moist(j),& +u_star(j),b_star(j),q_star(j),& +del_m(j),del_h(j),del_q(j)) + +!get10mwindandthenuseittogetz0/zt +if(use_u10_neutral)then +u10(j)=u_star(j)/vonkarm*log(10./rough_mom(j)) +else +u10(j)=0. +ref_u(j)=u_surf(j)+(u_atm(j)-u_surf(j))*del_m(j) +ref_v(j)=v_surf(j)+(v_atm(j)-v_surf(j))*del_m(j) +u10(j)=sqrt(ref_u(j)**2+ref_v(j)**2) +endif + +!canexpandbelowforotherz0/ztoptions +if(rough_scheme_ocean=='hwrf17')then +callcal_z0_hwrf17(u10(j),rough_mom1(j)) +callcal_zt_hwrf17(u10(j),rough_heat1(j)) +rough_mom(j)=rough_mom1(j) +rough_heat(j)=rough_heat1(j) +rough_moist(j)=rough_heat(j) +endif +! +callfms_monin_obukhov_mo_drag(thv_atm(j),thv_surf(j),z_atm(j),& +rough_mom(j),rough_heat(j),rough_moist(j),w_atm(j),& +cd_m(j),cd_t(j),cd_q(j),u_star(j),b_star(j)) +endif +enddo +enddo + +endsubroutineiter_monin_obukhov_ocean + +endmodulesurface_flux_mod + + + + diff --git a/docs/xml/surface_flux_config.xml b/docs/xml/surface_flux_config.xml new file mode 100644 index 00000000..977710f7 --- /dev/null +++ b/docs/xml/surface_flux_config.xml @@ -0,0 +1,36 @@ + + + + surface_flux_config + Surface Flux Configuration + +surface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables. + +surface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables. +Variable Name Type Default Value Description + +no_neg_q logical .FALSE. If q_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0. + +use_virtual_temp logical .TRUE. If true, use virtual potential temp to calculate the stability of the surface layer. if false, use potential temp. + +alt_gustiness logical .FALSE. An alternative formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations, with the bound equal to gust_const. + +old_dtaudv logical .FALSE. The derivative of surface wind stress w.r.t. the zonal wind and meridional wind are approximated by the same tendency. + +use_mixing_ratio logical .FALSE. An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). + +gust_const real 1.0 Constant for alternative gustiness calculation. + +gust_min real 0.0 Minimum gustiness used when alt_gustiness = false. + +ncar_ocean_flux logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. + +ncar_ocean_flux_orig logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. + +raoult_sat_vap logical .FALSE. Reduce saturation vapor pressures to account for seawater salinity. + +do_simple logical .FALSE. </table +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              From 2c54460239370e0d32a478725f4989ea0e58af58 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Wed, 25 Feb 2026 15:54:47 -0500 Subject: [PATCH 21/31] update --- Doxyfile | 2 +- .../_s_hi_e_l_d_2coupler__main_8_f90.html | 2 +- docs/html/annotated.html | 2 +- .../atm__land__ice__flux__exchange_8_f90.html | 199 +- ...atmos__ocean__dep__fluxes__calc_8_f90.html | 2 +- .../atmos__ocean__fluxes__calc_8_f90.html | 2 +- docs/html/classes.html | 2 +- docs/html/coupler_config.html | 2 +- .../dir_9982052f7ce695d12571567315b2fafa.html | 2 +- .../dir_d31ef39e894be3975a1de5d6a46d3717.html | 2 +- .../dir_ec0543676189fadf8843b558a280dd29.html | 2 +- .../dir_f6406403be25082e487bde7aa9e18575.html | 2 +- docs/html/files.html | 2 +- docs/html/flux_exchange_conf.html | 2 +- docs/html/full_2coupler__main_8_f90.html | 2 +- docs/html/full_2flux__exchange_8_f90.html | 2 +- docs/html/full__coupler__mod_8_f90.html | 2 +- docs/html/functions.html | 2 +- docs/html/functions_func.html | 2 +- docs/html/functions_vars.html | 2 +- docs/html/globals.html | 2 +- docs/html/globals_defs.html | 2 +- docs/html/globals_func.html | 2 +- docs/html/ice__model_8_f90.html | 2 +- .../ice__ocean__flux__exchange_8_f90.html | 2 +- docs/html/index.html | 2 +- ...mod_1_1put__logical__to__real-members.html | 2 +- ...change__mod_1_1put__logical__to__real.html | 2 +- ...e__flux__mod_1_1surface__flux-members.html | 2 +- ...cesurface__flux__mod_1_1surface__flux.html | 2 +- .../html/land__ice__flux__exchange_8_f90.html | 2 +- ...ceatm__land__ice__flux__exchange__mod.html | 685 +- ...eatmos__ocean__dep__fluxes__calc__mod.html | 2 +- ...espaceatmos__ocean__fluxes__calc__mod.html | 2 +- docs/html/namespaceflux__exchange__mod.html | 2 +- docs/html/namespacefull__coupler__mod.html | 2 +- docs/html/namespaceice__model__mod.html | 2 +- ...espaceice__ocean__flux__exchange__mod.html | 2 +- ...mespaceland__ice__flux__exchange__mod.html | 2 +- docs/html/namespacemembers.html | 5 +- docs/html/namespacemembers_b.html | 2 +- docs/html/namespacemembers_c.html | 2 +- docs/html/namespacemembers_d.html | 8 +- docs/html/namespacemembers_e.html | 11 +- docs/html/namespacemembers_f.html | 2 +- docs/html/namespacemembers_func.html | 2 +- docs/html/namespacemembers_g.html | 2 +- docs/html/namespacemembers_h.html | 2 +- docs/html/namespacemembers_i.html | 5 +- docs/html/namespacemembers_j.html | 2 +- docs/html/namespacemembers_k.html | 2 +- docs/html/namespacemembers_l.html | 2 +- docs/html/namespacemembers_m.html | 2 +- docs/html/namespacemembers_n.html | 2 +- docs/html/namespacemembers_o.html | 2 +- docs/html/namespacemembers_p.html | 2 +- docs/html/namespacemembers_q.html | 2 +- docs/html/namespacemembers_r.html | 2 +- docs/html/namespacemembers_s.html | 5 +- docs/html/namespacemembers_t.html | 5 +- docs/html/namespacemembers_u.html | 2 +- docs/html/namespacemembers_v.html | 2 +- docs/html/namespacemembers_vars.html | 5 +- docs/html/namespacemembers_vars_b.html | 2 +- docs/html/namespacemembers_vars_c.html | 2 +- docs/html/namespacemembers_vars_d.html | 8 +- docs/html/namespacemembers_vars_e.html | 11 +- docs/html/namespacemembers_vars_f.html | 2 +- docs/html/namespacemembers_vars_g.html | 2 +- docs/html/namespacemembers_vars_h.html | 2 +- docs/html/namespacemembers_vars_i.html | 5 +- docs/html/namespacemembers_vars_j.html | 2 +- docs/html/namespacemembers_vars_k.html | 2 +- docs/html/namespacemembers_vars_l.html | 2 +- docs/html/namespacemembers_vars_m.html | 2 +- docs/html/namespacemembers_vars_n.html | 2 +- docs/html/namespacemembers_vars_o.html | 2 +- docs/html/namespacemembers_vars_p.html | 2 +- docs/html/namespacemembers_vars_q.html | 2 +- docs/html/namespacemembers_vars_r.html | 2 +- docs/html/namespacemembers_vars_s.html | 5 +- docs/html/namespacemembers_vars_t.html | 5 +- docs/html/namespacemembers_vars_u.html | 2 +- docs/html/namespacemembers_vars_v.html | 2 +- docs/html/namespacemembers_vars_w.html | 2 +- docs/html/namespacemembers_vars_x.html | 2 +- docs/html/namespacemembers_vars_z.html | 2 +- docs/html/namespacemembers_w.html | 2 +- docs/html/namespacemembers_x.html | 2 +- docs/html/namespacemembers_z.html | 2 +- docs/html/namespaces.html | 2 +- docs/html/namespacesurface__flux__mod.html | 2 +- docs/html/pages.html | 2 +- docs/html/search/all_0.js | 3 +- docs/html/search/all_12.js | 1 - docs/html/search/all_13.js | 1 - docs/html/search/all_3.js | 4 +- docs/html/search/all_4.js | 3 + docs/html/search/all_8.js | 1 - docs/html/search/variables_0.js | 3 +- docs/html/search/variables_12.js | 1 - docs/html/search/variables_13.js | 1 - docs/html/search/variables_3.js | 4 +- docs/html/search/variables_4.js | 3 + docs/html/search/variables_8.js | 1 - docs/html/simple_2coupler__main_8_f90.html | 2 +- docs/html/simple_2flux__exchange_8_f90.html | 2 +- ...od_1_1tracer__exch__ind__type-members.html | 2 +- ...hange__mod_1_1tracer__exch__ind__type.html | 2 +- ...nge__mod_1_1tracer__ind__type-members.html | 2 +- ...x__exchange__mod_1_1tracer__ind__type.html | 2 +- ..._mod_1_1coupler__chksum__type-members.html | 2 +- ...coupler__mod_1_1coupler__chksum__type.html | 2 +- ...__mod_1_1coupler__clock__type-members.html | 2 +- ..._coupler__mod_1_1coupler__clock__type.html | 2 +- ..._1_1coupler__components__type-members.html | 2 +- ...ler__mod_1_1coupler__components__type.html | 2 +- ...1_1atmos__ice__boundary__type-members.html | 2 +- ...el__mod_1_1atmos__ice__boundary__type.html | 2 +- ...model__mod_1_1ice__data__type-members.html | 2 +- ...uctice__model__mod_1_1ice__data__type.html | 2 +- docs/html/surface__flux_8_f90.html | 2 +- docs/html/surface_flux_config.html | 2 +- .../atm__land__ice__flux__exchange_8_f90.xml | 7514 ++++++++--------- docs/xml/index.xml | 9 +- ...xchange__mod_1_1put__logical__to__real.xml | 4 +- ...aceatm__land__ice__flux__exchange__mod.xml | 788 +- ...change__mod_1_1tracer__exch__ind__type.xml | 8 +- ...ux__exchange__mod_1_1tracer__ind__type.xml | 8 +- full/atm_land_ice_flux_exchange.F90 | 340 +- 130 files changed, 5162 insertions(+), 4691 deletions(-) diff --git a/Doxyfile b/Doxyfile index 9f581eea..61ed248b 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1837,7 +1837,7 @@ MAN_LINKS = NO # captures the structure of the code including all documentation. # The default value is: NO. -GENERATE_XML = NO +GENERATE_XML = YES # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of diff --git a/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html b/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html index 84a42d98..d1c9395b 100644 --- a/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html +++ b/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html @@ -178,7 +178,7 @@

                                                                                                                                                                              diff --git a/docs/html/annotated.html b/docs/html/annotated.html index a43193f9..cb7d14c2 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -86,7 +86,7 @@ diff --git a/docs/html/atm__land__ice__flux__exchange_8_f90.html b/docs/html/atm__land__ice__flux__exchange_8_f90.html index 7a6311da..daa6bf5f 100644 --- a/docs/html/atm__land__ice__flux__exchange_8_f90.html +++ b/docs/html/atm__land__ice__flux__exchange_8_f90.html @@ -169,197 +169,287 @@

                                                                                                                                                                              (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

                                                                                                                                                                               module name used to register diag_manager More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_b_star + diag_manager registered field id for bouyancy scale More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_del_h + diag_manager registered field id ref height interp factor for heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_del_m + diag_manager registered field id ref height for interp factor for momentum More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_del_q + diag_manager registered field id ref height interp factor for moisture More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_drag_heat + diag_manager registered field id drag coefficient for heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_drag_moist + diag_manager registered field id drag coefficient for moisture More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_drag_mom + diag_manager registered field id drag coefficient for momentum More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_gust + diag_manager registered field id gust scale More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_husslut_land + diag_manager registered field id near-surface specific humidity on land use tile More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_ice_mask + diag_manager registered field id fractional amount of land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_land_mask + diag_manager registered field id fractional amount of sea ice More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_p_atm + diag_manager registered field id pressure at lowest atmospheric level More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_q_flux + diag_manager registered field id evaporation rate More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_q_flux_land + diag_manager registered field id evaporation rate over land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_q_ref + diag_manager registered field id specific humidity at z_ref_heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_q_ref_land + diag_manager registered field id specific humidity at z_ref_heat over land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_q_star + diag_manager registered field id moisture scale More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_r_flux + diag_manager registered field id net (down-up) longwave flux More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rh_ref + diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip + diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rh_ref_land + diag_manager registered field id relative humidity at z_ref_heat over land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rough_heat + diag_manager registered field id surface roughness for heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rough_moist + diag_manager registered field id surface roughness for moisture More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rough_mom + diag_manager registered field id surface roughness for momentum More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rough_scale + diag_manager registered field id topographic scaling fractor for momentum drag More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_slp + diag_manager registered field id sea level pressure More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_t_atm + diag_manager registered field id temperature at lowest atmospheric level More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_t_ca + diag_manager registered field id canopy air temperature More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_t_flux + diag_manager registered field id sensible heat flux More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_t_ocean + diag_manager registered field id surface temperature from ocean output More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_t_ref + diag_manager registered field id temperature at z_ref_heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_t_ref_land + diag_manager registered field id temperature at z_ref_heat over land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_t_surf + diag_manager registered field id surface temperature More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_taslut_land + diag_manager registered field id near-surface air temperature z_ref_heat More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_thv_atm + diag_manager registered field id surface air virtual potential temperature More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_thv_surf + diag_manager registered field id surface virtual potential temperature More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_u_atm + diag_manager registered field id u wind component at lowest atmospheric level More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_u_flux + diag_manager registered field id zonal wind stress More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_u_ref + diag_manager registered field id zonal wind component at z_ref_mom More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_u_ref_land + diag_manager registered field id zonal wind component at z_ref_mom over land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_u_star   integer atm_land_ice_flux_exchange_mod::id_v_atm + diag_manager registered field id v wind component at lowest atmospheric level More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_v_flux + diag_manager registered field id meridional wind stress More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_v_ref + diag_manager registered field id meridional wind component at z_ref_mom More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_v_ref_land + diag_manager registered field id meridional wind component at z_ref_mom over land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_wind + diag_manager registered field id wind speed for flux calculations More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_wind_ref + diag_manager registered field id absolute value of wind at z_ref_mom More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_z_atm + diag_manager registered field id height of lowest atmospheric level More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr + diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr   integer atm_land_ice_flux_exchange_mod::id_co2_bot + diag_manager registered field id concentration of co2 to be passed to land/photosynthesis More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm + diag_manager registered field id concentration of co2 to be passed to ocean More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm + diag_manager registered field id concentration of o2 to be passed to to ocean More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm + diag_manager registered field id value of tracer at lowest atmospheric level More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf + diag_manager registered field id value of tracer at surface More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux + diag_manager registered field id tracer fluxes More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux + diag_manager registered field id flux of co2 concentration in [mol/m2*s] More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref + diag_manager registered field id value of tracer at z_ref_heat More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land + diag_manager registered field id tracer flux at z_ref_heat over land More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0 + diag_manager registered field id More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land + diag_manager registered field id flux of tracer concentration over land in [kg/m2*s] More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land + diag_manager registered field id flux of More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm + diag_manager registered field id deposition velocity at lowest atmospheric level (atm) More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land + diag_manager registered field id More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref + diag_manager registered field id deposition velocity at reference height (atm) More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land + diag_manager registered field id deposition velocity at reference height over land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_evspsbl + diag_manager registered field id water evaporation flux (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_height10m + diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_height2m + diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_hfls + diag_manager registered field id surface upward latent heat flux (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_hfss + diag_manager registered field id surface upward sensible heat flux (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_hurs + diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_huss + diag_manager registered field id near-surface specific humidity (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_psl + diag_manager registered field id air pressure at sea level (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_rhs + diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_sfcwind + diag_manager registered field id near-surface wind speed (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_sftlf + diag_manager registered field id fraction of the grid cell occupied by land (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_sic + diag_manager registered field id sea ice area fraction (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_tas + diag_manager registered field id near-surface air temperature (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_tauu + diag_manager registered field id surface downward eastward wind stress (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_tauv + diag_manager registered field id surface downward northward wind stress (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_tos + diag_manager registered field id sea surface temperature (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_ts + diag_manager registered field id surface temperature (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_tslsi + diag_manager registered field id surface temperature on land or sea ice (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_uas + diag_manager registered field id eastward near-surface wind (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_vas + diag_manager registered field id northward near-surface wind (for cmip) More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_evspsbl_g + diag_manager registered field id global integral of water evaporation flux More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_hfls_g + diag_manager registered field id global integral of surface upward sensible heat flux More...
                                                                                                                                                                                -integer atm_land_ice_flux_exchange_mod::id_hfss_g -  integer atm_land_ice_flux_exchange_mod::id_rls_g + diag_manager registered field id global integral of near-surface relative humidty More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_tas_g + diag_manager registered field id global integral of near-surface air temperature More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_tasl_g + diag_manager registered field id global integral of near-surface air temperature on land only More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_ts_g + diag_manager registered field id global integral of surface temperature More...
                                                                                                                                                                                logical atm_land_ice_flux_exchange_mod::first_static = .true.  If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
                                                                                                                                                                                logical atm_land_ice_flux_exchange_mod::do_init = .true. + true if atm_land_ice_flux_exchnge_init has been called More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::remap_method = 1 + first or second order conservative remapping onto exchange grid More...
                                                                                                                                                                                real, parameter atm_land_ice_flux_exchange_mod::d622 = rdgas/rvgas   @@ -373,119 +463,160 @@

                                                                                                                                                                              (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip   real atm_land_ice_flux_exchange_mod::z_ref_heat = 2. + Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml. More...
                                                                                                                                                                                real atm_land_ice_flux_exchange_mod::z_ref_mom = 10. + Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml. More...
                                                                                                                                                                                -logical atm_land_ice_flux_exchange_mod::do_area_weighted_flux = .FALSE. -  logical atm_land_ice_flux_exchange_mod::do_forecast = .false. + flag to do forecast, defined through flux_exchange_nml More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::nblocks = 1 + OpenMP number of threads. More...
                                                                                                                                                                                logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec = .FALSE. + If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined. More...
                                                                                                                                                                                logical atm_land_ice_flux_exchange_mod::scale_precip_2d = .false. + If true, scale mass of liqud preciptation. More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::my_nblocks = 1 + Initializing OpenMP parameter. More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start + starting do loop indices for OpenMP thread More...
                                                                                                                                                                                integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end + ending do loop indices for OpenMP thread More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix + used for albedo correction More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix + used for albedo correction More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix + used for albedo correction More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix + used for albedo correction More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix + used for albedo correction More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star + boyuancy scale on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m + drag coefficient for momentum on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t  drag coefficient for heat on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm - deposition velocity at lowest atmospheric level on exchange grid More...
                                                                                                                                                                              + deposition velocity at lowest atmospheric level on exchange grid on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf + d(water.vap.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm + d(sens.heat.flux)/d(T atm) on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf + d(sens.heat.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf + d(water.vap.flux)/d(q canopy) on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf + d(LW flux)/d(T surf) on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm + d(stress)/d(u) on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm + d(stress)/d(v) on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n + dt/mass * dedet_surf * gamma on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw + longwave radiation flux on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t + sensible heat flux on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u + u stress on atmosphere on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v + v stress on atmosphere on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo + old value of albedo for downward flux calculations, used for albedo correction More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf + surface pressure on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater + mask array of seaice fractions on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp + surface pressure on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca + near-surface (canopy) air temperature on exchange grid [K] More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf + surface temperature for radiation calc on exchange grid [K] More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz - miz NEED HELP More...
                                                                                                                                                                              + used when do_forecast = .true. More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star + friction velocity on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind + wind speed on exchange grid More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm + height of lowest atmospheric level on exchange grid More...
                                                                                                                                                                                +real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf_forland +  +real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf_forland +  +real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedq_surf_forland +  real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm - d(tracer flux)/d(atm tracer) More...
                                                                                                                                                                              + d(tracer flux)/d(atm tracer) on exchange grid More...
                                                                                                                                                                                real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf - d(tracer flux)/d(surf tracer) More...
                                                                                                                                                                              + d(tracer flux)/d(surf tracer) on exchange grid More...
                                                                                                                                                                                real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n - coefficient in implicit scheme More...
                                                                                                                                                                              + coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n - coefficient in implicit scheme More...
                                                                                                                                                                              + coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr - tracer fluxes More...
                                                                                                                                                                              + tracer fluxes on exchange grid More...
                                                                                                                                                                                real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref - deposition velocity at reference height More...
                                                                                                                                                                              + deposition velocity at reference height on exchange grid More...
                                                                                                                                                                                real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm - deposition velocity at atmospheric height More...
                                                                                                                                                                              + deposition velocity at atmospheric height on exchange grid More...
                                                                                                                                                                                real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf - near-surface tracer fields More...
                                                                                                                                                                              + near-surface tracer fields on exchange grid More...
                                                                                                                                                                                logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail - true where data on exchange grid are available More...
                                                                                                                                                                              + mask where true if data on exchange grid are available More...
                                                                                                                                                                                logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land - true if exchange grid cell is over land More...
                                                                                                                                                                              + mask where true if exchange grid cell is over land More...
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n   @@ -495,28 +626,28 @@

                                                                                                                                                                              (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

                                                                                                                                                                               number of prognostic tracers in the atmos model More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot - number of prognostic tracers in the atmos model More...
                                                                                                                                                                              + number of tracers in the atmos model More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::n_lnd_tr  number of prognostic tracers in the land model More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot - number of prognostic tracers in the land model More...
                                                                                                                                                                              + number of tracers in the land model More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::n_exch_tr  number of tracers exchanged between models More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd - number of gex fields exchanged between land and atmosphere More...
                                                                                                                                                                              + number of generic exchange fields exchanged from atmospehre to land More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm - number of gex fields exchanged between atmosphere and land More...
                                                                                                                                                                              + number of generic exchange fields exchanged from land to atmosphere More...
                                                                                                                                                                                type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table  table of tracers passed through flux exchange More...
                                                                                                                                                                                type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map - map atm tracers to exchange, ice and land variables More...
                                                                                                                                                                              + holds tracer id in atm, ice, and land models More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::isphum = NO_TRACER  tracer index for specific humidity More...
                                                                                                                                                                              @@ -528,24 +659,25 @@

                                                                                                                                                                              (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

                                                                                                                                                                               tracer index for nh3 More...
                                                                                                                                                                                type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm =>NULL() - gas fields in atm place holder for various atmospheric fields. More...
                                                                                                                                                                              + pointer to gas fields in atm, place holder for various atmospheric fields. More...
                                                                                                                                                                                type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice =>NULL() - gas fields on ice More...
                                                                                                                                                                              + pointer to gas fields on ice More...
                                                                                                                                                                                type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes =>NULL() - gas flux place holder of intermediate calculations, such as piston velocities etc. More...
                                                                                                                                                                              + pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. More...
                                                                                                                                                                                integer, parameter atm_land_ice_flux_exchange_mod::regrid =1 - grids are physically different, pass via exchange grid More...
                                                                                                                                                                              + flag to indicate component grids for flux exchange are different, More...
                                                                                                                                                                                integer, parameter atm_land_ice_flux_exchange_mod::redist =2 - same physical grid, different decomposition, must move data around More...
                                                                                                                                                                              + component grid for flux exchange are identical but are decomposed differently, More...
                                                                                                                                                                                integer, parameter atm_land_ice_flux_exchange_mod::redirect =3 - same physical grid, same domain decomposition, can directly copy data More...
                                                                                                                                                                              + component grid for flux exchange are identical with same domain decomposition, More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::cplclock + FMS clock to profile general processes. More...
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::sfcclock  FMS clock id to profile sfc_boundary_layer. More...
                                                                                                                                                                              @@ -569,14 +701,11 @@

                                                                                                                                                                              (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

                                                                                                                                                                               =3 exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                real atm_land_ice_flux_exchange_mod::dt_atm + atmospheric timestep [s] More...
                                                                                                                                                                                -real atm_land_ice_flux_exchange_mod::atmospheric -  -real atm_land_ice_flux_exchange_mod::timestep -  -real atm_land_ice_flux_exchange_mod::s - coupled timestep [s] More...
                                                                                                                                                                              -  +real atm_land_ice_flux_exchange_mod::dt_cpl + coupled timestep [s] More...
                                                                                                                                                                              +  integer atm_land_ice_flux_exchange_mod::ni_atm  number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
                                                                                                                                                                                @@ -689,7 +818,7 @@

                                                                                                                                                                              diff --git a/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html index db9fe884..efefa98d 100644 --- a/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html +++ b/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html @@ -99,7 +99,7 @@

                                                                                                                                                                              (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                              diff --git a/docs/html/atmos__ocean__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__fluxes__calc_8_f90.html index 4e249fd8..9d76f720 100644 --- a/docs/html/atmos__ocean__fluxes__calc_8_f90.html +++ b/docs/html/atmos__ocean__fluxes__calc_8_f90.html @@ -125,7 +125,7 @@

                                                                                                                                                                              (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                              diff --git a/docs/html/classes.html b/docs/html/classes.html index 03304a98..e7198e80 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -86,7 +86,7 @@ diff --git a/docs/html/coupler_config.html b/docs/html/coupler_config.html index 0b0dbe7a..48a4261d 100644 --- a/docs/html/coupler_config.html +++ b/docs/html/coupler_config.html @@ -126,7 +126,7 @@ diff --git a/docs/html/dir_9982052f7ce695d12571567315b2fafa.html b/docs/html/dir_9982052f7ce695d12571567315b2fafa.html index 36496268..b3dbc694 100644 --- a/docs/html/dir_9982052f7ce695d12571567315b2fafa.html +++ b/docs/html/dir_9982052f7ce695d12571567315b2fafa.html @@ -80,7 +80,7 @@ diff --git a/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html b/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html index 2afdc76a..492ac18d 100644 --- a/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html +++ b/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html @@ -80,7 +80,7 @@ diff --git a/docs/html/dir_ec0543676189fadf8843b558a280dd29.html b/docs/html/dir_ec0543676189fadf8843b558a280dd29.html index cdc214b4..38741bc6 100644 --- a/docs/html/dir_ec0543676189fadf8843b558a280dd29.html +++ b/docs/html/dir_ec0543676189fadf8843b558a280dd29.html @@ -86,7 +86,7 @@ diff --git a/docs/html/dir_f6406403be25082e487bde7aa9e18575.html b/docs/html/dir_f6406403be25082e487bde7aa9e18575.html index 91f01db6..9b62f066 100644 --- a/docs/html/dir_f6406403be25082e487bde7aa9e18575.html +++ b/docs/html/dir_f6406403be25082e487bde7aa9e18575.html @@ -100,7 +100,7 @@ diff --git a/docs/html/files.html b/docs/html/files.html index 0f61a8f3..2d72e77e 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -90,7 +90,7 @@ diff --git a/docs/html/flux_exchange_conf.html b/docs/html/flux_exchange_conf.html index 1c93b64f..8777559e 100644 --- a/docs/html/flux_exchange_conf.html +++ b/docs/html/flux_exchange_conf.html @@ -94,7 +94,7 @@ diff --git a/docs/html/full_2coupler__main_8_f90.html b/docs/html/full_2coupler__main_8_f90.html index 214b3f91..10d339f0 100644 --- a/docs/html/full_2coupler__main_8_f90.html +++ b/docs/html/full_2coupler__main_8_f90.html @@ -116,7 +116,7 @@

                                                                                                                                                                              diff --git a/docs/html/full_2flux__exchange_8_f90.html b/docs/html/full_2flux__exchange_8_f90.html index aaffd6fd..85bf4e43 100644 --- a/docs/html/full_2flux__exchange_8_f90.html +++ b/docs/html/full_2flux__exchange_8_f90.html @@ -329,7 +329,7 @@

                                                                                                                                                                              logical, dimension(:,:) :: Ocean%Data%mask & ! ocean/land mask for temperature points on the ocean
                                                                                                                                                                              ! DATA GRID (true for ocean)
                                                                                                                                                                              ocean%Data%mask_uv & ! ocean/land mask for momentum points on the ocean
                                                                                                                                                                              ! DATA GRID (true for ocean)
                                                                                                                                                                              ocean%Ocean%mask & ! ocean/land mask for temperature points on the ocean
                                                                                                                                                                              ! MODEL GRID (true for ocean)
                                                                                                                                                                              ocean%Ocean%mask_uv ! ocean/land mask for momentum points on the ocean
                                                                                                                                                                              ! MODEL GRID (true for ocean)
                                                                                                                                                                              real, dimension(:,:) :: Ocean%t_surf_data & ! surface temperature on the ocean DATA GRID (deg k)
                                                                                                                                                                              Ocean%t_surf & ! surface temperature on the ocean MODEL GRID (deg k)
                                                                                                                                                                              Ocean%u_surf & ! zonal ocean current at the surface on the ocean
                                                                                                                                                                              ! MODEL GRID (m/s)
                                                                                                                                                                              ocean%v_surf & ! meridional ocean current at the surface on the
                                                                                                                                                                              ! ocean MODEL GRID (m/s)
                                                                                                                                                                              ocean%frazil ! frazil at temperature points on the ocean model grid
                                                                                                                                                                              diff --git a/docs/html/full__coupler__mod_8_f90.html b/docs/html/full__coupler__mod_8_f90.html index fb441fea..92cdf0eb 100644 --- a/docs/html/full__coupler__mod_8_f90.html +++ b/docs/html/full__coupler__mod_8_f90.html @@ -336,7 +336,7 @@

                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                              diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html index b73225ae..fc9371be 100644 --- a/docs/html/functions_func.html +++ b/docs/html/functions_func.html @@ -106,7 +106,7 @@ diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index c2e22aa8..b0d9f293 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -399,7 +399,7 @@

                                                                                                                                                                              - x -

                                                                                                                                                                                diff --git a/docs/html/globals.html b/docs/html/globals.html index a8d21444..10079d84 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -100,7 +100,7 @@ diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html index d5505d56..14786a43 100644 --- a/docs/html/globals_defs.html +++ b/docs/html/globals_defs.html @@ -85,7 +85,7 @@ diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html index c2ef2dfd..8b919863 100644 --- a/docs/html/globals_func.html +++ b/docs/html/globals_func.html @@ -82,7 +82,7 @@ diff --git a/docs/html/ice__model_8_f90.html b/docs/html/ice__model_8_f90.html index 5e3ff0fd..c795c888 100644 --- a/docs/html/ice__model_8_f90.html +++ b/docs/html/ice__model_8_f90.html @@ -196,7 +196,7 @@

                                                                                                                                                                                (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                diff --git a/docs/html/ice__ocean__flux__exchange_8_f90.html b/docs/html/ice__ocean__flux__exchange_8_f90.html index 160f4562..7b6b7cc3 100644 --- a/docs/html/ice__ocean__flux__exchange_8_f90.html +++ b/docs/html/ice__ocean__flux__exchange_8_f90.html @@ -142,7 +142,7 @@

                                                                                                                                                                                (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                                diff --git a/docs/html/index.html b/docs/html/index.html index a81c5f14..fde9bdb6 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -100,7 +100,7 @@

                                                                                                                                                                                DO slow time steps(ocean)
                                                                                                                                                                                call flux_ocean_to_ice
                                                                                                                                                                                call set_ice_surface_fields
                                                                                                                                                                                DO fast time steps(atmos)
                                                                                                                                                                                call flux_calculation
                                                                                                                                                                                call atmos_down
                                                                                                                                                                                call flux_down_from_atmos
                                                                                                                                                                                call land_fast
                                                                                                                                                                                call ice_fast
                                                                                                                                                                                call flux_up_to_atmos
                                                                                                                                                                                call atmos_up
                                                                                                                                                                                ENDDO
                                                                                                                                                                                call ice_slow
                                                                                                                                                                                call flux_ice_to_ocean
                                                                                                                                                                                call ocean
                                                                                                                                                                                enddo
                                                                                                                                                                                diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html index b93f0279..b414b6a6 100644 --- a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html +++ b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html @@ -78,7 +78,7 @@ diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html index 0ffd5296..1dda0eba 100644 --- a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html +++ b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html @@ -204,7 +204,7 @@

                                                                                                                                                                                diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html index f599db08..e45ea29e 100644 --- a/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html +++ b/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html @@ -78,7 +78,7 @@ diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux.html index 2d3c984e..10c7ae82 100644 --- a/docs/html/interfacesurface__flux__mod_1_1surface__flux.html +++ b/docs/html/interfacesurface__flux__mod_1_1surface__flux.html @@ -758,7 +758,7 @@

                                                                                                                                                                                diff --git a/docs/html/land__ice__flux__exchange_8_f90.html b/docs/html/land__ice__flux__exchange_8_f90.html index 8de8a80c..5ea1e943 100644 --- a/docs/html/land__ice__flux__exchange_8_f90.html +++ b/docs/html/land__ice__flux__exchange_8_f90.html @@ -115,7 +115,7 @@

                                                                                                                                                                                (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                                diff --git a/docs/html/namespaceatm__land__ice__flux__exchange__mod.html b/docs/html/namespaceatm__land__ice__flux__exchange__mod.html index 0863859b..9e93fcf7 100644 --- a/docs/html/namespaceatm__land__ice__flux__exchange__mod.html +++ b/docs/html/namespaceatm__land__ice__flux__exchange__mod.html @@ -140,197 +140,287 @@  module name used to register diag_manager More...
                                                                                                                                                                                  integer id_b_star + diag_manager registered field id for bouyancy scale More...
                                                                                                                                                                                  integer id_del_h + diag_manager registered field id ref height interp factor for heat More...
                                                                                                                                                                                  integer id_del_m + diag_manager registered field id ref height for interp factor for momentum More...
                                                                                                                                                                                  integer id_del_q + diag_manager registered field id ref height interp factor for moisture More...
                                                                                                                                                                                  integer id_drag_heat + diag_manager registered field id drag coefficient for heat More...
                                                                                                                                                                                  integer id_drag_moist + diag_manager registered field id drag coefficient for moisture More...
                                                                                                                                                                                  integer id_drag_mom + diag_manager registered field id drag coefficient for momentum More...
                                                                                                                                                                                  integer id_gust + diag_manager registered field id gust scale More...
                                                                                                                                                                                  integer id_husslut_land + diag_manager registered field id near-surface specific humidity on land use tile More...
                                                                                                                                                                                  integer id_ice_mask + diag_manager registered field id fractional amount of land More...
                                                                                                                                                                                  integer id_land_mask + diag_manager registered field id fractional amount of sea ice More...
                                                                                                                                                                                  integer id_p_atm + diag_manager registered field id pressure at lowest atmospheric level More...
                                                                                                                                                                                  integer id_q_flux + diag_manager registered field id evaporation rate More...
                                                                                                                                                                                  integer id_q_flux_land + diag_manager registered field id evaporation rate over land More...
                                                                                                                                                                                  integer id_q_ref + diag_manager registered field id specific humidity at z_ref_heat More...
                                                                                                                                                                                  integer id_q_ref_land + diag_manager registered field id specific humidity at z_ref_heat over land More...
                                                                                                                                                                                  integer id_q_star + diag_manager registered field id moisture scale More...
                                                                                                                                                                                  integer id_r_flux + diag_manager registered field id net (down-up) longwave flux More...
                                                                                                                                                                                  integer id_rh_ref + diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                  integer id_rh_ref_cmip + diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                  integer id_rh_ref_land + diag_manager registered field id relative humidity at z_ref_heat over land More...
                                                                                                                                                                                  integer id_rough_heat + diag_manager registered field id surface roughness for heat More...
                                                                                                                                                                                  integer id_rough_moist + diag_manager registered field id surface roughness for moisture More...
                                                                                                                                                                                  integer id_rough_mom + diag_manager registered field id surface roughness for momentum More...
                                                                                                                                                                                  integer id_rough_scale + diag_manager registered field id topographic scaling fractor for momentum drag More...
                                                                                                                                                                                  integer id_slp + diag_manager registered field id sea level pressure More...
                                                                                                                                                                                  integer id_t_atm + diag_manager registered field id temperature at lowest atmospheric level More...
                                                                                                                                                                                  integer id_t_ca + diag_manager registered field id canopy air temperature More...
                                                                                                                                                                                  integer id_t_flux + diag_manager registered field id sensible heat flux More...
                                                                                                                                                                                  integer id_t_ocean + diag_manager registered field id surface temperature from ocean output More...
                                                                                                                                                                                  integer id_t_ref + diag_manager registered field id temperature at z_ref_heat More...
                                                                                                                                                                                  integer id_t_ref_land + diag_manager registered field id temperature at z_ref_heat over land More...
                                                                                                                                                                                  integer id_t_surf + diag_manager registered field id surface temperature More...
                                                                                                                                                                                  integer id_taslut_land + diag_manager registered field id near-surface air temperature z_ref_heat More...
                                                                                                                                                                                  integer id_thv_atm + diag_manager registered field id surface air virtual potential temperature More...
                                                                                                                                                                                  integer id_thv_surf + diag_manager registered field id surface virtual potential temperature More...
                                                                                                                                                                                  integer id_u_atm + diag_manager registered field id u wind component at lowest atmospheric level More...
                                                                                                                                                                                  integer id_u_flux + diag_manager registered field id zonal wind stress More...
                                                                                                                                                                                  integer id_u_ref + diag_manager registered field id zonal wind component at z_ref_mom More...
                                                                                                                                                                                  integer id_u_ref_land + diag_manager registered field id zonal wind component at z_ref_mom over land More...
                                                                                                                                                                                  integer id_u_star   integer id_v_atm + diag_manager registered field id v wind component at lowest atmospheric level More...
                                                                                                                                                                                  integer id_v_flux + diag_manager registered field id meridional wind stress More...
                                                                                                                                                                                  integer id_v_ref + diag_manager registered field id meridional wind component at z_ref_mom More...
                                                                                                                                                                                  integer id_v_ref_land + diag_manager registered field id meridional wind component at z_ref_mom over land More...
                                                                                                                                                                                  integer id_wind + diag_manager registered field id wind speed for flux calculations More...
                                                                                                                                                                                  integer id_wind_ref + diag_manager registered field id absolute value of wind at z_ref_mom More...
                                                                                                                                                                                  integer id_z_atm + diag_manager registered field id height of lowest atmospheric level More...
                                                                                                                                                                                  integer id_co2_atm_dvmr + diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level More...
                                                                                                                                                                                  integer id_co2_surf_dvmr   integer id_co2_bot + diag_manager registered field id concentration of co2 to be passed to land/photosynthesis More...
                                                                                                                                                                                  integer id_co2_flux_pcair_atm + diag_manager registered field id concentration of co2 to be passed to ocean More...
                                                                                                                                                                                  integer id_o2_flux_pcair_atm + diag_manager registered field id concentration of o2 to be passed to to ocean More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_atm + diag_manager registered field id value of tracer at lowest atmospheric level More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_surf + diag_manager registered field id value of tracer at surface More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_flux + diag_manager registered field id tracer fluxes More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_mol_flux + diag_manager registered field id flux of co2 concentration in [mol/m2*s] More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_ref + diag_manager registered field id value of tracer at z_ref_heat More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_ref_land + diag_manager registered field id tracer flux at z_ref_heat over land More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_mol_flux0 + diag_manager registered field id More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_flux_land + diag_manager registered field id flux of tracer concentration over land in [kg/m2*s] More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_mol_flux_land + diag_manager registered field id flux of More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_con_atm + diag_manager registered field id deposition velocity at lowest atmospheric level (atm) More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_con_atm_land + diag_manager registered field id More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_con_ref + diag_manager registered field id deposition velocity at reference height (atm) More...
                                                                                                                                                                                  integer, dimension(:), allocatable id_tr_con_ref_land + diag_manager registered field id deposition velocity at reference height over land More...
                                                                                                                                                                                  integer id_evspsbl + diag_manager registered field id water evaporation flux (for cmip) More...
                                                                                                                                                                                  integer id_height10m + diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                  integer id_height2m + diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                  integer id_hfls + diag_manager registered field id surface upward latent heat flux (for cmip) More...
                                                                                                                                                                                  integer id_hfss + diag_manager registered field id surface upward sensible heat flux (for cmip) More...
                                                                                                                                                                                  integer id_hurs + diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                  integer id_huss + diag_manager registered field id near-surface specific humidity (for cmip) More...
                                                                                                                                                                                  integer id_psl + diag_manager registered field id air pressure at sea level (for cmip) More...
                                                                                                                                                                                  integer id_rhs + diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                  integer id_sfcwind + diag_manager registered field id near-surface wind speed (for cmip) More...
                                                                                                                                                                                  integer id_sftlf + diag_manager registered field id fraction of the grid cell occupied by land (for cmip) More...
                                                                                                                                                                                  integer id_sic + diag_manager registered field id sea ice area fraction (for cmip) More...
                                                                                                                                                                                  integer id_tas + diag_manager registered field id near-surface air temperature (for cmip) More...
                                                                                                                                                                                  integer id_tauu + diag_manager registered field id surface downward eastward wind stress (for cmip) More...
                                                                                                                                                                                  integer id_tauv + diag_manager registered field id surface downward northward wind stress (for cmip) More...
                                                                                                                                                                                  integer id_tos + diag_manager registered field id sea surface temperature (for cmip) More...
                                                                                                                                                                                  integer id_ts + diag_manager registered field id surface temperature (for cmip) More...
                                                                                                                                                                                  integer id_tslsi + diag_manager registered field id surface temperature on land or sea ice (for cmip) More...
                                                                                                                                                                                  integer id_uas + diag_manager registered field id eastward near-surface wind (for cmip) More...
                                                                                                                                                                                  integer id_vas + diag_manager registered field id northward near-surface wind (for cmip) More...
                                                                                                                                                                                  integer id_evspsbl_g + diag_manager registered field id global integral of water evaporation flux More...
                                                                                                                                                                                  integer id_hfls_g + diag_manager registered field id global integral of surface upward sensible heat flux More...
                                                                                                                                                                                  -integer id_hfss_g -  integer id_rls_g + diag_manager registered field id global integral of near-surface relative humidty More...
                                                                                                                                                                                  integer id_tas_g + diag_manager registered field id global integral of near-surface air temperature More...
                                                                                                                                                                                  integer id_tasl_g + diag_manager registered field id global integral of near-surface air temperature on land only More...
                                                                                                                                                                                  integer id_ts_g + diag_manager registered field id global integral of surface temperature More...
                                                                                                                                                                                  logical first_static = .true.  If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
                                                                                                                                                                                  logical do_init = .true. + true if atm_land_ice_flux_exchnge_init has been called More...
                                                                                                                                                                                  integer remap_method = 1 + first or second order conservative remapping onto exchange grid More...
                                                                                                                                                                                  real, parameter d622 = rdgas/rvgas   @@ -344,119 +434,160 @@ real, dimension(:,:), allocatable frac_precip   real z_ref_heat = 2. + Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml. More...
                                                                                                                                                                                  real z_ref_mom = 10. + Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml. More...
                                                                                                                                                                                  -logical do_area_weighted_flux = .FALSE. -  logical do_forecast = .false. + flag to do forecast, defined through flux_exchange_nml More...
                                                                                                                                                                                  integer nblocks = 1 + OpenMP number of threads. More...
                                                                                                                                                                                  logical partition_fprec_from_lprec = .FALSE. + If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined. More...
                                                                                                                                                                                  logical scale_precip_2d = .false. + If true, scale mass of liqud preciptation. More...
                                                                                                                                                                                  integer my_nblocks = 1 + Initializing OpenMP parameter. More...
                                                                                                                                                                                  integer, dimension(:), allocatable block_start + starting do loop indices for OpenMP thread More...
                                                                                                                                                                                  integer, dimension(:), allocatable block_end + ending do loop indices for OpenMP thread More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_albedo_fix + used for albedo correction More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_albedo_nir_dif_fix + used for albedo correction More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_albedo_nir_dir_fix + used for albedo correction More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_albedo_vis_dif_fix + used for albedo correction More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_albedo_vis_dir_fix + used for albedo correction More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_b_star + boyuancy scale on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_cd_m + drag coefficient for momentum on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_cd_t  drag coefficient for heat on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_con_atm - deposition velocity at lowest atmospheric level on exchange grid More...
                                                                                                                                                                                + deposition velocity at lowest atmospheric level on exchange grid on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_dedt_surf + d(water.vap.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_dhdt_atm + d(sens.heat.flux)/d(T atm) on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_dhdt_surf + d(sens.heat.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_dqsatdt_surf + d(water.vap.flux)/d(q canopy) on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_drdt_surf + d(LW flux)/d(T surf) on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_dtaudu_atm + d(stress)/d(u) on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_dtaudv_atm + d(stress)/d(v) on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_e_q_n + dt/mass * dedet_surf * gamma on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_flux_lw + longwave radiation flux on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_flux_t + sensible heat flux on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_flux_u + u stress on atmosphere on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_flux_v + v stress on atmosphere on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_old_albedo + old value of albedo for downward flux calculations, used for albedo correction More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_p_surf + surface pressure on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_seawater + mask array of seaice fractions on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_slp + surface pressure on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_t_ca + near-surface (canopy) air temperature on exchange grid [K] More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_t_surf + surface temperature for radiation calc on exchange grid [K] More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_t_surf_miz - miz NEED HELP More...
                                                                                                                                                                                + used when do_forecast = .true. More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_u_star + friction velocity on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_wind + wind speed on exchange grid More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_z_atm + height of lowest atmospheric level on exchange grid More...
                                                                                                                                                                                  +real, dimension(:), allocatable ex_dhdt_surf_forland +  +real, dimension(:), allocatable ex_dedt_surf_forland +  +real, dimension(:), allocatable ex_dedq_surf_forland +  real, dimension(:,:), allocatable ex_dfdtr_atm - d(tracer flux)/d(atm tracer) More...
                                                                                                                                                                                + d(tracer flux)/d(atm tracer) on exchange grid More...
                                                                                                                                                                                  real, dimension(:,:), allocatable ex_dfdtr_surf - d(tracer flux)/d(surf tracer) More...
                                                                                                                                                                                + d(tracer flux)/d(surf tracer) on exchange grid More...
                                                                                                                                                                                  real, dimension(:,:), allocatable ex_e_tr_n - coefficient in implicit scheme More...
                                                                                                                                                                                + coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                  real, dimension(:,:), allocatable ex_f_tr_delt_n - coefficient in implicit scheme More...
                                                                                                                                                                                + coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                  real, dimension(:,:), allocatable ex_flux_tr - tracer fluxes More...
                                                                                                                                                                                + tracer fluxes on exchange grid More...
                                                                                                                                                                                  real, dimension(:,:), allocatable ex_tr_con_ref - deposition velocity at reference height More...
                                                                                                                                                                                + deposition velocity at reference height on exchange grid More...
                                                                                                                                                                                  real, dimension(:,:), allocatable ex_tr_con_atm - deposition velocity at atmospheric height More...
                                                                                                                                                                                + deposition velocity at atmospheric height on exchange grid More...
                                                                                                                                                                                  real, dimension(:,:), allocatable ex_tr_surf - near-surface tracer fields More...
                                                                                                                                                                                + near-surface tracer fields on exchange grid More...
                                                                                                                                                                                  logical, dimension(:), allocatable ex_avail - true where data on exchange grid are available More...
                                                                                                                                                                                + mask where true if data on exchange grid are available More...
                                                                                                                                                                                  logical, dimension(:), allocatable ex_land - true if exchange grid cell is over land More...
                                                                                                                                                                                + mask where true if exchange grid cell is over land More...
                                                                                                                                                                                  real, dimension(:), allocatable ex_e_t_n   @@ -466,28 +597,28 @@  number of prognostic tracers in the atmos model More...
                                                                                                                                                                                  integer n_atm_tr_tot - number of prognostic tracers in the atmos model More...
                                                                                                                                                                                + number of tracers in the atmos model More...
                                                                                                                                                                                  integer n_lnd_tr  number of prognostic tracers in the land model More...
                                                                                                                                                                                  integer n_lnd_tr_tot - number of prognostic tracers in the land model More...
                                                                                                                                                                                + number of tracers in the land model More...
                                                                                                                                                                                  integer n_exch_tr  number of tracers exchanged between models More...
                                                                                                                                                                                  integer n_gex_atm2lnd - number of gex fields exchanged between land and atmosphere More...
                                                                                                                                                                                + number of generic exchange fields exchanged from atmospehre to land More...
                                                                                                                                                                                  integer n_gex_lnd2atm - number of gex fields exchanged between atmosphere and land More...
                                                                                                                                                                                + number of generic exchange fields exchanged from land to atmosphere More...
                                                                                                                                                                                  type(tracer_ind_type), dimension(:), allocatable tr_table  table of tracers passed through flux exchange More...
                                                                                                                                                                                  type(tracer_exch_ind_type), dimension(:), allocatable tr_table_map - map atm tracers to exchange, ice and land variables More...
                                                                                                                                                                                + holds tracer id in atm, ice, and land models More...
                                                                                                                                                                                  integer isphum = NO_TRACER  tracer index for specific humidity More...
                                                                                                                                                                                @@ -499,24 +630,25 @@  tracer index for nh3 More...
                                                                                                                                                                                  type(fmscoupler1dbc_type), pointer ex_gas_fields_atm =>NULL() - gas fields in atm place holder for various atmospheric fields. More...
                                                                                                                                                                                + pointer to gas fields in atm, place holder for various atmospheric fields. More...
                                                                                                                                                                                  type(fmscoupler1dbc_type), pointer ex_gas_fields_ice =>NULL() - gas fields on ice More...
                                                                                                                                                                                + pointer to gas fields on ice More...
                                                                                                                                                                                  type(fmscoupler1dbc_type), pointer ex_gas_fluxes =>NULL() - gas flux place holder of intermediate calculations, such as piston velocities etc. More...
                                                                                                                                                                                + pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. More...
                                                                                                                                                                                  integer, parameter regrid =1 - grids are physically different, pass via exchange grid More...
                                                                                                                                                                                + flag to indicate component grids for flux exchange are different, More...
                                                                                                                                                                                  integer, parameter redist =2 - same physical grid, different decomposition, must move data around More...
                                                                                                                                                                                + component grid for flux exchange are identical but are decomposed differently, More...
                                                                                                                                                                                  integer, parameter redirect =3 - same physical grid, same domain decomposition, can directly copy data More...
                                                                                                                                                                                + component grid for flux exchange are identical with same domain decomposition, More...
                                                                                                                                                                                  integer cplclock + FMS clock to profile general processes. More...
                                                                                                                                                                                  integer sfcclock  FMS clock id to profile sfc_boundary_layer. More...
                                                                                                                                                                                @@ -540,14 +672,11 @@  =3 exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                  real dt_atm + atmospheric timestep [s] More...
                                                                                                                                                                                  -real atmospheric -  -real timestep -  -real s - coupled timestep [s] More...
                                                                                                                                                                                -  +real dt_cpl + coupled timestep [s] More...
                                                                                                                                                                                +  integer ni_atm  number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
                                                                                                                                                                                  @@ -1385,28 +1514,6 @@

                                                                                                                                                                                Variable Documentation

                                                                                                                                                                                - -

                                                                                                                                                                                ◆ atmospheric

                                                                                                                                                                                - -
                                                                                                                                                                                -
                                                                                                                                                                                - - - - - -
                                                                                                                                                                                - - - - -
                                                                                                                                                                                real atm_land_ice_flux_exchange_mod::atmospheric
                                                                                                                                                                                -
                                                                                                                                                                                -private
                                                                                                                                                                                -
                                                                                                                                                                                - -
                                                                                                                                                                                -

                                                                                                                                                                                ◆ block_end

                                                                                                                                                                                @@ -1427,6 +1534,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                ending do loop indices for OpenMP thread

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1449,6 +1558,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                starting do loop indices for OpenMP thread

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1471,6 +1582,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                FMS clock to profile general processes.

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1539,8 +1652,8 @@

                                                                                                                                                                                -

                                                                                                                                                                                ◆ do_area_weighted_flux

                                                                                                                                                                                + +

                                                                                                                                                                                ◆ do_forecast

                                                                                                                                                                                - -

                                                                                                                                                                                ◆ do_forecast

                                                                                                                                                                                + +

                                                                                                                                                                                ◆ do_init

                                                                                                                                                                                - -

                                                                                                                                                                                ◆ do_init

                                                                                                                                                                                + +

                                                                                                                                                                                ◆ dt_atm

                                                                                                                                                                                - -

                                                                                                                                                                                ◆ dt_atm

                                                                                                                                                                                + +

                                                                                                                                                                                ◆ dt_cpl

                                                                                                                                                                                @@ -1647,6 +1768,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                used for albedo correction

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1669,6 +1792,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                used for albedo correction

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1691,6 +1816,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                used for albedo correction

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1713,6 +1840,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                used for albedo correction

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1735,6 +1864,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                used for albedo correction

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1757,7 +1888,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                true where data on exchange grid are available

                                                                                                                                                                                +

                                                                                                                                                                                mask where true if data on exchange grid are available

                                                                                                                                                                                @@ -1781,6 +1912,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                boyuancy scale on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1803,6 +1936,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                drag coefficient for momentum on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1849,7 +1984,29 @@

                                                                                                                                                                                -

                                                                                                                                                                                deposition velocity at lowest atmospheric level on exchange grid

                                                                                                                                                                                +

                                                                                                                                                                                deposition velocity at lowest atmospheric level on exchange grid on exchange grid

                                                                                                                                                                                + + + +
                                                                                                                                                                                +

                                                                                                                                                                                ◆ ex_dedq_surf_forland

                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + + + + + +
                                                                                                                                                                                + + + + +
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedq_surf_forland
                                                                                                                                                                                +
                                                                                                                                                                                +private
                                                                                                                                                                                +
                                                                                                                                                                                @@ -1873,6 +2030,30 @@

                                                                                                                                                                                +

                                                                                                                                                                                d(water.vap.flux)/d(T canopy) on exchange grid

                                                                                                                                                                                + + + +
                                                                                                                                                                                +

                                                                                                                                                                                ◆ ex_dedt_surf_forland

                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + + + + + +
                                                                                                                                                                                + + + + +
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf_forland
                                                                                                                                                                                +
                                                                                                                                                                                +private
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                @@ -1895,7 +2076,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                d(tracer flux)/d(atm tracer)

                                                                                                                                                                                +

                                                                                                                                                                                d(tracer flux)/d(atm tracer) on exchange grid

                                                                                                                                                                                @@ -1919,7 +2100,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                d(tracer flux)/d(surf tracer)

                                                                                                                                                                                +

                                                                                                                                                                                d(tracer flux)/d(surf tracer) on exchange grid

                                                                                                                                                                                @@ -1943,6 +2124,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                d(sens.heat.flux)/d(T atm) on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -1965,6 +2148,30 @@

                                                                                                                                                                                +

                                                                                                                                                                                d(sens.heat.flux)/d(T canopy) on exchange grid

                                                                                                                                                                                + + + +
                                                                                                                                                                                +

                                                                                                                                                                                ◆ ex_dhdt_surf_forland

                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + + + + + +
                                                                                                                                                                                + + + + +
                                                                                                                                                                                real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf_forland
                                                                                                                                                                                +
                                                                                                                                                                                +private
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                @@ -1987,6 +2194,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                d(water.vap.flux)/d(q canopy) on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2009,6 +2218,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                d(LW flux)/d(T surf) on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2031,6 +2242,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                d(stress)/d(u) on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2053,6 +2266,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                d(stress)/d(v) on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2075,6 +2290,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                dt/mass * dedet_surf * gamma on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2119,7 +2336,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                coefficient in implicit scheme

                                                                                                                                                                                +

                                                                                                                                                                                coefficient in implicit scheme on exchange grid

                                                                                                                                                                                @@ -2165,7 +2382,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                coefficient in implicit scheme

                                                                                                                                                                                +

                                                                                                                                                                                coefficient in implicit scheme on exchange grid

                                                                                                                                                                                @@ -2189,6 +2406,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                longwave radiation flux on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2211,6 +2430,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                sensible heat flux on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2233,7 +2454,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                tracer fluxes

                                                                                                                                                                                +

                                                                                                                                                                                tracer fluxes on exchange grid

                                                                                                                                                                                @@ -2257,6 +2478,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                u stress on atmosphere on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2279,6 +2502,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                v stress on atmosphere on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2301,7 +2526,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                gas fields in atm place holder for various atmospheric fields.

                                                                                                                                                                                +

                                                                                                                                                                                pointer to gas fields in atm, place holder for various atmospheric fields.

                                                                                                                                                                                @@ -2325,7 +2550,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                gas fields on ice

                                                                                                                                                                                +

                                                                                                                                                                                pointer to gas fields on ice

                                                                                                                                                                                @@ -2349,7 +2574,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                gas flux place holder of intermediate calculations, such as piston velocities etc.

                                                                                                                                                                                +

                                                                                                                                                                                pointer to gas flux place holder of intermediate calculations such as piston velocities, etc.

                                                                                                                                                                                @@ -2373,7 +2598,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                true if exchange grid cell is over land

                                                                                                                                                                                +

                                                                                                                                                                                mask where true if exchange grid cell is over land

                                                                                                                                                                                @@ -2397,6 +2622,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                old value of albedo for downward flux calculations, used for albedo correction

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2419,6 +2646,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                surface pressure on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2441,6 +2670,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                mask array of seaice fractions on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2463,6 +2694,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                surface pressure on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2485,6 +2718,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                near-surface (canopy) air temperature on exchange grid [K]

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2507,6 +2742,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                surface temperature for radiation calc on exchange grid [K]

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2529,7 +2766,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                miz NEED HELP

                                                                                                                                                                                +

                                                                                                                                                                                used when do_forecast = .true.

                                                                                                                                                                                @@ -2553,7 +2790,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                deposition velocity at atmospheric height

                                                                                                                                                                                +

                                                                                                                                                                                deposition velocity at atmospheric height on exchange grid

                                                                                                                                                                                @@ -2577,7 +2814,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                deposition velocity at reference height

                                                                                                                                                                                +

                                                                                                                                                                                deposition velocity at reference height on exchange grid

                                                                                                                                                                                @@ -2601,7 +2838,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                near-surface tracer fields

                                                                                                                                                                                +

                                                                                                                                                                                near-surface tracer fields on exchange grid

                                                                                                                                                                                @@ -2625,6 +2862,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                friction velocity on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2647,6 +2886,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                wind speed on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2669,6 +2910,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                height of lowest atmospheric level on exchange grid

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2809,6 +3052,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id for bouyancy scale

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2831,6 +3076,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2853,6 +3100,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id concentration of co2 to be passed to land/photosynthesis

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2875,6 +3124,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id concentration of co2 to be passed to ocean

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2919,6 +3170,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id ref height interp factor for heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2941,6 +3194,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id ref height for interp factor for momentum

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2963,6 +3218,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id ref height interp factor for moisture

                                                                                                                                                                                +
                                                                                                                                                                                @@ -2985,6 +3242,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id drag coefficient for heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3007,6 +3266,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id drag coefficient for moisture

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3029,6 +3290,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id drag coefficient for momentum

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3051,6 +3314,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id water evaporation flux (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3073,6 +3338,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id global integral of water evaporation flux

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3095,6 +3362,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id gust scale

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3117,6 +3386,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near surface height (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3139,6 +3410,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near surface height (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3161,6 +3434,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface upward latent heat flux (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3183,6 +3458,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id global integral of surface upward sensible heat flux

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3205,27 +3482,7 @@

                                                                                                                                                                                - - - -

                                                                                                                                                                                ◆ id_hfss_g

                                                                                                                                                                                - -
                                                                                                                                                                                -
                                                                                                                                                                                - - - - - -
                                                                                                                                                                                - - - - -
                                                                                                                                                                                integer atm_land_ice_flux_exchange_mod::id_hfss_g
                                                                                                                                                                                -
                                                                                                                                                                                -private
                                                                                                                                                                                -
                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface upward sensible heat flux (for cmip)

                                                                                                                                                                                @@ -3249,6 +3506,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near-surface relative humidity (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3271,6 +3530,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near-surface specific humidity (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3293,6 +3554,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near-surface specific humidity on land use tile

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3315,6 +3578,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id fractional amount of land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3337,6 +3602,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id fractional amount of sea ice

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3359,6 +3626,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id concentration of o2 to be passed to to ocean

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3381,6 +3650,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id pressure at lowest atmospheric level

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3403,6 +3674,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id air pressure at sea level (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3425,6 +3698,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id evaporation rate

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3447,6 +3722,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id evaporation rate over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3469,6 +3746,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id specific humidity at z_ref_heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3491,6 +3770,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id specific humidity at z_ref_heat over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3513,6 +3794,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id moisture scale

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3535,6 +3818,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id net (down-up) longwave flux

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3557,6 +3842,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id relative humidity at z_ref_heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3579,6 +3866,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id relative humidity at z_ref_heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3601,6 +3890,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id relative humidity at z_ref_heat over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3623,6 +3914,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near-surface relative humidity (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3645,6 +3938,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id global integral of near-surface relative humidty

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3667,6 +3962,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface roughness for heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3689,6 +3986,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface roughness for moisture

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3711,6 +4010,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface roughness for momentum

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3733,6 +4034,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id topographic scaling fractor for momentum drag

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3755,6 +4058,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near-surface wind speed (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3777,6 +4082,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id fraction of the grid cell occupied by land (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3799,6 +4106,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id sea ice area fraction (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3821,6 +4130,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id sea level pressure

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3843,6 +4154,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id temperature at lowest atmospheric level

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3865,6 +4178,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id canopy air temperature

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3887,6 +4202,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id sensible heat flux

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3909,6 +4226,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface temperature from ocean output

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3931,6 +4250,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id temperature at z_ref_heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3953,6 +4274,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id temperature at z_ref_heat over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3975,6 +4298,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface temperature

                                                                                                                                                                                +
                                                                                                                                                                                @@ -3997,6 +4322,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near-surface air temperature (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4019,6 +4346,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id global integral of near-surface air temperature

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4041,6 +4370,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id global integral of near-surface air temperature on land only

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4063,6 +4394,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id near-surface air temperature z_ref_heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4085,6 +4418,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface downward eastward wind stress (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4107,6 +4442,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface downward northward wind stress (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4129,6 +4466,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface air virtual potential temperature

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4151,6 +4490,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface virtual potential temperature

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4173,6 +4514,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id sea surface temperature (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4195,6 +4538,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id value of tracer at lowest atmospheric level

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4217,6 +4562,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id deposition velocity at lowest atmospheric level (atm)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4239,6 +4586,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4261,6 +4610,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id deposition velocity at reference height (atm)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4283,6 +4634,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id deposition velocity at reference height over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4305,6 +4658,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id tracer fluxes

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4327,6 +4682,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id flux of tracer concentration over land in [kg/m2*s]

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4349,6 +4706,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id flux of co2 concentration in [mol/m2*s]

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4371,6 +4730,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4393,6 +4754,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id flux of

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4415,6 +4778,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id value of tracer at z_ref_heat

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4437,6 +4802,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id tracer flux at z_ref_heat over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4459,6 +4826,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id value of tracer at surface

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4481,6 +4850,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface temperature (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4503,6 +4874,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id global integral of surface temperature

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4525,6 +4898,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id surface temperature on land or sea ice (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4547,6 +4922,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id u wind component at lowest atmospheric level

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4569,6 +4946,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id zonal wind stress

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4591,6 +4970,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id zonal wind component at z_ref_mom

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4613,6 +4994,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id zonal wind component at z_ref_mom over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4657,6 +5040,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id eastward near-surface wind (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4679,6 +5064,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id v wind component at lowest atmospheric level

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4701,6 +5088,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id meridional wind stress

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4723,6 +5112,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id meridional wind component at z_ref_mom

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4745,6 +5136,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id meridional wind component at z_ref_mom over land

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4767,6 +5160,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id northward near-surface wind (for cmip)

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4789,6 +5184,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id wind speed for flux calculations

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4811,6 +5208,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id absolute value of wind at z_ref_mom

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4833,6 +5232,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                diag_manager registered field id height of lowest atmospheric level

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4927,6 +5328,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                Initializing OpenMP parameter.

                                                                                                                                                                                +
                                                                                                                                                                                @@ -4973,7 +5376,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                number of prognostic tracers in the atmos model

                                                                                                                                                                                +

                                                                                                                                                                                number of tracers in the atmos model

                                                                                                                                                                                @@ -5021,7 +5424,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                number of gex fields exchanged between land and atmosphere

                                                                                                                                                                                +

                                                                                                                                                                                number of generic exchange fields exchanged from atmospehre to land

                                                                                                                                                                                @@ -5045,7 +5448,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                number of gex fields exchanged between atmosphere and land

                                                                                                                                                                                +

                                                                                                                                                                                number of generic exchange fields exchanged from land to atmosphere

                                                                                                                                                                                @@ -5093,7 +5496,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                number of prognostic tracers in the land model

                                                                                                                                                                                +

                                                                                                                                                                                number of tracers in the land model

                                                                                                                                                                                @@ -5141,6 +5544,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                OpenMP number of threads.

                                                                                                                                                                                +
                                                                                                                                                                                @@ -5331,6 +5736,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined.

                                                                                                                                                                                +
                                                                                                                                                                                @@ -5353,7 +5760,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                same physical grid, same domain decomposition, can directly copy data

                                                                                                                                                                                +

                                                                                                                                                                                component grid for flux exchange are identical with same domain decomposition,

                                                                                                                                                                                @@ -5377,7 +5784,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                same physical grid, different decomposition, must move data around

                                                                                                                                                                                +

                                                                                                                                                                                component grid for flux exchange are identical but are decomposed differently,

                                                                                                                                                                                @@ -5425,7 +5832,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                grids are physically different, pass via exchange grid

                                                                                                                                                                                +

                                                                                                                                                                                flag to indicate component grids for flux exchange are different,

                                                                                                                                                                                @@ -5449,29 +5856,7 @@

                                                                                                                                                                                - - - -

                                                                                                                                                                                ◆ s

                                                                                                                                                                                - -
                                                                                                                                                                                -
                                                                                                                                                                                - - - - - -
                                                                                                                                                                                - - - - -
                                                                                                                                                                                real atm_land_ice_flux_exchange_mod::s
                                                                                                                                                                                -
                                                                                                                                                                                -private
                                                                                                                                                                                -
                                                                                                                                                                                - -

                                                                                                                                                                                coupled timestep [s]

                                                                                                                                                                                +

                                                                                                                                                                                first or second order conservative remapping onto exchange grid

                                                                                                                                                                                @@ -5495,6 +5880,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                If true, scale mass of liqud preciptation.

                                                                                                                                                                                +
                                                                                                                                                                                @@ -5567,28 +5954,6 @@

                                                                                                                                                                                -

                                                                                                                                                                                ◆ timestep

                                                                                                                                                                                - -
                                                                                                                                                                                -
                                                                                                                                                                                - - - - - -
                                                                                                                                                                                - - - - -
                                                                                                                                                                                real atm_land_ice_flux_exchange_mod::timestep
                                                                                                                                                                                -
                                                                                                                                                                                -private
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                @@ -5635,7 +6000,7 @@

                                                                                                                                                                                -

                                                                                                                                                                                map atm tracers to exchange, ice and land variables

                                                                                                                                                                                +

                                                                                                                                                                                holds tracer id in atm, ice, and land models

                                                                                                                                                                                @@ -5779,6 +6144,8 @@

                                                                                                                                                                                +

                                                                                                                                                                                Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml.

                                                                                                                                                                                +
                                                                                                                                                                                @@ -5801,12 +6168,14 @@

                                                                                                                                                                                +

                                                                                                                                                                                Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml.

                                                                                                                                                                                +
                                                                                                                                                                                diff --git a/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html index 42c5f1c1..4796582e 100644 --- a/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html +++ b/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html @@ -151,7 +151,7 @@

                                                                                                                                                                                diff --git a/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html index ef7b839c..eebebcde 100644 --- a/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html +++ b/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html @@ -676,7 +676,7 @@

                                                                                                                                                                                diff --git a/docs/html/namespaceflux__exchange__mod.html b/docs/html/namespaceflux__exchange__mod.html index e57a211b..5692d87e 100644 --- a/docs/html/namespaceflux__exchange__mod.html +++ b/docs/html/namespaceflux__exchange__mod.html @@ -4074,7 +4074,7 @@

                                                                                                                                                                                diff --git a/docs/html/namespacefull__coupler__mod.html b/docs/html/namespacefull__coupler__mod.html index 5316816d..7fbc4229 100644 --- a/docs/html/namespacefull__coupler__mod.html +++ b/docs/html/namespacefull__coupler__mod.html @@ -3586,7 +3586,7 @@

                                                                                                                                                                                diff --git a/docs/html/namespaceice__model__mod.html b/docs/html/namespaceice__model__mod.html index f9adf982..e2727ad1 100644 --- a/docs/html/namespaceice__model__mod.html +++ b/docs/html/namespaceice__model__mod.html @@ -1374,7 +1374,7 @@

                                                                                                                                                                                diff --git a/docs/html/namespaceice__ocean__flux__exchange__mod.html b/docs/html/namespaceice__ocean__flux__exchange__mod.html index a976422f..6ee71c03 100644 --- a/docs/html/namespaceice__ocean__flux__exchange__mod.html +++ b/docs/html/namespaceice__ocean__flux__exchange__mod.html @@ -843,7 +843,7 @@

                                                                                                                                                                                diff --git a/docs/html/namespaceland__ice__flux__exchange__mod.html b/docs/html/namespaceland__ice__flux__exchange__mod.html index b6f072dd..e63faa4d 100644 --- a/docs/html/namespaceland__ice__flux__exchange__mod.html +++ b/docs/html/namespaceland__ice__flux__exchange__mod.html @@ -392,7 +392,7 @@

                                                                                                                                                                                diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html index 5006f475..3715bbbd 100644 --- a/docs/html/namespacemembers.html +++ b/docs/html/namespacemembers.html @@ -105,14 +105,11 @@

                                                                                                                                                                                - a -

                                                                                                                                                                                diff --git a/docs/html/namespacemembers_b.html b/docs/html/namespacemembers_b.html index fa1d7b11..5398d6f9 100644 --- a/docs/html/namespacemembers_b.html +++ b/docs/html/namespacemembers_b.html @@ -90,7 +90,7 @@

                                                                                                                                                                                - b -

                                                                                                                                                                                  diff --git a/docs/html/namespacemembers_c.html b/docs/html/namespacemembers_c.html index dfae8a00..3453dcaf 100644 --- a/docs/html/namespacemembers_c.html +++ b/docs/html/namespacemembers_c.html @@ -224,7 +224,7 @@

                                                                                                                                                                                  - c -

                                                                                                                                                                                    diff --git a/docs/html/namespacemembers_d.html b/docs/html/namespacemembers_d.html index d5289958..a2ce1935 100644 --- a/docs/html/namespacemembers_d.html +++ b/docs/html/namespacemembers_d.html @@ -125,8 +125,7 @@

                                                                                                                                                                                    - d -

                                                                                                                                                                                      , ice_ocean_flux_exchange_mod
                                                                                                                                                                                    • do_area_weighted_flux -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod , ice_ocean_flux_exchange_mod
                                                                                                                                                                                    • do_atmos @@ -194,7 +193,8 @@

                                                                                                                                                                                      - d -

                                                                                                                                                                                        : full_coupler_mod
                                                                                                                                                                                      • dt_cpl -: flux_exchange_mod +: atm_land_ice_flux_exchange_mod +, flux_exchange_mod , ice_ocean_flux_exchange_mod , land_ice_flux_exchange_mod
                                                                                                                                                                                      • @@ -211,7 +211,7 @@

                                                                                                                                                                                        - d -

                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_e.html b/docs/html/namespacemembers_e.html index c0c27620..70ce12dd 100644 --- a/docs/html/namespacemembers_e.html +++ b/docs/html/namespacemembers_e.html @@ -104,9 +104,15 @@

                                                                                                                                                                                          - e -

                                                                                                                                                                                          • ex_con_atm : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                          • +
                                                                                                                                                                                          • ex_dedq_surf_forland +: atm_land_ice_flux_exchange_mod +
                                                                                                                                                                                          • ex_dedt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                          • +
                                                                                                                                                                                          • ex_dedt_surf_forland +: atm_land_ice_flux_exchange_mod +
                                                                                                                                                                                          • ex_dfdtr_atm : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                          • @@ -119,6 +125,9 @@

                                                                                                                                                                                            - e -

                                                                                                                                                                                            • ex_dhdt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                            • +
                                                                                                                                                                                            • ex_dhdt_surf_forland +: atm_land_ice_flux_exchange_mod +
                                                                                                                                                                                            • ex_dqsatdt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                            • @@ -219,7 +228,7 @@

                                                                                                                                                                                              - e -

                                                                                                                                                                                                diff --git a/docs/html/namespacemembers_f.html b/docs/html/namespacemembers_f.html index b58809b7..2733a0d1 100644 --- a/docs/html/namespacemembers_f.html +++ b/docs/html/namespacemembers_f.html @@ -168,7 +168,7 @@

                                                                                                                                                                                                - f -

                                                                                                                                                                                                  diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html index e3072bf7..726267fd 100644 --- a/docs/html/namespacemembers_func.html +++ b/docs/html/namespacemembers_func.html @@ -431,7 +431,7 @@

                                                                                                                                                                                                  - x -

                                                                                                                                                                                                    diff --git a/docs/html/namespacemembers_g.html b/docs/html/namespacemembers_g.html index 44900dde..45a1e2f9 100644 --- a/docs/html/namespacemembers_g.html +++ b/docs/html/namespacemembers_g.html @@ -111,7 +111,7 @@

                                                                                                                                                                                                    - g -

                                                                                                                                                                                                      diff --git a/docs/html/namespacemembers_h.html b/docs/html/namespacemembers_h.html index 79bf7de4..df01257a 100644 --- a/docs/html/namespacemembers_h.html +++ b/docs/html/namespacemembers_h.html @@ -78,7 +78,7 @@

                                                                                                                                                                                                      - h -

                                                                                                                                                                                                        diff --git a/docs/html/namespacemembers_i.html b/docs/html/namespacemembers_i.html index 4373dcf0..eca737de 100644 --- a/docs/html/namespacemembers_i.html +++ b/docs/html/namespacemembers_i.html @@ -171,9 +171,6 @@

                                                                                                                                                                                                        - i -

                                                                                                                                                                                                          : atm_land_ice_flux_exchange_mod , flux_exchange_mod -
                                                                                                                                                                                                        • id_hfss_g -: atm_land_ice_flux_exchange_mod -
                                                                                                                                                                                                        • id_hurs : atm_land_ice_flux_exchange_mod , flux_exchange_mod @@ -471,7 +468,7 @@

                                                                                                                                                                                                          - i -

                                                                                                                                                                                                            diff --git a/docs/html/namespacemembers_j.html b/docs/html/namespacemembers_j.html index 08e78968..f919bc5e 100644 --- a/docs/html/namespacemembers_j.html +++ b/docs/html/namespacemembers_j.html @@ -77,7 +77,7 @@

                                                                                                                                                                                                            - j -

                                                                                                                                                                                                              diff --git a/docs/html/namespacemembers_k.html b/docs/html/namespacemembers_k.html index 8af2cdac..17f1b10b 100644 --- a/docs/html/namespacemembers_k.html +++ b/docs/html/namespacemembers_k.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                              - k -

                                                                                                                                                                                                                diff --git a/docs/html/namespacemembers_l.html b/docs/html/namespacemembers_l.html index 4acaa50b..cdbae302 100644 --- a/docs/html/namespacemembers_l.html +++ b/docs/html/namespacemembers_l.html @@ -81,7 +81,7 @@

                                                                                                                                                                                                                - l -

                                                                                                                                                                                                                  diff --git a/docs/html/namespacemembers_m.html b/docs/html/namespacemembers_m.html index 0c1d9b5c..e0be95f0 100644 --- a/docs/html/namespacemembers_m.html +++ b/docs/html/namespacemembers_m.html @@ -95,7 +95,7 @@

                                                                                                                                                                                                                  - m -

                                                                                                                                                                                                                    diff --git a/docs/html/namespacemembers_n.html b/docs/html/namespacemembers_n.html index dced7c0b..6cf45df3 100644 --- a/docs/html/namespacemembers_n.html +++ b/docs/html/namespacemembers_n.html @@ -149,7 +149,7 @@

                                                                                                                                                                                                                    - n -

                                                                                                                                                                                                                      diff --git a/docs/html/namespacemembers_o.html b/docs/html/namespacemembers_o.html index b9290d08..8dc37a66 100644 --- a/docs/html/namespacemembers_o.html +++ b/docs/html/namespacemembers_o.html @@ -81,7 +81,7 @@

                                                                                                                                                                                                                      - o -

                                                                                                                                                                                                                        diff --git a/docs/html/namespacemembers_p.html b/docs/html/namespacemembers_p.html index 144c462a..408d2b1a 100644 --- a/docs/html/namespacemembers_p.html +++ b/docs/html/namespacemembers_p.html @@ -91,7 +91,7 @@

                                                                                                                                                                                                                        - p -

                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_q.html b/docs/html/namespacemembers_q.html index 9b0fa722..537a7c17 100644 --- a/docs/html/namespacemembers_q.html +++ b/docs/html/namespacemembers_q.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                                          - q -

                                                                                                                                                                                                                            diff --git a/docs/html/namespacemembers_r.html b/docs/html/namespacemembers_r.html index 595944ce..9f4d87b8 100644 --- a/docs/html/namespacemembers_r.html +++ b/docs/html/namespacemembers_r.html @@ -104,7 +104,7 @@

                                                                                                                                                                                                                            - r -

                                                                                                                                                                                                                              diff --git a/docs/html/namespacemembers_s.html b/docs/html/namespacemembers_s.html index 6301cfbd..7a1aa162 100644 --- a/docs/html/namespacemembers_s.html +++ b/docs/html/namespacemembers_s.html @@ -65,9 +65,6 @@
                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:

                                                                                                                                                                                                                              - s -

                                                                                                                                                                                                                                -
                                                                                                                                                                                                                              • s -: atm_land_ice_flux_exchange_mod -
                                                                                                                                                                                                                              • scale_precip_2d : atm_land_ice_flux_exchange_mod , flux_exchange_mod @@ -123,7 +120,7 @@

                                                                                                                                                                                                                                - s -

                                                                                                                                                                                                                                  diff --git a/docs/html/namespacemembers_t.html b/docs/html/namespacemembers_t.html index 97400ad5..5812abb8 100644 --- a/docs/html/namespacemembers_t.html +++ b/docs/html/namespacemembers_t.html @@ -98,9 +98,6 @@

                                                                                                                                                                                                                                  - t -

                                                                                                                                                                                                                                  • thickness_min : ice_model_mod
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  • timestep -: atm_land_ice_flux_exchange_mod -
                                                                                                                                                                                                                                  • tr_table : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                  • @@ -111,7 +108,7 @@

                                                                                                                                                                                                                                    - t -

                                                                                                                                                                                                                                      diff --git a/docs/html/namespacemembers_u.html b/docs/html/namespacemembers_u.html index 691332a2..abf29f35 100644 --- a/docs/html/namespacemembers_u.html +++ b/docs/html/namespacemembers_u.html @@ -114,7 +114,7 @@

                                                                                                                                                                                                                                      - u -

                                                                                                                                                                                                                                        diff --git a/docs/html/namespacemembers_v.html b/docs/html/namespacemembers_v.html index a9f863f7..173a2366 100644 --- a/docs/html/namespacemembers_v.html +++ b/docs/html/namespacemembers_v.html @@ -78,7 +78,7 @@

                                                                                                                                                                                                                                        - v -

                                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html index 44123176..8ebfdbec 100644 --- a/docs/html/namespacemembers_vars.html +++ b/docs/html/namespacemembers_vars.html @@ -89,14 +89,11 @@

                                                                                                                                                                                                                                          - a -

                                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_vars_b.html b/docs/html/namespacemembers_vars_b.html index 0826dbdd..7b49b19d 100644 --- a/docs/html/namespacemembers_vars_b.html +++ b/docs/html/namespacemembers_vars_b.html @@ -90,7 +90,7 @@

                                                                                                                                                                                                                                          - b -

                                                                                                                                                                                                                                            diff --git a/docs/html/namespacemembers_vars_c.html b/docs/html/namespacemembers_vars_c.html index 7dd652d2..03938180 100644 --- a/docs/html/namespacemembers_vars_c.html +++ b/docs/html/namespacemembers_vars_c.html @@ -113,7 +113,7 @@

                                                                                                                                                                                                                                            - c -

                                                                                                                                                                                                                                              diff --git a/docs/html/namespacemembers_vars_d.html b/docs/html/namespacemembers_vars_d.html index 5ec47ab2..71d67971 100644 --- a/docs/html/namespacemembers_vars_d.html +++ b/docs/html/namespacemembers_vars_d.html @@ -114,8 +114,7 @@

                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                : flux_exchange_mod
                                                                                                                                                                                                                                              • do_area_weighted_flux -: atm_land_ice_flux_exchange_mod -, flux_exchange_mod +: flux_exchange_mod , ice_ocean_flux_exchange_mod
                                                                                                                                                                                                                                              • do_atmos @@ -183,7 +182,8 @@

                                                                                                                                                                                                                                                - d -

                                                                                                                                                                                                                                                  : full_coupler_mod
                                                                                                                                                                                                                                                • dt_cpl -: flux_exchange_mod +: atm_land_ice_flux_exchange_mod +, flux_exchange_mod , ice_ocean_flux_exchange_mod , land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                • @@ -200,7 +200,7 @@

                                                                                                                                                                                                                                                  - d -

                                                                                                                                                                                                                                                    diff --git a/docs/html/namespacemembers_vars_e.html b/docs/html/namespacemembers_vars_e.html index 7834122d..ebd1e87b 100644 --- a/docs/html/namespacemembers_vars_e.html +++ b/docs/html/namespacemembers_vars_e.html @@ -104,9 +104,15 @@

                                                                                                                                                                                                                                                    - e -

                                                                                                                                                                                                                                                    • ex_con_atm : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                    • ex_dedq_surf_forland +: atm_land_ice_flux_exchange_mod +
                                                                                                                                                                                                                                                    • ex_dedt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                    • ex_dedt_surf_forland +: atm_land_ice_flux_exchange_mod +
                                                                                                                                                                                                                                                    • ex_dfdtr_atm : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                    • @@ -119,6 +125,9 @@

                                                                                                                                                                                                                                                      - e -

                                                                                                                                                                                                                                                      • ex_dhdt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                                      • ex_dhdt_surf_forland +: atm_land_ice_flux_exchange_mod +
                                                                                                                                                                                                                                                      • ex_dqsatdt_surf : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                      • @@ -219,7 +228,7 @@

                                                                                                                                                                                                                                                        - e -

                                                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_vars_f.html b/docs/html/namespacemembers_vars_f.html index 4e3b4020..ed69b673 100644 --- a/docs/html/namespacemembers_vars_f.html +++ b/docs/html/namespacemembers_vars_f.html @@ -118,7 +118,7 @@

                                                                                                                                                                                                                                                          - f -

                                                                                                                                                                                                                                                            diff --git a/docs/html/namespacemembers_vars_g.html b/docs/html/namespacemembers_vars_g.html index a195561c..97590485 100644 --- a/docs/html/namespacemembers_vars_g.html +++ b/docs/html/namespacemembers_vars_g.html @@ -81,7 +81,7 @@

                                                                                                                                                                                                                                                            - g -

                                                                                                                                                                                                                                                              diff --git a/docs/html/namespacemembers_vars_h.html b/docs/html/namespacemembers_vars_h.html index 964163e1..e22034f7 100644 --- a/docs/html/namespacemembers_vars_h.html +++ b/docs/html/namespacemembers_vars_h.html @@ -78,7 +78,7 @@

                                                                                                                                                                                                                                                              - h -

                                                                                                                                                                                                                                                                diff --git a/docs/html/namespacemembers_vars_i.html b/docs/html/namespacemembers_vars_i.html index adfdf663..2941076c 100644 --- a/docs/html/namespacemembers_vars_i.html +++ b/docs/html/namespacemembers_vars_i.html @@ -159,9 +159,6 @@

                                                                                                                                                                                                                                                                - i -

                                                                                                                                                                                                                                                                  : atm_land_ice_flux_exchange_mod , flux_exchange_mod -
                                                                                                                                                                                                                                                                • id_hfss_g -: atm_land_ice_flux_exchange_mod -
                                                                                                                                                                                                                                                                • id_hurs : atm_land_ice_flux_exchange_mod , flux_exchange_mod @@ -447,7 +444,7 @@

                                                                                                                                                                                                                                                                  - i -

                                                                                                                                                                                                                                                                    diff --git a/docs/html/namespacemembers_vars_j.html b/docs/html/namespacemembers_vars_j.html index 6406b16b..9eec9cd3 100644 --- a/docs/html/namespacemembers_vars_j.html +++ b/docs/html/namespacemembers_vars_j.html @@ -77,7 +77,7 @@

                                                                                                                                                                                                                                                                    - j -

                                                                                                                                                                                                                                                                      diff --git a/docs/html/namespacemembers_vars_k.html b/docs/html/namespacemembers_vars_k.html index 620478ec..e0640e2a 100644 --- a/docs/html/namespacemembers_vars_k.html +++ b/docs/html/namespacemembers_vars_k.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                                                                                      - k -

                                                                                                                                                                                                                                                                        diff --git a/docs/html/namespacemembers_vars_l.html b/docs/html/namespacemembers_vars_l.html index 210f4b9f..8161af7d 100644 --- a/docs/html/namespacemembers_vars_l.html +++ b/docs/html/namespacemembers_vars_l.html @@ -75,7 +75,7 @@

                                                                                                                                                                                                                                                                        - l -

                                                                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_vars_m.html b/docs/html/namespacemembers_vars_m.html index 1cbe8fd8..901dc72e 100644 --- a/docs/html/namespacemembers_vars_m.html +++ b/docs/html/namespacemembers_vars_m.html @@ -95,7 +95,7 @@

                                                                                                                                                                                                                                                                          - m -

                                                                                                                                                                                                                                                                            diff --git a/docs/html/namespacemembers_vars_n.html b/docs/html/namespacemembers_vars_n.html index f7365af7..376daf26 100644 --- a/docs/html/namespacemembers_vars_n.html +++ b/docs/html/namespacemembers_vars_n.html @@ -140,7 +140,7 @@

                                                                                                                                                                                                                                                                            - n -

                                                                                                                                                                                                                                                                              diff --git a/docs/html/namespacemembers_vars_o.html b/docs/html/namespacemembers_vars_o.html index a39044e1..40de8b73 100644 --- a/docs/html/namespacemembers_vars_o.html +++ b/docs/html/namespacemembers_vars_o.html @@ -81,7 +81,7 @@

                                                                                                                                                                                                                                                                              - o -

                                                                                                                                                                                                                                                                                diff --git a/docs/html/namespacemembers_vars_p.html b/docs/html/namespacemembers_vars_p.html index befea022..d8d6ca6f 100644 --- a/docs/html/namespacemembers_vars_p.html +++ b/docs/html/namespacemembers_vars_p.html @@ -76,7 +76,7 @@

                                                                                                                                                                                                                                                                                - p -

                                                                                                                                                                                                                                                                                  diff --git a/docs/html/namespacemembers_vars_q.html b/docs/html/namespacemembers_vars_q.html index 77f301a7..53632707 100644 --- a/docs/html/namespacemembers_vars_q.html +++ b/docs/html/namespacemembers_vars_q.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                                                                                                  - q -

                                                                                                                                                                                                                                                                                    diff --git a/docs/html/namespacemembers_vars_r.html b/docs/html/namespacemembers_vars_r.html index 0c8f1b1f..e9374c92 100644 --- a/docs/html/namespacemembers_vars_r.html +++ b/docs/html/namespacemembers_vars_r.html @@ -101,7 +101,7 @@

                                                                                                                                                                                                                                                                                    - r -

                                                                                                                                                                                                                                                                                      diff --git a/docs/html/namespacemembers_vars_s.html b/docs/html/namespacemembers_vars_s.html index 020799f0..8ad6aee4 100644 --- a/docs/html/namespacemembers_vars_s.html +++ b/docs/html/namespacemembers_vars_s.html @@ -65,9 +65,6 @@  

                                                                                                                                                                                                                                                                                      - s -

                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                      • s -: atm_land_ice_flux_exchange_mod -
                                                                                                                                                                                                                                                                                      • scale_precip_2d : atm_land_ice_flux_exchange_mod , flux_exchange_mod @@ -100,7 +97,7 @@

                                                                                                                                                                                                                                                                                        - s -

                                                                                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_vars_t.html b/docs/html/namespacemembers_vars_t.html index c39f7a5f..bfc2f04e 100644 --- a/docs/html/namespacemembers_vars_t.html +++ b/docs/html/namespacemembers_vars_t.html @@ -98,9 +98,6 @@

                                                                                                                                                                                                                                                                                          - t -

                                                                                                                                                                                                                                                                                          • thickness_min : ice_model_mod
                                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                                          • timestep -: atm_land_ice_flux_exchange_mod -
                                                                                                                                                                                                                                                                                          • tr_table : atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                                                          • @@ -111,7 +108,7 @@

                                                                                                                                                                                                                                                                                            - t -

                                                                                                                                                                                                                                                                                              diff --git a/docs/html/namespacemembers_vars_u.html b/docs/html/namespacemembers_vars_u.html index 56a38935..9979c5a5 100644 --- a/docs/html/namespacemembers_vars_u.html +++ b/docs/html/namespacemembers_vars_u.html @@ -108,7 +108,7 @@

                                                                                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                                                                                                diff --git a/docs/html/namespacemembers_vars_v.html b/docs/html/namespacemembers_vars_v.html index 210711cf..642e0dc9 100644 --- a/docs/html/namespacemembers_vars_v.html +++ b/docs/html/namespacemembers_vars_v.html @@ -75,7 +75,7 @@

                                                                                                                                                                                                                                                                                                - v -

                                                                                                                                                                                                                                                                                                  diff --git a/docs/html/namespacemembers_vars_w.html b/docs/html/namespacemembers_vars_w.html index 16559b73..8fed660b 100644 --- a/docs/html/namespacemembers_vars_w.html +++ b/docs/html/namespacemembers_vars_w.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                                                                                                                  - w -

                                                                                                                                                                                                                                                                                                    diff --git a/docs/html/namespacemembers_vars_x.html b/docs/html/namespacemembers_vars_x.html index 6b972863..71b5fc0d 100644 --- a/docs/html/namespacemembers_vars_x.html +++ b/docs/html/namespacemembers_vars_x.html @@ -90,7 +90,7 @@

                                                                                                                                                                                                                                                                                                    - x -

                                                                                                                                                                                                                                                                                                      diff --git a/docs/html/namespacemembers_vars_z.html b/docs/html/namespacemembers_vars_z.html index 55e9b799..379993ab 100644 --- a/docs/html/namespacemembers_vars_z.html +++ b/docs/html/namespacemembers_vars_z.html @@ -77,7 +77,7 @@

                                                                                                                                                                                                                                                                                                      - z -

                                                                                                                                                                                                                                                                                                        diff --git a/docs/html/namespacemembers_w.html b/docs/html/namespacemembers_w.html index 63a6ab17..de28d331 100644 --- a/docs/html/namespacemembers_w.html +++ b/docs/html/namespacemembers_w.html @@ -72,7 +72,7 @@

                                                                                                                                                                                                                                                                                                        - w -

                                                                                                                                                                                                                                                                                                          diff --git a/docs/html/namespacemembers_x.html b/docs/html/namespacemembers_x.html index 84fe972d..291fad7e 100644 --- a/docs/html/namespacemembers_x.html +++ b/docs/html/namespacemembers_x.html @@ -93,7 +93,7 @@

                                                                                                                                                                                                                                                                                                          - x -

                                                                                                                                                                                                                                                                                                            diff --git a/docs/html/namespacemembers_z.html b/docs/html/namespacemembers_z.html index eabf00bf..a66b2e38 100644 --- a/docs/html/namespacemembers_z.html +++ b/docs/html/namespacemembers_z.html @@ -77,7 +77,7 @@

                                                                                                                                                                                                                                                                                                            - z -

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html index 3d5fe6e1..14c56345 100644 --- a/docs/html/namespaces.html +++ b/docs/html/namespaces.html @@ -82,7 +82,7 @@ diff --git a/docs/html/namespacesurface__flux__mod.html b/docs/html/namespacesurface__flux__mod.html index d2f15dbf..f2caa98d 100644 --- a/docs/html/namespacesurface__flux__mod.html +++ b/docs/html/namespacesurface__flux__mod.html @@ -2239,7 +2239,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/pages.html b/docs/html/pages.html index bce4a381..47ce58d0 100644 --- a/docs/html/pages.html +++ b/docs/html/pages.html @@ -76,7 +76,7 @@ diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js index 963f4bd8..17bede83 100644 --- a/docs/html/search/all_0.js +++ b/docs/html/search/all_0.js @@ -30,6 +30,5 @@ var searchData= ['atmos_5focean_5ffluxes_5fcalc',['atmos_ocean_fluxes_calc',['../namespaceatmos__ocean__fluxes__calc__mod.html#acc10568af1ebdd92581183632c4e1f74',1,'atmos_ocean_fluxes_calc_mod']]], ['atmos_5focean_5ffluxes_5fcalc_2ef90',['atmos_ocean_fluxes_calc.F90',['../atmos__ocean__fluxes__calc_8_f90.html',1,'']]], ['atmos_5focean_5ffluxes_5fcalc_5fmod',['atmos_ocean_fluxes_calc_mod',['../namespaceatmos__ocean__fluxes__calc__mod.html',1,'']]], - ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]], - ['atmospheric',['atmospheric',['../namespaceatm__land__ice__flux__exchange__mod.html#a7ffb89a6f8abfb4180619cecf52ed7b0',1,'atm_land_ice_flux_exchange_mod']]] + ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]] ]; diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js index 6522e16b..bf22e3e3 100644 --- a/docs/html/search/all_12.js +++ b/docs/html/search/all_12.js @@ -1,6 +1,5 @@ var searchData= [ - ['s',['s',['../namespaceatm__land__ice__flux__exchange__mod.html#aff8e1c26822d0b79b15c4a11352394f4',1,'atm_land_ice_flux_exchange_mod']]], ['scale_5fprecip_5f2d',['scale_precip_2d',['../namespaceatm__land__ice__flux__exchange__mod.html#aff59028b168f9a123112151e3f9c082b',1,'atm_land_ice_flux_exchange_mod::scale_precip_2d()'],['../namespaceflux__exchange__mod.html#ad4f0bf7fd2d4d737a0c90c919458ed6e',1,'flux_exchange_mod::scale_precip_2d()']]], ['schmidt_5fg',['schmidt_g',['../namespaceatmos__ocean__fluxes__calc__mod.html#a7a879f540fe903119d5bb324c44f6c45',1,'atmos_ocean_fluxes_calc_mod']]], ['seconds',['seconds',['../namespacefull__coupler__mod.html#a0d752429e35e05d13912e2d320e94950',1,'full_coupler_mod']]], diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js index 7199845c..00d2a6bf 100644 --- a/docs/html/search/all_13.js +++ b/docs/html/search/all_13.js @@ -17,7 +17,6 @@ var searchData= ['time_5finit',['time_init',['../structice__model__mod_1_1ice__data__type.html#a911c3e51a65b58872eae6fdf3ca7baa2',1,'ice_model_mod::ice_data_type']]], ['time_5fstep_5ffast',['time_step_fast',['../structice__model__mod_1_1ice__data__type.html#aaa44e5583639682ac142e6080eb8586a',1,'ice_model_mod::ice_data_type']]], ['time_5fstep_5fslow',['time_step_slow',['../structice__model__mod_1_1ice__data__type.html#a4d819e4de12b4f25606af4210105ebd4',1,'ice_model_mod::ice_data_type']]], - ['timestep',['timestep',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ea2d3a3a0f6dcd849a0941e649808e4',1,'atm_land_ice_flux_exchange_mod']]], ['tr_5ftable',['tr_table',['../namespaceatm__land__ice__flux__exchange__mod.html#ae81e1fb85dbf862e4cde596cc8c886f9',1,'atm_land_ice_flux_exchange_mod']]], ['tr_5ftable_5fmap',['tr_table_map',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a5df9b039a007c0298c8f20581c5a6f',1,'atm_land_ice_flux_exchange_mod']]], ['tracer_5fexch_5find_5ftype',['tracer_exch_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js index 358f1722..52ef60da 100644 --- a/docs/html/search/all_3.js +++ b/docs/html/search/all_3.js @@ -20,7 +20,7 @@ var searchData= ['direct',['direct',['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod']]], ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], ['divide_5fby_5farea',['divide_by_area',['../namespaceatm__land__ice__flux__exchange__mod.html#a6dbcba7c48b5f085de6b33e9f05d6868',1,'atm_land_ice_flux_exchange_mod::divide_by_area()'],['../namespaceice__ocean__flux__exchange__mod.html#a1da352681654a7c70e1c929092357c76',1,'ice_ocean_flux_exchange_mod::divide_by_area()']]], - ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad202bbf87044b1eec5805f6875857910',1,'atm_land_ice_flux_exchange_mod::do_area_weighted_flux()'],['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], + ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], ['do_5fatmos',['do_atmos',['../namespacefull__coupler__mod.html#ac5f115cf3ec7b2b595aee0857cabdf90',1,'full_coupler_mod']]], ['do_5fchksum',['do_chksum',['../namespacefull__coupler__mod.html#a74ce4e2724ae9e0d2d9721cdbd9e56e2',1,'full_coupler_mod']]], ['do_5fconcurrent_5fradiation',['do_concurrent_radiation',['../namespacefull__coupler__mod.html#a131c273c9c0e80eb8350cb6809dd4c04',1,'full_coupler_mod']]], @@ -43,7 +43,7 @@ var searchData= ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], - ['dt_5fcpl',['dt_cpl',['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], + ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js index 87d27cfc..dfa24001 100644 --- a/docs/html/search/all_4.js +++ b/docs/html/search/all_4.js @@ -13,11 +13,14 @@ var searchData= ['ex_5fcd_5fm',['ex_cd_m',['../namespaceatm__land__ice__flux__exchange__mod.html#a26e0b81f6ed8473af88bdec4dda23c4b',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fcd_5ft',['ex_cd_t',['../namespaceatm__land__ice__flux__exchange__mod.html#a1fc83cb6b523c05c9925f67c1bef77eb',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fcon_5fatm',['ex_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a972ea1bb3939a7b1fed1e698b182de88',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdedq_5fsurf_5fforland',['ex_dedq_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a3956b57ce785f108d1f2279f5ebd8e1e',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdedt_5fsurf',['ex_dedt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a50b141a6a27c86e08632eb459f39324b',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdedt_5fsurf_5fforland',['ex_dedt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#abbf844d7950c4153fb035f5b04f95a58',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdfdtr_5fatm',['ex_dfdtr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a358eb5572e71492f7499d25dd3f20f98',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdfdtr_5fsurf',['ex_dfdtr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a166f151a722fa35f69705d680a644cff',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdhdt_5fsurf_5fforland',['ex_dhdt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a10ddd6efbc6230555b114c8a41c93900',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js index 3bf8f237..90595ddc 100644 --- a/docs/html/search/all_8.js +++ b/docs/html/search/all_8.js @@ -39,7 +39,6 @@ var searchData= ['id_5fhfls',['id_hfls',['../namespaceatm__land__ice__flux__exchange__mod.html#a21634392fb749504bb491b63cb709a1b',1,'atm_land_ice_flux_exchange_mod::id_hfls()'],['../namespaceflux__exchange__mod.html#a110df167d79e3e96ebe3e0d5713bed32',1,'flux_exchange_mod::id_hfls()']]], ['id_5fhfls_5fg',['id_hfls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#aa678b45e9a43a0fd9d834746c792c516',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fhfss',['id_hfss',['../namespaceatm__land__ice__flux__exchange__mod.html#ad953111f0333dad0442a995705b8c46a',1,'atm_land_ice_flux_exchange_mod::id_hfss()'],['../namespaceflux__exchange__mod.html#a600231bdd606fbfa02d1760b981942f1',1,'flux_exchange_mod::id_hfss()']]], - ['id_5fhfss_5fg',['id_hfss_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a27ced23c0e50767b78061d0b148c9138',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fhurs',['id_hurs',['../namespaceatm__land__ice__flux__exchange__mod.html#a68bfd465d951a65d6141047172a92488',1,'atm_land_ice_flux_exchange_mod::id_hurs()'],['../namespaceflux__exchange__mod.html#a7a4ad8765b8c543e740377def47bb6e6',1,'flux_exchange_mod::id_hurs()']]], ['id_5fhuss',['id_huss',['../namespaceatm__land__ice__flux__exchange__mod.html#a5944abb0dd9dce2ae32c66c1bcd59bff',1,'atm_land_ice_flux_exchange_mod::id_huss()'],['../namespaceflux__exchange__mod.html#ae187f4114a25b952f1430db74c700b2c',1,'flux_exchange_mod::id_huss()']]], ['id_5fhusslut_5fland',['id_husslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5a13546bf48109d63d08ca6e81a8298',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js index 0eda986d..0e955ea6 100644 --- a/docs/html/search/variables_0.js +++ b/docs/html/search/variables_0.js @@ -18,6 +18,5 @@ var searchData= ['atmos_5fmodel_5finit',['atmos_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a86349958610dea7035e2e00ec6a297fb',1,'full_coupler_mod::coupler_clock_type']]], ['atmos_5fnpes',['atmos_npes',['../namespacefull__coupler__mod.html#a85adcfb2f6ef212cc2e6415f23f0a946',1,'full_coupler_mod']]], ['atmos_5fnthreads',['atmos_nthreads',['../namespacefull__coupler__mod.html#a83263556a358d678e6777ca4765eb767',1,'full_coupler_mod']]], - ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]], - ['atmospheric',['atmospheric',['../namespaceatm__land__ice__flux__exchange__mod.html#a7ffb89a6f8abfb4180619cecf52ed7b0',1,'atm_land_ice_flux_exchange_mod']]] + ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]] ]; diff --git a/docs/html/search/variables_12.js b/docs/html/search/variables_12.js index 734592a4..0ce3279c 100644 --- a/docs/html/search/variables_12.js +++ b/docs/html/search/variables_12.js @@ -1,6 +1,5 @@ var searchData= [ - ['s',['s',['../namespaceatm__land__ice__flux__exchange__mod.html#aff8e1c26822d0b79b15c4a11352394f4',1,'atm_land_ice_flux_exchange_mod']]], ['scale_5fprecip_5f2d',['scale_precip_2d',['../namespaceatm__land__ice__flux__exchange__mod.html#aff59028b168f9a123112151e3f9c082b',1,'atm_land_ice_flux_exchange_mod::scale_precip_2d()'],['../namespaceflux__exchange__mod.html#ad4f0bf7fd2d4d737a0c90c919458ed6e',1,'flux_exchange_mod::scale_precip_2d()']]], ['seconds',['seconds',['../namespacefull__coupler__mod.html#a0d752429e35e05d13912e2d320e94950',1,'full_coupler_mod']]], ['set_5fice_5fsurface_5fexchange',['set_ice_surface_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#aa8e8fb7bc677dd49705a5b0ed54bd3c3',1,'full_coupler_mod::coupler_clock_type']]], diff --git a/docs/html/search/variables_13.js b/docs/html/search/variables_13.js index dd9b1199..b6c03dbb 100644 --- a/docs/html/search/variables_13.js +++ b/docs/html/search/variables_13.js @@ -17,7 +17,6 @@ var searchData= ['time_5finit',['time_init',['../structice__model__mod_1_1ice__data__type.html#a911c3e51a65b58872eae6fdf3ca7baa2',1,'ice_model_mod::ice_data_type']]], ['time_5fstep_5ffast',['time_step_fast',['../structice__model__mod_1_1ice__data__type.html#aaa44e5583639682ac142e6080eb8586a',1,'ice_model_mod::ice_data_type']]], ['time_5fstep_5fslow',['time_step_slow',['../structice__model__mod_1_1ice__data__type.html#a4d819e4de12b4f25606af4210105ebd4',1,'ice_model_mod::ice_data_type']]], - ['timestep',['timestep',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ea2d3a3a0f6dcd849a0941e649808e4',1,'atm_land_ice_flux_exchange_mod']]], ['tr_5ftable',['tr_table',['../namespaceatm__land__ice__flux__exchange__mod.html#ae81e1fb85dbf862e4cde596cc8c886f9',1,'atm_land_ice_flux_exchange_mod']]], ['tr_5ftable_5fmap',['tr_table_map',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a5df9b039a007c0298c8f20581c5a6f',1,'atm_land_ice_flux_exchange_mod']]] ]; diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js index a315ccad..0037d153 100644 --- a/docs/html/search/variables_3.js +++ b/docs/html/search/variables_3.js @@ -17,7 +17,7 @@ var searchData= ['diff',['diff',['../namespaceice__model__mod.html#a9930d4b7c4f36ba29c1494007ab9a5c4',1,'ice_model_mod']]], ['direct',['direct',['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod']]], ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], - ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad202bbf87044b1eec5805f6875857910',1,'atm_land_ice_flux_exchange_mod::do_area_weighted_flux()'],['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], + ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], ['do_5fatmos',['do_atmos',['../namespacefull__coupler__mod.html#ac5f115cf3ec7b2b595aee0857cabdf90',1,'full_coupler_mod']]], ['do_5fchksum',['do_chksum',['../namespacefull__coupler__mod.html#a74ce4e2724ae9e0d2d9721cdbd9e56e2',1,'full_coupler_mod']]], ['do_5fconcurrent_5fradiation',['do_concurrent_radiation',['../namespacefull__coupler__mod.html#a131c273c9c0e80eb8350cb6809dd4c04',1,'full_coupler_mod']]], @@ -40,7 +40,7 @@ var searchData= ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], - ['dt_5fcpl',['dt_cpl',['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], + ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js index 87d27cfc..dfa24001 100644 --- a/docs/html/search/variables_4.js +++ b/docs/html/search/variables_4.js @@ -13,11 +13,14 @@ var searchData= ['ex_5fcd_5fm',['ex_cd_m',['../namespaceatm__land__ice__flux__exchange__mod.html#a26e0b81f6ed8473af88bdec4dda23c4b',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fcd_5ft',['ex_cd_t',['../namespaceatm__land__ice__flux__exchange__mod.html#a1fc83cb6b523c05c9925f67c1bef77eb',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fcon_5fatm',['ex_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a972ea1bb3939a7b1fed1e698b182de88',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdedq_5fsurf_5fforland',['ex_dedq_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a3956b57ce785f108d1f2279f5ebd8e1e',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdedt_5fsurf',['ex_dedt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a50b141a6a27c86e08632eb459f39324b',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdedt_5fsurf_5fforland',['ex_dedt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#abbf844d7950c4153fb035f5b04f95a58',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdfdtr_5fatm',['ex_dfdtr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a358eb5572e71492f7499d25dd3f20f98',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdfdtr_5fsurf',['ex_dfdtr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a166f151a722fa35f69705d680a644cff',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], + ['ex_5fdhdt_5fsurf_5fforland',['ex_dhdt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a10ddd6efbc6230555b114c8a41c93900',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/search/variables_8.js b/docs/html/search/variables_8.js index 6eeec6b2..41ed995d 100644 --- a/docs/html/search/variables_8.js +++ b/docs/html/search/variables_8.js @@ -31,7 +31,6 @@ var searchData= ['id_5fhfls',['id_hfls',['../namespaceatm__land__ice__flux__exchange__mod.html#a21634392fb749504bb491b63cb709a1b',1,'atm_land_ice_flux_exchange_mod::id_hfls()'],['../namespaceflux__exchange__mod.html#a110df167d79e3e96ebe3e0d5713bed32',1,'flux_exchange_mod::id_hfls()']]], ['id_5fhfls_5fg',['id_hfls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#aa678b45e9a43a0fd9d834746c792c516',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fhfss',['id_hfss',['../namespaceatm__land__ice__flux__exchange__mod.html#ad953111f0333dad0442a995705b8c46a',1,'atm_land_ice_flux_exchange_mod::id_hfss()'],['../namespaceflux__exchange__mod.html#a600231bdd606fbfa02d1760b981942f1',1,'flux_exchange_mod::id_hfss()']]], - ['id_5fhfss_5fg',['id_hfss_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a27ced23c0e50767b78061d0b148c9138',1,'atm_land_ice_flux_exchange_mod']]], ['id_5fhurs',['id_hurs',['../namespaceatm__land__ice__flux__exchange__mod.html#a68bfd465d951a65d6141047172a92488',1,'atm_land_ice_flux_exchange_mod::id_hurs()'],['../namespaceflux__exchange__mod.html#a7a4ad8765b8c543e740377def47bb6e6',1,'flux_exchange_mod::id_hurs()']]], ['id_5fhuss',['id_huss',['../namespaceatm__land__ice__flux__exchange__mod.html#a5944abb0dd9dce2ae32c66c1bcd59bff',1,'atm_land_ice_flux_exchange_mod::id_huss()'],['../namespaceflux__exchange__mod.html#ae187f4114a25b952f1430db74c700b2c',1,'flux_exchange_mod::id_huss()']]], ['id_5fhusslut_5fland',['id_husslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5a13546bf48109d63d08ca6e81a8298',1,'atm_land_ice_flux_exchange_mod']]], diff --git a/docs/html/simple_2coupler__main_8_f90.html b/docs/html/simple_2coupler__main_8_f90.html index 449d44bc..dd0b31e4 100644 --- a/docs/html/simple_2coupler__main_8_f90.html +++ b/docs/html/simple_2coupler__main_8_f90.html @@ -181,7 +181,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/simple_2flux__exchange_8_f90.html b/docs/html/simple_2flux__exchange_8_f90.html index dd742aba..54ac288b 100644 --- a/docs/html/simple_2flux__exchange_8_f90.html +++ b/docs/html/simple_2flux__exchange_8_f90.html @@ -308,7 +308,7 @@

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html index a8862959..232dfc76 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html @@ -79,7 +79,7 @@ diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html index 7629869d..8b2eb1f7 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html @@ -165,7 +165,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html index e5f5b92d..202ae071 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html @@ -79,7 +79,7 @@ diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html index 3697d372..12b54646 100644 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html +++ b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html @@ -165,7 +165,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html index 3c449b7e..a924bebf 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html @@ -84,7 +84,7 @@ diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html index 9fcc9c76..bd8a39bc 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html @@ -272,7 +272,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html index 90f0ff42..553eac5a 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html @@ -114,7 +114,7 @@ diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html index 3d9f60b0..825edea5 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html @@ -1001,7 +1001,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html index a71f07e8..8d0a484a 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html @@ -88,7 +88,7 @@ diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type.html index f1da30c2..7e639cc7 100644 --- a/docs/html/structfull__coupler__mod_1_1coupler__components__type.html +++ b/docs/html/structfull__coupler__mod_1_1coupler__components__type.html @@ -400,7 +400,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html index 23d1c767..a57f689d 100644 --- a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html +++ b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html @@ -89,7 +89,7 @@ diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html index d787e636..51c4e790 100644 --- a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html +++ b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html @@ -396,7 +396,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/structice__model__mod_1_1ice__data__type-members.html b/docs/html/structice__model__mod_1_1ice__data__type-members.html index 07666763..85a87a27 100644 --- a/docs/html/structice__model__mod_1_1ice__data__type-members.html +++ b/docs/html/structice__model__mod_1_1ice__data__type-members.html @@ -102,7 +102,7 @@ diff --git a/docs/html/structice__model__mod_1_1ice__data__type.html b/docs/html/structice__model__mod_1_1ice__data__type.html index 38307941..afbab326 100644 --- a/docs/html/structice__model__mod_1_1ice__data__type.html +++ b/docs/html/structice__model__mod_1_1ice__data__type.html @@ -708,7 +708,7 @@

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/surface__flux_8_f90.html b/docs/html/surface__flux_8_f90.html index 4336f679..93bc35a0 100644 --- a/docs/html/surface__flux_8_f90.html +++ b/docs/html/surface__flux_8_f90.html @@ -194,7 +194,7 @@

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              diff --git a/docs/html/surface_flux_config.html b/docs/html/surface_flux_config.html index 87d14673..7f1eaacc 100644 --- a/docs/html/surface_flux_config.html +++ b/docs/html/surface_flux_config.html @@ -96,7 +96,7 @@ diff --git a/docs/xml/atm__land__ice__flux__exchange_8_f90.xml b/docs/xml/atm__land__ice__flux__exchange_8_f90.xml index ba883ce2..58bda0ce 100644 --- a/docs/xml/atm__land__ice__flux__exchange_8_f90.xml +++ b/docs/xml/atm__land__ice__flux__exchange_8_f90.xml @@ -268,3851 +268,3845 @@ character(len=4),parameter::mod_name='flux' -!returnedidsfromregisteringdiagnosticfieldwithdiag_manager -integer::& -id_b_star,&!bouyancyscale -id_del_h,&!refheightinterpfactorforheat -id_del_m,&!refheightforinterpfactorformomentum -id_del_q,&!refheightinterpfactorformoisture -id_drag_heat,&!dragcoefficientforheat -id_drag_moist,&!dragcoefficientformoisture -id_drag_mom,&!dragcoefficientformomentum -id_gust,&!gustscale -id_hussLut_land,&!near-surfacespecifichumidityonlandusetile -id_ice_mask,&!fractionalamountofland -id_land_mask,&!fractionalamountofseaice -id_p_atm,&!pressureatlowestatmosphericlevel -id_q_flux,&!evaporationrate -id_q_flux_land,&!evaporationrateoverland -id_q_ref,&!specifichumidityatz_ref_heat -id_q_ref_land,&!specifichumidityatz_ref_heatoverland -id_q_star,&!moisturescale -id_r_flux,&!net(down-up)longwaveflux -id_rh_ref,&!relativehumidityatz_ref_heat -id_rh_ref_cmip,&!relativehumidityatz_ref_heat -id_rh_ref_land,&!relativehumidityatz_ref_heatoverland -id_rough_heat,&!surfaceroughnessforheat -id_rough_moist,&!surfaceroughnessformoisture -id_rough_mom,&!surfaceroughnessformomentum -id_rough_scale,&!topographicscalingfractorformomentumdrag -id_slp,&!sealevelpressure -id_t_atm,&!temperatureatlowestatmosphericlevel -id_t_ca,&!canopyairtemperature -id_t_flux,&!sensibleheatflux -id_t_ocean,&!surfacetemperaturefromoceanoutput -id_t_ref,&!temperatureatz_ref_heat -id_t_ref_land,&!temperatureatz_ref_heatoverland -id_t_surf,&!surfacetemperature -id_tasLut_land,&!near-surfaceairtemperaturez_ref_heatabovedisplacementheightonland-usetile -id_thv_atm,&!surfaceairvirtualpotentialtemperature -id_thv_surf,&!surfacevirtualpotentialtemperature -id_u_atm,&!uwindcomponentatlowestatmosphericlevel -id_u_flux,&!zonalwindstress -id_u_ref,&!zonalwindcomponentatz_ref_mom -id_u_ref_land,&!zonalwindcomponentatz_ref_momoverland -id_u_star,&!frictionvelocity -id_v_atm,&!vwindcomponentatlowestatmosphericlevel -id_v_flux,&!meridionalwindstress -id_v_ref,&!meridionalwindcomponentatz_ref_mom -id_v_ref_land,&!meridionalwindcomponentatz_ref_momoverland -id_wind,&!windspeedforfluxcalculations -id_wind_ref,&!absolutevalueofwindatz_ref_mom -id_z_atm,&!heightoflowestatmosphericlevel -id_co2_atm_dvmr,&!co2dryvolumemixingratioatlowestatmosphericlevel -id_co2_surf_dvmr&!c02dryvolumemixingratioatsurface +integer::& +id_b_star,&!<diag_managerregisteredfieldidforbouyancyscale +id_del_h,&!<diag_managerregisteredfieldidrefheightinterpfactorforheat +id_del_m,&!<diag_managerregisteredfieldidrefheightforinterpfactorformomentum +id_del_q,&!<diag_managerregisteredfieldidrefheightinterpfactorformoisture +id_drag_heat,&!<diag_managerregisteredfieldiddragcoefficientforheat +id_drag_moist,&!<diag_managerregisteredfieldiddragcoefficientformoisture +id_drag_mom,&!<diag_managerregisteredfieldiddragcoefficientformomentum +id_gust,&!<diag_managerregisteredfieldidgustscale +id_hussLut_land,&!<diag_managerregisteredfieldidnear-surfacespecifichumidityonlandusetile +id_ice_mask,&!<diag_managerregisteredfieldidfractionalamountofland +id_land_mask,&!<diag_managerregisteredfieldidfractionalamountofseaice +id_p_atm,&!<diag_managerregisteredfieldidpressureatlowestatmosphericlevel +id_q_flux,&!<diag_managerregisteredfieldidevaporationrate +id_q_flux_land,&!<diag_managerregisteredfieldidevaporationrateoverland +id_q_ref,&!<diag_managerregisteredfieldidspecifichumidityatz_ref_heat +id_q_ref_land,&!<diag_managerregisteredfieldidspecifichumidityatz_ref_heatoverland +id_q_star,&!<diag_managerregisteredfieldidmoisturescale +id_r_flux,&!<diag_managerregisteredfieldidnet(down-up)longwaveflux +id_rh_ref,&!<diag_managerregisteredfieldidrelativehumidityatz_ref_heat +id_rh_ref_cmip,&!<diag_managerregisteredfieldidrelativehumidityatz_ref_heat +id_rh_ref_land,&!<diag_managerregisteredfieldidrelativehumidityatz_ref_heatoverland +id_rough_heat,&!<diag_managerregisteredfieldidsurfaceroughnessforheat +id_rough_moist,&!<diag_managerregisteredfieldidsurfaceroughnessformoisture +id_rough_mom,&!<diag_managerregisteredfieldidsurfaceroughnessformomentum +id_rough_scale,&!<diag_managerregisteredfieldidtopographicscalingfractorformomentumdrag +id_slp,&!<diag_managerregisteredfieldidsealevelpressure +id_t_atm,&!<diag_managerregisteredfieldidtemperatureatlowestatmosphericlevel +id_t_ca,&!<diag_managerregisteredfieldidcanopyairtemperature +id_t_flux,&!<diag_managerregisteredfieldidsensibleheatflux +id_t_ocean,&!<diag_managerregisteredfieldidsurfacetemperaturefromoceanoutput +id_t_ref,&!<diag_managerregisteredfieldidtemperatureatz_ref_heat +id_t_ref_land,&!<diag_managerregisteredfieldidtemperatureatz_ref_heatoverland +id_t_surf,&!<diag_managerregisteredfieldidsurfacetemperature +id_tasLut_land,&!<diag_managerregisteredfieldidnear-surfaceairtemperaturez_ref_heat +!!abovedisplacementheightonland-usetile +id_thv_atm,& +id_thv_surf,& +id_u_atm,& +id_u_flux,& +id_u_ref,& +id_u_ref_land,& +id_u_star,&!diag_managerregisteredfieldidfrictionvelocity +id_v_atm,& +id_v_flux,& +id_v_ref,& +id_v_ref_land,& +id_wind,& +id_wind_ref,& +id_z_atm,& +id_co2_atm_dvmr,& +id_co2_surf_dvmr& !2017/08/15jgjadded -id_co2_bot,&!concentrationofco2tobepassedtoland/photosynthesis -id_co2_flux_pcair_atm,&!concentrationofco2tobepassedtooceanNEEDHELP -id_o2_flux_pcair_atm!concentrationofo2tobepassedtotooceanNEEDHELP +id_co2_bot,& +id_co2_flux_pcair_atm,& +id_o2_flux_pcair_atm -!arraysforholdingidsreturnedfromregisteringdiag_fieldswithdiag_managerfortracers -integer,allocatable::& -id_tr_atm(:),&!valueoftraceratlowestatmosphericlevelNEEDHELP -id_tr_surf(:),&!valueoftraceratsurfaceNEEDHELP -id_tr_flux(:),&!tracerfluxes -id_tr_mol_flux(:),&!fluxofco2concentrationin[mol/m2*s] -id_tr_ref(:),&!valueoftraceratz_ref_heat -id_tr_ref_land(:),&!tracerfluxatz_ref_heatoverlandNEEDHELP -!f1p -id_tr_mol_flux0(:),&!grossfluxoftracerconcentrationoverlandin[mol/m2*s] -id_tr_flux_land(:),&!fluxoftracerconcentrationoverlandin[kg/m2*s] -id_tr_mol_flux_land(:),&!fluxoftracerconcentrationoverlandin[mol/m2*s] -!usedwith_USE_LEGACY_LAND_ -id_tr_con_atm(:),&!depositionvelocityatlowestatmosphericlevel(atm) -id_tr_con_atm_land(:),&!depositionvelocityatlowestatmosphericleveloverland -id_tr_con_ref(:),&!depositionvelocityatreferenceheight(atm) -id_tr_con_ref_land(:)!depositionvelocityatreferenceheightoverland - -!id'sforcmipspecificfields -integer::& -id_evspsbl,&!waterevaporationflux -id_height10m,&!nearsurfaceheight -id_height2m,&!nearsurfaceheight -id_hfls,&!surfaceupwardlatentheatflux -id_hfss,&!surfaceupwardsensibleheatflux -id_hurs,&!near-surfacerelativehumidty -id_huss,&!near-surfacespecifichumidity -id_psl,&!airpressureatsealevel -id_rhs,&!near-surfacerelativehumidty -id_sfcWind,&!near-surfacewindspeed -id_sftlf,&!fractionofthegridcelloccupiedbyland -id_sic,&!seaiceareafraction -id_tas,&!near-surfaceairtemperature -id_tauu,&!surfacedownwardeastwardwindstress -id_tauv,&!surfacedownwardnorthwardwindstress -id_tos,&!seasurfacetemperature -id_ts,&!surfacetemperature -id_tslsi,&!surfacetemperatureonlandorseaice -id_uas,&!eastwardnear-surfacewind -id_vas!northwardnear-surfacewind - -!globallyaverageddiagnostics +integer,allocatable::& +id_tr_atm(:),&!<diag_managerregisteredfieldidvalueoftraceratlowestatmosphericlevel +id_tr_surf(:),&!<diag_managerregisteredfieldidvalueoftraceratsurface +id_tr_flux(:),&!<diag_managerregisteredfieldidtracerfluxes +id_tr_mol_flux(:),&!<diag_managerregisteredfieldidfluxofco2concentrationin[mol/m2*s] +id_tr_ref(:),&!<diag_managerregisteredfieldidvalueoftraceratz_ref_heat +id_tr_ref_land(:),&!<diag_managerregisteredfieldidtracerfluxatz_ref_heatoverland +!f1p +id_tr_mol_flux0(:),& +id_tr_flux_land(:),& +id_tr_mol_flux_land(:),& +!usedwith_USE_LEGACY_LAND_ +id_tr_con_atm(:),& +id_tr_con_atm_land(:),& +id_tr_con_ref(:),& +id_tr_con_ref_land(:) + +integer::& +id_evspsbl,&!<diag_managerregisteredfieldidwaterevaporationflux(forcmip) +id_height10m,&!<diag_managerregisteredfieldidnearsurfaceheight(forcmip) +id_height2m,&!<diag_managerregisteredfieldidnearsurfaceheight(forcmip) +id_hfls,&!<diag_managerregisteredfieldidsurfaceupwardlatentheatflux(forcmip) +id_hfss,&!<diag_managerregisteredfieldidsurfaceupwardsensibleheatflux(forcmip) +id_hurs,&!<diag_managerregisteredfieldidnear-surfacerelativehumidity(forcmip) +id_huss,&!<diag_managerregisteredfieldidnear-surfacespecifichumidity(forcmip) +id_psl,&!<diag_managerregisteredfieldidairpressureatsealevel(forcmip) +id_rhs,&!<diag_managerregisteredfieldidnear-surfacerelativehumidity(forcmip) +id_sfcWind,&!<diag_managerregisteredfieldidnear-surfacewindspeed(forcmip) +id_sftlf,&!<diag_managerregisteredfieldidfractionofthegridcelloccupiedbyland(forcmip) +id_sic,&!<diag_managerregisteredfieldidseaiceareafraction(forcmip) +id_tas,&!<diag_managerregisteredfieldidnear-surfaceairtemperature(forcmip) +id_tauu,&!<diag_managerregisteredfieldidsurfacedownwardeastwardwindstress(forcmip) +id_tauv,&!<diag_managerregisteredfieldidsurfacedownwardnorthwardwindstress(forcmip) +id_tos,&!<diag_managerregisteredfieldidseasurfacetemperature(forcmip) +id_ts,&!<diag_managerregisteredfieldidsurfacetemperature(forcmip) +id_tslsi,&!<diag_managerregisteredfieldidsurfacetemperatureonlandorseaice(forcmip) +id_uas,&!<diag_managerregisteredfieldideastwardnear-surfacewind(forcmip) +id_vas + integer::& -id_evspsbl_g,&!globalintegralofwaterevaporationflux -id_hfls_g,&!globalintegralofsurfaceupwardlatentheatflux -id_hfss_g,&!globalintegralofsurfaceupwardsensibleheatflux -id_rls_g,&!globalintegralofnear-surfacerelativehumidty -id_tas_g,&!globalintegralofnear-surfaceairtemperature -id_tasl_g,&!globalintegralofnear-surfaceairtemperatureonlandonly -id_ts_g!globalintegralofsurfacetemperature - -logical::first_static=.true. - -logical::do_init=.true.!trueifatm_land_ice_flux_exchnge_inithasbeencalled -integer::remap_method=1!firstorsecondorderconservativeremappingontoexchangegrid - -real,parameter::d622=rdgas/rvgas -real,parameter::d378=1.0-d622 -real,parameter::d608=d378/d622 -real,parameter::tfreeze=273.15 -real,allocatable,dimension(:,:)::frac_precip - -!---thefollowingisfromflux_exchange_nml -real::z_ref_heat=2. -!Referenceheight[m]fortemperatureandrelativehumiditydiagnosticst_ref,rh_ref,del_h,anddel_q -real::z_ref_mom=10. -!Referenceheight([M]formomentumdiagnosticsu_ref,v_ref,anddel_m +id_evspsbl_g,&!<diag_managerregisteredfieldidglobalintegralofwaterevaporationflux +id_hfls_g,&!<diag_managerregisteredfieldidglobalintegralofsurfaceupwardsensibleheatflux +id_rls_g,&!<diag_managerregisteredfieldidglobalintegralofnear-surfacerelativehumidty +id_tas_g,&!<diag_managerregisteredfieldidglobalintegralofnear-surfaceairtemperature +id_tasl_g,&!<diag_managerregisteredfieldidglobalintegralofnear-surfaceairtemperatureonlandonly +id_ts_g + +logical::first_static=.true. + +logical::do_init=.true. +integer::remap_method=1 + +real,parameter::d622=rdgas/rvgas +real,parameter::d378=1.0-d622 +real,parameter::d608=d378/d622 +real,parameter::tfreeze=273.15 +real,allocatable,dimension(:,:)::frac_precip + +real::z_ref_heat=2. + +real::z_ref_mom=10. + -logical::do_area_weighted_flux=.false.!NOTUSEDDELETE -logical::do_forecast=.false.!NEEDHELP -integer::nblocks=1!OpenMPnumberofthreads -logical::partition_fprec_from_lprec=.false. -!Iftrue,convertliquidpreciptosnowwhent_ref<tfreeze -!Usedforatmoverrideexperimentswhereliquidandfrozenpreciparecombined -logical::scale_precip_2d=.false.!Iftrue,scalemassofliqudpreciptation - -integer::my_nblocks=1!InitializingOpenMPparameter -integer,allocatable::& -block_start(:),&!startingdoloopindicesforOpenMPthread -block_end(:)!endingdoloopindicesforOpenMPthread - -real,allocatable,dimension(:)::& -!NOTE:Tcanopyisonlydifferetfromt_surfovervegetatedland -ex_albedo_fix,&! -ex_albedo_nir_dif_fix,&! -ex_albedo_nir_dir_fix,&! -ex_albedo_vis_dif_fix,&! -ex_albedo_vis_dir_fix,&! -ex_b_star,&!boyuancyscaleonexchangegrid -ex_cd_m,&!dragcoefficientformomentumonexchangegrid -ex_cd_t,& -ex_con_atm,& -ex_dedt_surf,&!d(water.vap.flux)/d(Tcanopy) -ex_dhdt_atm,&!d(sens.heat.flux)/d(Tatm) -ex_dhdt_surf,&!d(sens.heat.flux)/d(Tcanopy) -ex_dqsatdt_surf,&!d(water.vap.flux)/d(qcanopy) -ex_drdt_surf,&!d(LWflux)/d(Tsurf) -ex_dtaudu_atm,&!d(stress)/d(u) -ex_dtaudv_atm,&!d(stress)/d(v) -ex_e_q_n,&!dt/mass*dedet_surf*gamma -ex_flux_lw,&!longwaveradiationflux -ex_flux_t,&!sensheatflux -ex_flux_u,&!ustressonatmosphere -ex_flux_v,&!vstressonatmosphere -ex_old_albedo,&!oldvalueofalbedofordownwardfluxcalculations -ex_p_surf,&!surfacepressureonexchangegrid -ex_seawater,&!maskarrayofseaicefractions -ex_slp,&!surfacepressureonexchangegrid -ex_t_ca,&!near-surface(canopy)airtemperatureonexchangegrid[K] -ex_t_surf,&!surfacetemperatureforradiationcalconexchangegrid[K] -ex_t_surf_miz,& -ex_u_star,&!frictionvelocityonexchangegrid -ex_wind,&!windspeedonexchangegrid -ex_z_atm!heightoflowestatmosphericlevelonexchangegrid - -#ifdefSCM -real,allocatable,dimension(:)::& -ex_dhdt_surf_forland,& -ex_dedt_surf_forland,& -ex_dedq_surf_forland -#endif - -real,allocatable,dimension(:,:)::& -ex_dfdtr_atm,&!<d(tracerflux)/d(atmtracer) -ex_dfdtr_surf,&!<d(tracerflux)/d(surftracer) -ex_e_tr_n,&!<coefficientinimplicitscheme -ex_f_tr_delt_n,&!<coefficientinimplicitscheme -ex_flux_tr,&!<tracerfluxes -ex_tr_con_ref,&!<depositionvelocityatreferenceheight -ex_tr_con_atm,&!<depositionvelocityatatmosphericheight -ex_tr_surf - -logical,allocatable,dimension(:)::& -ex_avail,&!<truewheredataonexchangegridareavailable -ex_land -real,allocatable,dimension(:)::& -ex_e_t_n,& -ex_f_t_delt_n - -integer::n_atm_tr -integer::n_atm_tr_tot -integer::n_lnd_tr -integer::n_lnd_tr_tot -integer::n_exch_tr -integer::n_gex_atm2lnd -integer::n_gex_lnd2atm - -type::tracer_ind_type -integer::atm -integer::ice -integer::lnd -endtypetracer_ind_type -type(tracer_ind_type),allocatable::tr_table(:) - -type::tracer_exch_ind_type -integer::exch=0 -integer::ice=0 -integer::lnd=0 -endtypetracer_exch_ind_type - -type(tracer_exch_ind_type),allocatable::tr_table_map(:) - -integer::isphum=no_tracer -integer::ico2=no_tracer -integer::inh3=no_tracer - -type(fmscoupler1dbc_type),pointer::ex_gas_fields_atm=>null() - -type(fmscoupler1dbc_type),pointer::ex_gas_fields_ice=>null() - -type(fmscoupler1dbc_type),pointer::ex_gas_fluxes=>null() - - -!real,dimension(3)::ccc!<forconservationchecks - -!balaji,setsboundary_type%xtype -integer,parameter::& -regrid=1,&!<gridsarephysicallydifferent,passviaexchangegrid + +logical::do_forecast=.false. +integer::nblocks=1 +logical::partition_fprec_from_lprec=.false. +logical::scale_precip_2d=.false. + +integer::my_nblocks=1 +integer,allocatable::& +block_start(:),&!<startingdoloopindicesforOpenMPthread +block_end(:) + +real,allocatable,dimension(:)::& +!NOTE:Tcanopyisonlydifferetfromt_surfovervegetatedland +ex_albedo_fix,& +ex_albedo_nir_dif_fix,& +ex_albedo_nir_dir_fix,& +ex_albedo_vis_dif_fix,& +ex_albedo_vis_dir_fix,& +ex_b_star,& +ex_cd_m,& +ex_cd_t,& +ex_con_atm,& +ex_dedt_surf,& +ex_dhdt_atm,& +ex_dhdt_surf,& +ex_dqsatdt_surf,& +ex_drdt_surf,& +ex_dtaudu_atm,& +ex_dtaudv_atm,& +ex_e_q_n,& +ex_flux_lw,& +ex_flux_t,& +ex_flux_u,& +ex_flux_v,& +ex_old_albedo,& +ex_p_surf,& +ex_seawater,& +ex_slp,& +ex_t_ca,& +ex_t_surf,& +ex_t_surf_miz,& +ex_u_star,& +ex_wind,& +ex_z_atm + +#ifdefSCM +real,allocatable,dimension(:)::& +ex_dhdt_surf_forland,& +ex_dedt_surf_forland,& +ex_dedq_surf_forland +#endif + +real,allocatable,dimension(:,:)::& +ex_dfdtr_atm,&!<d(tracerflux)/d(atmtracer)onexchangegrid +ex_dfdtr_surf,&!<d(tracerflux)/d(surftracer)onexchangegrid +ex_e_tr_n,&!<coefficientinimplicitschemeonexchangegrid +ex_f_tr_delt_n,&!<coefficientinimplicitschemeonexchangegrid +ex_flux_tr,&!<tracerfluxesonexchangegrid +ex_tr_con_ref,&!<depositionvelocityatreferenceheightonexchangegrid +ex_tr_con_atm,&!<depositionvelocityatatmosphericheightonexchangegrid +ex_tr_surf + +logical,allocatable,dimension(:)::& +ex_avail,&!<maskwheretrueifdataonexchangegridareavailable +ex_land +real,allocatable,dimension(:)::& +ex_e_t_n,& +ex_f_t_delt_n + +integer::n_atm_tr +integer::n_atm_tr_tot +integer::n_lnd_tr +integer::n_lnd_tr_tot +integer::n_exch_tr +integer::n_gex_atm2lnd +integer::n_gex_lnd2atm + +type::tracer_ind_type +integer::atm +integer::ice +integer::lnd +endtypetracer_ind_type +type(tracer_ind_type),allocatable::tr_table(:) + +type::tracer_exch_ind_type +integer::exch=0 +integer::ice=0 +integer::lnd=0 +endtypetracer_exch_ind_type + +type(tracer_exch_ind_type),allocatable::tr_table_map(:) + +integer::isphum=no_tracer +integer::ico2=no_tracer +integer::inh3=no_tracer + +type(fmscoupler1dbc_type),pointer::ex_gas_fields_atm=>null() + +type(fmscoupler1dbc_type),pointer::ex_gas_fields_ice=>null() + +type(fmscoupler1dbc_type),pointer::ex_gas_fluxes=>null() + + +!real,dimension(3)::ccc!<forconservationchecks + +!balaji,setsboundary_type%xtype +integer,parameter::& +regrid=1,&!<flagtoindicatecomponentgridsforfluxexchangearedifferent, +!!exchangedataviatheexchangegrid redist=2,& -redirect=3 - -integer::& -cplClock,& -sfcClock,&!<FMSclockidtoprofilesfc_boundary_layer -fluxAtmDnClock,&!<FMSclockidtoprofilefluxdownfromatmosphere -regenClock,&!<FMSclocktoprofileexchangegridgeneration -fluxAtmUpClock - -integer::& -X1_GRID_ATM,&!<=1,exchangegridindexforxgrid_stock_move -X1_GRID_ICE,&!<=2,exchangegridindexforxgrid_stock_move -X1_GRID_LND - -real::& -Dt_atm,&<atmospherictimestep[s] -Dt_cpl - -integer::& -ni_atm,&!<numberofxgridpointstocomputediagnosticsinsubroutineflux_ocean_to_ice -nj_atm - -integer::& -nxc_ice=0,&!<numberofxpointsinicecomputedomain -nyc_ice=0,& -nk_ice=0 - -integer::& -nxc_lnd=0,&!<numberofxpointsinlandcomputedomain -nyc_lnd=0 - -contains +redirect=3 + +integer::& +cplClock,&!<FMSclocktoprofilegeneralprocesses +sfcClock,&!<FMSclockidtoprofilesfc_boundary_layer +fluxAtmDnClock,&!<FMSclockidtoprofilefluxdownfromatmosphere +regenClock,&!<FMSclocktoprofileexchangegridgeneration +fluxAtmUpClock + +integer::& +X1_GRID_ATM,&!<=1,exchangegridindexforxgrid_stock_move +X1_GRID_ICE,&!<=2,exchangegridindexforxgrid_stock_move +X1_GRID_LND + +real::& +Dt_atm,&!<atmospherictimestep[s] +Dt_cpl + +integer::& +ni_atm,&!<numberofxgridpointstocomputediagnosticsinsubroutineflux_ocean_to_ice +nj_atm + +integer::& +nxc_ice=0,&!<numberofxpointsinicecomputedomain +nyc_ice=0,& +nk_ice=0 + +integer::& +nxc_lnd=0,&!<numberofxpointsinlandcomputedomain +nyc_lnd=0 -!####################################################################### - -subroutineatm_land_ice_flux_exchange_init(Time,Atm,Land,Ice,atmos_ice_boundary,land_ice_atmos_boundary,& -Dt_atm_in,Dt_cpl_in,z_ref_heat_in,z_ref_mom_in,do_area_weighted_flux_in,do_forecast_in,& -partition_fprec_from_lprec_in,scale_precip_2d_in,nblocks_in,cplClock_in,ex_gas_fields_atm_in,& -ex_gas_fields_ice_in,ex_gas_fluxes_in) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(atmos_data_type),intent(inout)::Atm +contains + +!####################################################################### + +subroutineatm_land_ice_flux_exchange_init(Time,Atm,Land,Ice,atmos_ice_boundary,land_ice_atmos_boundary,& +Dt_atm_in,Dt_cpl_in,z_ref_heat_in,z_ref_mom_in,do_area_weighted_flux_in,do_forecast_in,& +partition_fprec_from_lprec_in,scale_precip_2d_in,nblocks_in,cplClock_in,ex_gas_fields_atm_in,& +ex_gas_fields_ice_in,ex_gas_fluxes_in) + +implicitnone +type(FmsTime_type),intent(in)::Time -type(land_data_type),intent(in)::Land +type(atmos_data_type),intent(inout)::Atm -type(ice_data_type),intent(inout)::Ice +type(land_data_type),intent(in)::Land -type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary +type(ice_data_type),intent(inout)::Ice -type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary +type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary -real,intent(in)::Dt_atm_in +type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary -real,intent(in)::Dt_cpl_in +real,intent(in)::Dt_atm_in -real,intent(in)::z_ref_heat_in +real,intent(in)::Dt_cpl_in -real,intent(in)::z_ref_mom_in +real,intent(in)::z_ref_heat_in -logical,intent(in)::scale_precip_2d_in +real,intent(in)::z_ref_mom_in -logical,intent(in)::do_area_weighted_flux_in +logical,intent(in)::scale_precip_2d_in -logical,intent(in)::do_forecast_in +logical,intent(in)::do_area_weighted_flux_in -logical,intent(in)::partition_fprec_from_lprec_in +logical,intent(in)::do_forecast_in -integer,intent(in)::nblocks_in +logical,intent(in)::partition_fprec_from_lprec_in -integer,intent(in)::cplClock_in +integer,intent(in)::nblocks_in -type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_atm_in +integer,intent(in)::cplClock_in -type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_ice_in - -type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fluxes_in - - -character(len=48),parameter::module_name='atm_land_ice_flux_exchange_mod' -character(len=256),parameter::& -note_header='==>Notefrom'//trim(module_name)//'('//trim(sub_name)//'):' - -integer::& -i,&!<temporaryindexdoloop -n -integer::& -outunit,&!<!returnedvaluefromfms_mpp_stdout() -logunit -integer::& -is,&!<startingx-indexoncomputedomain -ie,&!<endingx-indexoncomputedomain -js,&!<startingy-indexoncomputedomain -je,&!<endingy-indexoncomputedomain -kd -character(32)::tr_name -logical::found - -!{ -dt_atm=dt_atm_in -dt_cpl=dt_cpl_in -z_ref_heat=z_ref_heat_in -z_ref_mom=z_ref_mom_in -do_area_weighted_flux=do_area_weighted_flux_in -do_forecast=do_forecast_in -partition_fprec_from_lprec=partition_fprec_from_lprec_in -scale_precip_2d=scale_precip_2d_in -nblocks=nblocks_in -cplclock=cplclock_in -ex_gas_fields_atm=>ex_gas_fields_atm_in -ex_gas_fields_ice=>ex_gas_fields_ice_in -ex_gas_fluxes=>ex_gas_fluxes_in -!} - -!{ -outunit=fms_mpp_stdout() -logunit=fms_mpp_stdlog() -!} - -allocate(block_start(nblocks),block_end(nblocks)) +type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_atm_in + +type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_ice_in + +type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fluxes_in + + +character(len=48),parameter::module_name='atm_land_ice_flux_exchange_mod' +character(len=256),parameter::& +note_header='==>Notefrom'//trim(module_name)//'('//trim(sub_name)//'):' + +integer::& +i,&!<temporaryindexdoloop +n +integer::& +outunit,&!<!returnedvaluefromfms_mpp_stdout() +logunit +integer::& +is,&!<startingx-indexoncomputedomain +ie,&!<endingx-indexoncomputedomain +js,&!<startingy-indexoncomputedomain +je,&!<endingy-indexoncomputedomain +kd +character(32)::tr_name +logical::found + +!{ +dt_atm=dt_atm_in +dt_cpl=dt_cpl_in +z_ref_heat=z_ref_heat_in +z_ref_mom=z_ref_mom_in +do_area_weighted_flux=do_area_weighted_flux_in +do_forecast=do_forecast_in +partition_fprec_from_lprec=partition_fprec_from_lprec_in +scale_precip_2d=scale_precip_2d_in +nblocks=nblocks_in +cplclock=cplclock_in +ex_gas_fields_atm=>ex_gas_fields_atm_in +ex_gas_fields_ice=>ex_gas_fields_ice_in +ex_gas_fluxes=>ex_gas_fluxes_in +!} + +!{ +outunit=fms_mpp_stdout() +logunit=fms_mpp_stdlog() +!} -!{ -callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,num_prog=n_atm_tr) -callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,num_prog=n_lnd_tr) -!} - -!{ -allocate(tr_table(n_atm_tr),tr_table_map(n_atm_tr)) -n=1 -doi=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) -tr_table(n)%atm=i -tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) -tr_table_map(i)%ice=tr_table(n)%ice -tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) -tr_table_map(i)%lnd=tr_table(n)%lnd -if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)then -tr_table_map(i)%exch=n -n=n+1 -endif -enddo -n_exch_tr=n-1 -!} - -!{ -n_gex_atm2lnd=fms_gex_get_n_ex(model_atmos,model_land) -if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_atm2lnd -n_gex_lnd2atm=fms_gex_get_n_ex(model_land,model_atmos) -if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_lnd2atm -!} - - -!{ -don=1,ex_gas_fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then -found=.false. -doi=1,n_exch_tr -if(ex_gas_fluxes%bc(n)%atm_tr_index.eq.tr_table(i)%atm)then -found=.true. -exit -endif -enddo -if(.not.found)then -n_exch_tr=n_exch_tr+1 -tr_table(n_exch_tr)%atm=ex_gas_fluxes%bc(n)%atm_tr_index -tr_table(n_exch_tr)%ice=no_tracer!becauseocean-atmgasfluxesarenotheldintheicemodelastracers -tr_table(n_exch_tr)%lnd=no_tracer!becausethiswouldhavebeenfoundabove -tr_table_map(n_exch_tr)%exch=n_exch_tr -tr_table_map(n_exch_tr)%ice=tr_table(n_exch_tr)%ice -tr_table_map(n_exch_tr)%lnd=tr_table(n_exch_tr)%lnd -endif -endif -enddo -write(outunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr -write(logunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr -doi=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) -write(outunit,*)'Tracerfieldname:'//trim(tr_name) -write(logunit,*)'Tracerfieldname:'//trim(tr_name) -enddo -!} - -!{ -!+fix-me-slm+specifichumiditymaynotbepresentifwearerunningwith -!dryatmosphere.Besides,modelmayusemixingratio('mix_rat')(?).However, -!someatmoscodealsoassumes'sphum'ispresent,sofornowthefollowing -!codemaybegoodenough. -doi=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) -if(fms_mpp_lowercase(tr_name)=='sphum')then -isphum=i -endif -!jgj:findoutwhichexchangetracerisco2 -if(fms_mpp_lowercase(tr_name)=='co2')then -ico2=i -write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',ico2 -endif -if(fms_mpp_lowercase(tr_name)=='nh3')then -inh3=i -write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',inh3 -endif -enddo - -if(isphum==no_tracer)then -callfms_error_mesg(module_name,'tracer"sphum"mustbepresentintheatmosphere',fatal) -endif - -if(ico2==no_tracer)then -callfms_error_mesg(module_name,'tracer"co2"notpresentintheatmosphere',note) -endif -!} - -callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) -if(scale_precip_2d)then -allocate(frac_precip(is:ie,js:je)) -frac_precip=0.0 -endif - -!{ -callfms_xgrid_init(remap_method) -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& -"INPUT/grid_spec.nc",atm%grid,lnd_ug_domain=land%ug_domain) -#else -callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& -"INPUT/grid_spec.nc",atm%grid) -#endif - -x1_grid_atm=1 -x1_grid_ice=2 -x1_grid_lnd=3; -callgenerate_sfc_xgrid(land,ice) -if(n_xgrid_sfc.eq.1)write(*,'(a,i6,6x,a)')'PE=',fms_mpp_pe(),'Surfaceexchangesizeequalsone.' -!} - -callsurface_flux_init() - -!-----initializequantitiesforglobalintegralpackage----- +allocate(block_start(nblocks),block_end(nblocks)) + +!{ +callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,num_prog=n_atm_tr) +callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,num_prog=n_lnd_tr) +!} + +!{ +allocate(tr_table(n_atm_tr),tr_table_map(n_atm_tr)) +n=1 +doi=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) +tr_table(n)%atm=i +tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) +tr_table_map(i)%ice=tr_table(n)%ice +tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) +tr_table_map(i)%lnd=tr_table(n)%lnd +if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)then +tr_table_map(i)%exch=n +n=n+1 +endif +enddo +n_exch_tr=n-1 +!} + +!{ +n_gex_atm2lnd=fms_gex_get_n_ex(model_atmos,model_land) +if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_atm2lnd +n_gex_lnd2atm=fms_gex_get_n_ex(model_land,model_atmos) +if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_lnd2atm +!} + + +!{ +don=1,ex_gas_fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then +found=.false. +doi=1,n_exch_tr +if(ex_gas_fluxes%bc(n)%atm_tr_index.eq.tr_table(i)%atm)then +found=.true. +exit +endif +enddo +if(.not.found)then +n_exch_tr=n_exch_tr+1 +tr_table(n_exch_tr)%atm=ex_gas_fluxes%bc(n)%atm_tr_index +tr_table(n_exch_tr)%ice=no_tracer!becauseocean-atmgasfluxesarenotheldintheicemodelastracers +tr_table(n_exch_tr)%lnd=no_tracer!becausethiswouldhavebeenfoundabove +tr_table_map(n_exch_tr)%exch=n_exch_tr +tr_table_map(n_exch_tr)%ice=tr_table(n_exch_tr)%ice +tr_table_map(n_exch_tr)%lnd=tr_table(n_exch_tr)%lnd +endif +endif +enddo +write(outunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr +write(logunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr +doi=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) +write(outunit,*)'Tracerfieldname:'//trim(tr_name) +write(logunit,*)'Tracerfieldname:'//trim(tr_name) +enddo +!} + +!{ +!+fix-me-slm+specifichumiditymaynotbepresentifwearerunningwith +!dryatmosphere.Besides,modelmayusemixingratio('mix_rat')(?).However, +!someatmoscodealsoassumes'sphum'ispresent,sofornowthefollowing +!codemaybegoodenough. +doi=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) +if(fms_mpp_lowercase(tr_name)=='sphum')then +isphum=i +endif +!jgj:findoutwhichexchangetracerisco2 +if(fms_mpp_lowercase(tr_name)=='co2')then +ico2=i +write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',ico2 +endif +if(fms_mpp_lowercase(tr_name)=='nh3')then +inh3=i +write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',inh3 +endif +enddo + +if(isphum==no_tracer)then +callfms_error_mesg(module_name,'tracer"sphum"mustbepresentintheatmosphere',fatal) +endif + +if(ico2==no_tracer)then +callfms_error_mesg(module_name,'tracer"co2"notpresentintheatmosphere',note) +endif +!} + +callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) +if(scale_precip_2d)then +allocate(frac_precip(is:ie,js:je)) +frac_precip=0.0 +endif + +!{ +callfms_xgrid_init(remap_method) +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& +"INPUT/grid_spec.nc",atm%grid,lnd_ug_domain=land%ug_domain) +#else +callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& +"INPUT/grid_spec.nc",atm%grid) +#endif + +x1_grid_atm=1 +x1_grid_ice=2 +x1_grid_lnd=3; +callgenerate_sfc_xgrid(land,ice) +if(n_xgrid_sfc.eq.1)write(*,'(a,i6,6x,a)')'PE=',fms_mpp_pe(),'Surfaceexchangesizeequalsone.' +!} + +callsurface_flux_init() -!!calldiag_integral_field_init('prec','f6.3') -callfms_diag_integral_field_init('evap','f6.3') -#ifndefuse_AM3_physics -callfms_diag_integral_field_init('t_surf','f10.3')!miz -callfms_diag_integral_field_init('t_ref','f10.3')!miz -#endif - -!allfieldswillbeoutputontheatmosphericgrid -calldiag_field_init(time,atm%axes(1:2),land%axes,land%pe) - -!{ -ni_atm=size(atm%lon_bnd,1)-1!todimension"diag_atm" -nj_atm=size(atm%lon_bnd,2)-1!influx_ocean_to_ice -!} - -!{ -callfms_mpp_domains_get_compute_domain(ice%domain,is,ie,js,je) -kd=size(ice%part_size,3) -allocate(atmos_ice_boundary%u_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%v_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%u_star(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%t_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%q_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%lw_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%lprec(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%fprec(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%dedt(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%drdt(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%coszen(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%p(is:ie,js:je,kd),source=0.0) -!} - -!{ -!Copyinginitializedgasfluxesfromexchangegridtoatmosphere_iceboundary -callfms_coupler_type_copy(ex_gas_fluxes,atmos_ice_boundary%fluxes,is,ie,js,je,kd,& -mod_name,ice%axes,time,suffix='_atm_ice') - -!Ice%ocean_fieldsandIce%ocean_fluxes_topwillnotbepassedtoocean,sothesetwo -!coupler_type_copycallsaremovedfromice_ocean_flux_inittohere. -if(.not.fms_coupler_type_initialized(ice%ocean_fields))& -callfms_coupler_type_spawn(ex_gas_fields_ice,ice%ocean_fields,& -[is,is,ie,ie],[js,js,je,je],[1,kd],suffix='_ice') -callfms_coupler_type_set_diags(ice%ocean_fields,'ice_flux',ice%axes,time) -!} - -!{ -callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) -allocate(land_ice_atmos_boundary%t(is:ie,js:je),source=273.0) -allocate(land_ice_atmos_boundary%t_ocean(is:ie,js:je),source=200.0)!Joseph:surfoceantemp -allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je),source=0.0)!bqx -allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je),source=0.0)!bqx -allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je),source=273.0)!cjg:PBLdepthmods -allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je),source=0.0)!cjg:PBLdepthmods -allocate(land_ice_atmos_boundary%albedo(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr),source=0.0) -allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%u_star(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%b_star(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%q_star(is:ie,js:je),source=0.0) -#ifndefuse_AM3_physics -allocate(land_ice_atmos_boundary%shflx(is:ie,js:je),source=0.0)!miz -allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je),source=0.0)!miz -#endif -allocate(land_ice_atmos_boundary%wind(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je),source=0.01) -allocate(land_ice_atmos_boundary%rough_heat(is:ie,js:je),source=0.01)!Kun -allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm),source=0.0) -!} - -!{ -!Thefirstcallisnolongernecessary,thefluxeswillbepassedbythelandmodule -!The2ndcallisusefulinthecaseofaoceanmodelonlysimulation -! -callfms_coupler_type_copy(ex_gas_fields_atm,atm%fields,is,ie,js,je,& -mod_name,atm%axes(1:2),time,suffix='_atm') -!} - -if(ice%pe)then -callfms_mpp_domains_get_compute_domain(ice%domain,xsize=nxc_ice,ysize=nyc_ice) -nk_ice=size(ice%part_size,3) -endif - -if(land%pe)then -callfms_mpp_domains_get_compute_domain(land%domain,xsize=nxc_lnd,ysize=nyc_lnd) -endif - - -!{ -!Balaji:clocksonatm%peonly -sfcclock=fms_mpp_clock_id('SFCboundarylayer',flags=fms_clock_flag_default,grain=clock_subcomponent) -fluxatmdnclock=fms_mpp_clock_id('FluxDNfromatm',flags=fms_clock_flag_default,grain=clock_routine) -regenclock=fms_mpp_clock_id('XGridgeneration',flags=fms_clock_flag_default,grain=clock_routine) -fluxatmupclock=fms_mpp_clock_id('FluxUPtoatm',flags=fms_clock_flag_default,grain=clock_routine) -!} - -do_init=.false. - -endsubroutineatm_land_ice_flux_exchange_init +!-----initializequantitiesforglobalintegralpackage----- + +!!calldiag_integral_field_init('prec','f6.3') +callfms_diag_integral_field_init('evap','f6.3') +#ifndefuse_AM3_physics +callfms_diag_integral_field_init('t_surf','f10.3')!miz +callfms_diag_integral_field_init('t_ref','f10.3')!miz +#endif + +!allfieldswillbeoutputontheatmosphericgrid +calldiag_field_init(time,atm%axes(1:2),land%axes,land%pe) + +!{ +ni_atm=size(atm%lon_bnd,1)-1!todimension"diag_atm" +nj_atm=size(atm%lon_bnd,2)-1!influx_ocean_to_ice +!} + +!{ +callfms_mpp_domains_get_compute_domain(ice%domain,is,ie,js,je) +kd=size(ice%part_size,3) +allocate(atmos_ice_boundary%u_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%v_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%u_star(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%t_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%q_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%lw_flux(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%lprec(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%fprec(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%dedt(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%drdt(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%coszen(is:ie,js:je,kd),source=0.0) +allocate(atmos_ice_boundary%p(is:ie,js:je,kd),source=0.0) +!} + +!{ +!Copyinginitializedgasfluxesfromexchangegridtoatmosphere_iceboundary +callfms_coupler_type_copy(ex_gas_fluxes,atmos_ice_boundary%fluxes,is,ie,js,je,kd,& +mod_name,ice%axes,time,suffix='_atm_ice') + +!Ice%ocean_fieldsandIce%ocean_fluxes_topwillnotbepassedtoocean,sothesetwo +!coupler_type_copycallsaremovedfromice_ocean_flux_inittohere. +if(.not.fms_coupler_type_initialized(ice%ocean_fields))& +callfms_coupler_type_spawn(ex_gas_fields_ice,ice%ocean_fields,& +[is,is,ie,ie],[js,js,je,je],[1,kd],suffix='_ice') +callfms_coupler_type_set_diags(ice%ocean_fields,'ice_flux',ice%axes,time) +!} + +!{ +callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) +allocate(land_ice_atmos_boundary%t(is:ie,js:je),source=273.0) +allocate(land_ice_atmos_boundary%t_ocean(is:ie,js:je),source=200.0)!Joseph:surfoceantemp +allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je),source=0.0)!bqx +allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je),source=0.0)!bqx +allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je),source=273.0)!cjg:PBLdepthmods +allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je),source=0.0)!cjg:PBLdepthmods +allocate(land_ice_atmos_boundary%albedo(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr),source=0.0) +allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%u_star(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%b_star(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%q_star(is:ie,js:je),source=0.0) +#ifndefuse_AM3_physics +allocate(land_ice_atmos_boundary%shflx(is:ie,js:je),source=0.0)!miz +allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je),source=0.0)!miz +#endif +allocate(land_ice_atmos_boundary%wind(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je),source=0.01) +allocate(land_ice_atmos_boundary%rough_heat(is:ie,js:je),source=0.01)!Kun +allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je),source=0.0) +allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm),source=0.0) +!} + +!{ +!Thefirstcallisnolongernecessary,thefluxeswillbepassedbythelandmodule +!The2ndcallisusefulinthecaseofaoceanmodelonlysimulation +! +callfms_coupler_type_copy(ex_gas_fields_atm,atm%fields,is,ie,js,je,& +mod_name,atm%axes(1:2),time,suffix='_atm') +!} + +if(ice%pe)then +callfms_mpp_domains_get_compute_domain(ice%domain,xsize=nxc_ice,ysize=nyc_ice) +nk_ice=size(ice%part_size,3) +endif + +if(land%pe)then +callfms_mpp_domains_get_compute_domain(land%domain,xsize=nxc_lnd,ysize=nyc_lnd) +endif + + +!{ +!Balaji:clocksonatm%peonly +sfcclock=fms_mpp_clock_id('SFCboundarylayer',flags=fms_clock_flag_default,grain=clock_subcomponent) +fluxatmdnclock=fms_mpp_clock_id('FluxDNfromatm',flags=fms_clock_flag_default,grain=clock_routine) +regenclock=fms_mpp_clock_id('XGridgeneration',flags=fms_clock_flag_default,grain=clock_routine) +fluxatmupclock=fms_mpp_clock_id('FluxUPtoatm',flags=fms_clock_flag_default,grain=clock_routine) +!} + +do_init=.false. -!####################################################################### -subroutinesfc_boundary_layer(dt,Time,Atm,Land,Ice,Land_Ice_Atmos_Boundary) - -implicitnone -real,intent(in)::dt - -type(FmsTime_type),intent(in)::Time +endsubroutineatm_land_ice_flux_exchange_init + +!####################################################################### +subroutinesfc_boundary_layer(dt,Time,Atm,Land,Ice,Land_Ice_Atmos_Boundary) + +implicitnone +real,intent(in)::dt -type(atmos_data_type),intent(inout)::Atm +type(FmsTime_type),intent(in)::Time -type(land_data_type),intent(inout)::Land +type(atmos_data_type),intent(inout)::Atm -type(ice_data_type),intent(inout)::Ice +type(land_data_type),intent(inout)::Land -type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary +type(ice_data_type),intent(inout)::Ice - -!----localvars---------------------------------------------------------- -real,dimension(n_xgrid_sfc)::& -ex_albedo,&!albedo -ex_albedo_vis_dir,&!albedoforlightwithwavelengthinvisibleregionofthesolarspectrum -ex_albedo_nir_dir,&!albedoforlightwithwavelengthinnear-irregionofthesolarspectrum -ex_albedo_vis_dif,&!differenceinalbedoforlightwithwavelengthinvisibleregionofthesolarspectrum -ex_albedo_nir_dif,&!differenceinalbedoforlightwithwavelengthinnear-irregionofthesolarspectrum -ex_land_frac,&!fractionalareaoflandingridcell -ex_t_atm,&!airtemperatureatthelowestatmosphericlevel -ex_p_atm,&!pressureatthelowestatmosphericlevel -ex_u_atm,&!uwindcomponentatthelowestatmosphericlevel -ex_v_atm,&!vwindcomponentatthelowestatmosphericlevel -ex_gust,&!gustscale -ex_t_surf4,&!(surfacetemperature)**4 -ex_u_surf,&!uwindcomponentatEarth'ssurface -ex_v_surf,&!vwindcomponentatEarth'ssurface -ex_rough_mom,&!momentumroughnesslength -ex_rough_heat,&!heatroughnesslength -ex_rough_moist,&!moistureroughnesslength -ex_rough_scale,&!scalefactorfortopographicroughnesscalculation -ex_q_star,&!turbulentmoisturescale -ex_thv_atm,&!surfaceareatheta_v -ex_thv_surf,&!surfacetheta_v -ex_cd_q,&!moistureexchangecoefficient -ex_ref,&!specifichumidityatz_ref_heat -ex_ref_u,&!zonalwindcomponentatz_ref_mom -ex_ref_v,&!meridionalwindcomponentatz_ref_mom -ex_u10,&!<zonalwindspeedat10mabovethesurface -ex_ref2,&! -ex_t_ref,& -ex_qs_ref,& -ex_qs_ref_cmip,&! -ex_del_m,&!referenceheightforinterpolationfactorformomentum -ex_del_h,&!referenceheightinterpolationfactorforheat -ex_del_q,&!referenceheightinterpationfactorformoisture -ex_frac_open_sea!open-watermask,notused? - -real::rho -real,dimension(n_xgrid_sfc,n_exch_tr)::& -ex_tr_atm,&!<concentrationoftraceratlowestatmosphericlevel -ex_tr_ref - -real,dimension(n_xgrid_sfc)::ex_co2_atm_dvmr!jgj:addedforco2_atmdiagnostic - -real,dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2))::diag_atm - - -#ifndef_USE_LEGACY_LAND_ -real,dimension(size(Land%t_ca,1),size(Land%t_ca,2))::diag_land -real,dimension(size(Land%t_ca,1))::diag_land_ug,tile_size_ug -real,dimension(nxc_lnd,nyc_lnd)::diag_land_sg,tile_size_sg -logical,dimension(size(Land%t_ca,1))::mask_ug -logical,dimension(nxc_lnd,nyc_lnd)::mask_sg -integer::k -#else -real,dimension(size(Land%t_ca,1),size(Land%t_ca,2),size(Land%t_ca,3))::diag_land -#endif -real,dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3))::sea -real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::tmp_open_sea - -real::& -zrefm,&!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory -zrefh!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory - -logical::used -character(32)::tr_name,tr_units!tracername - -integer::tr,n,m!tracerindices -integer::is,ie,isc,iec,jsc,jec -integer::i,l,j,n_gex - -real,dimension(n_xgrid_sfc,n_gex_lnd2atm)::ex_gex_lnd2atm - - -![1]checkthatthemodulewasinitialized -if(do_init)callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'mustcallatm_land_ice_flux_exchange_initfirst',fatal) - -!{ -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(sfcclock) -!} - -!{ -allocate(& -ex_t_surf(n_xgrid_sfc),& -ex_t_surf_miz(n_xgrid_sfc),& -ex_p_surf(n_xgrid_sfc),& -ex_slp(n_xgrid_sfc),& -ex_t_ca(n_xgrid_sfc),& -ex_dhdt_surf(n_xgrid_sfc),& -ex_dedt_surf(n_xgrid_sfc),& -ex_dqsatdt_surf(n_xgrid_sfc),& -ex_drdt_surf(n_xgrid_sfc),& -ex_dhdt_atm(n_xgrid_sfc),& -ex_flux_t(n_xgrid_sfc),& -ex_flux_lw(n_xgrid_sfc),& -ex_drag_q(n_xgrid_sfc),& -ex_avail(n_xgrid_sfc),& -ex_f_t_delt_n(n_xgrid_sfc),& -ex_tr_surf(n_xgrid_sfc,n_exch_tr),& -ex_dfdtr_surf(n_xgrid_sfc,n_exch_tr),& -ex_dfdtr_atm(n_xgrid_sfc,n_exch_tr),& -ex_flux_tr(n_xgrid_sfc,n_exch_tr),& -ex_f_tr_delt_n(n_xgrid_sfc,n_exch_tr),& -ex_e_tr_n(n_xgrid_sfc,n_exch_tr),& -ex_con_atm(n_xgrid_sfc),& -ex_tr_con_ref(n_xgrid_sfc,n_exch_tr),& -ex_tr_con_atm(n_xgrid_sfc,n_exch_tr),& -!MODtheseweremovedfromlocal!sotheycanbepassedtofluxdown -ex_flux_u(n_xgrid_sfc),& -ex_flux_v(n_xgrid_sfc),& -ex_dtaudu_atm(n_xgrid_sfc),& -ex_dtaudv_atm(n_xgrid_sfc),& -ex_seawater(n_xgrid_sfc),& -!valuesaddedforLM3 -ex_cd_t(n_xgrid_sfc),& -ex_cd_m(n_xgrid_sfc),& -ex_b_star(n_xgrid_sfc),& -ex_u_star(n_xgrid_sfc),& -ex_wind(n_xgrid_sfc),& -ex_z_atm(n_xgrid_sfc),& -ex_e_t_n(n_xgrid_sfc),& -ex_e_q_n(n_xgrid_sfc),& -ex_land(n_xgrid_sfc)) -#ifdefSCM -allocate(& -ex_dhdt_surf_forland(n_xgrid_sfc),& -ex_dedt_surf_forland(n_xgrid_sfc),& -ex_dedq_surf_forland(n_xgrid_sfc)) -#endif -!}ENDALLOCATIONARRAYSFOREXCHANGEFIELDS - -!{ -ex_p_surf=1.0 -!Actualallocationofexchangefieldsforocean_iceboundary -don=1,ex_gas_fields_ice%num_bcs -dom=1,ex_gas_fields_ice%bc(n)%num_fields -if(associated(ex_gas_fields_ice%bc(n)%field(m)%values))then -callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_icealreadyallocated.') -endif -allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) -enddo -enddo -!} - -!{ -don=1,ex_gas_fields_atm%num_bcs -dom=1,ex_gas_fields_atm%bc(n)%num_fields -if(associated(ex_gas_fields_atm%bc(n)%field(m)%values))then -callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_atmalreadyallocated.') -endif -allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) -enddo -enddo -!} - -!{ -don=1,ex_gas_fluxes%num_bcs -dom=1,ex_gas_fluxes%bc(n)%num_fields -if(associated(ex_gas_fluxes%bc(n)%field(m)%values))then -callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fluxesalreadyallocated.') -endif -allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) -enddo -enddo -!} - -!Calltheatmospheretracerdrivertogatherthedataneededforextragastracers -!Foroceanonlymodel -!callatmos_get_fields_for_flux(Atm) - - -!{ -!thisisactuallyasafeguardagainstusingundefinedvalues -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf,& -!$OMPex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir,ex_albedo_vis_dif,ex_albedo_nir_dif,ex_cd_t,& -!$OMPex_cd_m,ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm)private(is,ie,n_gex) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_t_surf(i)=200. -ex_u_surf(i)=0. -ex_v_surf(i)=0. -ex_albedo(i)=0.!bw -ex_albedo_vis_dir(i)=0. -ex_albedo_nir_dir(i)=0. -ex_albedo_vis_dif(i)=0. -ex_albedo_nir_dif(i)=0. -!----donotuseifrelaxtime/=0---- -ex_cd_t(i)=0.0 -ex_cd_m(i)=0.0 -ex_cd_q(i)=0.0 -ex_frac_open_sea(i)=0. -enddo -don_gex=1,n_gex_lnd2atm -doi=is,ie -ex_gex_lnd2atm(i,n_gex)=0.0 -enddo -enddo -enddo -!} - -!{ -!Balaji:data_overridestuffmovedfromcoupler_main -callfms_data_override('ATM','t_bot',atm%t_bot,time) -callfms_data_override('ATM','z_bot',atm%z_bot,time) -callfms_data_override('ATM','p_bot',atm%p_bot,time) -callfms_data_override('ATM','u_bot',atm%u_bot,time) -callfms_data_override('ATM','v_bot',atm%v_bot,time) -callfms_data_override('ATM','p_surf',atm%p_surf,time) -callfms_data_override('ATM','slp',atm%slp,time) -callfms_data_override('ATM','gust',atm%gust,time) -!} - -!{ -!jgj:2008/07/18 -!FVatmadvectstracersinmoistmassmixingratio:kgco2/(kgair+kgwater) -!cubedsphereadvectsmoistmassmixingratioalso(perSJ) -!datatableco2overridesforocean(co2_flux_pcair_atm) -!andland(co2_bot)shouldbeindryvmr(mol/mol)units. -!ATM:co2_flux_pcair_atm:tooverrideatm_btmlayertosendtoocean -!ATM:co2_bot:tooverrideatm_btmlayertosendtoland - -!dataoverrideforco2tobepassedtoland/photosynthesis(co2_bot) -!landco2dataoverrideisindry_vmrunits,soconverttowet_mmrforlandmodel. -!co2mmr=(wco2/wair)*co2vmr;wet_mmr=dry_mmr*(1-Q) -! -dotr=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) -callfms_data_override('ATM',trim(tr_name)//'_bot',atm%tr_bot(:,:,tr),time,override=used) -!conversionforlandco2dataoverridefromdryvmrtomoistmmr -if(used.and.fms_mpp_lowercase(trim(tr_name)).eq.'co2')then -!2017/08/08jgjaddco2_botdiagnosticindry_vmrunits -if(id_co2_bot>0)used=fms_diag_send_data(id_co2_bot,atm%tr_bot(:,:,tr),time) -isc=lbound(atm%tr_bot,1);iec=ubound(atm%tr_bot,1) -jsc=lbound(atm%tr_bot,2);jec=ubound(atm%tr_bot,2) -!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Atm,tr,isphum) -doj=jsc,jec -doi=isc,iec -atm%tr_bot(i,j,tr)=atm%tr_bot(i,j,tr)*(wtmco2/wtmair)*& -(1.0-atm%tr_bot(i,j,isphum)) -enddo -enddo -endif -enddo -!} - -!{ -!atmos_co2.F90alreadycalled:convertstr_botpassedtooceanviagas_fluxfrommoistmmrtodryvmr. -don=1,atm%fields%num_bcs -dom=1,atm%fields%bc(n)%num_fields -callfms_data_override('ATM',atm%fields%bc(n)%field(m)%name,& -atm%fields%bc(n)%field(m)%values,time,override=atm%fields%bc(n)%field(m)%override) -ex_gas_fields_atm%bc(n)%field(m)%override=atm%fields%bc(n)%field(m)%override -!2017/08/08jgjaddco2_flux_pcair_atmdiagnostic -if(atm%fields%bc(n)%field(m)%override.and.& -fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'co2_flux_pcair_atm')then -if(id_co2_flux_pcair_atm>0)& -used=fms_diag_send_data(id_co2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) -endif -!2017/08/15jgjaddo2_flux_pcair_atmdiagnostic -if(atm%fields%bc(n)%field(m)%override.and.& -fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'o2_flux_pcair_atm')then -if(id_o2_flux_pcair_atm>0)& -used=fms_diag_send_data(id_o2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) -endif -enddo -enddo -don=1,atm%fields%num_bcs -if(atm%fields%bc(n)%use_atm_pressure)then -if(.not.atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override)then -atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values=atm%p_surf -endif -endif -enddo -!} - -!{ -callfms_data_override('ICE','t_surf',ice%t_surf,time) -callfms_data_override('ICE','rough_mom',ice%rough_mom,time) -callfms_data_override('ICE','rough_heat',ice%rough_heat,time) -callfms_data_override('ICE','rough_moist',ice%rough_moist,time) -callfms_data_override('ICE','albedo',ice%albedo,time) -callfms_data_override('ICE','albedo_vis_dir',ice%albedo_vis_dir,time) -callfms_data_override('ICE','albedo_nir_dir',ice%albedo_nir_dir,time) -callfms_data_override('ICE','albedo_vis_dif',ice%albedo_vis_dif,time) -callfms_data_override('ICE','albedo_nir_dif',ice%albedo_nir_dif,time) -callfms_data_override('ICE','u_surf',ice%u_surf,time) -callfms_data_override('ICE','v_surf',ice%v_surf,time) -callfms_coupler_type_data_override('ICE',ice%ocean_fields,time) -callfms_coupler_type_send_data(ice%ocean_fields,time) -callfms_data_override_('LND','t_surf',land%t_surf,time) -callfms_data_override_('LND','t_ca',land%t_ca,time) -callfms_data_override_('LND','rough_mom',land%rough_mom,time) -callfms_data_override_('LND','rough_heat',land%rough_heat,time) -callfms_data_override_('LND','albedo',land%albedo,time) - -!tracerdataoverride -dotr=1,n_lnd_tr -callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) -#ifndef_USE_LEGACY_LAND_ -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) -#else -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) -#endif -enddo -callfms_data_override_('LND','albedo_vis_dir',land%albedo_vis_dir,time) -callfms_data_override_('LND','albedo_nir_dir',land%albedo_nir_dir,time) -callfms_data_override_('LND','albedo_vis_dif',land%albedo_vis_dif,time) -callfms_data_override_('LND','albedo_nir_dif',land%albedo_nir_dif,time) -!} - -!{ -#ifdefuse_AM3_physics -if(do_forecast)then -callfms_xgrid_put_to_xgrid(atm%Surf_diff%sst_miz,'ATM',ex_t_surf_miz,& -xmap_sfc,remap_method=remap_method,complete=.false.) -endif -#endif -!putatmospherebottomlayertracerdataontoexchangegrid -dotr=1,n_exch_tr -callfms_xgrid_put_to_xgrid(atm%tr_bot(:,:,tr_table(tr)%atm),'ATM',ex_tr_atm(:,tr),xmap_sfc,& -remap_method=remap_method,complete=.false.) -enddo -don=1,atm%fields%num_bcs -if(ex_gas_fields_atm%bc(n)%flux_type.ne.'air_sea_deposition')then -dom=1,atm%fields%bc(n)%num_fields -callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& -ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method,complete=.false.) -enddo -endif -enddo - -callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_t_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%z_bot,'ATM',ex_z_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%p_bot,'ATM',ex_p_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%u_bot,'ATM',ex_u_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%v_bot,'ATM',ex_v_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%p_surf,'ATM',ex_p_surf,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%slp,'ATM',ex_slp,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%gust,'ATM',ex_gust,xmap_sfc,remap_method=remap_method,complete=.true.) -!} - -!slm,Mar202002:changedorderinwhiththedatatransferredfromiceandland -!grids,tofillt_cafirstwitht_surfoveroceanandthenwitht_cafrom -!land,whereitisdifferentfromt_surf.Itismostlytosimplify -!diagnostic,sincesurface_fluxcalculationsdistinguishbetweenlandand -!not-landanyway. - -!{ -!prefillsurfacevalueswithatmosphericvaluesbeforeputtingtracers -!fromiceorland,sothatgradientis0iftracersarenotfilled -ex_tr_surf=ex_tr_atm -!} - -!{ -!(assumethatoceanquantitesarestoredinnoicepartition) -!(note:ex_availistrueaticeandoceanpoints) -callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%rough_mom,'OCN',ex_rough_mom,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%rough_heat,'OCN',ex_rough_heat,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%rough_moist,'OCN',ex_rough_moist,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo,'OCN',ex_albedo,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_vis_dir,'OCN',ex_albedo_vis_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_nir_dir,'OCN',ex_albedo_nir_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_vis_dif,'OCN',ex_albedo_vis_dif,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_nir_dif,'OCN',ex_albedo_nir_dif,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%u_surf,'OCN',ex_u_surf,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%v_surf,'OCN',ex_v_surf,xmap_sfc) - -tmp_open_sea=0. -tmp_open_sea(:,:,1)=1. -callfms_xgrid_put_to_xgrid(tmp_open_sea,'OCN',ex_frac_open_sea,xmap_sfc) - -don=1,ice%ocean_fields%num_bcs -dom=1,ice%ocean_fields%bc(n)%num_fields -callfms_xgrid_put_to_xgrid(ice%ocean_fields%bc(n)%field(m)%values,'OCN',& -ex_gas_fields_ice%bc(n)%field(m)%values,xmap_sfc) -enddo -enddo -!} - -!{ -!Generateawetmaskarrayonthexgridwhichis: -!1:wherethereisanyopenwaterintheOCNgridcell -!0:wherethereisnoopenwaterintheOCNgridcell,i.e.,totallyicecoveredorland -!Thisisadynamicwetmaskandparticularlyisnotthesameasastaticlandmaskbecauseseaicefractionschange -!asthemodelruns. -!Onewaytocreatesuchamaskisif'OCN'putsanarrayonthexgridwhichis -!1oneveryOCNgridcellwiththe3rdindexequalto1(icecategory1correspondstoopenwaterinthegridcell) -!0otherwise -!Thiswetmaskwillbeusedtolimittheair-seafluxexchangetoareasthatarenottotallycoveredbyseaice. -sea=0.0;sea(:,:,1)=1.0; -ex_seawater=0.0 -callfms_xgrid_put_to_xgrid(sea,'OCN',ex_seawater,xmap_sfc) -!} - -!Question:Whyistheaboveex_seawateradynamicmaskarray? -!Fromitsconstructionitlookslikeastaticarrayof1sand0s! -!Answer:Thexmap_sfcisdynamicandchangesasthemodelstepsbecauseitcontainsupdatedinformationabout -!seaicefractions.Theupdatedarray"ex_seawater"aftertheabove"put"callwillbe1wherethere -!isopenwaterevenifthosegridcellswherepreviouslyclosedbyseaice. -!Particularlyifwerestrictxgridcalculationswhereex_seawater==1 -!onlycellswith(partiallyortotally)openwatercontributeandtotallycoveredcellswon'tcontribute. - -!Notrelatedtotheabovecomments,itseemsthattheaboveex_frac_open_seacouldbereplacedbyex_seawater -!forcodecleaning. -!Thefollowingtestdoesnotprintoutanythingforafullycoupledmodel.Thisassertsthat -!1.Thetwoarraysex_frac_open_seaandex_seawaterarethesame -!Theirdifferenceisthatex_frac_open_seaisalocalarray, -!butex_seawaterisamodulearrayusedoutsidethissubroutine -!2.Thexgridarray"ex_seawater"iseither0or1andnothingelse,justlikethe"OCN"gridarray"sea" -!Test: -!dol=1,my_nblocks -!is=block_start(l) -!ie=block_end(l) -!doi=is,ie -!if(ex_frac_open_sea(i)/=ex_seawater(i))& -!print*,'ex_frac_open_sea!=ex_seawater',ex_frac_open_sea(i),ex_seawater(i) -!if(ex_seawater(i)/=0.0.or.ex_seawater(i)/=1.0)& -!print*,'ex_seawater!1or0',ex_seawater(i) -!enddo -!enddo - -ex_t_ca=ex_t_surf!slm,Mar202002todefinevaluesovertheocean - -!{ -callfms_xgrid_some(xmap_sfc,ex_land,'LND') - -#ifdefuse_AM3_physics -if(do_forecast)then -callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_miz,xmap_sfc) -ex_t_ca(:)=ex_t_surf_miz(:) -endif -#endif - -callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%rough_mom,'LND',ex_rough_mom,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_heat,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_moist,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo,'LND',ex_albedo,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_vis_dir,'LND',ex_albedo_vis_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_nir_dir,'LND',ex_albedo_nir_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_vis_dif,'LND',ex_albedo_vis_dif,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_nir_dif,'LND',ex_albedo_nir_dif,xmap_sfc) -ex_rough_scale=ex_rough_mom -callfms_xgrid_put_to_xgrid_(land%rough_scale,'LND',ex_rough_scale,xmap_sfc) - -don_gex=1,n_gex_lnd2atm -callfms_xgrid_put_to_xgrid_(land%gex_lnd2atm(:,:,n_gex),'LND',ex_gex_lnd2atm(:,n_gex),xmap_sfc) -enddo - -dotr=1,n_exch_tr -n=tr_table(tr)%lnd -if(n/=no_tracer)then -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) -#else -callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) -#endif -else -!donothing,sinceex_tr_surfisprefilledwithex_tr_atm,andtherefore -!fluxeswillbe0 -endif -enddo - -ex_land_frac=0.0 -callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) -!}ENDMAPLANDEXCHANGEFIELDSONTOTHEEXCHANGEGRID - -#ifdefSCM -if(do_specified_land)then -if(do_specified_albedo)then -ex_albedo=albedo_obs -ex_albedo_vis_dir=albedo_obs -ex_albedo_nir_dir=albedo_obs -ex_albedo_vis_dif=albedo_obs -ex_albedo_nir_dif=albedo_obs -endif -if(do_specified_tskin)then -ex_t_surf=tskin -ex_t_ca=tskin -ex_tr_surf(:,isphum)=15.e-3 -endif -if(do_specified_rough_leng)then -ex_rough_mom=rough_mom -ex_rough_heat=rough_heat -ex_rough_moist=rough_heat -endif -endif -#endif - -#ifdefuse_AM3_physics -if(do_forecast)then -ex_t_surf=ex_t_surf_miz -endif -#endif - -!{ -callfms_xgrid_some(xmap_sfc,ex_avail) -!$OMPparalleldodefault(none)shared(my_nblocks,ex_t_atm,ex_tr_atm,ex_u_atm,ex_v_atm,& -!$OMPex_p_atm,ex_z_atm,ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf,ex_u_surf,ex_v_surf,ex_rough_mom,& -!$OMPex_rough_heat,ex_rough_moist,ex_rough_scale,ex_gust,ex_flux_t,ex_flux_tr,ex_flux_lw,& -!$OMPex_flux_u,ex_flux_v,ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& -!$OMPex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf,ex_drdt_surf,& -!$OMPex_dhdt_atm,ex_dfdtr_atm,ex_dtaudu_atm,ex_dtaudv_atm,dt,ex_land,& -!$OMPex_seawater,ex_avail,block_start,block_end,isphum)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -callsurface_flux(& -ex_t_atm(is:ie),ex_tr_atm(is:ie,isphum),ex_u_atm(is:ie),ex_v_atm(is:ie),ex_p_atm(is:ie),ex_z_atm(is:ie),& -ex_p_surf(is:ie),ex_t_surf(is:ie),ex_t_ca(is:ie),ex_tr_surf(is:ie,isphum),ex_u_surf(is:ie),ex_v_surf(is:ie),& -ex_rough_mom(is:ie),ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_rough_scale(is:ie),ex_gust(is:ie),& -ex_flux_t(is:ie),ex_flux_tr(is:ie,isphum),ex_flux_lw(is:ie),ex_flux_u(is:ie),ex_flux_v(is:ie),& -ex_cd_m(is:ie),ex_cd_t(is:ie),ex_cd_q(is:ie),ex_wind(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),& -ex_q_star(is:ie),ex_thv_atm(is:ie),ex_thv_surf(is:ie),ex_dhdt_surf(is:ie),ex_dedt_surf(is:ie),& -ex_dfdtr_surf(is:ie,isphum),ex_drdt_surf(is:ie),ex_dhdt_atm(is:ie),ex_dfdtr_atm(is:ie,isphum),& -ex_dtaudu_atm(is:ie),ex_dtaudv_atm(is:ie),dt,ex_land(is:ie),(ex_seawater(is:ie).gt.0.0),ex_avail(is:ie)) -enddo - -#ifdefSCM -!OptiontooverridesurfacefluxesforSCM -if(do_specified_flux)then - -callscm_surface_flux(& -ex_t_atm,ex_tr_atm(:,isphum),ex_u_atm,ex_v_atm,ex_p_atm,ex_z_atm,& -ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf(:,isphum),ex_u_surf,ex_v_surf,& -ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_rough_scale,& -ex_gust,ex_flux_t,ex_flux_tr(:,isphum),ex_flux_lw,ex_flux_u,ex_flux_v,& -ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& -ex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf(:,isphum),ex_drdt_surf,& -ex_dhdt_atm,ex_dfdtr_atm(:,isphum),ex_dtaudu_atm,ex_dtaudv_atm,dt,(ex_land,ex_seawater.gt.0.0),& -ex_avail,ex_dhdt_surf_forland,ex_dedt_surf_forland,ex_dedq_surf_forland) -endif -#endif -!}ENDCALLSURFACE_FLUX - - -!callmpp_clock_end(fluxClock) +type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary + + +!----localvars---------------------------------------------------------- +real,dimension(n_xgrid_sfc)::& +ex_albedo,&!albedo +ex_albedo_vis_dir,&!albedoforlightwithwavelengthinvisibleregionofthesolarspectrum +ex_albedo_nir_dir,&!albedoforlightwithwavelengthinnear-irregionofthesolarspectrum +ex_albedo_vis_dif,&!differenceinalbedoforlightwithwavelengthinvisibleregionofthesolarspectrum +ex_albedo_nir_dif,&!differenceinalbedoforlightwithwavelengthinnear-irregionofthesolarspectrum +ex_land_frac,&!fractionalareaoflandingridcell +ex_t_atm,&!airtemperatureatthelowestatmosphericlevel +ex_p_atm,&!pressureatthelowestatmosphericlevel +ex_u_atm,&!uwindcomponentatthelowestatmosphericlevel +ex_v_atm,&!vwindcomponentatthelowestatmosphericlevel +ex_gust,&!gustscale +ex_t_surf4,&!(surfacetemperature)**4 +ex_u_surf,&!uwindcomponentatEarth'ssurface +ex_v_surf,&!vwindcomponentatEarth'ssurface +ex_rough_mom,&!momentumroughnesslength +ex_rough_heat,&!heatroughnesslength +ex_rough_moist,&!moistureroughnesslength +ex_rough_scale,&!scalefactorfortopographicroughnesscalculation +ex_q_star,&!turbulentmoisturescale +ex_thv_atm,&!surfaceareatheta_v +ex_thv_surf,&!surfacetheta_v +ex_cd_q,&!moistureexchangecoefficient +ex_ref,&!specifichumidityatz_ref_heat +ex_ref_u,&!zonalwindcomponentatz_ref_mom +ex_ref_v,&!meridionalwindcomponentatz_ref_mom +ex_u10,&!<zonalwindspeedat10mabovethesurface +ex_ref2,&! +ex_t_ref,& +ex_qs_ref,& +ex_qs_ref_cmip,&! +ex_del_m,&!referenceheightforinterpolationfactorformomentum +ex_del_h,&!referenceheightinterpolationfactorforheat +ex_del_q,&!referenceheightinterpationfactorformoisture +ex_frac_open_sea!open-watermask,notused? + +real::rho +real,dimension(n_xgrid_sfc,n_exch_tr)::& +ex_tr_atm,&!<concentrationoftraceratlowestatmosphericlevel +ex_tr_ref + +real,dimension(n_xgrid_sfc)::ex_co2_atm_dvmr!jgj:addedforco2_atmdiagnostic + +real,dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2))::diag_atm + + +#ifndef_USE_LEGACY_LAND_ +real,dimension(size(Land%t_ca,1),size(Land%t_ca,2))::diag_land +real,dimension(size(Land%t_ca,1))::diag_land_ug,tile_size_ug +real,dimension(nxc_lnd,nyc_lnd)::diag_land_sg,tile_size_sg +logical,dimension(size(Land%t_ca,1))::mask_ug +logical,dimension(nxc_lnd,nyc_lnd)::mask_sg +integer::k +#else +real,dimension(size(Land%t_ca,1),size(Land%t_ca,2),size(Land%t_ca,3))::diag_land +#endif +real,dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3))::sea +real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::tmp_open_sea + +real::& +zrefm,&!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory +zrefh!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory + +logical::used +character(32)::tr_name,tr_units!tracername + +integer::tr,n,m!tracerindices +integer::is,ie,isc,iec,jsc,jec +integer::i,l,j,n_gex + +real,dimension(n_xgrid_sfc,n_gex_lnd2atm)::ex_gex_lnd2atm + + +![1]checkthatthemodulewasinitialized +if(do_init)callfms_error_mesg('atm_land_ice_flux_exchange_mod',& +'mustcallatm_land_ice_flux_exchange_initfirst',fatal) + +!{ +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(sfcclock) +!} + +!{ +allocate(& +ex_t_surf(n_xgrid_sfc),& +ex_t_surf_miz(n_xgrid_sfc),& +ex_p_surf(n_xgrid_sfc),& +ex_slp(n_xgrid_sfc),& +ex_t_ca(n_xgrid_sfc),& +ex_dhdt_surf(n_xgrid_sfc),& +ex_dedt_surf(n_xgrid_sfc),& +ex_dqsatdt_surf(n_xgrid_sfc),& +ex_drdt_surf(n_xgrid_sfc),& +ex_dhdt_atm(n_xgrid_sfc),& +ex_flux_t(n_xgrid_sfc),& +ex_flux_lw(n_xgrid_sfc),& +ex_drag_q(n_xgrid_sfc),& +ex_avail(n_xgrid_sfc),& +ex_f_t_delt_n(n_xgrid_sfc),& +ex_tr_surf(n_xgrid_sfc,n_exch_tr),& +ex_dfdtr_surf(n_xgrid_sfc,n_exch_tr),& +ex_dfdtr_atm(n_xgrid_sfc,n_exch_tr),& +ex_flux_tr(n_xgrid_sfc,n_exch_tr),& +ex_f_tr_delt_n(n_xgrid_sfc,n_exch_tr),& +ex_e_tr_n(n_xgrid_sfc,n_exch_tr),& +ex_con_atm(n_xgrid_sfc),& +ex_tr_con_ref(n_xgrid_sfc,n_exch_tr),& +ex_tr_con_atm(n_xgrid_sfc,n_exch_tr),& +!MODtheseweremovedfromlocal!sotheycanbepassedtofluxdown +ex_flux_u(n_xgrid_sfc),& +ex_flux_v(n_xgrid_sfc),& +ex_dtaudu_atm(n_xgrid_sfc),& +ex_dtaudv_atm(n_xgrid_sfc),& +ex_seawater(n_xgrid_sfc),& +!valuesaddedforLM3 +ex_cd_t(n_xgrid_sfc),& +ex_cd_m(n_xgrid_sfc),& +ex_b_star(n_xgrid_sfc),& +ex_u_star(n_xgrid_sfc),& +ex_wind(n_xgrid_sfc),& +ex_z_atm(n_xgrid_sfc),& +ex_e_t_n(n_xgrid_sfc),& +ex_e_q_n(n_xgrid_sfc),& +ex_land(n_xgrid_sfc)) +#ifdefSCM +allocate(& +ex_dhdt_surf_forland(n_xgrid_sfc),& +ex_dedt_surf_forland(n_xgrid_sfc),& +ex_dedq_surf_forland(n_xgrid_sfc)) +#endif +!}ENDALLOCATIONARRAYSFOREXCHANGEFIELDS + +!{ +ex_p_surf=1.0 +!Actualallocationofexchangefieldsforocean_iceboundary +don=1,ex_gas_fields_ice%num_bcs +dom=1,ex_gas_fields_ice%bc(n)%num_fields +if(associated(ex_gas_fields_ice%bc(n)%field(m)%values))then +callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_icealreadyallocated.') +endif +allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) +enddo +enddo +!} + +!{ +don=1,ex_gas_fields_atm%num_bcs +dom=1,ex_gas_fields_atm%bc(n)%num_fields +if(associated(ex_gas_fields_atm%bc(n)%field(m)%values))then +callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_atmalreadyallocated.') +endif +allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) +enddo +enddo +!} + +!{ +don=1,ex_gas_fluxes%num_bcs +dom=1,ex_gas_fluxes%bc(n)%num_fields +if(associated(ex_gas_fluxes%bc(n)%field(m)%values))then +callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fluxesalreadyallocated.') +endif +allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) +enddo +enddo +!} + +!Calltheatmospheretracerdrivertogatherthedataneededforextragastracers +!Foroceanonlymodel +!callatmos_get_fields_for_flux(Atm) + + +!{ +!thisisactuallyasafeguardagainstusingundefinedvalues +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf,& +!$OMPex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir,ex_albedo_vis_dif,ex_albedo_nir_dif,ex_cd_t,& +!$OMPex_cd_m,ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm)private(is,ie,n_gex) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_t_surf(i)=200. +ex_u_surf(i)=0. +ex_v_surf(i)=0. +ex_albedo(i)=0.!bw +ex_albedo_vis_dir(i)=0. +ex_albedo_nir_dir(i)=0. +ex_albedo_vis_dif(i)=0. +ex_albedo_nir_dif(i)=0. +!----donotuseifrelaxtime/=0---- +ex_cd_t(i)=0.0 +ex_cd_m(i)=0.0 +ex_cd_q(i)=0.0 +ex_frac_open_sea(i)=0. +enddo +don_gex=1,n_gex_lnd2atm +doi=is,ie +ex_gex_lnd2atm(i,n_gex)=0.0 +enddo +enddo +enddo +!} + +!{ +!Balaji:data_overridestuffmovedfromcoupler_main +callfms_data_override('ATM','t_bot',atm%t_bot,time) +callfms_data_override('ATM','z_bot',atm%z_bot,time) +callfms_data_override('ATM','p_bot',atm%p_bot,time) +callfms_data_override('ATM','u_bot',atm%u_bot,time) +callfms_data_override('ATM','v_bot',atm%v_bot,time) +callfms_data_override('ATM','p_surf',atm%p_surf,time) +callfms_data_override('ATM','slp',atm%slp,time) +callfms_data_override('ATM','gust',atm%gust,time) +!} + +!{ +!jgj:2008/07/18 +!FVatmadvectstracersinmoistmassmixingratio:kgco2/(kgair+kgwater) +!cubedsphereadvectsmoistmassmixingratioalso(perSJ) +!datatableco2overridesforocean(co2_flux_pcair_atm) +!andland(co2_bot)shouldbeindryvmr(mol/mol)units. +!ATM:co2_flux_pcair_atm:tooverrideatm_btmlayertosendtoocean +!ATM:co2_bot:tooverrideatm_btmlayertosendtoland + +!dataoverrideforco2tobepassedtoland/photosynthesis(co2_bot) +!landco2dataoverrideisindry_vmrunits,soconverttowet_mmrforlandmodel. +!co2mmr=(wco2/wair)*co2vmr;wet_mmr=dry_mmr*(1-Q) +! +dotr=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) +callfms_data_override('ATM',trim(tr_name)//'_bot',atm%tr_bot(:,:,tr),time,override=used) +!conversionforlandco2dataoverridefromdryvmrtomoistmmr +if(used.and.fms_mpp_lowercase(trim(tr_name)).eq.'co2')then +!2017/08/08jgjaddco2_botdiagnosticindry_vmrunits +if(id_co2_bot>0)used=fms_diag_send_data(id_co2_bot,atm%tr_bot(:,:,tr),time) +isc=lbound(atm%tr_bot,1);iec=ubound(atm%tr_bot,1) +jsc=lbound(atm%tr_bot,2);jec=ubound(atm%tr_bot,2) +!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Atm,tr,isphum) +doj=jsc,jec +doi=isc,iec +atm%tr_bot(i,j,tr)=atm%tr_bot(i,j,tr)*(wtmco2/wtmair)*& +(1.0-atm%tr_bot(i,j,isphum)) +enddo +enddo +endif +enddo +!} + +!{ +!atmos_co2.F90alreadycalled:convertstr_botpassedtooceanviagas_fluxfrommoistmmrtodryvmr. +don=1,atm%fields%num_bcs +dom=1,atm%fields%bc(n)%num_fields +callfms_data_override('ATM',atm%fields%bc(n)%field(m)%name,& +atm%fields%bc(n)%field(m)%values,time,override=atm%fields%bc(n)%field(m)%override) +ex_gas_fields_atm%bc(n)%field(m)%override=atm%fields%bc(n)%field(m)%override +!2017/08/08jgjaddco2_flux_pcair_atmdiagnostic +if(atm%fields%bc(n)%field(m)%override.and.& +fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'co2_flux_pcair_atm')then +if(id_co2_flux_pcair_atm>0)& +used=fms_diag_send_data(id_co2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) +endif +!2017/08/15jgjaddo2_flux_pcair_atmdiagnostic +if(atm%fields%bc(n)%field(m)%override.and.& +fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'o2_flux_pcair_atm')then +if(id_o2_flux_pcair_atm>0)& +used=fms_diag_send_data(id_o2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) +endif +enddo +enddo +don=1,atm%fields%num_bcs +if(atm%fields%bc(n)%use_atm_pressure)then +if(.not.atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override)then +atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values=atm%p_surf +endif +endif +enddo +!} + +!{ +callfms_data_override('ICE','t_surf',ice%t_surf,time) +callfms_data_override('ICE','rough_mom',ice%rough_mom,time) +callfms_data_override('ICE','rough_heat',ice%rough_heat,time) +callfms_data_override('ICE','rough_moist',ice%rough_moist,time) +callfms_data_override('ICE','albedo',ice%albedo,time) +callfms_data_override('ICE','albedo_vis_dir',ice%albedo_vis_dir,time) +callfms_data_override('ICE','albedo_nir_dir',ice%albedo_nir_dir,time) +callfms_data_override('ICE','albedo_vis_dif',ice%albedo_vis_dif,time) +callfms_data_override('ICE','albedo_nir_dif',ice%albedo_nir_dif,time) +callfms_data_override('ICE','u_surf',ice%u_surf,time) +callfms_data_override('ICE','v_surf',ice%v_surf,time) +callfms_coupler_type_data_override('ICE',ice%ocean_fields,time) +callfms_coupler_type_send_data(ice%ocean_fields,time) +callfms_data_override_('LND','t_surf',land%t_surf,time) +callfms_data_override_('LND','t_ca',land%t_ca,time) +callfms_data_override_('LND','rough_mom',land%rough_mom,time) +callfms_data_override_('LND','rough_heat',land%rough_heat,time) +callfms_data_override_('LND','albedo',land%albedo,time) + +!tracerdataoverride +dotr=1,n_lnd_tr +callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) +#ifndef_USE_LEGACY_LAND_ +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) +#else +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) +#endif +enddo +callfms_data_override_('LND','albedo_vis_dir',land%albedo_vis_dir,time) +callfms_data_override_('LND','albedo_nir_dir',land%albedo_nir_dir,time) +callfms_data_override_('LND','albedo_vis_dif',land%albedo_vis_dif,time) +callfms_data_override_('LND','albedo_nir_dif',land%albedo_nir_dif,time) +!} + +!{ +#ifdefuse_AM3_physics +if(do_forecast)then +callfms_xgrid_put_to_xgrid(atm%Surf_diff%sst_miz,'ATM',ex_t_surf_miz,& +xmap_sfc,remap_method=remap_method,complete=.false.) +endif +#endif +!putatmospherebottomlayertracerdataontoexchangegrid +dotr=1,n_exch_tr +callfms_xgrid_put_to_xgrid(atm%tr_bot(:,:,tr_table(tr)%atm),'ATM',ex_tr_atm(:,tr),xmap_sfc,& +remap_method=remap_method,complete=.false.) +enddo +don=1,atm%fields%num_bcs +if(ex_gas_fields_atm%bc(n)%flux_type.ne.'air_sea_deposition')then +dom=1,atm%fields%bc(n)%num_fields +callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& +ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method,complete=.false.) +enddo +endif +enddo + +callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_t_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%z_bot,'ATM',ex_z_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%p_bot,'ATM',ex_p_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%u_bot,'ATM',ex_u_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%v_bot,'ATM',ex_v_atm,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%p_surf,'ATM',ex_p_surf,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%slp,'ATM',ex_slp,xmap_sfc,remap_method=remap_method,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%gust,'ATM',ex_gust,xmap_sfc,remap_method=remap_method,complete=.true.) +!} + +!slm,Mar202002:changedorderinwhiththedatatransferredfromiceandland +!grids,tofillt_cafirstwitht_surfoveroceanandthenwitht_cafrom +!land,whereitisdifferentfromt_surf.Itismostlytosimplify +!diagnostic,sincesurface_fluxcalculationsdistinguishbetweenlandand +!not-landanyway. + +!{ +!prefillsurfacevalueswithatmosphericvaluesbeforeputtingtracers +!fromiceorland,sothatgradientis0iftracersarenotfilled +ex_tr_surf=ex_tr_atm +!} + +!{ +!(assumethatoceanquantitesarestoredinnoicepartition) +!(note:ex_availistrueaticeandoceanpoints) +callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%rough_mom,'OCN',ex_rough_mom,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%rough_heat,'OCN',ex_rough_heat,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%rough_moist,'OCN',ex_rough_moist,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo,'OCN',ex_albedo,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_vis_dir,'OCN',ex_albedo_vis_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_nir_dir,'OCN',ex_albedo_nir_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_vis_dif,'OCN',ex_albedo_vis_dif,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%albedo_nir_dif,'OCN',ex_albedo_nir_dif,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%u_surf,'OCN',ex_u_surf,xmap_sfc) +callfms_xgrid_put_to_xgrid(ice%v_surf,'OCN',ex_v_surf,xmap_sfc) + +tmp_open_sea=0. +tmp_open_sea(:,:,1)=1. +callfms_xgrid_put_to_xgrid(tmp_open_sea,'OCN',ex_frac_open_sea,xmap_sfc) + +don=1,ice%ocean_fields%num_bcs +dom=1,ice%ocean_fields%bc(n)%num_fields +callfms_xgrid_put_to_xgrid(ice%ocean_fields%bc(n)%field(m)%values,'OCN',& +ex_gas_fields_ice%bc(n)%field(m)%values,xmap_sfc) +enddo +enddo +!} + +!{ +!Generateawetmaskarrayonthexgridwhichis: +!1:wherethereisanyopenwaterintheOCNgridcell +!0:wherethereisnoopenwaterintheOCNgridcell,i.e.,totallyicecoveredorland +!Thisisadynamicwetmaskandparticularlyisnotthesameasastaticlandmaskbecauseseaicefractionschange +!asthemodelruns. +!Onewaytocreatesuchamaskisif'OCN'putsanarrayonthexgridwhichis +!1oneveryOCNgridcellwiththe3rdindexequalto1(icecategory1correspondstoopenwaterinthegridcell) +!0otherwise +!Thiswetmaskwillbeusedtolimittheair-seafluxexchangetoareasthatarenottotallycoveredbyseaice. +sea=0.0;sea(:,:,1)=1.0; +ex_seawater=0.0 +callfms_xgrid_put_to_xgrid(sea,'OCN',ex_seawater,xmap_sfc) +!} + +!Question:Whyistheaboveex_seawateradynamicmaskarray? +!Fromitsconstructionitlookslikeastaticarrayof1sand0s! +!Answer:Thexmap_sfcisdynamicandchangesasthemodelstepsbecauseitcontainsupdatedinformationabout +!seaicefractions.Theupdatedarray"ex_seawater"aftertheabove"put"callwillbe1wherethere +!isopenwaterevenifthosegridcellswherepreviouslyclosedbyseaice. +!Particularlyifwerestrictxgridcalculationswhereex_seawater==1 +!onlycellswith(partiallyortotally)openwatercontributeandtotallycoveredcellswon'tcontribute. + +!Notrelatedtotheabovecomments,itseemsthattheaboveex_frac_open_seacouldbereplacedbyex_seawater +!forcodecleaning. +!Thefollowingtestdoesnotprintoutanythingforafullycoupledmodel.Thisassertsthat +!1.Thetwoarraysex_frac_open_seaandex_seawaterarethesame +!Theirdifferenceisthatex_frac_open_seaisalocalarray, +!butex_seawaterisamodulearrayusedoutsidethissubroutine +!2.Thexgridarray"ex_seawater"iseither0or1andnothingelse,justlikethe"OCN"gridarray"sea" +!Test: +!dol=1,my_nblocks +!is=block_start(l) +!ie=block_end(l) +!doi=is,ie +!if(ex_frac_open_sea(i)/=ex_seawater(i))& +!print*,'ex_frac_open_sea!=ex_seawater',ex_frac_open_sea(i),ex_seawater(i) +!if(ex_seawater(i)/=0.0.or.ex_seawater(i)/=1.0)& +!print*,'ex_seawater!1or0',ex_seawater(i) +!enddo +!enddo + +ex_t_ca=ex_t_surf!slm,Mar202002todefinevaluesovertheocean + +!{ +callfms_xgrid_some(xmap_sfc,ex_land,'LND') + +#ifdefuse_AM3_physics +if(do_forecast)then +callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_miz,xmap_sfc) +ex_t_ca(:)=ex_t_surf_miz(:) +endif +#endif + +callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%rough_mom,'LND',ex_rough_mom,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_heat,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_moist,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo,'LND',ex_albedo,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_vis_dir,'LND',ex_albedo_vis_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_nir_dir,'LND',ex_albedo_nir_dir,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_vis_dif,'LND',ex_albedo_vis_dif,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%albedo_nir_dif,'LND',ex_albedo_nir_dif,xmap_sfc) +ex_rough_scale=ex_rough_mom +callfms_xgrid_put_to_xgrid_(land%rough_scale,'LND',ex_rough_scale,xmap_sfc) + +don_gex=1,n_gex_lnd2atm +callfms_xgrid_put_to_xgrid_(land%gex_lnd2atm(:,:,n_gex),'LND',ex_gex_lnd2atm(:,n_gex),xmap_sfc) +enddo + +dotr=1,n_exch_tr +n=tr_table(tr)%lnd +if(n/=no_tracer)then +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) +#else +callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) +#endif +else +!donothing,sinceex_tr_surfisprefilledwithex_tr_atm,andtherefore +!fluxeswillbe0 +endif +enddo + +ex_land_frac=0.0 +callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) +!}ENDMAPLANDEXCHANGEFIELDSONTOTHEEXCHANGEGRID + +#ifdefSCM +if(do_specified_land)then +if(do_specified_albedo)then +ex_albedo=albedo_obs +ex_albedo_vis_dir=albedo_obs +ex_albedo_nir_dir=albedo_obs +ex_albedo_vis_dif=albedo_obs +ex_albedo_nir_dif=albedo_obs +endif +if(do_specified_tskin)then +ex_t_surf=tskin +ex_t_ca=tskin +ex_tr_surf(:,isphum)=15.e-3 +endif +if(do_specified_rough_leng)then +ex_rough_mom=rough_mom +ex_rough_heat=rough_heat +ex_rough_moist=rough_heat +endif +endif +#endif + +#ifdefuse_AM3_physics +if(do_forecast)then +ex_t_surf=ex_t_surf_miz +endif +#endif + +!{ +callfms_xgrid_some(xmap_sfc,ex_avail) +!$OMPparalleldodefault(none)shared(my_nblocks,ex_t_atm,ex_tr_atm,ex_u_atm,ex_v_atm,& +!$OMPex_p_atm,ex_z_atm,ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf,ex_u_surf,ex_v_surf,ex_rough_mom,& +!$OMPex_rough_heat,ex_rough_moist,ex_rough_scale,ex_gust,ex_flux_t,ex_flux_tr,ex_flux_lw,& +!$OMPex_flux_u,ex_flux_v,ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& +!$OMPex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf,ex_drdt_surf,& +!$OMPex_dhdt_atm,ex_dfdtr_atm,ex_dtaudu_atm,ex_dtaudv_atm,dt,ex_land,& +!$OMPex_seawater,ex_avail,block_start,block_end,isphum)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +callsurface_flux(& +ex_t_atm(is:ie),ex_tr_atm(is:ie,isphum),ex_u_atm(is:ie),ex_v_atm(is:ie),ex_p_atm(is:ie),ex_z_atm(is:ie),& +ex_p_surf(is:ie),ex_t_surf(is:ie),ex_t_ca(is:ie),ex_tr_surf(is:ie,isphum),ex_u_surf(is:ie),ex_v_surf(is:ie),& +ex_rough_mom(is:ie),ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_rough_scale(is:ie),ex_gust(is:ie),& +ex_flux_t(is:ie),ex_flux_tr(is:ie,isphum),ex_flux_lw(is:ie),ex_flux_u(is:ie),ex_flux_v(is:ie),& +ex_cd_m(is:ie),ex_cd_t(is:ie),ex_cd_q(is:ie),ex_wind(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),& +ex_q_star(is:ie),ex_thv_atm(is:ie),ex_thv_surf(is:ie),ex_dhdt_surf(is:ie),ex_dedt_surf(is:ie),& +ex_dfdtr_surf(is:ie,isphum),ex_drdt_surf(is:ie),ex_dhdt_atm(is:ie),ex_dfdtr_atm(is:ie,isphum),& +ex_dtaudu_atm(is:ie),ex_dtaudv_atm(is:ie),dt,ex_land(is:ie),(ex_seawater(is:ie).gt.0.0),ex_avail(is:ie)) +enddo + +#ifdefSCM +!OptiontooverridesurfacefluxesforSCM +if(do_specified_flux)then + +callscm_surface_flux(& +ex_t_atm,ex_tr_atm(:,isphum),ex_u_atm,ex_v_atm,ex_p_atm,ex_z_atm,& +ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf(:,isphum),ex_u_surf,ex_v_surf,& +ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_rough_scale,& +ex_gust,ex_flux_t,ex_flux_tr(:,isphum),ex_flux_lw,ex_flux_u,ex_flux_v,& +ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& +ex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf(:,isphum),ex_drdt_surf,& +ex_dhdt_atm,ex_dfdtr_atm(:,isphum),ex_dtaudu_atm,ex_dtaudv_atm,dt,(ex_land,ex_seawater.gt.0.0),& +ex_avail,ex_dhdt_surf_forland,ex_dedt_surf_forland,ex_dedq_surf_forland) +endif +#endif +!}ENDCALLSURFACE_FLUX + -!{ -zrefm=10.0 -zrefh=z_ref_heat -!----optimizecalculation---- -!$OMPparalleldodefault(shared)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& -ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& -ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) -doi=is,ie -ex_u10(i)=0. -if(ex_avail(i))then -ex_ref_u(i)=ex_u_surf(i)+(ex_u_atm(i)-ex_u_surf(i))*ex_del_m(i) -ex_ref_v(i)=ex_v_surf(i)+(ex_v_atm(i)-ex_v_surf(i))*ex_del_m(i) -ex_u10(i)=sqrt(ex_ref_u(i)**2+ex_ref_v(i)**2) -endif -enddo -don=1,ex_gas_fields_atm%num_bcs -if(atm%fields%bc(n)%use_10m_wind_speed)then -if(.not.ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override)then -doi=is,ie -ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)=ex_u10(i) -enddo -endif -endif -enddo -!}ENDCOMPUTEZONALANDMERIDIONALWINDS - -!{ -!f1p:calculateatmosphericconductancetosendtothelandmodel -doi=is,ie -ex_con_atm(i)=ex_wind(i)*ex_cd_q(i) -enddo -!} - -!{ -!F=C0*u*rho*delta_q,C0*u*rhoisthesameforalltracers,copyfromsphum -dotr=1,n_exch_tr -if(tr==isphum)cycle -doi=is,ie -!slm:ex_dfdtr_surf(:,isphum)ismanipulatedinsurface_flux:itissetto -!zeroovertheocean,soitisnotappropriatetouseforothertracers. -!However,sinceflux=rho*Cd*|v|*(q_surf-q_atm),wecansimplyusenegative -!dfdtr_atmforthedfdtr_surfderivative.Thiswillbreakifevertheflux -!formulationischangedtobenotsymmetricalw.r.t.q_surfandq_atm,but -!thenthiswholesectionwillhavetobechanged. -ex_dfdtr_atm(i,tr)=ex_dfdtr_atm(i,isphum) -ex_dfdtr_surf(i,tr)=-ex_dfdtr_atm(i,isphum) -ex_flux_tr(i,tr)=ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) -enddo -enddo -enddo -!} - -!Combineexplicitoceanfluxandimplicitlandfluxofextrafluxfields. +!callmpp_clock_end(fluxClock) + +!{ +zrefm=10.0 +zrefh=z_ref_heat +!----optimizecalculation---- +!$OMPparalleldodefault(shared)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& +ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& +ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) +doi=is,ie +ex_u10(i)=0. +if(ex_avail(i))then +ex_ref_u(i)=ex_u_surf(i)+(ex_u_atm(i)-ex_u_surf(i))*ex_del_m(i) +ex_ref_v(i)=ex_v_surf(i)+(ex_v_atm(i)-ex_v_surf(i))*ex_del_m(i) +ex_u10(i)=sqrt(ex_ref_u(i)**2+ex_ref_v(i)**2) +endif +enddo +don=1,ex_gas_fields_atm%num_bcs +if(atm%fields%bc(n)%use_10m_wind_speed)then +if(.not.ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override)then +doi=is,ie +ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)=ex_u10(i) +enddo +endif +endif +enddo +!}ENDCOMPUTEZONALANDMERIDIONALWINDS + +!{ +!f1p:calculateatmosphericconductancetosendtothelandmodel +doi=is,ie +ex_con_atm(i)=ex_wind(i)*ex_cd_q(i) +enddo +!} + +!{ +!F=C0*u*rho*delta_q,C0*u*rhoisthesameforalltracers,copyfromsphum +dotr=1,n_exch_tr +if(tr==isphum)cycle +doi=is,ie +!slm:ex_dfdtr_surf(:,isphum)ismanipulatedinsurface_flux:itissetto +!zeroovertheocean,soitisnotappropriatetouseforothertracers. +!However,sinceflux=rho*Cd*|v|*(q_surf-q_atm),wecansimplyusenegative +!dfdtr_atmforthedfdtr_surfderivative.Thiswillbreakifevertheflux +!formulationischangedtobenotsymmetricalw.r.t.q_surfandq_atm,but +!thenthiswholesectionwillhavetobechanged. +ex_dfdtr_atm(i,tr)=ex_dfdtr_atm(i,isphum) +ex_dfdtr_surf(i,tr)=-ex_dfdtr_atm(i,isphum) +ex_flux_tr(i,tr)=ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) +enddo +enddo +enddo +!} -!{ -callatmos_ocean_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater,ex_t_surf) - -don=1,ex_gas_fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then -m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch -if(id_tr_mol_flux0(m).gt.0)then -callfms_xgrid_get_from_xgrid(& -diag_atm,'ATM',ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:),xmap_sfc) -used=fms_diag_send_data(id_tr_mol_flux0(m),diag_atm,time) -endif -endif -enddo - - -!Thefollowingstatementisaconciseversionofwhat'sfollowingandworth -!lookingintointhefuture. -!ex_flux_tr(:,itracer)=ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) -!where(ex_seawater.gt.0)ex_flux_tr(:,itracer)=F_ocn -!$OMPparalleldodefault(shared)private(is,ie,m,tr_units,tr_name) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -don=1,ex_gas_fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then -m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch -callfms_tracer_manager_get_tracer_names(& -model_atmos,ex_gas_fluxes%bc(n)%atm_tr_index,tr_name,units=tr_units) -doi=is,ie -if(ex_land(i))cycle!overland,don'tdoanything -!onoceanoricecells,fluxisexplicitthereforewezeroderivatives. -ex_dfdtr_atm(i,m)=0.0 -ex_dfdtr_surf(i,m)=0.0 -if(ex_seawater(i)>0.0)then -if(fms_mpp_lowercase(trim(tr_units)).eq."vmr")then -!inmol/m2/sbutfromlandmodelitshouldbeinvmr*kg/m2/s -!Thiswasconvertingtodryvmr(asopposedtoambientvmr) -!ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& -!*WTMAIR*1.0e-3& -!/(1.-ex_tr_atm(i,isphum)) -! -!vmr*kg/m2/s=mol(X)/[m2s][1/mol(air)*mol(air)]*WTM(air) +!Combineexplicitoceanfluxandimplicitlandfluxofextrafluxfields. + +!{ +callatmos_ocean_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater,ex_t_surf) + +don=1,ex_gas_fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then +m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch +if(id_tr_mol_flux0(m).gt.0)then +callfms_xgrid_get_from_xgrid(& +diag_atm,'ATM',ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:),xmap_sfc) +used=fms_diag_send_data(id_tr_mol_flux0(m),diag_atm,time) +endif +endif +enddo + + +!Thefollowingstatementisaconciseversionofwhat'sfollowingandworth +!lookingintointhefuture. +!ex_flux_tr(:,itracer)=ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) +!where(ex_seawater.gt.0)ex_flux_tr(:,itracer)=F_ocn +!$OMPparalleldodefault(shared)private(is,ie,m,tr_units,tr_name) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +don=1,ex_gas_fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then +m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch +callfms_tracer_manager_get_tracer_names(& +model_atmos,ex_gas_fluxes%bc(n)%atm_tr_index,tr_name,units=tr_units) +doi=is,ie +if(ex_land(i))cycle!overland,don'tdoanything +!onoceanoricecells,fluxisexplicitthereforewezeroderivatives. +ex_dfdtr_atm(i,m)=0.0 +ex_dfdtr_surf(i,m)=0.0 +if(ex_seawater(i)>0.0)then +if(fms_mpp_lowercase(trim(tr_units)).eq."vmr")then +!inmol/m2/sbutfromlandmodelitshouldbeinvmr*kg/m2/s +!Thiswasconvertingtodryvmr(asopposedtoambientvmr) +!ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& +!*WTMAIR*1.0e-3& +!/(1.-ex_tr_atm(i,isphum)) ! -ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& -*1.0e-3*wtmair*wtmh2o/((1.-ex_tr_atm(i,isphum))*wtmh2o+ex_tr_atm(i,isphum)*wtmair) -!endif -else -!jgj:converttokgco2/m2/secforatm -ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)*& -ex_gas_fluxes%bc(n)%mol_wt*1.0e-03 -endif -else -ex_flux_tr(i,m)=0.0!pureiceexchangecell -endif -enddo -endif -enddo -enddo -!}ENDCOMPUTEEXPLICITOCEANFLUXES - -!{ -![5.2]overridetracerfluxesandderivatives -dotr=1,n_exch_tr -if(tr_table(tr)%atm==no_tracer)cycle!itshouldneverhappen,though - -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -![5.2.1]overridetracerflux.Notethat"sea"and"diag_land"arerepeatedlyused -!astemporarystorageforthevaluesweareoverridingfluxesandderivativewith, -!overoceanandlandrespectively -callfms_data_override_('LND','ex_flux_'//trim(tr_name),diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) -callfms_data_override('ICE','ex_flux_'//trim(tr_name),sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_tr(:,tr),xmap_sfc) -![5.2.2]overridederivativeoffluxwrtsurfaceconcentration -callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_surf',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_surf(:,tr),xmap_sfc) -callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_surf',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_surf(:,tr),xmap_sfc) -![5.2.3]overridederivativeoffluxwrtatmosphericconcentration -callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_atm',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_atm(:,tr),xmap_sfc) -callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_atm',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_atm(:,tr),xmap_sfc) -enddo - -![5.3]overridefluxandderivativesforsensibleheatflux -![5.3.1]overrideflux -callfms_data_override_('LND','ex_flux_t',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) -callfms_data_override('ICE','ex_flux_t',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_t,xmap_sfc) -![5.3.2]overridederivativeoffluxwrtnear-surfacetemperature -callfms_data_override_('LND','ex_dhdt_surf',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_surf,xmap_sfc) -callfms_data_override('ICE','ex_dhdt_surf',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_surf,xmap_sfc) -![5.3.3]overridederivativeoffluxwrtatmospherictemperature -callfms_data_override_('LND','ex_dhdt_atm',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_atm,xmap_sfc) -callfms_data_override('ICE','ex_dhdt_atm',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_atm,xmap_sfc) -!}ENDDATAOVERRIDE - -!NB:namesoftheoverridefieldsareconstructedusingtracernameandcertain -!prefixes/suffixes.Forexample,forthetracernamed"sphum"(specifichumidity)theywillbe: -!"ex_flux_sphum","ex_dfdsphum_surf",and"ex_dfdsphum_atm". -! -!Forsensibleheatfluxnamesare"ex_flux_t","ex_dhdt_surf",and"ex_dhdt_atm"; -!despitethenamethoseareactuallyinenergyunits,W/m2,W/(m2degK),and -!W/(m2degK)respectively - -!{ -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_avail,& -!$OMPex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -if(ex_avail(i))ex_drag_q(i)=ex_wind(i)*ex_cd_q(i) -![6]getmeanquantitiesonatmospheregrid -![6.1]computetsurfforradiation -ex_t_surf4(i)=ex_t_surf(i)**4 -enddo -enddo -!} - -![6.2]putrelevantquantitiesontoatmosphericboundary -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%t_ocean,'ATM',ex_t_surf,xmap_sfc,complete=.false.)!joseph -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t,'ATM',ex_t_surf4,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%frac_open_sea,'ATM',ex_frac_open_sea,xmap_sfc) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_vis_dir,'ATM',ex_albedo_vis_dir,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_nir_dir,'ATM',ex_albedo_nir_dir,xmap_sfc,complete=.false.) +!vmr*kg/m2/s=mol(X)/[m2s][1/mol(air)*mol(air)]*WTM(air) +! +ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& +*1.0e-3*wtmair*wtmh2o/((1.-ex_tr_atm(i,isphum))*wtmh2o+ex_tr_atm(i,isphum)*wtmair) +!endif +else +!jgj:converttokgco2/m2/secforatm +ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)*& +ex_gas_fluxes%bc(n)%mol_wt*1.0e-03 +endif +else +ex_flux_tr(i,m)=0.0!pureiceexchangecell +endif +enddo +endif +enddo +enddo +!}ENDCOMPUTEEXPLICITOCEANFLUXES + +!{ +![5.2]overridetracerfluxesandderivatives +dotr=1,n_exch_tr +if(tr_table(tr)%atm==no_tracer)cycle!itshouldneverhappen,though + +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +![5.2.1]overridetracerflux.Notethat"sea"and"diag_land"arerepeatedlyused +!astemporarystorageforthevaluesweareoverridingfluxesandderivativewith, +!overoceanandlandrespectively +callfms_data_override_('LND','ex_flux_'//trim(tr_name),diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) +callfms_data_override('ICE','ex_flux_'//trim(tr_name),sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_tr(:,tr),xmap_sfc) +![5.2.2]overridederivativeoffluxwrtsurfaceconcentration +callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_surf',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_surf(:,tr),xmap_sfc) +callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_surf',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_surf(:,tr),xmap_sfc) +![5.2.3]overridederivativeoffluxwrtatmosphericconcentration +callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_atm',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_atm(:,tr),xmap_sfc) +callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_atm',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_atm(:,tr),xmap_sfc) +enddo + +![5.3]overridefluxandderivativesforsensibleheatflux +![5.3.1]overrideflux +callfms_data_override_('LND','ex_flux_t',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) +callfms_data_override('ICE','ex_flux_t',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_t,xmap_sfc) +![5.3.2]overridederivativeoffluxwrtnear-surfacetemperature +callfms_data_override_('LND','ex_dhdt_surf',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_surf,xmap_sfc) +callfms_data_override('ICE','ex_dhdt_surf',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_surf,xmap_sfc) +![5.3.3]overridederivativeoffluxwrtatmospherictemperature +callfms_data_override_('LND','ex_dhdt_atm',diag_land,time,override=used) +if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_atm,xmap_sfc) +callfms_data_override('ICE','ex_dhdt_atm',sea,time,override=used) +if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_atm,xmap_sfc) +!}ENDDATAOVERRIDE + +!NB:namesoftheoverridefieldsareconstructedusingtracernameandcertain +!prefixes/suffixes.Forexample,forthetracernamed"sphum"(specifichumidity)theywillbe: +!"ex_flux_sphum","ex_dfdsphum_surf",and"ex_dfdsphum_atm". +! +!Forsensibleheatfluxnamesare"ex_flux_t","ex_dhdt_surf",and"ex_dhdt_atm"; +!despitethenamethoseareactuallyinenergyunits,W/m2,W/(m2degK),and +!W/(m2degK)respectively + +!{ +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_avail,& +!$OMPex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +if(ex_avail(i))ex_drag_q(i)=ex_wind(i)*ex_cd_q(i) +![6]getmeanquantitiesonatmospheregrid +![6.1]computetsurfforradiation +ex_t_surf4(i)=ex_t_surf(i)**4 +enddo +enddo +!} + +![6.2]putrelevantquantitiesontoatmosphericboundary +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%t_ocean,'ATM',ex_t_surf,xmap_sfc,complete=.false.)!joseph +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t,'ATM',ex_t_surf4,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%frac_open_sea,'ATM',ex_frac_open_sea,xmap_sfc) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%albedo_vis_dir,'ATM',ex_albedo_vis_dir,xmap_sfc,complete=.false.) callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_vis_dif,'ATM',ex_albedo_vis_dif,xmap_sfc,complete=.false.) +land_ice_atmos_boundary%albedo_nir_dir,'ATM',ex_albedo_nir_dir,xmap_sfc,complete=.false.) callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_nir_dif,'ATM',ex_albedo_nir_dif,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%rough_mom,'ATM',ex_rough_mom,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%rough_heat,'ATM',ex_rough_heat,xmap_sfc,complete=.false.)!kgao -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%land_frac,'ATM',ex_land_frac,xmap_sfc,complete=.false.) - -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_flux,'ATM',ex_flux_u,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_flux,'ATM',ex_flux_v,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudu,'ATM',ex_dtaudu_atm,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudv,'ATM',ex_dtaudv_atm,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_star,'ATM',ex_u_star,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%b_star,'ATM',ex_b_star,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_star,'ATM',ex_q_star,xmap_sfc,complete=.true.) - -don_gex=1,n_gex_lnd2atm -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%gex_lnd2atm(:,:,n_gex),'ATM',ex_gex_lnd2atm(:,n_gex),xmap_sfc,complete=.false.) -enddo - -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_ref,'ATM',ex_ref_u,xmap_sfc,complete=.false.)!bqx -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_ref,'ATM',ex_ref_v,xmap_sfc,complete=.true.)!bqx - -!kgao:forshield+mom6coupling;usedbyshieldpblschemes(am5withtke-edmfshoulddothesame) -#ifndefuse_AM3_physics -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc,complete=.true.) -#endif -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%wind,'ATM',ex_wind,xmap_sfc) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_atm,'ATM',ex_thv_atm,xmap_sfc) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_surf,'ATM',ex_thv_surf,xmap_sfc) - -#ifdefuse_AM3_physics -if(do_forecast)then -callfms_xgrid_get_from_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) -endif -#endif - -callfms_mpp_domains_get_compute_domain(atm%domain,isc,iec,jsc,jec) -!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary)private(is,ie) -doj=jsc,jec -doi=isc,iec -land_ice_atmos_boundary%t(i,j)=land_ice_atmos_boundary%t(i,j)**0.25 -enddo -enddo -!Balaji:fms_data_overridecallsmovedherefromcoupler_main -callfms_data_override('ATM','t',land_ice_atmos_boundary%t,time) -callfms_data_override('ATM','albedo',land_ice_atmos_boundary%albedo,time) - -callfms_data_override('ATM','albedo_vis_dir',land_ice_atmos_boundary%albedo_vis_dir,time) -callfms_data_override('ATM','albedo_nir_dir',land_ice_atmos_boundary%albedo_nir_dir,time) -callfms_data_override('ATM','albedo_vis_dif',land_ice_atmos_boundary%albedo_vis_dif,time) -callfms_data_override('ATM','albedo_nir_dif',land_ice_atmos_boundary%albedo_nir_dif,time) -callfms_data_override('ATM','land_frac',land_ice_atmos_boundary%land_frac,time) -callfms_data_override('ATM','dt_t',land_ice_atmos_boundary%dt_t,time) -dotr=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) -callfms_data_override('ATM','dt_'//trim(tr_name),land_ice_atmos_boundary%dt_tr(:,:,tr),time) -enddo -callfms_data_override('ATM','u_flux',land_ice_atmos_boundary%u_flux,time) -callfms_data_override('ATM','v_flux',land_ice_atmos_boundary%v_flux,time) -callfms_data_override('ATM','dtaudu',land_ice_atmos_boundary%dtaudu,time) -callfms_data_override('ATM','dtaudv',land_ice_atmos_boundary%dtaudv,time) -callfms_data_override('ATM','u_star',land_ice_atmos_boundary%u_star,time) -callfms_data_override('ATM','b_star',land_ice_atmos_boundary%b_star,time) -!callfms_data_override('ATM','q_star',Land_Ice_Atmos_Boundary%q_star,Time) -callfms_data_override('ATM','rough_mom',land_ice_atmos_boundary%rough_mom,time) - -![6.3]saveatmosalbedofixandoldalbedo(fordownwardSWfluxcalculations) -!onexchangegrid -!allocate(ex_old_albedo(n_xgrid_sfc)) -!ex_old_albedo=ex_albedo - -!!STILLNEEDED???? -!!ISTHISCORRECT?? -allocate(ex_albedo_fix(n_xgrid_sfc)) -allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) -allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) -allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc)) -allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc)) - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& -!$OMPex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix,& -!$OMPex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_albedo_fix(i)=0. -ex_albedo_vis_dir_fix(i)=0. -ex_albedo_nir_dir_fix(i)=0. -ex_albedo_vis_dif_fix(i)=0. -ex_albedo_nir_dif_fix(i)=0. -enddo -enddo - - -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dir,'ATM',& -ex_albedo_vis_dir_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dir,'ATM',& -ex_albedo_nir_dir_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dif,'ATM',& -ex_albedo_vis_dif_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dif,'ATM',& -ex_albedo_nir_dif_fix,xmap_sfc,complete=.true.) -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& -!$OMPex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir,& -!$OMPex_albedo_nir_dir,ex_albedo_nir_dir_fix,& -!$OMPex_albedo_vis_dif_fix,ex_albedo_vis_dif,& -!$OMPex_albedo_nir_dif_fix,ex_albedo_nir_dif)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_albedo_fix(i)=(1.0-ex_albedo(i))/(1.0-ex_albedo_fix(i)) -ex_albedo_vis_dir_fix(i)=(1.0-ex_albedo_vis_dir(i))/(1.0-ex_albedo_vis_dir_fix(i)) -ex_albedo_nir_dir_fix(i)=(1.0-ex_albedo_nir_dir(i))/(1.0-ex_albedo_nir_dir_fix(i)) -ex_albedo_vis_dif_fix(i)=(1.0-ex_albedo_vis_dif(i))/(1.0-ex_albedo_vis_dif_fix(i)) -ex_albedo_nir_dif_fix(i)=(1.0-ex_albedo_nir_dif(i))/(1.0-ex_albedo_nir_dif_fix(i)) -enddo -enddo - -#ifdefSCM -if(do_specified_albedo.and.do_specified_land)then -ex_albedo_fix=1. -ex_albedo_vis_dir_fix=1. -ex_albedo_vis_dif_fix=1. -ex_albedo_nir_dir_fix=1. -ex_albedo_nir_dif_fix=1. -endif -#endif - -!======================================================================= -![7]diagnosticssection - -!-------savestaticfieldsfirsttimeonly------ -if(first_static)then - -!-------landfraction------ -if(id_land_mask>0)then -used=fms_diag_send_data(id_land_mask,land_ice_atmos_boundary%land_frac,time) -endif -if(id_sftlf>0)then -used=fms_diag_send_data(id_sftlf,land_ice_atmos_boundary%land_frac,time) -endif -!near-surfaceheights -if(id_height2m>0)used=fms_diag_send_data(id_height2m,z_ref_heat,time) -if(id_height10m>0)used=fms_diag_send_data(id_height10m,z_ref_mom,time) - -first_static=.false. -endif - -!-------Atmfields----------- -don=1,atm%fields%num_bcs!{ -dom=1,atm%fields%bc(n)%num_fields!{ -if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ -if(atm%fields%bc(n)%use_10m_wind_speed.and.m.eq.fms_coupler_ind_u10.and.& -.not.atm%fields%bc(n)%field(m)%override)then!{ -callfms_xgrid_get_from_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& -ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc) -endif!} -if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ -used=fms_diag_send_data(atm%fields%bc(n)%field(m)%id_diag,atm%fields%bc(n)%field(m)%values,time) -endif!} -endif!} -enddo!}m -enddo!}n - -!-------dragcoeffmoisture----------- -if(id_wind>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_wind,xmap_sfc) -used=fms_diag_send_data(id_wind,diag_atm,time) -endif -!-------dragcoeffmoisture----------- -if(id_drag_moist>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_q,xmap_sfc) -used=fms_diag_send_data(id_drag_moist,diag_atm,time) -endif - -!-------dragcoeffheat----------- -if(id_drag_heat>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_t,xmap_sfc) -used=fms_diag_send_data(id_drag_heat,diag_atm,time) -endif - -!-------dragcoeffmomemtum----------- -if(id_drag_mom>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_m,xmap_sfc) -used=fms_diag_send_data(id_drag_mom,diag_atm,time) -endif - -!-------roughnessmoisture----------- -if(id_rough_moist>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_moist,xmap_sfc) -used=fms_diag_send_data(id_rough_moist,diag_atm,time) -endif - -!-------roughnessheat----------- -if(id_rough_heat>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_heat,xmap_sfc) -used=fms_diag_send_data(id_rough_heat,diag_atm,time) -endif - -!-------roughnessmomemtum----------- -used=fms_diag_send_data(id_rough_mom,land_ice_atmos_boundary%rough_mom,time) - -!-------frictionvelocity----------- -used=fms_diag_send_data(id_u_star,land_ice_atmos_boundary%u_star,time) - -!-------bouyancy----------- -used=fms_diag_send_data(id_b_star,land_ice_atmos_boundary%b_star,time) - -!-------moisturescale----------- -used=fms_diag_send_data(id_q_star,land_ice_atmos_boundary%q_star,time) - -!-------surfandatmvirtualpotentialtemperature----------- -used=fms_diag_send_data(id_thv_atm,land_ice_atmos_boundary%thv_atm,time) -used=fms_diag_send_data(id_thv_surf,land_ice_atmos_boundary%thv_surf,time) - -!----------------------------------------------------------------------- -!------diagnosticsforfieldsatbottomatmosphericlevel------ - -if(id_t_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_atm,xmap_sfc) -used=fms_diag_send_data(id_t_atm,diag_atm,time) -endif - -if(id_u_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_u_atm,xmap_sfc) -used=fms_diag_send_data(id_u_atm,diag_atm,time) -endif - -if(id_v_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_v_atm,xmap_sfc) -used=fms_diag_send_data(id_v_atm,diag_atm,time) -endif - -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -if(id_tr_atm(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_atm(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_atm(tr),diag_atm,time) -endif -!!jgj:adddryvmrco2_atm -!-slmMar252010:movedtoresolveinterdependenceofdiagnosticfields -if(id_co2_atm_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then -ex_co2_atm_dvmr=(ex_tr_atm(:,tr)/(1.0-ex_tr_atm(:,isphum)))*wtmair/wtmco2 -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_atm_dvmr,xmap_sfc) -used=fms_diag_send_data(id_co2_atm_dvmr,diag_atm,time) -endif -enddo - -!-slm,Mar25,2002 -if(id_p_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_p_atm,xmap_sfc) -used=fms_diag_send_data(id_p_atm,diag_atm,time) -endif -if(id_z_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_z_atm,xmap_sfc) -used=fms_diag_send_data(id_z_atm,diag_atm,time) -endif -if(id_gust>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_gust,xmap_sfc) -used=fms_diag_send_data(id_gust,diag_atm,time) -endif - -!-bw,Sep17,2007 -if(id_slp>0.or.id_psl>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_slp,xmap_sfc) -if(id_slp>0)used=fms_diag_send_data(id_slp,diag_atm,time) -if(id_psl>0)used=fms_diag_send_data(id_psl,diag_atm,time) -endif - -if(id_t_ocean>0)then -used=fms_diag_send_data(id_t_ocean,land_ice_atmos_boundary%t_ocean,time) -endif -!----------------------------------------------------------------------- -!---------diagnosticsforfieldsatreferencelevel--------- -!cjg -!if(id_t_ref>0.or.id_rh_ref>0.or.& -!id_u_ref>0.or.id_v_ref>0.or.id_wind_ref>0.or.& -!id_q_ref>0.or.id_q_ref_land>0.or.& -!id_t_ref_land>0.or.id_rh_ref_land>0.or.& -!id_rh_ref_cmip>0.or.& -!id_u_ref_land>0.or.id_v_ref_land>0)then - -zrefm=z_ref_mom -zrefh=z_ref_heat -!----optimizecalculation---- -!cjgif(id_t_ref<=0)zrefh=zrefm - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm,& -!$OMPex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star,& -!$OMPex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q,& -!$OMPex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land,& -!$OMPex_tr_con_ref,id_tr_con_ref,id_tr_con_ref_land,& -!$OMPex_tr_con_atm,id_tr_con_atm,id_tr_con_atm_land,& -!$OMPex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum,& -!$OMPex_flux_tr,ex_t_atm,ex_p_surf)& -!$OMPprivate(is,ie,rho) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& -ex_rough_heat(is:ie),ex_rough_moist(is:ie),& -ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& -ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) - -!-------referencerelativehumidity----------- -!cjgif(id_rh_ref>0.or.id_rh_ref_land>0.or.& -!cjgid_rh_ref_cmip>0.or.& -!cjgid_q_ref>0.or.id_q_ref_land>0)then -doi=is,ie -ex_ref(i)=1.0e-06 -ex_tr_ref(i,:)=1.e-20 -if(ex_avail(i).and.ex_rough_moist(i)>0.)then -ex_ref(i)=ex_tr_surf(i,isphum)+(ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum))*ex_del_q(i) -rho=ex_p_surf(i)/(rdgas*ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) -dotr=1,n_exch_tr -if(id_tr_ref(tr).gt.0& -.or.id_tr_ref_land(tr).gt.0& -.or.id_tr_con_ref(tr).gt.0& -.or.id_tr_con_ref_land(tr).gt.0)then -ex_tr_ref(i,tr)=ex_tr_surf(i,tr)+(ex_tr_atm(i,tr)-ex_tr_surf(i,tr))*ex_del_q(i) -ex_tr_con_ref(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_ref(i,tr)*rho,epsln) -endif -if(id_tr_con_atm(tr).gt.0.or.id_tr_con_atm_land(tr).gt.0)then -ex_tr_con_atm(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_atm(i,tr)*rho,epsln) -endif -enddo -endif -enddo -enddo -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_ref,'ATM',ex_ref,xmap_sfc)!cjg -if(id_q_ref>0)then -used=fms_diag_send_data(id_q_ref,land_ice_atmos_boundary%q_ref,time) -endif -if(id_huss>0)then -used=fms_diag_send_data(id_huss,land_ice_atmos_boundary%q_ref,time) -endif -if(id_q_ref_land>0.or.id_husslut_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -!duplicatesend_tile_data.Wemayremoveid_q_ref_landinthefuture. -callsend_tile_data(id_q_ref_land,diag_land) -callsend_tile_data(id_husslut_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_q_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif - -dotr=1,n_exch_tr -if(id_tr_ref(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_ref(:,tr),xmap_sfc)!cjg -if(id_tr_ref(tr)>0)then -used=fms_diag_send_data(id_tr_ref(tr),diag_atm,time) -endif -endif - -if(id_tr_ref_land(tr)>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_ref(:,tr),xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_tr_ref_land(tr),diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_tr_ref_land(tr),diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -enddo - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail,& -!$OMPex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h,& -!$OMPex_ref,ex_qs_ref_cmip,ex_ref2)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_t_ref(i)=200. -if(ex_avail(i).and.ex_rough_heat(i)>0.)& -ex_t_ref(i)=ex_t_ca(i)+(ex_t_atm(i)-ex_t_ca(i))*ex_del_h(i) -enddo -callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref(is:ie),q=ex_ref(is:ie)) -callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref_cmip(is:ie),& -q=ex_ref(is:ie),es_over_liq_and_ice=.true.) -doi=is,ie -if(ex_avail(i))then -!removecaponrelativehumidity--thismodrequestedbycjg,ljd -!RSHex_ref=MIN(100.,100.*ex_ref/ex_qs_ref) -ex_ref2(i)=100.*ex_ref(i)/ex_qs_ref_cmip(i) -ex_ref(i)=100.*ex_ref(i)/ex_qs_ref(i) -endif -enddo -enddo - -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t_ref,'ATM',ex_t_ref,xmap_sfc)!cjg +land_ice_atmos_boundary%albedo_vis_dif,'ATM',ex_albedo_vis_dif,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%albedo_nir_dif,'ATM',ex_albedo_nir_dif,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%rough_mom,'ATM',ex_rough_mom,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%rough_heat,'ATM',ex_rough_heat,xmap_sfc,complete=.false.)!kgao +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%land_frac,'ATM',ex_land_frac,xmap_sfc,complete=.false.) + +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_flux,'ATM',ex_flux_u,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_flux,'ATM',ex_flux_v,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudu,'ATM',ex_dtaudu_atm,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudv,'ATM',ex_dtaudv_atm,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_star,'ATM',ex_u_star,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%b_star,'ATM',ex_b_star,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_star,'ATM',ex_q_star,xmap_sfc,complete=.true.) + +don_gex=1,n_gex_lnd2atm +callfms_xgrid_get_from_xgrid(& +land_ice_atmos_boundary%gex_lnd2atm(:,:,n_gex),'ATM',ex_gex_lnd2atm(:,n_gex),xmap_sfc,complete=.false.) +enddo + +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_ref,'ATM',ex_ref_u,xmap_sfc,complete=.false.)!bqx +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_ref,'ATM',ex_ref_v,xmap_sfc,complete=.true.)!bqx + +!kgao:forshield+mom6coupling;usedbyshieldpblschemes(am5withtke-edmfshoulddothesame) +#ifndefuse_AM3_physics +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc,complete=.false.) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc,complete=.true.) +#endif +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%wind,'ATM',ex_wind,xmap_sfc) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_atm,'ATM',ex_thv_atm,xmap_sfc) +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_surf,'ATM',ex_thv_surf,xmap_sfc) + +#ifdefuse_AM3_physics +if(do_forecast)then +callfms_xgrid_get_from_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) +endif +#endif + +callfms_mpp_domains_get_compute_domain(atm%domain,isc,iec,jsc,jec) +!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary)private(is,ie) +doj=jsc,jec +doi=isc,iec +land_ice_atmos_boundary%t(i,j)=land_ice_atmos_boundary%t(i,j)**0.25 +enddo +enddo +!Balaji:fms_data_overridecallsmovedherefromcoupler_main +callfms_data_override('ATM','t',land_ice_atmos_boundary%t,time) +callfms_data_override('ATM','albedo',land_ice_atmos_boundary%albedo,time) + +callfms_data_override('ATM','albedo_vis_dir',land_ice_atmos_boundary%albedo_vis_dir,time) +callfms_data_override('ATM','albedo_nir_dir',land_ice_atmos_boundary%albedo_nir_dir,time) +callfms_data_override('ATM','albedo_vis_dif',land_ice_atmos_boundary%albedo_vis_dif,time) +callfms_data_override('ATM','albedo_nir_dif',land_ice_atmos_boundary%albedo_nir_dif,time) +callfms_data_override('ATM','land_frac',land_ice_atmos_boundary%land_frac,time) +callfms_data_override('ATM','dt_t',land_ice_atmos_boundary%dt_t,time) +dotr=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) +callfms_data_override('ATM','dt_'//trim(tr_name),land_ice_atmos_boundary%dt_tr(:,:,tr),time) +enddo +callfms_data_override('ATM','u_flux',land_ice_atmos_boundary%u_flux,time) +callfms_data_override('ATM','v_flux',land_ice_atmos_boundary%v_flux,time) +callfms_data_override('ATM','dtaudu',land_ice_atmos_boundary%dtaudu,time) +callfms_data_override('ATM','dtaudv',land_ice_atmos_boundary%dtaudv,time) +callfms_data_override('ATM','u_star',land_ice_atmos_boundary%u_star,time) +callfms_data_override('ATM','b_star',land_ice_atmos_boundary%b_star,time) +!callfms_data_override('ATM','q_star',Land_Ice_Atmos_Boundary%q_star,Time) +callfms_data_override('ATM','rough_mom',land_ice_atmos_boundary%rough_mom,time) + +![6.3]saveatmosalbedofixandoldalbedo(fordownwardSWfluxcalculations) +!onexchangegrid +!allocate(ex_old_albedo(n_xgrid_sfc)) +!ex_old_albedo=ex_albedo + +!!STILLNEEDED???? +!!ISTHISCORRECT?? +allocate(ex_albedo_fix(n_xgrid_sfc)) +allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) +allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) +allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc)) +allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc)) + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& +!$OMPex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix,& +!$OMPex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_albedo_fix(i)=0. +ex_albedo_vis_dir_fix(i)=0. +ex_albedo_nir_dir_fix(i)=0. +ex_albedo_vis_dif_fix(i)=0. +ex_albedo_nir_dif_fix(i)=0. +enddo +enddo + + +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dir,'ATM',& +ex_albedo_vis_dir_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dir,'ATM',& +ex_albedo_nir_dir_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dif,'ATM',& +ex_albedo_vis_dif_fix,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dif,'ATM',& +ex_albedo_nir_dif_fix,xmap_sfc,complete=.true.) +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& +!$OMPex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir,& +!$OMPex_albedo_nir_dir,ex_albedo_nir_dir_fix,& +!$OMPex_albedo_vis_dif_fix,ex_albedo_vis_dif,& +!$OMPex_albedo_nir_dif_fix,ex_albedo_nir_dif)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_albedo_fix(i)=(1.0-ex_albedo(i))/(1.0-ex_albedo_fix(i)) +ex_albedo_vis_dir_fix(i)=(1.0-ex_albedo_vis_dir(i))/(1.0-ex_albedo_vis_dir_fix(i)) +ex_albedo_nir_dir_fix(i)=(1.0-ex_albedo_nir_dir(i))/(1.0-ex_albedo_nir_dir_fix(i)) +ex_albedo_vis_dif_fix(i)=(1.0-ex_albedo_vis_dif(i))/(1.0-ex_albedo_vis_dif_fix(i)) +ex_albedo_nir_dif_fix(i)=(1.0-ex_albedo_nir_dif(i))/(1.0-ex_albedo_nir_dif_fix(i)) +enddo +enddo + +#ifdefSCM +if(do_specified_albedo.and.do_specified_land)then +ex_albedo_fix=1. +ex_albedo_vis_dir_fix=1. +ex_albedo_vis_dif_fix=1. +ex_albedo_nir_dir_fix=1. +ex_albedo_nir_dif_fix=1. +endif +#endif + +!======================================================================= +![7]diagnosticssection + +!-------savestaticfieldsfirsttimeonly------ +if(first_static)then + +!-------landfraction------ +if(id_land_mask>0)then +used=fms_diag_send_data(id_land_mask,land_ice_atmos_boundary%land_frac,time) +endif +if(id_sftlf>0)then +used=fms_diag_send_data(id_sftlf,land_ice_atmos_boundary%land_frac,time) +endif +!near-surfaceheights +if(id_height2m>0)used=fms_diag_send_data(id_height2m,z_ref_heat,time) +if(id_height10m>0)used=fms_diag_send_data(id_height10m,z_ref_mom,time) + +first_static=.false. +endif + +!-------Atmfields----------- +don=1,atm%fields%num_bcs!{ +dom=1,atm%fields%bc(n)%num_fields!{ +if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ +if(atm%fields%bc(n)%use_10m_wind_speed.and.m.eq.fms_coupler_ind_u10.and.& +.not.atm%fields%bc(n)%field(m)%override)then!{ +callfms_xgrid_get_from_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& +ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc) +endif!} +if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ +used=fms_diag_send_data(atm%fields%bc(n)%field(m)%id_diag,atm%fields%bc(n)%field(m)%values,time) +endif!} +endif!} +enddo!}m +enddo!}n + +!-------dragcoeffmoisture----------- +if(id_wind>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_wind,xmap_sfc) +used=fms_diag_send_data(id_wind,diag_atm,time) +endif +!-------dragcoeffmoisture----------- +if(id_drag_moist>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_q,xmap_sfc) +used=fms_diag_send_data(id_drag_moist,diag_atm,time) +endif + +!-------dragcoeffheat----------- +if(id_drag_heat>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_t,xmap_sfc) +used=fms_diag_send_data(id_drag_heat,diag_atm,time) +endif + +!-------dragcoeffmomemtum----------- +if(id_drag_mom>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_m,xmap_sfc) +used=fms_diag_send_data(id_drag_mom,diag_atm,time) +endif + +!-------roughnessmoisture----------- +if(id_rough_moist>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_moist,xmap_sfc) +used=fms_diag_send_data(id_rough_moist,diag_atm,time) +endif + +!-------roughnessheat----------- +if(id_rough_heat>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_heat,xmap_sfc) +used=fms_diag_send_data(id_rough_heat,diag_atm,time) +endif + +!-------roughnessmomemtum----------- +used=fms_diag_send_data(id_rough_mom,land_ice_atmos_boundary%rough_mom,time) + +!-------frictionvelocity----------- +used=fms_diag_send_data(id_u_star,land_ice_atmos_boundary%u_star,time) + +!-------bouyancy----------- +used=fms_diag_send_data(id_b_star,land_ice_atmos_boundary%b_star,time) + +!-------moisturescale----------- +used=fms_diag_send_data(id_q_star,land_ice_atmos_boundary%q_star,time) + +!-------surfandatmvirtualpotentialtemperature----------- +used=fms_diag_send_data(id_thv_atm,land_ice_atmos_boundary%thv_atm,time) +used=fms_diag_send_data(id_thv_surf,land_ice_atmos_boundary%thv_surf,time) + +!----------------------------------------------------------------------- +!------diagnosticsforfieldsatbottomatmosphericlevel------ + +if(id_t_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_atm,xmap_sfc) +used=fms_diag_send_data(id_t_atm,diag_atm,time) +endif + +if(id_u_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_u_atm,xmap_sfc) +used=fms_diag_send_data(id_u_atm,diag_atm,time) +endif + +if(id_v_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_v_atm,xmap_sfc) +used=fms_diag_send_data(id_v_atm,diag_atm,time) +endif + +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +if(id_tr_atm(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_atm(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_atm(tr),diag_atm,time) +endif +!!jgj:adddryvmrco2_atm +!-slmMar252010:movedtoresolveinterdependenceofdiagnosticfields +if(id_co2_atm_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then +ex_co2_atm_dvmr=(ex_tr_atm(:,tr)/(1.0-ex_tr_atm(:,isphum)))*wtmair/wtmco2 +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_atm_dvmr,xmap_sfc) +used=fms_diag_send_data(id_co2_atm_dvmr,diag_atm,time) +endif +enddo + +!-slm,Mar25,2002 +if(id_p_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_p_atm,xmap_sfc) +used=fms_diag_send_data(id_p_atm,diag_atm,time) +endif +if(id_z_atm>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_z_atm,xmap_sfc) +used=fms_diag_send_data(id_z_atm,diag_atm,time) +endif +if(id_gust>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_gust,xmap_sfc) +used=fms_diag_send_data(id_gust,diag_atm,time) +endif + +!-bw,Sep17,2007 +if(id_slp>0.or.id_psl>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_slp,xmap_sfc) +if(id_slp>0)used=fms_diag_send_data(id_slp,diag_atm,time) +if(id_psl>0)used=fms_diag_send_data(id_psl,diag_atm,time) +endif + +if(id_t_ocean>0)then +used=fms_diag_send_data(id_t_ocean,land_ice_atmos_boundary%t_ocean,time) +endif +!----------------------------------------------------------------------- +!---------diagnosticsforfieldsatreferencelevel--------- +!cjg +!if(id_t_ref>0.or.id_rh_ref>0.or.& +!id_u_ref>0.or.id_v_ref>0.or.id_wind_ref>0.or.& +!id_q_ref>0.or.id_q_ref_land>0.or.& +!id_t_ref_land>0.or.id_rh_ref_land>0.or.& +!id_rh_ref_cmip>0.or.& +!id_u_ref_land>0.or.id_v_ref_land>0)then + +zrefm=z_ref_mom +zrefh=z_ref_heat +!----optimizecalculation---- +!cjgif(id_t_ref<=0)zrefh=zrefm + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm,& +!$OMPex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star,& +!$OMPex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q,& +!$OMPex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land,& +!$OMPex_tr_con_ref,id_tr_con_ref,id_tr_con_ref_land,& +!$OMPex_tr_con_atm,id_tr_con_atm,id_tr_con_atm_land,& +!$OMPex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum,& +!$OMPex_flux_tr,ex_t_atm,ex_p_surf)& +!$OMPprivate(is,ie,rho) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& +ex_rough_heat(is:ie),ex_rough_moist(is:ie),& +ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& +ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) + +!-------referencerelativehumidity----------- +!cjgif(id_rh_ref>0.or.id_rh_ref_land>0.or.& +!cjgid_rh_ref_cmip>0.or.& +!cjgid_q_ref>0.or.id_q_ref_land>0)then +doi=is,ie +ex_ref(i)=1.0e-06 +ex_tr_ref(i,:)=1.e-20 +if(ex_avail(i).and.ex_rough_moist(i)>0.)then +ex_ref(i)=ex_tr_surf(i,isphum)+(ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum))*ex_del_q(i) +rho=ex_p_surf(i)/(rdgas*ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) +dotr=1,n_exch_tr +if(id_tr_ref(tr).gt.0& +.or.id_tr_ref_land(tr).gt.0& +.or.id_tr_con_ref(tr).gt.0& +.or.id_tr_con_ref_land(tr).gt.0)then +ex_tr_ref(i,tr)=ex_tr_surf(i,tr)+(ex_tr_atm(i,tr)-ex_tr_surf(i,tr))*ex_del_q(i) +ex_tr_con_ref(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_ref(i,tr)*rho,epsln) +endif +if(id_tr_con_atm(tr).gt.0.or.id_tr_con_atm_land(tr).gt.0)then +ex_tr_con_atm(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_atm(i,tr)*rho,epsln) +endif +enddo +endif +enddo +enddo +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_ref,'ATM',ex_ref,xmap_sfc)!cjg +if(id_q_ref>0)then +used=fms_diag_send_data(id_q_ref,land_ice_atmos_boundary%q_ref,time) +endif +if(id_huss>0)then +used=fms_diag_send_data(id_huss,land_ice_atmos_boundary%q_ref,time) +endif +if(id_q_ref_land>0.or.id_husslut_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +!duplicatesend_tile_data.Wemayremoveid_q_ref_landinthefuture. +callsend_tile_data(id_q_ref_land,diag_land) +callsend_tile_data(id_husslut_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_q_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif + +dotr=1,n_exch_tr +if(id_tr_ref(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_ref(:,tr),xmap_sfc)!cjg +if(id_tr_ref(tr)>0)then +used=fms_diag_send_data(id_tr_ref(tr),diag_atm,time) +endif +endif + +if(id_tr_ref_land(tr)>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_ref(:,tr),xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_tr_ref_land(tr),diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_tr_ref_land(tr),diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +enddo + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail,& +!$OMPex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h,& +!$OMPex_ref,ex_qs_ref_cmip,ex_ref2)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_t_ref(i)=200. +if(ex_avail(i).and.ex_rough_heat(i)>0.)& +ex_t_ref(i)=ex_t_ca(i)+(ex_t_atm(i)-ex_t_ca(i))*ex_del_h(i) +enddo +callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref(is:ie),q=ex_ref(is:ie)) +callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref_cmip(is:ie),& +q=ex_ref(is:ie),es_over_liq_and_ice=.true.) +doi=is,ie +if(ex_avail(i))then +!removecaponrelativehumidity--thismodrequestedbycjg,ljd +!RSHex_ref=MIN(100.,100.*ex_ref/ex_qs_ref) +ex_ref2(i)=100.*ex_ref(i)/ex_qs_ref_cmip(i) +ex_ref(i)=100.*ex_ref(i)/ex_qs_ref(i) +endif +enddo +enddo -if(id_rh_ref_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_rh_ref_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_rh_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif - -if(id_rh_ref>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -used=fms_diag_send_data(id_rh_ref,diag_atm,time) -endif - -if(id_rh_ref_cmip>0.or.id_hurs>0.or.id_rhs>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref2,xmap_sfc) -if(id_rh_ref_cmip>0)used=fms_diag_send_data(id_rh_ref_cmip,diag_atm,time) -if(id_hurs>0)used=fms_diag_send_data(id_hurs,diag_atm,time) -if(id_rhs>0)used=fms_diag_send_data(id_rhs,diag_atm,time) -endif -!cjgendif - -!-------referencetemp----------- -#ifdefuse_AM3_physics -if(id_t_ref>0.or.id_t_ref_land>0.or.id_taslut_land>0)then -where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h -if(id_t_ref_land>0.or.id_taslut_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) -if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) -#else -if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -if(id_t_ref>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -used=fms_diag_send_data(id_t_ref,diag_atm,time) -endif -endif -#else -if(id_t_ref_land>0.or.id_taslut_land>0.or.id_tasl_g>0)then -where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h -!t_refdiagnosticatlandpointsonly -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) -if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) -if(id_tasl_g>0)then -used=send_global_land_diag(get_global_diag_field_id(id_tasl_g),& -diag_land,time,land%tile_size,land%mask,land) -endif -#else -if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif - -!t_refdiagnosticatallatmospoints -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_t_ref>0)used=fms_diag_send_data(id_t_ref,diag_atm,time) -if(id_tas>0)used=fms_diag_send_data(id_tas,diag_atm,time) -callfms_sum_diag_integral_field('t_ref',diag_atm) -if(id_tas_g>0)used=send_global_diag(id_tas_g,diag_atm,time) -#endif - -!-------referenceucomp----------- -if(id_u_ref>0.or.id_u_ref_land>0.or.id_uas>0)then -where(ex_avail)& -ex_ref=ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m -if(id_u_ref_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_u_ref_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_u_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -if(id_u_ref>0.or.id_uas>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_u_ref>0)used=fms_diag_send_data(id_u_ref,diag_atm,time) -if(id_uas>0)used=fms_diag_send_data(id_uas,diag_atm,time) -endif -endif - -!-------referencevcomp----------- -if(id_v_ref>0.or.id_v_ref_land>0.or.id_vas>0)then -where(ex_avail)& -ex_ref=ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m -if(id_v_ref_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_v_ref_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_v_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -if(id_v_ref>0.or.id_vas>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_v_ref>0)used=fms_diag_send_data(id_v_ref,diag_atm,time) -if(id_vas>0)used=fms_diag_send_data(id_vas,diag_atm,time) -endif -endif - -!-------reference-levelabsolutewind----------- -if(id_wind_ref>0.or.id_sfcwind>0)then -where(ex_avail)& -ex_ref=sqrt((ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m)**2& -+(ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m)**2) -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_wind_ref>0)used=fms_diag_send_data(id_wind_ref,diag_atm,time) -if(id_sfcwind>0)used=fms_diag_send_data(id_sfcwind,diag_atm,time) -endif - -!-------interpfactorforheat------ -if(id_del_h>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_h,xmap_sfc) -used=fms_diag_send_data(id_del_h,diag_atm,time) -endif - -!-------interpfactorformomentum------ -if(id_del_m>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_m,xmap_sfc) -used=fms_diag_send_data(id_del_m,diag_atm,time) -endif - -!-------interpfactorformoisture------ -if(id_del_q>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_q,xmap_sfc) -used=fms_diag_send_data(id_del_q,diag_atm,time) -endif - -!cjgendif -!topographicroughnessscale -if(id_rough_scale>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& -(log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2,xmap_sfc) -used=fms_diag_send_data(id_rough_scale,diag_atm,time) -endif - -!Balaji -callfms_mpp_clock_end(sfcclock) -callfms_mpp_clock_end(cplclock) - -!======================================================================= +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t_ref,'ATM',ex_t_ref,xmap_sfc)!cjg + +if(id_rh_ref_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_rh_ref_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_rh_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif + +if(id_rh_ref>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +used=fms_diag_send_data(id_rh_ref,diag_atm,time) +endif + +if(id_rh_ref_cmip>0.or.id_hurs>0.or.id_rhs>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref2,xmap_sfc) +if(id_rh_ref_cmip>0)used=fms_diag_send_data(id_rh_ref_cmip,diag_atm,time) +if(id_hurs>0)used=fms_diag_send_data(id_hurs,diag_atm,time) +if(id_rhs>0)used=fms_diag_send_data(id_rhs,diag_atm,time) +endif +!cjgendif + +!-------referencetemp----------- +#ifdefuse_AM3_physics +if(id_t_ref>0.or.id_t_ref_land>0.or.id_taslut_land>0)then +where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h +if(id_t_ref_land>0.or.id_taslut_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) +if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) +#else +if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +if(id_t_ref>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +used=fms_diag_send_data(id_t_ref,diag_atm,time) +endif +endif +#else +if(id_t_ref_land>0.or.id_taslut_land>0.or.id_tasl_g>0)then +where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h +!t_refdiagnosticatlandpointsonly +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) +if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) +if(id_tasl_g>0)then +used=send_global_land_diag(get_global_diag_field_id(id_tasl_g),& +diag_land,time,land%tile_size,land%mask,land) +endif +#else +if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif + +!t_refdiagnosticatallatmospoints +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_t_ref>0)used=fms_diag_send_data(id_t_ref,diag_atm,time) +if(id_tas>0)used=fms_diag_send_data(id_tas,diag_atm,time) +callfms_sum_diag_integral_field('t_ref',diag_atm) +if(id_tas_g>0)used=send_global_diag(id_tas_g,diag_atm,time) +#endif + +!-------referenceucomp----------- +if(id_u_ref>0.or.id_u_ref_land>0.or.id_uas>0)then +where(ex_avail)& +ex_ref=ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m +if(id_u_ref_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_u_ref_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_u_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +if(id_u_ref>0.or.id_uas>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_u_ref>0)used=fms_diag_send_data(id_u_ref,diag_atm,time) +if(id_uas>0)used=fms_diag_send_data(id_uas,diag_atm,time) +endif +endif + +!-------referencevcomp----------- +if(id_v_ref>0.or.id_v_ref_land>0.or.id_vas>0)then +where(ex_avail)& +ex_ref=ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m +if(id_v_ref_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_v_ref_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_v_ref_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +if(id_v_ref>0.or.id_vas>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_v_ref>0)used=fms_diag_send_data(id_v_ref,diag_atm,time) +if(id_vas>0)used=fms_diag_send_data(id_vas,diag_atm,time) +endif +endif + +!-------reference-levelabsolutewind----------- +if(id_wind_ref>0.or.id_sfcwind>0)then +where(ex_avail)& +ex_ref=sqrt((ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m)**2& ++(ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m)**2) +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) +if(id_wind_ref>0)used=fms_diag_send_data(id_wind_ref,diag_atm,time) +if(id_sfcwind>0)used=fms_diag_send_data(id_sfcwind,diag_atm,time) +endif + +!-------interpfactorforheat------ +if(id_del_h>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_h,xmap_sfc) +used=fms_diag_send_data(id_del_h,diag_atm,time) +endif + +!-------interpfactorformomentum------ +if(id_del_m>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_m,xmap_sfc) +used=fms_diag_send_data(id_del_m,diag_atm,time) +endif + +!-------interpfactorformoisture------ +if(id_del_q>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_q,xmap_sfc) +used=fms_diag_send_data(id_del_q,diag_atm,time) +endif + +!cjgendif +!topographicroughnessscale +if(id_rough_scale>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& +(log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2,xmap_sfc) +used=fms_diag_send_data(id_rough_scale,diag_atm,time) +endif + +!Balaji +callfms_mpp_clock_end(sfcclock) +callfms_mpp_clock_end(cplclock) -endsubroutinesfc_boundary_layer +!======================================================================= -subroutineflux_down_from_atmos(Time,Atm,Atmos_boundary,Land_boundary,Ice_boundary) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(atmos_data_type),intent(inout)::Atm +endsubroutinesfc_boundary_layer + +subroutineflux_down_from_atmos(Time,Atm,Atmos_boundary,Land_boundary,Ice_boundary) + +implicitnone +type(FmsTime_type),intent(in)::Time -type(land_ice_atmos_boundary_type),intent(in)::Atmos_boundary +type(atmos_data_type),intent(inout)::Atm -type(atmos_land_boundary_type),intent(inout)::Land_boundary +type(land_ice_atmos_boundary_type),intent(in)::Atmos_boundary -type(atmos_ice_boundary_type),intent(inout)::Ice_boundary - - -!thefollowingvariablesareontheexchangegrid -real,dimension(n_xgrid_sfc)::& -ex_flux_sw,&!netsfcshortwaveradiationflux -ex_flux_lwd,&!longwaveradiationdownwardfluxatsurface -ex_flux_sw_dir,&!directshortwaveradiationflux -ex_flux_sw_dif,&!downwarddiffusevisibleshortwaveradiationfluxarthesurface -ex_flux_sw_down_vis_dir,&!downwarddirectvisibleshortwaveradiationfluxatthesurface -ex_flux_sw_down_total_dir,&!downwarddirecttotalshortwaveradiationfluxatthesurface -ex_flux_sw_down_vis_dif,&!downwarddiffusevisibleshortwaveradiationfluxatthesurface -ex_flux_sw_down_total_dif,&!downwarddiffusivetotalshortwaveradiationfluxatthesurface -ex_flux_sw_vis,&!netvisibleshortwaveradiationfluxatthesurface -ex_flux_sw_vis_dir,&!netdirectvisibleshortwaveradiationfluxatthesurface -ex_flux_sw_vis_dif,&!netdiffusevisibleshortwaveradiationfluxatthesurface -ex_lprec,&!liquidprecipitation -ex_fprec,&!frozenprecitipation -ex_tprec,&!temperatureofprecipitation,currentlyequaltoatmtemperature -ex_u_star_smooth,&!frictionvelocitycorrection -#ifdefuse_AM3_physics -ex_coszen!cosineofthezenithangle -#else -ex_coszen,&!cosineofthezenithangle -ex_setl_flux,&!tracersedimentationfluxfromthelowestatmopherelayer(positivedown) -ex_dsetl_dtr!derivativeofsetl_fluxw.r.t.tracerconcentration -#endif - -real::setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!tracerseditationfluxfromthelowestatmospeherelayerontheatmgrid -real::dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!derivativeofsetl_dtrfromthelowestatmospherelayerontheatmgrid - -!temporaryarrays -real,dimension(n_xgrid_sfc)::ex_gamma,ex_dtmass,ex_delta_t,ex_delta_u,ex_delta_v,ex_dflux_t - -real,dimension(n_xgrid_sfc,n_gex_atm2lnd)::ex_gex_atm2lnd!genericexchangefieldsbetweenatmandland +type(atmos_land_boundary_type),intent(inout)::Land_boundary + +type(atmos_ice_boundary_type),intent(inout)::Ice_boundary + + +!thefollowingvariablesareontheexchangegrid +real,dimension(n_xgrid_sfc)::& +ex_flux_sw,&!netsfcshortwaveradiationflux +ex_flux_lwd,&!longwaveradiationdownwardfluxatsurface +ex_flux_sw_dir,&!directshortwaveradiationflux +ex_flux_sw_dif,&!downwarddiffusevisibleshortwaveradiationfluxarthesurface +ex_flux_sw_down_vis_dir,&!downwarddirectvisibleshortwaveradiationfluxatthesurface +ex_flux_sw_down_total_dir,&!downwarddirecttotalshortwaveradiationfluxatthesurface +ex_flux_sw_down_vis_dif,&!downwarddiffusevisibleshortwaveradiationfluxatthesurface +ex_flux_sw_down_total_dif,&!downwarddiffusivetotalshortwaveradiationfluxatthesurface +ex_flux_sw_vis,&!netvisibleshortwaveradiationfluxatthesurface +ex_flux_sw_vis_dir,&!netdirectvisibleshortwaveradiationfluxatthesurface +ex_flux_sw_vis_dif,&!netdiffusevisibleshortwaveradiationfluxatthesurface +ex_lprec,&!liquidprecipitation +ex_fprec,&!frozenprecitipation +ex_tprec,&!temperatureofprecipitation,currentlyequaltoatmtemperature +ex_u_star_smooth,&!frictionvelocitycorrection +#ifdefuse_AM3_physics +ex_coszen!cosineofthezenithangle +#else +ex_coszen,&!cosineofthezenithangle +ex_setl_flux,&!tracersedimentationfluxfromthelowestatmopherelayer(positivedown) +ex_dsetl_dtr!derivativeofsetl_fluxw.r.t.tracerconcentration +#endif + +real::setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!tracerseditationfluxfromthelowestatmospeherelayerontheatmgrid +real::dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!derivativeofsetl_dtrfromthelowestatmospherelayerontheatmgrid + +!temporaryarrays +real,dimension(n_xgrid_sfc)::ex_gamma,ex_dtmass,ex_delta_t,ex_delta_u,ex_delta_v,ex_dflux_t -real,dimension(n_xgrid_sfc,n_exch_tr)::& -ex_delta_tr,&!tracertendencies -ex_dflux_tr!tracerfluxchange - -real::cp_inv!inverseheatcapacityatconstantpressure -logical::used,ov,ier!usedincallstofms -integer::is_atm,ie_atm,js_atm,je_atm,j!doloopindices - -character(32)::tr_name!nameofthetracer -integer::tr,n,m!tracerindices -integer::is,ie,l,i,n_gex!doloopindices - -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(fluxatmdnclock) -!} - -ov=.false. - -!Balaji:fms_data_overridecallsmovedherefromcoupler_main -callfms_data_override('ATM','flux_sw',atm%flux_sw,time) -callfms_data_override('ATM','flux_sw_dir',atm%flux_sw_dir,time) -callfms_data_override('ATM','flux_sw_dif',atm%flux_sw_dif,time) -callfms_data_override('ATM','flux_sw_down_vis_dir',atm%flux_sw_down_vis_dir,time) -callfms_data_override('ATM','flux_sw_down_vis_dif',atm%flux_sw_down_vis_dif,time) -callfms_data_override('ATM','flux_sw_down_total_dir',atm%flux_sw_down_total_dir,time) -callfms_data_override('ATM','flux_sw_down_total_dif',atm%flux_sw_down_total_dif,time) -callfms_data_override('ATM','flux_sw_vis',atm%flux_sw_vis,time) -callfms_data_override('ATM','flux_sw_vis_dir',atm%flux_sw_vis_dir,time) -callfms_data_override('ATM','flux_sw_vis_dif',atm%flux_sw_vis_dif,time) -callfms_data_override('ATM','flux_lw',atm%flux_lw,time) -callfms_data_override('ATM','lprec',atm%lprec,time) - -if(scale_precip_2d)then -callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) -callfms_data_override('ATM','precip_scale2d',frac_precip,time) -doj=js_atm,je_atm -doi=is_atm,ie_atm -atm%lprec(i,j)=atm%lprec(i,j)*frac_precip(i,j) -enddo -enddo -endif - -if(partition_fprec_from_lprec.and.atm%pe)then -callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) -doj=js_atm,je_atm -doi=is_atm,ie_atm -if(atm%t_bot(i,j)<tfreeze)then -atm%fprec(i,j)=atm%lprec(i,j) -atm%lprec(i,j)=0.0 -endif -enddo -enddo -endif - -!{ -callfms_data_override('ATM','fprec',atm%fprec,time) -callfms_data_override('ATM','coszen',atm%coszen,time) -callfms_data_override('ATM','dtmass',atm%Surf_Diff%dtmass,time) -callfms_data_override('ATM','delta_t',atm%Surf_Diff%delta_t,time) -callfms_data_override('ATM','dflux_t',atm%Surf_Diff%dflux_t,time) -dotr=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) -callfms_data_override('ATM','delta_'//trim(tr_name),atm%Surf_Diff%delta_tr(:,:,tr),time) -callfms_data_override('ATM','dflux_'//trim(tr_name),atm%Surf_Diff%dflux_tr(:,:,tr),time) -enddo -!} - -!{ - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& -!$OMPex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u,ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v,& -!$OMPex_gex_atm2lnd,n_gex_atm2lnd)private(is,ie,n_gex) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_flux_sw_dir(i)=0.0 -ex_flux_sw_vis_dir(i)=0.0 -ex_flux_sw_dif(i)=0.0 -ex_flux_sw_vis_dif(i)=0.0 -ex_flux_lwd(i)=0.0 -ex_delta_u(i)=0.0 -ex_delta_v(i)=0.0 -enddo -don_gex=1,n_gex_atm2lnd -doi=is,ie -ex_gex_atm2lnd(i,n_gex)=0.0 -enddo -enddo -enddo - -callfms_xgrid_put_to_xgrid(atm%flux_sw_dir,'ATM',ex_flux_sw_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dir,'ATM',ex_flux_sw_vis_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_dif,'ATM',ex_flux_sw_dif,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dif,'ATM',ex_flux_sw_vis_dif,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dir,'ATM',ex_flux_sw_down_vis_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dir,'ATM',ex_flux_sw_down_total_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dif,'ATM',ex_flux_sw_down_vis_dif,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dif,'ATM',ex_flux_sw_down_total_dif,xmap_sfc,complete=.false.) - -!ccc=conservation_check(Atm%lprec,'ATM',xmap_sfc) -!if(fms_mpp_pe()==fms_mpp_root_pe())print*,'LPREC',ccc - -!if(do_area_weighted_flux)then -!callput_to_xgrid(Atm%lprec*AREA_ATM_MODEL,'ATM',ex_lprec,xmap_sfc) -!callput_to_xgrid(Atm%fprec*AREA_ATM_MODEL,'ATM',ex_fprec,xmap_sfc) -!else -callfms_xgrid_put_to_xgrid(atm%lprec,'ATM',ex_lprec,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%fprec,'ATM',ex_fprec,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_tprec,xmap_sfc,complete=.false.) -!endif - -don_gex=1,n_gex_atm2lnd -callfms_xgrid_put_to_xgrid(atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) -enddo - -callfms_xgrid_put_to_xgrid(atm%coszen,'ATM',ex_coszen,xmap_sfc,complete=.true.) -callfms_xgrid_put_to_xgrid(atm%flux_lw,'ATM',ex_flux_lwd,xmap_sfc,remap_method=remap_method,complete=.false.) - -!MODchangedthefollowingtwolinestoputAtmos%surf_diff%delta_uandv -!onexchangegridinsteadofthestressesthemselvessothatonlythe -!implicitcorrectionsarefilteredthroughtheatmosphericgridnotthe -!stressesthemselves -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_u,'ATM',ex_delta_u,xmap_sfc,remap_method=remap_method,& -complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_v,'ATM',ex_delta_v,xmap_sfc,remap_method=remap_method,& -complete=.true.) - -!}endmapatmosphericquantitiesonexchangegrid +real,dimension(n_xgrid_sfc,n_gex_atm2lnd)::ex_gex_atm2lnd!genericexchangefieldsbetweenatmandland + +real,dimension(n_xgrid_sfc,n_exch_tr)::& +ex_delta_tr,&!tracertendencies +ex_dflux_tr!tracerfluxchange + +real::cp_inv!inverseheatcapacityatconstantpressure +logical::used,ov,ier!usedincallstofms +integer::is_atm,ie_atm,js_atm,je_atm,j!doloopindices + +character(32)::tr_name!nameofthetracer +integer::tr,n,m!tracerindices +integer::is,ie,l,i,n_gex!doloopindices + +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(fluxatmdnclock) +!} + +ov=.false. + +!Balaji:fms_data_overridecallsmovedherefromcoupler_main +callfms_data_override('ATM','flux_sw',atm%flux_sw,time) +callfms_data_override('ATM','flux_sw_dir',atm%flux_sw_dir,time) +callfms_data_override('ATM','flux_sw_dif',atm%flux_sw_dif,time) +callfms_data_override('ATM','flux_sw_down_vis_dir',atm%flux_sw_down_vis_dir,time) +callfms_data_override('ATM','flux_sw_down_vis_dif',atm%flux_sw_down_vis_dif,time) +callfms_data_override('ATM','flux_sw_down_total_dir',atm%flux_sw_down_total_dir,time) +callfms_data_override('ATM','flux_sw_down_total_dif',atm%flux_sw_down_total_dif,time) +callfms_data_override('ATM','flux_sw_vis',atm%flux_sw_vis,time) +callfms_data_override('ATM','flux_sw_vis_dir',atm%flux_sw_vis_dir,time) +callfms_data_override('ATM','flux_sw_vis_dif',atm%flux_sw_vis_dif,time) +callfms_data_override('ATM','flux_lw',atm%flux_lw,time) +callfms_data_override('ATM','lprec',atm%lprec,time) + +if(scale_precip_2d)then +callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) +callfms_data_override('ATM','precip_scale2d',frac_precip,time) +doj=js_atm,je_atm +doi=is_atm,ie_atm +atm%lprec(i,j)=atm%lprec(i,j)*frac_precip(i,j) +enddo +enddo +endif + +if(partition_fprec_from_lprec.and.atm%pe)then +callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) +doj=js_atm,je_atm +doi=is_atm,ie_atm +if(atm%t_bot(i,j)<tfreeze)then +atm%fprec(i,j)=atm%lprec(i,j) +atm%lprec(i,j)=0.0 +endif +enddo +enddo +endif + +!{ +callfms_data_override('ATM','fprec',atm%fprec,time) +callfms_data_override('ATM','coszen',atm%coszen,time) +callfms_data_override('ATM','dtmass',atm%Surf_Diff%dtmass,time) +callfms_data_override('ATM','delta_t',atm%Surf_Diff%delta_t,time) +callfms_data_override('ATM','dflux_t',atm%Surf_Diff%dflux_t,time) +dotr=1,n_atm_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) +callfms_data_override('ATM','delta_'//trim(tr_name),atm%Surf_Diff%delta_tr(:,:,tr),time) +callfms_data_override('ATM','dflux_'//trim(tr_name),atm%Surf_Diff%dflux_tr(:,:,tr),time) +enddo +!} + +!{ + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& +!$OMPex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u,ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v,& +!$OMPex_gex_atm2lnd,n_gex_atm2lnd)private(is,ie,n_gex) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_flux_sw_dir(i)=0.0 +ex_flux_sw_vis_dir(i)=0.0 +ex_flux_sw_dif(i)=0.0 +ex_flux_sw_vis_dif(i)=0.0 +ex_flux_lwd(i)=0.0 +ex_delta_u(i)=0.0 +ex_delta_v(i)=0.0 +enddo +don_gex=1,n_gex_atm2lnd +doi=is,ie +ex_gex_atm2lnd(i,n_gex)=0.0 +enddo +enddo +enddo + +callfms_xgrid_put_to_xgrid(atm%flux_sw_dir,'ATM',ex_flux_sw_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dir,'ATM',ex_flux_sw_vis_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_dif,'ATM',ex_flux_sw_dif,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dif,'ATM',ex_flux_sw_vis_dif,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dir,'ATM',ex_flux_sw_down_vis_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dir,'ATM',ex_flux_sw_down_total_dir,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dif,'ATM',ex_flux_sw_down_vis_dif,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dif,'ATM',ex_flux_sw_down_total_dif,xmap_sfc,complete=.false.) + +!ccc=conservation_check(Atm%lprec,'ATM',xmap_sfc) +!if(fms_mpp_pe()==fms_mpp_root_pe())print*,'LPREC',ccc + +!if(do_area_weighted_flux)then +!callput_to_xgrid(Atm%lprec*AREA_ATM_MODEL,'ATM',ex_lprec,xmap_sfc) +!callput_to_xgrid(Atm%fprec*AREA_ATM_MODEL,'ATM',ex_fprec,xmap_sfc) +!else +callfms_xgrid_put_to_xgrid(atm%lprec,'ATM',ex_lprec,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%fprec,'ATM',ex_fprec,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_tprec,xmap_sfc,complete=.false.) +!endif + +don_gex=1,n_gex_atm2lnd +callfms_xgrid_put_to_xgrid(atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) +enddo + +callfms_xgrid_put_to_xgrid(atm%coszen,'ATM',ex_coszen,xmap_sfc,complete=.true.) +callfms_xgrid_put_to_xgrid(atm%flux_lw,'ATM',ex_flux_lwd,xmap_sfc,remap_method=remap_method,complete=.false.) + +!MODchangedthefollowingtwolinestoputAtmos%surf_diff%delta_uandv +!onexchangegridinsteadofthestressesthemselvessothatonlythe +!implicitcorrectionsarefilteredthroughtheatmosphericgridnotthe +!stressesthemselves +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_u,'ATM',ex_delta_u,xmap_sfc,remap_method=remap_method,& +complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_v,'ATM',ex_delta_v,xmap_sfc,remap_method=remap_method,& +complete=.true.) -!{ -!MODupdatestressesusingatmosdelta'sbutderivativesonexchangegrid -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u,& -!$OMPex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_flux_u(i)=ex_flux_u(i)+ex_delta_u(i)*ex_dtaudu_atm(i) -ex_flux_v(i)=ex_flux_v(i)+ex_delta_v(i)*ex_dtaudv_atm(i) -enddo -enddo -!}endupdateuandvstressontheexchangegrid - -!{ -!----adjustswfluxforalbedovariationsonexchgrid---- -!----adjust4categories(vis/nirdir/dif)separately---- -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& -!$OMPex_flux_sw_vis_dir,ex_albedo_nir_dir_fix,ex_albedo_vis_dir_fix,ex_flux_sw_dif,& -!$OMPex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw,ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_flux_sw_dir(i)=ex_flux_sw_dir(i)-ex_flux_sw_vis_dir(i)!temporarilynir/dir -ex_flux_sw_dir(i)=ex_flux_sw_dir(i)*ex_albedo_nir_dir_fix(i)!fixnir/dir -ex_flux_sw_vis_dir(i)=ex_flux_sw_vis_dir(i)*ex_albedo_vis_dir_fix(i)!fixvis/dir -ex_flux_sw_dir(i)=ex_flux_sw_dir(i)+ex_flux_sw_vis_dir(i)!backtototaldir - -ex_flux_sw_dif(i)=ex_flux_sw_dif(i)-ex_flux_sw_vis_dif(i)!temporarilynir/dif -ex_flux_sw_dif(i)=ex_flux_sw_dif(i)*ex_albedo_nir_dif_fix(i)!fixnir/dif -ex_flux_sw_vis_dif(i)=ex_flux_sw_vis_dif(i)*ex_albedo_vis_dif_fix(i)!fixvis/dif -ex_flux_sw_dif(i)=ex_flux_sw_dif(i)+ex_flux_sw_vis_dif(i)!backtototaldif - -ex_flux_sw_vis(i)=ex_flux_sw_vis_dir(i)+ex_flux_sw_vis_dif(i)!legacy,removelater -ex_flux_sw(i)=ex_flux_sw_dir(i)+ex_flux_sw_dif(i)!legacy,removelater -enddo -enddo - -!ex_flux_sw_dir=ex_flux_sw_dir-ex_flux_sw_vis_dir!temporarilynir/dir -!ex_flux_sw_dir=ex_flux_sw_dir*ex_albedo_nir_dir_fix!fixnir/dir -!ex_flux_sw_vis_dir=ex_flux_sw_vis_dir*ex_albedo_vis_dir_fix!fixvis/dir -!ex_flux_sw_dir=ex_flux_sw_dir+ex_flux_sw_vis_dir!backtototaldir -! -!ex_flux_sw_dif=ex_flux_sw_dif-ex_flux_sw_vis_dif!temporarilynir/dif -!ex_flux_sw_dif=ex_flux_sw_dif*ex_albedo_nir_dif_fix!fixnir/dif -!ex_flux_sw_vis_dif=ex_flux_sw_vis_dif*ex_albedo_vis_dif_fix!fixvis/dif -!ex_flux_sw_dif=ex_flux_sw_dif+ex_flux_sw_vis_dif!backtototaldif -! -!ex_flux_sw_vis=ex_flux_sw_vis_dir+ex_flux_sw_vis_dif!legacy,removelater -!ex_flux_sw=ex_flux_sw_dir+ex_flux_sw_dif!legacy,removelater - -deallocate(ex_albedo_fix) -deallocate(ex_albedo_vis_dir_fix) -deallocate(ex_albedo_nir_dir_fix) -deallocate(ex_albedo_vis_dif_fix) -deallocate(ex_albedo_nir_dif_fix) - -!}endfixshortwavelengthradiationfluxontheexchangegrid +!}endmapatmosphericquantitiesonexchangegrid + +!{ +!MODupdatestressesusingatmosdelta'sbutderivativesonexchangegrid +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u,& +!$OMPex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_flux_u(i)=ex_flux_u(i)+ex_delta_u(i)*ex_dtaudu_atm(i) +ex_flux_v(i)=ex_flux_v(i)+ex_delta_v(i)*ex_dtaudv_atm(i) +enddo +enddo +!}endupdateuandvstressontheexchangegrid + +!{ +!----adjustswfluxforalbedovariationsonexchgrid---- +!----adjust4categories(vis/nirdir/dif)separately---- +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& +!$OMPex_flux_sw_vis_dir,ex_albedo_nir_dir_fix,ex_albedo_vis_dir_fix,ex_flux_sw_dif,& +!$OMPex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw,ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix)& +!$OMPprivate(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_flux_sw_dir(i)=ex_flux_sw_dir(i)-ex_flux_sw_vis_dir(i)!temporarilynir/dir +ex_flux_sw_dir(i)=ex_flux_sw_dir(i)*ex_albedo_nir_dir_fix(i)!fixnir/dir +ex_flux_sw_vis_dir(i)=ex_flux_sw_vis_dir(i)*ex_albedo_vis_dir_fix(i)!fixvis/dir +ex_flux_sw_dir(i)=ex_flux_sw_dir(i)+ex_flux_sw_vis_dir(i)!backtototaldir + +ex_flux_sw_dif(i)=ex_flux_sw_dif(i)-ex_flux_sw_vis_dif(i)!temporarilynir/dif +ex_flux_sw_dif(i)=ex_flux_sw_dif(i)*ex_albedo_nir_dif_fix(i)!fixnir/dif +ex_flux_sw_vis_dif(i)=ex_flux_sw_vis_dif(i)*ex_albedo_vis_dif_fix(i)!fixvis/dif +ex_flux_sw_dif(i)=ex_flux_sw_dif(i)+ex_flux_sw_vis_dif(i)!backtototaldif + +ex_flux_sw_vis(i)=ex_flux_sw_vis_dir(i)+ex_flux_sw_vis_dif(i)!legacy,removelater +ex_flux_sw(i)=ex_flux_sw_dir(i)+ex_flux_sw_dif(i)!legacy,removelater +enddo +enddo + +!ex_flux_sw_dir=ex_flux_sw_dir-ex_flux_sw_vis_dir!temporarilynir/dir +!ex_flux_sw_dir=ex_flux_sw_dir*ex_albedo_nir_dir_fix!fixnir/dir +!ex_flux_sw_vis_dir=ex_flux_sw_vis_dir*ex_albedo_vis_dir_fix!fixvis/dir +!ex_flux_sw_dir=ex_flux_sw_dir+ex_flux_sw_vis_dir!backtototaldir +! +!ex_flux_sw_dif=ex_flux_sw_dif-ex_flux_sw_vis_dif!temporarilynir/dif +!ex_flux_sw_dif=ex_flux_sw_dif*ex_albedo_nir_dif_fix!fixnir/dif +!ex_flux_sw_vis_dif=ex_flux_sw_vis_dif*ex_albedo_vis_dif_fix!fixvis/dif +!ex_flux_sw_dif=ex_flux_sw_dif+ex_flux_sw_vis_dif!backtototaldif +! +!ex_flux_sw_vis=ex_flux_sw_vis_dir+ex_flux_sw_vis_dif!legacy,removelater +!ex_flux_sw=ex_flux_sw_dir+ex_flux_sw_dif!legacy,removelater + +deallocate(ex_albedo_fix) +deallocate(ex_albedo_vis_dir_fix) +deallocate(ex_albedo_nir_dir_fix) +deallocate(ex_albedo_vis_dif_fix) +deallocate(ex_albedo_nir_dif_fix) - -!{ -dotr=1,n_exch_tr -n=tr_table(tr)%atm -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_tr(:,:,n),'ATM',ex_delta_tr(:,tr),xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_tr(:,:,n),'ATM',ex_dflux_tr(:,tr),xmap_sfc,complete=.false.) -enddo - -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dtmass,'ATM',ex_dtmass,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_t,'ATM',ex_delta_t,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_t,'ATM',ex_dflux_t,xmap_sfc,complete=.true.) - -#ifndefuse_AM3_physics -!Getsedimentationflux.Hastobehere(insteadofsfc_boundary_layersub) -!becauseoftimesteppingorder:sedimentationfluxesarecalculatedin -!update_atmos_model_down(inatmos_tracer_driver),butsfc_boundary_layer -!iscalledbeforethat. -dotr=1,n_exch_tr -if(atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm))then -callget_atmos_tracer_surf_setl_flux(tr_table(tr)%atm,setl_flux,dsetl_dtr) -callfms_xgrid_put_to_xgrid(setl_flux,'ATM',ex_setl_flux,xmap_sfc) -callfms_xgrid_put_to_xgrid(dsetl_dtr,'ATM',ex_dsetl_dtr,xmap_sfc) -where(ex_avail) -!minussignisbecausesedimentationispositivedown -ex_flux_tr(:,tr)=ex_flux_tr(:,tr)-ex_setl_flux(:) -ex_dfdtr_atm(:,tr)=ex_dfdtr_atm(:,tr)-ex_dsetl_dtr(:) -endwhere -endif -enddo -#endif - -cp_inv=1.0/cp_air - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd,& -!$OMPex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm,cp_inv,ex_e_t_n,& -!$OMPex_dhdt_surf,ex_f_t_delt_n,ex_delta_t,ex_flux_t,ex_dflux_tr,isphum,& -!$OMPex_dfdtr_atm,ex_e_q_n,ex_dedt_surf,n_exch_tr,ex_e_tr_n,ex_dfdtr_surf,& -!$OMPex_f_tr_delt_n,ex_delta_tr,ex_flux_tr)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -!-----computenetlongwaveflux(down-up)----- -!(note:lwupalreadyinex_flux_lw) -ex_flux_lw(i)=ex_flux_lwd(i)-ex_flux_lw(i) -if(ex_avail(i))then -!temperature -ex_gamma(i)=1./(1.0-ex_dtmass(i)*(ex_dflux_t(i)+ex_dhdt_atm(i)*cp_inv)) -ex_e_t_n(i)=ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) -ex_f_t_delt_n(i)=(ex_delta_t(i)+ex_dtmass(i)*ex_flux_t(i)*cp_inv)*ex_gamma(i) - -ex_flux_t(i)=ex_flux_t(i)+ex_dhdt_atm(i)*ex_f_t_delt_n(i) -ex_dhdt_surf(i)=ex_dhdt_surf(i)+ex_dhdt_atm(i)*ex_e_t_n(i) - -!moisture -!ex_gamma=1./(1.0-ex_dtmass*(ex_dflux_q+ex_dedq_atm)) -!hereitlooksliketwoderivativeswithdifferentunitsareaddedtogether, -!butinfacttheyarenot:ex_dedt_surfandex_dedq_surfdefinedincomplimentary -!regionsofexchangegrid,sothatifoneofthemisnotzerotheotheris,and -!viceversa. -!ex_e_q_n=ex_dtmass*(ex_dedt_surf+ex_dedq_surf)*ex_gamma -!ex_f_q_delt_n=(ex_delta_q+ex_dtmass*ex_flux_q)*ex_gamma -!ex_flux_q=ex_flux_q+ex_dedq_atm*ex_f_q_delt_n -!ex_dedt_surf=ex_dedt_surf+ex_dedq_atm*ex_e_q_n -!ex_dedq_surf=ex_dedq_surf+ex_dedq_atm*ex_e_q_n -!moisturevs.surfacetemperture,assumingsaturation -ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,isphum)+ex_dfdtr_atm(i,isphum))) -ex_e_q_n(i)=ex_dtmass(i)*ex_dedt_surf(i)*ex_gamma(i) -ex_dedt_surf(i)=ex_dedt_surf(i)+ex_dfdtr_atm(i,isphum)*ex_e_q_n(i) -dotr=1,n_exch_tr -ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,tr)+ex_dfdtr_atm(i,tr))) -ex_e_tr_n(i,tr)=ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) -ex_f_tr_delt_n(i,tr)=(ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) - -ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) -ex_dfdtr_surf(i,tr)=ex_dfdtr_surf(i,tr)+ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) -enddo -endif -enddo -enddo - -!}endadjustfluxesforimplicitdependence +!}endfixshortwavelengthradiationfluxontheexchangegrid + + +!{ +dotr=1,n_exch_tr +n=tr_table(tr)%atm +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_tr(:,:,n),'ATM',ex_delta_tr(:,tr),xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_tr(:,:,n),'ATM',ex_dflux_tr(:,tr),xmap_sfc,complete=.false.) +enddo + +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dtmass,'ATM',ex_dtmass,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_t,'ATM',ex_delta_t,xmap_sfc,complete=.false.) +callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_t,'ATM',ex_dflux_t,xmap_sfc,complete=.true.) + +#ifndefuse_AM3_physics +!Getsedimentationflux.Hastobehere(insteadofsfc_boundary_layersub) +!becauseoftimesteppingorder:sedimentationfluxesarecalculatedin +!update_atmos_model_down(inatmos_tracer_driver),butsfc_boundary_layer +!iscalledbeforethat. +dotr=1,n_exch_tr +if(atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm))then +callget_atmos_tracer_surf_setl_flux(tr_table(tr)%atm,setl_flux,dsetl_dtr) +callfms_xgrid_put_to_xgrid(setl_flux,'ATM',ex_setl_flux,xmap_sfc) +callfms_xgrid_put_to_xgrid(dsetl_dtr,'ATM',ex_dsetl_dtr,xmap_sfc) +where(ex_avail) +!minussignisbecausesedimentationispositivedown +ex_flux_tr(:,tr)=ex_flux_tr(:,tr)-ex_setl_flux(:) +ex_dfdtr_atm(:,tr)=ex_dfdtr_atm(:,tr)-ex_dsetl_dtr(:) +endwhere +endif +enddo +#endif + +cp_inv=1.0/cp_air + +!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd,& +!$OMPex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm,cp_inv,ex_e_t_n,& +!$OMPex_dhdt_surf,ex_f_t_delt_n,ex_delta_t,ex_flux_t,ex_dflux_tr,isphum,& +!$OMPex_dfdtr_atm,ex_e_q_n,ex_dedt_surf,n_exch_tr,ex_e_tr_n,ex_dfdtr_surf,& +!$OMPex_f_tr_delt_n,ex_delta_tr,ex_flux_tr)private(is,ie) +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +!-----computenetlongwaveflux(down-up)----- +!(note:lwupalreadyinex_flux_lw) +ex_flux_lw(i)=ex_flux_lwd(i)-ex_flux_lw(i) +if(ex_avail(i))then +!temperature +ex_gamma(i)=1./(1.0-ex_dtmass(i)*(ex_dflux_t(i)+ex_dhdt_atm(i)*cp_inv)) +ex_e_t_n(i)=ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) +ex_f_t_delt_n(i)=(ex_delta_t(i)+ex_dtmass(i)*ex_flux_t(i)*cp_inv)*ex_gamma(i) + +ex_flux_t(i)=ex_flux_t(i)+ex_dhdt_atm(i)*ex_f_t_delt_n(i) +ex_dhdt_surf(i)=ex_dhdt_surf(i)+ex_dhdt_atm(i)*ex_e_t_n(i) + +!moisture +!ex_gamma=1./(1.0-ex_dtmass*(ex_dflux_q+ex_dedq_atm)) +!hereitlooksliketwoderivativeswithdifferentunitsareaddedtogether, +!butinfacttheyarenot:ex_dedt_surfandex_dedq_surfdefinedincomplimentary +!regionsofexchangegrid,sothatifoneofthemisnotzerotheotheris,and +!viceversa. +!ex_e_q_n=ex_dtmass*(ex_dedt_surf+ex_dedq_surf)*ex_gamma +!ex_f_q_delt_n=(ex_delta_q+ex_dtmass*ex_flux_q)*ex_gamma +!ex_flux_q=ex_flux_q+ex_dedq_atm*ex_f_q_delt_n +!ex_dedt_surf=ex_dedt_surf+ex_dedq_atm*ex_e_q_n +!ex_dedq_surf=ex_dedq_surf+ex_dedq_atm*ex_e_q_n +!moisturevs.surfacetemperture,assumingsaturation +ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,isphum)+ex_dfdtr_atm(i,isphum))) +ex_e_q_n(i)=ex_dtmass(i)*ex_dedt_surf(i)*ex_gamma(i) +ex_dedt_surf(i)=ex_dedt_surf(i)+ex_dfdtr_atm(i,isphum)*ex_e_q_n(i) +dotr=1,n_exch_tr +ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,tr)+ex_dfdtr_atm(i,tr))) +ex_e_tr_n(i,tr)=ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) +ex_f_tr_delt_n(i,tr)=(ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) + +ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) +ex_dfdtr_surf(i,tr)=ex_dfdtr_surf(i,tr)+ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) +enddo +endif +enddo +enddo -callfms_xgrid_get_from_xgrid_(land_boundary%t_flux,'LND',ex_flux_t,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux,'LND',ex_flux_sw,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dir,'LND',ex_flux_sw_down_vis_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dir,'LND',ex_flux_sw_down_total_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dif,'LND',ex_flux_sw_down_vis_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dif,'LND',ex_flux_sw_down_total_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%lw_flux,'LND',ex_flux_lw,xmap_sfc) -#ifdefSCM -if(do_specified_land.and.do_specified_flux)then -callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf_forland,xmap_sfc) -else -callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) -endif -#else -callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) -#endif -callfms_xgrid_get_from_xgrid_(land_boundary%drdt,'LND',ex_drdt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%p_surf,'LND',ex_p_surf,xmap_sfc) - -callfms_xgrid_get_from_xgrid_(land_boundary%lprec,'LND',ex_lprec,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%fprec,'LND',ex_fprec,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%tprec,'LND',ex_tprec,xmap_sfc) -!if(do_area_weighted_flux)then -!!evapgoeshere??? -!dok=1,size(Land_boundary%lprec,dim=3) -!!Note:wedividebyAREA_ATM_MODEL,whichshouldbethesameas -!!AREA_LND_MODEL(butthelattermaynotbedefined) -!calldivide_by_area(data=Land_boundary%lprec(:,:,k),area=AREA_ATM_MODEL) -!calldivide_by_area(data=Land_boundary%fprec(:,:,k),area=AREA_ATM_MODEL) -!enddo -!endif - -if(associated(land_boundary%drag_q))then -callfms_xgrid_get_from_xgrid_(land_boundary%drag_q,'LND',ex_drag_q,xmap_sfc) -callfms_data_override_('LND','drag_q',land_boundary%drag_q,time) -endif -if(associated(land_boundary%lwdn_flux))then -callfms_xgrid_get_from_xgrid_(land_boundary%lwdn_flux,'LND',ex_flux_lwd,xmap_sfc) -callfms_data_override_('LND','lwdn_flux',land_boundary%lwdn_flux,time) -endif -if(associated(land_boundary%cd_m))then -callfms_xgrid_get_from_xgrid_(land_boundary%cd_m,'LND',ex_cd_m,xmap_sfc) -callfms_data_override_('LND','cd_m',land_boundary%cd_m,time) -endif -if(associated(land_boundary%cd_t))then -callfms_xgrid_get_from_xgrid_(land_boundary%cd_t,'LND',ex_cd_t,xmap_sfc) -callfms_data_override_('LND','cd_t',land_boundary%cd_t,time) -endif -if(associated(land_boundary%bstar))then -callfms_xgrid_get_from_xgrid_(land_boundary%bstar,'LND',ex_b_star,xmap_sfc) -callfms_data_override_('LND','bstar',land_boundary%bstar,time) -endif -if(associated(land_boundary%ustar))then -callfms_xgrid_get_from_xgrid_(land_boundary%ustar,'LND',ex_u_star,xmap_sfc) -callfms_data_override_('LND','ustar',land_boundary%ustar,time) -endif -if(associated(land_boundary%wind))then -callfms_xgrid_get_from_xgrid_(land_boundary%wind,'LND',ex_wind,xmap_sfc) -callfms_data_override_('LND','wind',land_boundary%wind,time) -endif -if(associated(land_boundary%z_bot))then -callfms_xgrid_get_from_xgrid_(land_boundary%z_bot,'LND',ex_z_atm,xmap_sfc) -callfms_data_override_('LND','z_bot',land_boundary%z_bot,time) -endif - -if(associated(land_boundary%gex_atm2lnd))then -don_gex=1,n_gex_atm2lnd -callfms_xgrid_get_from_xgrid_(land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) -!adddata_overridehere -enddo -endif - -#ifndef_USE_LEGACY_LAND_ -if(associated(land_boundary%con_atm))then -callfms_xgrid_get_from_xgrid_(land_boundary%con_atm,'LND',ex_con_atm,xmap_sfc) -endif -#endif - -land_boundary%tr_flux=0.0 -land_boundary%dfdtr=0.0 -dotr=1,n_exch_tr -n=tr_table(tr)%lnd -if(n/=no_tracer)then -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) -#else -callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) -#endif -#ifdefSCM -if(do_specified_land.and.do_specified_flux.and.tr.eq.isphum)then -callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dedq_surf_forland(:),xmap_sfc) -endif -#endif -endif -enddo - -!}mapfluxesfromtheexchangegridtothelandgrid - -!{ -!currenttimeisTime:isthatok?notavailableinland_data_type -!Balaji:data_overridecallsmovedherefromcoupler_main -callfms_data_override_('LND','t_flux',land_boundary%t_flux,time) -callfms_data_override_('LND','lw_flux',land_boundary%lw_flux,time) -callfms_data_override_('LND','sw_flux',land_boundary%sw_flux,time) -callfms_data_override_('LND','sw_flux_down_vis_dir',land_boundary%sw_flux_down_vis_dir,time) -callfms_data_override_('LND','sw_flux_down_total_dir',land_boundary%sw_flux_down_total_dir,time) -callfms_data_override_('LND','sw_flux_down_vis_dif',land_boundary%sw_flux_down_vis_dif,time) -callfms_data_override_('LND','sw_flux_down_total_dif',land_boundary%sw_flux_down_total_dif,time) -callfms_data_override_('LND','lprec',land_boundary%lprec,time) -callfms_data_override_('LND','fprec',land_boundary%fprec,time) -callfms_data_override_('LND','dhdt',land_boundary%dhdt,time) -callfms_data_override_('LND','drdt',land_boundary%drdt,time) -callfms_data_override_('LND','p_surf',land_boundary%p_surf,time) -dotr=1,n_lnd_tr -callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) -#ifndef_USE_LEGACY_LAND_ -callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,tr),time) -callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,tr),time) -#else -callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,:,tr),time) -callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,:,tr),time) -#endif -enddo -!}endoverridelandfluxes - -!{ -callfms_xgrid_get_from_xgrid(ice_boundary%t_flux,'OCN',ex_flux_t,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%q_flux,'OCN',ex_flux_tr(:,isphum),xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dir,'OCN',ex_flux_sw_vis_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dir,'OCN',ex_flux_sw_dir,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_flux_nir_dir=ice_boundary%sw_flux_nir_dir-ice_boundary%sw_flux_vis_dir -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dif,'OCN',ex_flux_sw_vis_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dif,'OCN',ex_flux_sw_dif,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_flux_nir_dif=ice_boundary%sw_flux_nir_dif-ice_boundary%sw_flux_vis_dif - -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dir,'OCN',ex_flux_sw_down_vis_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dir,'OCN',ex_flux_sw_down_total_dir,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_down_nir_dir=ice_boundary%sw_down_nir_dir-ice_boundary%sw_down_vis_dir - -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dif,'OCN',ex_flux_sw_down_vis_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dif,'OCN',ex_flux_sw_down_total_dif,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_down_nir_dif=ice_boundary%sw_down_nir_dif-ice_boundary%sw_down_vis_dif - -callfms_xgrid_get_from_xgrid(ice_boundary%lw_flux,'OCN',ex_flux_lw,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%dhdt,'OCN',ex_dhdt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%dedt,'OCN',ex_dedt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%drdt,'OCN',ex_drdt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%u_flux,'OCN',ex_flux_u,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%v_flux,'OCN',ex_flux_v,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%u_star,'OCN',ex_u_star,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%coszen,'OCN',ex_coszen,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%p,'OCN',ex_slp,xmap_sfc)!mwmod - -callfms_xgrid_get_from_xgrid(ice_boundary%lprec,'OCN',ex_lprec,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%fprec,'OCN',ex_fprec,xmap_sfc) -!if(do_area_weighted_flux)then -!where(AREA_ATM_SPHERE/=0) -!Ice_boundary%lprec=Ice_boundary%lprec*AREA_ATM_MODEL/AREA_ATM_SPHERE -!Ice_boundary%fprec=Ice_boundary%fprec*AREA_ATM_MODEL/AREA_ATM_SPHERE -!endwhere -!endif -!if(do_area_weighted_flux)then -!dok=1,size(Ice_boundary%lprec,dim=3) -!calldivide_by_area(data=Ice_boundary%lprec(:,:,k),area=AREA_ATM_SPHERE) -!calldivide_by_area(data=Ice_boundary%fprec(:,:,k),area=AREA_ATM_SPHERE) -!enddo -!endif - -!Extrafluxes -don=1,ice_boundary%fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%flux_type.ne.'air_sea_deposition')then -dom=1,ice_boundary%fluxes%bc(n)%num_fields -callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& -ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) -enddo -endif -enddo -!}endmapicefieldsfromtheexchangegridtotheicegrid - -!{ -!Balaji:data_overridecallsmovedherefromcoupler_main -callfms_data_override('ICE','u_flux',ice_boundary%u_flux,time) -callfms_data_override('ICE','v_flux',ice_boundary%v_flux,time) -callfms_data_override('ICE','t_flux',ice_boundary%t_flux,time) -callfms_data_override('ICE','q_flux',ice_boundary%q_flux,time) -callfms_data_override('ICE','lw_flux',ice_boundary%lw_flux,time) -callfms_data_override('ICE','lw_flux_dn',ice_boundary%lw_flux,time,override=ov) -if(ov)ice_boundary%lw_flux=ice_boundary%lw_flux-stefan*ice%t_surf**4 -callfms_data_override('ICE','sw_flux_nir_dir',ice_boundary%sw_flux_nir_dir,time) -callfms_data_override('ICE','sw_flux_vis_dir',ice_boundary%sw_flux_vis_dir,time) -callfms_data_override('ICE','sw_flux_nir_dif',ice_boundary%sw_flux_nir_dif,time,override=ov) -callfms_data_override('ICE','sw_flux_vis_dif',ice_boundary%sw_flux_vis_dif,time) -callfms_data_override('ICE','sw_flux_vis_dir_dn',ice_boundary%sw_down_vis_dir,time,override=ov) -if(ov)ice_boundary%sw_flux_vis_dir=ice_boundary%sw_down_vis_dir*(1.0-ice%albedo_vis_dir) -callfms_data_override('ICE','sw_flux_vis_dif_dn',ice_boundary%sw_down_vis_dif,time,override=ov) -if(ov)ice_boundary%sw_flux_vis_dif=ice_boundary%sw_down_vis_dif*(1.0-ice%albedo_vis_dif) -callfms_data_override('ICE','sw_flux_nir_dir_dn',ice_boundary%sw_down_nir_dir,time,override=ov) -if(ov)ice_boundary%sw_flux_nir_dir=ice_boundary%sw_down_nir_dir*(1.0-ice%albedo_nir_dir) -callfms_data_override('ICE','sw_flux_nir_dif_dn',ice_boundary%sw_down_nir_dif,time,override=ov) -if(ov)ice_boundary%sw_flux_nir_dif=ice_boundary%sw_down_nir_dif*(1.0-ice%albedo_nir_dif) -callfms_data_override('ICE','lprec',ice_boundary%lprec,time) -callfms_data_override('ICE','fprec',ice_boundary%fprec,time) -callfms_data_override('ICE','dhdt',ice_boundary%dhdt,time) -callfms_data_override('ICE','dedt',ice_boundary%dedt,time) -callfms_data_override('ICE','drdt',ice_boundary%drdt,time) -callfms_data_override('ICE','coszen',ice_boundary%coszen,time) -callfms_data_override('ICE','p',ice_boundary%p,time) -callfms_coupler_type_data_override('ICE',ice_boundary%fluxes,time) -callfms_coupler_type_send_data(ice_boundary%fluxes,time) -!}endoverrideIcefields - -!{ -!Atm->Lnd(precip) -callfms_xgrid_stock_move_(& -&from=fms_stock_constants_atm_stock(istock_water),& -&to=fms_stock_constants_lnd_stock(istock_water),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=(land_boundary%lprec+land_boundary%fprec),& -#else -&stock_data3d=(land_boundary%lprec+land_boundary%fprec),& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Lnd)') - -!Atm->Lnd(heat) -callfms_xgrid_stock_move_(& -&from=fms_stock_constants_atm_stock(istock_heat),& -&to=fms_stock_constants_lnd_stock(istock_heat),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=& -(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& -#else -&stock_data3d=& -(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Lnd)') - -!Atm->Ice(precip) -callfms_xgrid_stock_move(& -&from=fms_stock_constants_atm_stock(istock_water),& -&to=fms_stock_constants_ice_stock(istock_water),& -&stock_data3d=(ice_boundary%lprec+ice_boundary%fprec),& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Ice)') - -!Atm->Ice(heat) -callfms_xgrid_stock_move(& -&from=fms_stock_constants_atm_stock(istock_heat),& -&to=fms_stock_constants_ice_stock(istock_heat),& -&stock_data3d=& -(-ice_boundary%t_flux+ice_boundary%lw_flux-ice_boundary%fprec*hlf+ice_boundary%sw_flux_vis_dir+& -ice_boundary%sw_flux_vis_dif+ice_boundary%sw_flux_nir_dir+ice_boundary%sw_flux_nir_dif),& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Ice)') -!}endcoputestockexchangebetweencomponents - -deallocate(ex_flux_u,ex_flux_v,ex_dtaudu_atm,ex_dtaudv_atm) +!}endadjustfluxesforimplicitdependence + +callfms_xgrid_get_from_xgrid_(land_boundary%t_flux,'LND',ex_flux_t,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux,'LND',ex_flux_sw,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dir,'LND',ex_flux_sw_down_vis_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dir,'LND',ex_flux_sw_down_total_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dif,'LND',ex_flux_sw_down_vis_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dif,'LND',ex_flux_sw_down_total_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%lw_flux,'LND',ex_flux_lw,xmap_sfc) +#ifdefSCM +if(do_specified_land.and.do_specified_flux)then +callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf_forland,xmap_sfc) +else +callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) +endif +#else +callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) +#endif +callfms_xgrid_get_from_xgrid_(land_boundary%drdt,'LND',ex_drdt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%p_surf,'LND',ex_p_surf,xmap_sfc) + +callfms_xgrid_get_from_xgrid_(land_boundary%lprec,'LND',ex_lprec,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%fprec,'LND',ex_fprec,xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%tprec,'LND',ex_tprec,xmap_sfc) +!if(do_area_weighted_flux)then +!!evapgoeshere??? +!dok=1,size(Land_boundary%lprec,dim=3) +!!Note:wedividebyAREA_ATM_MODEL,whichshouldbethesameas +!!AREA_LND_MODEL(butthelattermaynotbedefined) +!calldivide_by_area(data=Land_boundary%lprec(:,:,k),area=AREA_ATM_MODEL) +!calldivide_by_area(data=Land_boundary%fprec(:,:,k),area=AREA_ATM_MODEL) +!enddo +!endif + +if(associated(land_boundary%drag_q))then +callfms_xgrid_get_from_xgrid_(land_boundary%drag_q,'LND',ex_drag_q,xmap_sfc) +callfms_data_override_('LND','drag_q',land_boundary%drag_q,time) +endif +if(associated(land_boundary%lwdn_flux))then +callfms_xgrid_get_from_xgrid_(land_boundary%lwdn_flux,'LND',ex_flux_lwd,xmap_sfc) +callfms_data_override_('LND','lwdn_flux',land_boundary%lwdn_flux,time) +endif +if(associated(land_boundary%cd_m))then +callfms_xgrid_get_from_xgrid_(land_boundary%cd_m,'LND',ex_cd_m,xmap_sfc) +callfms_data_override_('LND','cd_m',land_boundary%cd_m,time) +endif +if(associated(land_boundary%cd_t))then +callfms_xgrid_get_from_xgrid_(land_boundary%cd_t,'LND',ex_cd_t,xmap_sfc) +callfms_data_override_('LND','cd_t',land_boundary%cd_t,time) +endif +if(associated(land_boundary%bstar))then +callfms_xgrid_get_from_xgrid_(land_boundary%bstar,'LND',ex_b_star,xmap_sfc) +callfms_data_override_('LND','bstar',land_boundary%bstar,time) +endif +if(associated(land_boundary%ustar))then +callfms_xgrid_get_from_xgrid_(land_boundary%ustar,'LND',ex_u_star,xmap_sfc) +callfms_data_override_('LND','ustar',land_boundary%ustar,time) +endif +if(associated(land_boundary%wind))then +callfms_xgrid_get_from_xgrid_(land_boundary%wind,'LND',ex_wind,xmap_sfc) +callfms_data_override_('LND','wind',land_boundary%wind,time) +endif +if(associated(land_boundary%z_bot))then +callfms_xgrid_get_from_xgrid_(land_boundary%z_bot,'LND',ex_z_atm,xmap_sfc) +callfms_data_override_('LND','z_bot',land_boundary%z_bot,time) +endif + +if(associated(land_boundary%gex_atm2lnd))then +don_gex=1,n_gex_atm2lnd +callfms_xgrid_get_from_xgrid_(land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) +!adddata_overridehere +enddo +endif + +#ifndef_USE_LEGACY_LAND_ +if(associated(land_boundary%con_atm))then +callfms_xgrid_get_from_xgrid_(land_boundary%con_atm,'LND',ex_con_atm,xmap_sfc) +endif +#endif + +land_boundary%tr_flux=0.0 +land_boundary%dfdtr=0.0 +dotr=1,n_exch_tr +n=tr_table(tr)%lnd +if(n/=no_tracer)then +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) +#else +callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) +callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) +#endif +#ifdefSCM +if(do_specified_land.and.do_specified_flux.and.tr.eq.isphum)then +callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dedq_surf_forland(:),xmap_sfc) +endif +#endif +endif +enddo + +!}mapfluxesfromtheexchangegridtothelandgrid + +!{ +!currenttimeisTime:isthatok?notavailableinland_data_type +!Balaji:data_overridecallsmovedherefromcoupler_main +callfms_data_override_('LND','t_flux',land_boundary%t_flux,time) +callfms_data_override_('LND','lw_flux',land_boundary%lw_flux,time) +callfms_data_override_('LND','sw_flux',land_boundary%sw_flux,time) +callfms_data_override_('LND','sw_flux_down_vis_dir',land_boundary%sw_flux_down_vis_dir,time) +callfms_data_override_('LND','sw_flux_down_total_dir',land_boundary%sw_flux_down_total_dir,time) +callfms_data_override_('LND','sw_flux_down_vis_dif',land_boundary%sw_flux_down_vis_dif,time) +callfms_data_override_('LND','sw_flux_down_total_dif',land_boundary%sw_flux_down_total_dif,time) +callfms_data_override_('LND','lprec',land_boundary%lprec,time) +callfms_data_override_('LND','fprec',land_boundary%fprec,time) +callfms_data_override_('LND','dhdt',land_boundary%dhdt,time) +callfms_data_override_('LND','drdt',land_boundary%drdt,time) +callfms_data_override_('LND','p_surf',land_boundary%p_surf,time) +dotr=1,n_lnd_tr +callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) +#ifndef_USE_LEGACY_LAND_ +callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,tr),time) +callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,tr),time) +#else +callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,:,tr),time) +callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,:,tr),time) +#endif +enddo +!}endoverridelandfluxes + +!{ +callfms_xgrid_get_from_xgrid(ice_boundary%t_flux,'OCN',ex_flux_t,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%q_flux,'OCN',ex_flux_tr(:,isphum),xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dir,'OCN',ex_flux_sw_vis_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dir,'OCN',ex_flux_sw_dir,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_flux_nir_dir=ice_boundary%sw_flux_nir_dir-ice_boundary%sw_flux_vis_dir +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dif,'OCN',ex_flux_sw_vis_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dif,'OCN',ex_flux_sw_dif,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_flux_nir_dif=ice_boundary%sw_flux_nir_dif-ice_boundary%sw_flux_vis_dif + +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dir,'OCN',ex_flux_sw_down_vis_dir,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dir,'OCN',ex_flux_sw_down_total_dir,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_down_nir_dir=ice_boundary%sw_down_nir_dir-ice_boundary%sw_down_vis_dir + +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dif,'OCN',ex_flux_sw_down_vis_dif,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dif,'OCN',ex_flux_sw_down_total_dif,xmap_sfc) +!ice&oceanusethese4:dir/difnir/vis +ice_boundary%sw_down_nir_dif=ice_boundary%sw_down_nir_dif-ice_boundary%sw_down_vis_dif + +callfms_xgrid_get_from_xgrid(ice_boundary%lw_flux,'OCN',ex_flux_lw,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%dhdt,'OCN',ex_dhdt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%dedt,'OCN',ex_dedt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%drdt,'OCN',ex_drdt_surf,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%u_flux,'OCN',ex_flux_u,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%v_flux,'OCN',ex_flux_v,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%u_star,'OCN',ex_u_star,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%coszen,'OCN',ex_coszen,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%p,'OCN',ex_slp,xmap_sfc)!mwmod + +callfms_xgrid_get_from_xgrid(ice_boundary%lprec,'OCN',ex_lprec,xmap_sfc) +callfms_xgrid_get_from_xgrid(ice_boundary%fprec,'OCN',ex_fprec,xmap_sfc) +!if(do_area_weighted_flux)then +!where(AREA_ATM_SPHERE/=0) +!Ice_boundary%lprec=Ice_boundary%lprec*AREA_ATM_MODEL/AREA_ATM_SPHERE +!Ice_boundary%fprec=Ice_boundary%fprec*AREA_ATM_MODEL/AREA_ATM_SPHERE +!endwhere +!endif +!if(do_area_weighted_flux)then +!dok=1,size(Ice_boundary%lprec,dim=3) +!calldivide_by_area(data=Ice_boundary%lprec(:,:,k),area=AREA_ATM_SPHERE) +!calldivide_by_area(data=Ice_boundary%fprec(:,:,k),area=AREA_ATM_SPHERE) +!enddo +!endif + +!Extrafluxes +don=1,ice_boundary%fluxes%num_bcs +if(ex_gas_fluxes%bc(n)%flux_type.ne.'air_sea_deposition')then +dom=1,ice_boundary%fluxes%bc(n)%num_fields +callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& +ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) +enddo +endif +enddo +!}endmapicefieldsfromtheexchangegridtotheicegrid + +!{ +!Balaji:data_overridecallsmovedherefromcoupler_main +callfms_data_override('ICE','u_flux',ice_boundary%u_flux,time) +callfms_data_override('ICE','v_flux',ice_boundary%v_flux,time) +callfms_data_override('ICE','t_flux',ice_boundary%t_flux,time) +callfms_data_override('ICE','q_flux',ice_boundary%q_flux,time) +callfms_data_override('ICE','lw_flux',ice_boundary%lw_flux,time) +callfms_data_override('ICE','lw_flux_dn',ice_boundary%lw_flux,time,override=ov) +if(ov)ice_boundary%lw_flux=ice_boundary%lw_flux-stefan*ice%t_surf**4 +callfms_data_override('ICE','sw_flux_nir_dir',ice_boundary%sw_flux_nir_dir,time) +callfms_data_override('ICE','sw_flux_vis_dir',ice_boundary%sw_flux_vis_dir,time) +callfms_data_override('ICE','sw_flux_nir_dif',ice_boundary%sw_flux_nir_dif,time,override=ov) +callfms_data_override('ICE','sw_flux_vis_dif',ice_boundary%sw_flux_vis_dif,time) +callfms_data_override('ICE','sw_flux_vis_dir_dn',ice_boundary%sw_down_vis_dir,time,override=ov) +if(ov)ice_boundary%sw_flux_vis_dir=ice_boundary%sw_down_vis_dir*(1.0-ice%albedo_vis_dir) +callfms_data_override('ICE','sw_flux_vis_dif_dn',ice_boundary%sw_down_vis_dif,time,override=ov) +if(ov)ice_boundary%sw_flux_vis_dif=ice_boundary%sw_down_vis_dif*(1.0-ice%albedo_vis_dif) +callfms_data_override('ICE','sw_flux_nir_dir_dn',ice_boundary%sw_down_nir_dir,time,override=ov) +if(ov)ice_boundary%sw_flux_nir_dir=ice_boundary%sw_down_nir_dir*(1.0-ice%albedo_nir_dir) +callfms_data_override('ICE','sw_flux_nir_dif_dn',ice_boundary%sw_down_nir_dif,time,override=ov) +if(ov)ice_boundary%sw_flux_nir_dif=ice_boundary%sw_down_nir_dif*(1.0-ice%albedo_nir_dif) +callfms_data_override('ICE','lprec',ice_boundary%lprec,time) +callfms_data_override('ICE','fprec',ice_boundary%fprec,time) +callfms_data_override('ICE','dhdt',ice_boundary%dhdt,time) +callfms_data_override('ICE','dedt',ice_boundary%dedt,time) +callfms_data_override('ICE','drdt',ice_boundary%drdt,time) +callfms_data_override('ICE','coszen',ice_boundary%coszen,time) +callfms_data_override('ICE','p',ice_boundary%p,time) +callfms_coupler_type_data_override('ICE',ice_boundary%fluxes,time) +callfms_coupler_type_send_data(ice_boundary%fluxes,time) +!}endoverrideIcefields + +!{ +!Atm->Lnd(precip) +callfms_xgrid_stock_move_(& +&from=fms_stock_constants_atm_stock(istock_water),& +&to=fms_stock_constants_lnd_stock(istock_water),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=(land_boundary%lprec+land_boundary%fprec),& +#else +&stock_data3d=(land_boundary%lprec+land_boundary%fprec),& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Lnd)') + +!Atm->Lnd(heat) +callfms_xgrid_stock_move_(& +&from=fms_stock_constants_atm_stock(istock_heat),& +&to=fms_stock_constants_lnd_stock(istock_heat),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=& +(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& +#else +&stock_data3d=& +(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Lnd)') + +!Atm->Ice(precip) +callfms_xgrid_stock_move(& +&from=fms_stock_constants_atm_stock(istock_water),& +&to=fms_stock_constants_ice_stock(istock_water),& +&stock_data3d=(ice_boundary%lprec+ice_boundary%fprec),& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Ice)') + +!Atm->Ice(heat) +callfms_xgrid_stock_move(& +&from=fms_stock_constants_atm_stock(istock_heat),& +&to=fms_stock_constants_ice_stock(istock_heat),& +&stock_data3d=& +(-ice_boundary%t_flux+ice_boundary%lw_flux-ice_boundary%fprec*hlf+ice_boundary%sw_flux_vis_dir+& +ice_boundary%sw_flux_vis_dif+ice_boundary%sw_flux_nir_dir+ice_boundary%sw_flux_nir_dif),& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&from_side=istock_bottom,to_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Ice)') +!}endcoputestockexchangebetweencomponents - -!{ -!-------zonalwindstress----------- -used=fms_diag_send_data(id_u_flux,atmos_boundary%u_flux,time) -used=fms_diag_send_data(id_tauu,-atmos_boundary%u_flux,time) - -!-------meridionalwindstress----------- -used=fms_diag_send_data(id_v_flux,atmos_boundary%v_flux,time) -used=fms_diag_send_data(id_tauv,-atmos_boundary%v_flux,time) -!}endsenddatatodiag_manager - -!Balaji -callfms_mpp_clock_end(fluxatmdnclock) -callfms_mpp_clock_end(cplclock) - -endsubroutineflux_down_from_atmos +deallocate(ex_flux_u,ex_flux_v,ex_dtaudu_atm,ex_dtaudv_atm) + + +!{ +!-------zonalwindstress----------- +used=fms_diag_send_data(id_u_flux,atmos_boundary%u_flux,time) +used=fms_diag_send_data(id_tauu,-atmos_boundary%u_flux,time) + +!-------meridionalwindstress----------- +used=fms_diag_send_data(id_v_flux,atmos_boundary%v_flux,time) +used=fms_diag_send_data(id_tauv,-atmos_boundary%v_flux,time) +!}endsenddatatodiag_manager + +!Balaji +callfms_mpp_clock_end(fluxatmdnclock) +callfms_mpp_clock_end(cplclock) -subroutinegenerate_sfc_xgrid(Land,Ice) - -implicitnone -type(land_data_type),intent(in)::Land -Type(Ice_Data_Type),intent(in)::Ice - -integer::isc,iec,jsc,jec!computedomainindices - -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(regenclock) - -callfms_mpp_domains_get_compute_domain(ice%Domain,isc,iec,jsc,jec) +endsubroutineflux_down_from_atmos + +subroutinegenerate_sfc_xgrid(Land,Ice) + +implicitnone +type(land_data_type),intent(in)::Land +Type(Ice_Data_Type),intent(in)::Ice + +integer::isc,iec,jsc,jec!computedomainindices + +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(regenclock) -!{ -callfms_xgrid_set_frac_area(ice%part_size(isc:iec,jsc:jec,:),'OCN',xmap_sfc) -callfms_xgrid_set_frac_area_(land%tile_size,'LND',xmap_sfc) -!} - -!{ -n_xgrid_sfc=max(fms_xgrid_count(xmap_sfc),1) -if(n_xgrid_sfc.ge.nblocks)then -my_nblocks=nblocks -callfms_mpp_domains_compute_extent(1,n_xgrid_sfc,nblocks,block_start,block_end) -else -my_nblocks=1 -block_start(1)=1 -block_end(1)=n_xgrid_sfc -endif -!} - -!Balaji -callfms_mpp_clock_end(regenclock) -callfms_mpp_clock_end(cplclock) - -endsubroutinegenerate_sfc_xgrid +callfms_mpp_domains_get_compute_domain(ice%Domain,isc,iec,jsc,jec) + +!{ +callfms_xgrid_set_frac_area(ice%part_size(isc:iec,jsc:jec,:),'OCN',xmap_sfc) +callfms_xgrid_set_frac_area_(land%tile_size,'LND',xmap_sfc) +!} + +!{ +n_xgrid_sfc=max(fms_xgrid_count(xmap_sfc),1) +if(n_xgrid_sfc.ge.nblocks)then +my_nblocks=nblocks +callfms_mpp_domains_compute_extent(1,n_xgrid_sfc,nblocks,block_start,block_end) +else +my_nblocks=1 +block_start(1)=1 +block_end(1)=n_xgrid_sfc +endif +!} + +!Balaji +callfms_mpp_clock_end(regenclock) +callfms_mpp_clock_end(cplclock) -!####################################################################### -subroutineflux_up_to_atmos(Time,Land,Ice,Land_Ice_Atmos_Boundary,Land_boundary,Ice_boundary) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(land_data_type),intent(inout)::Land +endsubroutinegenerate_sfc_xgrid + +!####################################################################### +subroutineflux_up_to_atmos(Time,Land,Ice,Land_Ice_Atmos_Boundary,Land_boundary,Ice_boundary) + +implicitnone +type(FmsTime_type),intent(in)::Time -type(ice_data_type),intent(inout)::Ice +type(land_data_type),intent(inout)::Land -type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary +type(ice_data_type),intent(inout)::Ice -type(atmos_land_boundary_type),intent(inout)::Land_boundary +type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary -type(atmos_ice_boundary_type),intent(inout)::Ice_boundary +type(atmos_land_boundary_type),intent(inout)::Land_boundary - -real,dimension(n_xgrid_sfc)::& -ex_t_surf_new,&!newsurfacetemperatureontheexchangegrid -ex_dt_t_surf,&! -ex_delta_t_n,& -ex_t_ca_new,& -ex_dt_t_ca,& -ex_icetemp,& -ex_land_frac,& -ex_temp - -real,dimension(n_xgrid_sfc,n_exch_tr)::& -ex_tr_surf_new,&!updatedtracervaluesatthesurface -ex_dt_tr_surf,&!tendencyoftracersatthesurface -ex_delta_tr_n - -!jgj:addedforco2_surfdiagnostic,whereco2_surf_dvmristheupdatedCO2tracervaluesatthesurface(dryvmr) -real,dimension(n_xgrid_sfc)::ex_co2_surf_dvmr - -real,dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2))::& -diag_atm,& -evap_atm,& -frac_atm - -#ifndef_USE_LEGACY_LAND_ -real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2))::data_lnd,diag_land -#else -real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2),size(Land_boundary%lprec,3))::& -data_lnd,diag_land -#endif -real,dimension(size(Ice_boundary%lprec,1),size(Ice_boundary%lprec,2),size(Ice_boundary%lprec,3))::data_ice -real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::icegrid - -logical::used -integer::tr!tracerindex -character(32)::tr_name,tr_units!tracername -integer::n,i,m,ier -integer::is,ie,l - -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(fluxatmupclock) - -!{ -!Balaji:data_overridecallsmovedherefromcoupler_main -callfms_data_override('ICE','t_surf',ice%t_surf,time) -callfms_data_override_('LND','t_ca',land%t_ca,time) -callfms_data_override_('LND','t_surf',land%t_surf,time) -dotr=1,n_lnd_tr -callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) -#ifndef_USE_LEGACY_LAND_ -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) -#else -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) -#endif -enddo -!} - -!{ -ex_t_surf_new=200.0 - -callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf_new,xmap_sfc) -ex_t_ca_new=ex_t_surf_new!sinceitisthesamethingoveroceans - -callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca_new,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_new,xmap_sfc) - -!callescomp(ex_t_ca_new,ex_q_surf_new) -!ex_q_surf_new=d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) -!callput_to_xgrid(Land%q_ca,'LND',ex_q_surf_new,xmap_sfc) - -#ifdefSCM -if(do_specified_flux.and.do_specified_land)then -ex_t_surf_new=ex_t_surf -ex_t_ca_new=ex_t_ca -endif -#endif - -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -if(ex_avail(i))then -ex_dt_t_ca(i)=ex_t_ca_new(i)-ex_t_ca(i)!changesinnear-surfaceT -ex_dt_t_surf(i)=ex_t_surf_new(i)-ex_t_surf(i)!changesinradiativeT -endif -enddo - -if(do_forecast)then -doi=is,ie -if(ex_avail(i).and.(.not.ex_land(i)))then -ex_dt_t_ca(i)=0. -ex_dt_t_surf(i)=0. -endif -enddo -endif - -!}ENDCOMPUTECHANGEINSURFACETEMPERATURE +type(atmos_ice_boundary_type),intent(inout)::Ice_boundary + + +real,dimension(n_xgrid_sfc)::& +ex_t_surf_new,&!newsurfacetemperatureontheexchangegrid +ex_dt_t_surf,&! +ex_delta_t_n,& +ex_t_ca_new,& +ex_dt_t_ca,& +ex_icetemp,& +ex_land_frac,& +ex_temp + +real,dimension(n_xgrid_sfc,n_exch_tr)::& +ex_tr_surf_new,&!updatedtracervaluesatthesurface +ex_dt_tr_surf,&!tendencyoftracersatthesurface +ex_delta_tr_n + +!jgj:addedforco2_surfdiagnostic,whereco2_surf_dvmristheupdatedCO2tracervaluesatthesurface(dryvmr) +real,dimension(n_xgrid_sfc)::ex_co2_surf_dvmr + +real,dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2))::& +diag_atm,& +evap_atm,& +frac_atm + +#ifndef_USE_LEGACY_LAND_ +real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2))::data_lnd,diag_land +#else +real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2),size(Land_boundary%lprec,3))::& +data_lnd,diag_land +#endif +real,dimension(size(Ice_boundary%lprec,1),size(Ice_boundary%lprec,2),size(Ice_boundary%lprec,3))::data_ice +real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::icegrid + +logical::used +integer::tr!tracerindex +character(32)::tr_name,tr_units!tracername +integer::n,i,m,ier +integer::is,ie,l + +!Balaji +callfms_mpp_clock_begin(cplclock) +callfms_mpp_clock_begin(fluxatmupclock) + +!{ +!Balaji:data_overridecallsmovedherefromcoupler_main +callfms_data_override('ICE','t_surf',ice%t_surf,time) +callfms_data_override_('LND','t_ca',land%t_ca,time) +callfms_data_override_('LND','t_surf',land%t_surf,time) +dotr=1,n_lnd_tr +callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) +#ifndef_USE_LEGACY_LAND_ +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) +#else +callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) +#endif +enddo +!} + +!{ +ex_t_surf_new=200.0 + +callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf_new,xmap_sfc) +ex_t_ca_new=ex_t_surf_new!sinceitisthesamethingoveroceans + +callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca_new,xmap_sfc) +callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_new,xmap_sfc) + +!callescomp(ex_t_ca_new,ex_q_surf_new) +!ex_q_surf_new=d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) +!callput_to_xgrid(Land%q_ca,'LND',ex_q_surf_new,xmap_sfc) + +#ifdefSCM +if(do_specified_flux.and.do_specified_land)then +ex_t_surf_new=ex_t_surf +ex_t_ca_new=ex_t_ca +endif +#endif + +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +if(ex_avail(i))then +ex_dt_t_ca(i)=ex_t_ca_new(i)-ex_t_ca(i)!changesinnear-surfaceT +ex_dt_t_surf(i)=ex_t_surf_new(i)-ex_t_surf(i)!changesinradiativeT +endif +enddo + +if(do_forecast)then +doi=is,ie +if(ex_avail(i).and.(.not.ex_land(i)))then +ex_dt_t_ca(i)=0. +ex_dt_t_surf(i)=0. +endif +enddo +endif -!{ -dotr=1,n_exch_tr -!setupupdatedsurfacetracerfieldsothatfluxtoatmosforabsent -!tracersiszero -doi=is,ie -if(.not.ex_avail(i))cycle -if(ex_dfdtr_surf(i,tr)/=0.0)then -ex_dt_tr_surf(i,tr)=-ex_flux_tr(i,tr)/ex_dfdtr_surf(i,tr) -else -ex_dt_tr_surf(i,tr)=0.0 -endif -ex_tr_surf_new(i,tr)=ex_tr_surf(i,tr)+ex_dt_tr_surf(i,tr) -enddo -enddo -enddo -!getalltracersavailablefromland,andcalculatechangesinnear-tracerfield -dotr=1,n_exch_tr -n=tr_table(tr)%lnd -if(n/=no_tracer)then -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) -#else -callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) -#endif -endif -enddo -!}ENDUPDATEFLUXESANDATMOSPHERICINCREMENTSFORIMPLICITDEPENDENCEONSURFACETEMPERATURE - -!getalltracersavailablefromoceanhere +!}ENDCOMPUTECHANGEINSURFACETEMPERATURE + +!{ +dotr=1,n_exch_tr +!setupupdatedsurfacetracerfieldsothatfluxtoatmosforabsent +!tracersiszero +doi=is,ie +if(.not.ex_avail(i))cycle +if(ex_dfdtr_surf(i,tr)/=0.0)then +ex_dt_tr_surf(i,tr)=-ex_flux_tr(i,tr)/ex_dfdtr_surf(i,tr) +else +ex_dt_tr_surf(i,tr)=0.0 +endif +ex_tr_surf_new(i,tr)=ex_tr_surf(i,tr)+ex_dt_tr_surf(i,tr) +enddo +enddo +enddo +!getalltracersavailablefromland,andcalculatechangesinnear-tracerfield +dotr=1,n_exch_tr +n=tr_table(tr)%lnd +if(n/=no_tracer)then +#ifndef_USE_LEGACY_LAND_ +callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) +#else +callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) +#endif +endif +enddo +!}ENDUPDATEFLUXESANDATMOSPHERICINCREMENTSFORIMPLICITDEPENDENCEONSURFACETEMPERATURE -!{ -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -dotr=1,n_exch_tr -doi=is,ie -if(ex_avail(i))then -ex_dt_tr_surf(i,tr)=ex_tr_surf_new(i,tr)-ex_tr_surf(i,tr) -ex_delta_tr_n(i,tr)=ex_f_tr_delt_n(i,tr)+ex_dt_tr_surf(i,tr)*ex_e_tr_n(i,tr) -ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dt_tr_surf(i,tr)*ex_dfdtr_surf(i,tr) -endif -enddo -enddo - -!re-calculatefluxesofspecifichumidityoverocean -doi=is,ie -if(ex_avail(i).and.(.not.ex_land(i)))then -!notethatinthisregion(overocean)ex_dt_t_surf==ex_dt_t_ca -ex_delta_tr_n(i,isphum)=ex_f_tr_delt_n(i,isphum)+ex_dt_t_surf(i)*ex_e_q_n(i) -ex_flux_tr(i,isphum)=ex_flux_tr(i,isphum)+ex_dt_t_surf(i)*ex_dedt_surf(i) -endif -enddo -enddo - -dotr=1,n_exch_tr -!getupdatedtracertendencyontheatmospheicgrid -n=tr_table(tr)%atm -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_tr(:,:,n),'ATM',ex_delta_tr_n(:,tr),xmap_sfc) -enddo - -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_delta_t_n(i)=0.0 -if(ex_avail(i))then -ex_flux_t(i)=ex_flux_t(i)+ex_dt_t_ca(i)*ex_dhdt_surf(i) -ex_flux_lw(i)=ex_flux_lw(i)-ex_dt_t_surf(i)*ex_drdt_surf(i) -ex_delta_t_n(i)=ex_f_t_delt_n(i)+ex_dt_t_ca(i)*ex_e_t_n(i) -endif -enddo -enddo -!}ENDUPDATETRACERTENDENCIESINTHEATMOSPHERE - -!{ -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_t,'ATM',ex_delta_t_n,xmap_sfc) -#ifndefuse_AM3_physics -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc)!miz -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc)!miz -#endif -!}ENDMAPMEANQUANITTIESFROMTHEEXCHANGEGRIDTOTHEATMOSPHEREGRID - - -!{ -#ifdefuse_AM3_physics -if(id_t_surf>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) -used=fms_diag_send_data(id_t_surf,diag_atm,time) -endif -#else -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) -if(id_t_surf>0)used=fms_diag_send_data(id_t_surf,diag_atm,time) -if(id_ts>0)used=fms_diag_send_data(id_ts,diag_atm,time) -callfms_sum_diag_integral_field('t_surf',diag_atm) -if(id_ts_g>0)used=send_global_diag(id_ts_g,diag_atm,time) -!-------newsurfacetemperatureonlyoveropenocean----------- -if(id_tos>0)then -ex_icetemp=0.0 -icegrid=0.0;icegrid(:,:,1)=1.0 -callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) -ex_temp=ex_t_surf_new*ex_icetemp -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) -callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) -where(frac_atm>0.0) -diag_atm=(diag_atm/frac_atm)!-tfreezeCMIP6indegK -frac_atm=1.0 -elsewhere -diag_atm=0.0 -frac_atm=0.0 -endwhere -used=fms_diag_send_data(id_tos,diag_atm,time,rmask=frac_atm) -endif - -!-------newsurfacetemperatureonlyoverlandandsea-ice----------- -if(id_tslsi>0)then -ex_land_frac=0.0 -callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) -icegrid=1.0;icegrid(:,:,1)=0. -ex_icetemp=0. -callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) -ex_icetemp=ex_icetemp+ex_land_frac -ex_temp=ex_t_surf_new*ex_icetemp -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) -callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) -where(frac_atm>0.0) -diag_atm=diag_atm/frac_atm -frac_atm=1.0 -elsewhere -diag_atm=0.0 -frac_atm=0.0 -endwhere -used=fms_diag_send_data(id_tslsi,diag_atm,time,rmask=frac_atm) -endif -#endif - -!+slm,Mar272002 -!------newcanopytemperature-------- -!NOTE,thatintheparticularcaseofLM2t_caisidenticaltot_surf, -!butthiswillbechangedinfutureversionofthelandmadel -if(id_t_ca>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_ca_new,xmap_sfc) -used=fms_diag_send_data(id_t_ca,diag_atm,time) -endif - -!-------updatedsurfacetracerfields------ -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -if(id_tr_surf(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_surf_new(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_surf(tr),diag_atm,time) -endif -!!jgj:adddryvmrco2_surf -!-slmMar25,2010:movedtoresolveinterdependenceofdiagnosticfields -if(id_co2_surf_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then -ex_co2_surf_dvmr=(ex_tr_surf_new(:,tr)/(1.0-ex_tr_surf_new(:,isphum)))*wtmair/wtmco2 -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_surf_dvmr,xmap_sfc) -used=fms_diag_send_data(id_co2_surf_dvmr,diag_atm,time) -endif -enddo - -!-------sensibleheatflux----------- -if(id_t_flux>0.or.id_hfss>0.or.id_hfss_g>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_t,xmap_sfc) -if(id_t_flux>0)used=fms_diag_send_data(id_t_flux,diag_atm,time) -if(id_hfss>0)used=fms_diag_send_data(id_hfss,diag_atm,time) -#ifndefuse_AM3_physics -if(id_hfss_g>0)used=send_global_diag(id_hfss_g,diag_atm,time) -#endif -endif - -!-------netlongwaveflux----------- -if(id_r_flux>0.or.id_rls_g>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_lw,xmap_sfc) -if(id_r_flux>0)used=fms_diag_send_data(id_r_flux,diag_atm,time) -#ifndefuse_AM3_physics -if(id_rls_g>0)used=send_global_diag(id_rls_g,diag_atm,time) -#endif -endif - -!-------tracerfluxes------------ -!tr_mol_fluxdiagnosticwillbecorrectforco2traceronly. -!willneedupdatecodetousecorrectmolarmassfortracersotherthanco2 -dotr=1,n_exch_tr -if(id_tr_flux(tr)>0.or.id_tr_mol_flux(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_tr(:,tr),xmap_sfc) -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) -if(id_tr_flux(tr)>0)used=fms_diag_send_data(id_tr_flux(tr),diag_atm,time) -!if(id_tr_mol_flux(tr)>0)& -!used=fms_diag_end_data(id_tr_mol_flux(tr),diag_atm*1000./WTMCO2,Time) -!2017/08/08jgj-replaced2linesabovebythefollowing -if(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then -used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./wtmco2,time) -!sometimesin2018f1pforvmrtracers -elseif(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_units)).eq."vmr")then -!if(ocn_atm_flux_vmr_bug)then -!callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& -!ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)),xmap_sfc) -!used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./WTMAIR,Time) -!else -!fluxisinvmr*kg/m2/s.DividebyMW_air -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& -ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& -/(1e-3*wtmair*wtmh2o),& -xmap_sfc) -used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm,time) -endif -endif -if(id_tr_con_atm(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_atm(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_con_atm(tr),diag_atm,time) -endif -if(id_tr_con_ref(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_ref(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_con_ref(tr),diag_atm,time) -endif -enddo - -#ifndef_USE_LEGACY_LAND_ -if(id_t_flux_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) -callsend_tile_data(id_t_flux_land,diag_land) -endif -!-------tracerfluxesforland -dotr=1,n_exch_tr -if(id_tr_flux_land(tr)>0.or.id_tr_mol_flux_land(tr)>0)then -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) -if(id_tr_flux_land(tr)>0)callsend_tile_data(id_tr_flux_land(tr),diag_land) -if(id_tr_mol_flux_land(tr)>0)then -if(fms_mpp_lowercase(trim(tr_name))=='co2')then -callsend_tile_data(id_tr_mol_flux_land(tr),diag_land*1000./wtmco2) -elseif(fms_mpp_lowercase(trim(tr_units)).eq.'vmr')then -!fluxisinvmr*kg/m2/s.DividebyMW_air -callfms_xgrid_get_from_xgrid_(diag_land,'LND',& -ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& -/(1e-3*wtmair*wtmh2o),& -xmap_sfc) -callsend_tile_data(id_tr_mol_flux_land(tr),diag_land) -endif -endif -endif -enddo - -!--------tracerdepositionvelocity -dotr=1,n_exch_tr -if(id_tr_con_atm_land(tr)>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_atm(:,tr),xmap_sfc) -callsend_tile_data(id_tr_con_atm_land(tr),diag_land) -endif -if(id_tr_con_ref_land(tr)>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_ref(:,tr),xmap_sfc) -callsend_tile_data(id_tr_con_ref_land(tr),diag_land) -endif -enddo - -#endif - -!----------------------------------------------------------------------- -!----accumulateglobalintegralofevaporation(mm/day)----- -callfms_xgrid_get_from_xgrid(evap_atm,'ATM',ex_flux_tr(:,isphum),xmap_sfc) -if(id_q_flux>0)used=fms_diag_send_data(id_q_flux,evap_atm,time) -if(id_evspsbl>0)used=fms_diag_send_data(id_evspsbl,evap_atm,time) -if(id_hfls>0)used=fms_diag_send_data(id_hfls,hlv*evap_atm,time) -#ifndefuse_AM3_physics -if(id_hfls_g>0)used=send_global_diag(id_hfls_g,hlv*evap_atm,time) -#endif - -if(id_q_flux_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,isphum),xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_q_flux_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_q_flux_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -callfms_sum_diag_integral_field('evap',evap_atm*86400.) - -#ifndefuse_AM3_physics -if(id_evspsbl_g>0)used=send_global_diag(id_evspsbl_g,evap_atm,time) -#endif - -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_q_flux_land,diag_land) -!needthistoavoiddiagissueswithtilingchangesinupdate_land_slow -calldump_tile_diag_fields(time) -#endif -!}ENDSENDDATATODIAG_MANAGER_BUFFER - -!{ -callfms_xgrid_get_from_xgrid_(data_lnd,'LND',ex_flux_tr(:,isphum),xmap_sfc) - -!Lnd->Atm(evap) -callfms_xgrid_stock_move_(& -&to=fms_stock_constants_atm_stock(istock_water),& -&from=fms_stock_constants_lnd_stock(istock_water),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=data_lnd,& -#else -&stock_data3d=data_lnd,& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_side,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP(Lnd->ATm)') - -!Lnd->Atm(heatlostthroughevap) -callfms_xgrid_stock_move_(& -&to=fms_stock_constants_atm_stock(istock_heat),& -&from=fms_stock_constants_lnd_stock(istock_heat),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=data_lnd*hlv,& -#else -&stock_data3d=data_lnd*hlv,& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_side,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Lnd->ATm)') - -callfms_xgrid_get_from_xgrid(data_ice,'OCN',ex_flux_tr(:,isphum),xmap_sfc) +!getalltracersavailablefromoceanhere + +!{ +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +dotr=1,n_exch_tr +doi=is,ie +if(ex_avail(i))then +ex_dt_tr_surf(i,tr)=ex_tr_surf_new(i,tr)-ex_tr_surf(i,tr) +ex_delta_tr_n(i,tr)=ex_f_tr_delt_n(i,tr)+ex_dt_tr_surf(i,tr)*ex_e_tr_n(i,tr) +ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dt_tr_surf(i,tr)*ex_dfdtr_surf(i,tr) +endif +enddo +enddo + +!re-calculatefluxesofspecifichumidityoverocean +doi=is,ie +if(ex_avail(i).and.(.not.ex_land(i)))then +!notethatinthisregion(overocean)ex_dt_t_surf==ex_dt_t_ca +ex_delta_tr_n(i,isphum)=ex_f_tr_delt_n(i,isphum)+ex_dt_t_surf(i)*ex_e_q_n(i) +ex_flux_tr(i,isphum)=ex_flux_tr(i,isphum)+ex_dt_t_surf(i)*ex_dedt_surf(i) +endif +enddo +enddo + +dotr=1,n_exch_tr +!getupdatedtracertendencyontheatmospheicgrid +n=tr_table(tr)%atm +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_tr(:,:,n),'ATM',ex_delta_tr_n(:,tr),xmap_sfc) +enddo + +dol=1,my_nblocks +is=block_start(l) +ie=block_end(l) +doi=is,ie +ex_delta_t_n(i)=0.0 +if(ex_avail(i))then +ex_flux_t(i)=ex_flux_t(i)+ex_dt_t_ca(i)*ex_dhdt_surf(i) +ex_flux_lw(i)=ex_flux_lw(i)-ex_dt_t_surf(i)*ex_drdt_surf(i) +ex_delta_t_n(i)=ex_f_t_delt_n(i)+ex_dt_t_ca(i)*ex_e_t_n(i) +endif +enddo +enddo +!}ENDUPDATETRACERTENDENCIESINTHEATMOSPHERE + +!{ +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_t,'ATM',ex_delta_t_n,xmap_sfc) +#ifndefuse_AM3_physics +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc)!miz +callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc)!miz +#endif +!}ENDMAPMEANQUANITTIESFROMTHEEXCHANGEGRIDTOTHEATMOSPHEREGRID + + +!{ +#ifdefuse_AM3_physics +if(id_t_surf>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) +used=fms_diag_send_data(id_t_surf,diag_atm,time) +endif +#else +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) +if(id_t_surf>0)used=fms_diag_send_data(id_t_surf,diag_atm,time) +if(id_ts>0)used=fms_diag_send_data(id_ts,diag_atm,time) +callfms_sum_diag_integral_field('t_surf',diag_atm) +if(id_ts_g>0)used=send_global_diag(id_ts_g,diag_atm,time) +!-------newsurfacetemperatureonlyoveropenocean----------- +if(id_tos>0)then +ex_icetemp=0.0 +icegrid=0.0;icegrid(:,:,1)=1.0 +callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) +ex_temp=ex_t_surf_new*ex_icetemp +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) +callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) +where(frac_atm>0.0) +diag_atm=(diag_atm/frac_atm)!-tfreezeCMIP6indegK +frac_atm=1.0 +elsewhere +diag_atm=0.0 +frac_atm=0.0 +endwhere +used=fms_diag_send_data(id_tos,diag_atm,time,rmask=frac_atm) +endif + +!-------newsurfacetemperatureonlyoverlandandsea-ice----------- +if(id_tslsi>0)then +ex_land_frac=0.0 +callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) +icegrid=1.0;icegrid(:,:,1)=0. +ex_icetemp=0. +callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) +ex_icetemp=ex_icetemp+ex_land_frac +ex_temp=ex_t_surf_new*ex_icetemp +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) +callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) +where(frac_atm>0.0) +diag_atm=diag_atm/frac_atm +frac_atm=1.0 +elsewhere +diag_atm=0.0 +frac_atm=0.0 +endwhere +used=fms_diag_send_data(id_tslsi,diag_atm,time,rmask=frac_atm) +endif +#endif + +!+slm,Mar272002 +!------newcanopytemperature-------- +!NOTE,thatintheparticularcaseofLM2t_caisidenticaltot_surf, +!butthiswillbechangedinfutureversionofthelandmadel +if(id_t_ca>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_ca_new,xmap_sfc) +used=fms_diag_send_data(id_t_ca,diag_atm,time) +endif + +!-------updatedsurfacetracerfields------ +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) +if(id_tr_surf(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_surf_new(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_surf(tr),diag_atm,time) +endif +!!jgj:adddryvmrco2_surf +!-slmMar25,2010:movedtoresolveinterdependenceofdiagnosticfields +if(id_co2_surf_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then +ex_co2_surf_dvmr=(ex_tr_surf_new(:,tr)/(1.0-ex_tr_surf_new(:,isphum)))*wtmair/wtmco2 +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_surf_dvmr,xmap_sfc) +used=fms_diag_send_data(id_co2_surf_dvmr,diag_atm,time) +endif +enddo + +!-------sensibleheatflux----------- +if(id_t_flux>0.or.id_hfss>0.or.id_hfss_g>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_t,xmap_sfc) +if(id_t_flux>0)used=fms_diag_send_data(id_t_flux,diag_atm,time) +if(id_hfss>0)used=fms_diag_send_data(id_hfss,diag_atm,time) +#ifndefuse_AM3_physics +if(id_hfss_g>0)used=send_global_diag(id_hfss_g,diag_atm,time) +#endif +endif + +!-------netlongwaveflux----------- +if(id_r_flux>0.or.id_rls_g>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_lw,xmap_sfc) +if(id_r_flux>0)used=fms_diag_send_data(id_r_flux,diag_atm,time) +#ifndefuse_AM3_physics +if(id_rls_g>0)used=send_global_diag(id_rls_g,diag_atm,time) +#endif +endif + +!-------tracerfluxes------------ +!tr_mol_fluxdiagnosticwillbecorrectforco2traceronly. +!willneedupdatecodetousecorrectmolarmassfortracersotherthanco2 +dotr=1,n_exch_tr +if(id_tr_flux(tr)>0.or.id_tr_mol_flux(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_tr(:,tr),xmap_sfc) +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) +if(id_tr_flux(tr)>0)used=fms_diag_send_data(id_tr_flux(tr),diag_atm,time) +!if(id_tr_mol_flux(tr)>0)& +!used=fms_diag_end_data(id_tr_mol_flux(tr),diag_atm*1000./WTMCO2,Time) +!2017/08/08jgj-replaced2linesabovebythefollowing +if(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then +used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./wtmco2,time) +!sometimesin2018f1pforvmrtracers +elseif(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_units)).eq."vmr")then +!if(ocn_atm_flux_vmr_bug)then +!callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& +!ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)),xmap_sfc) +!used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./WTMAIR,Time) +!else +!fluxisinvmr*kg/m2/s.DividebyMW_air +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& +ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& +/(1e-3*wtmair*wtmh2o),& +xmap_sfc) +used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm,time) +endif +endif +if(id_tr_con_atm(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_atm(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_con_atm(tr),diag_atm,time) +endif +if(id_tr_con_ref(tr)>0)then +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_ref(:,tr),xmap_sfc) +used=fms_diag_send_data(id_tr_con_ref(tr),diag_atm,time) +endif +enddo + +#ifndef_USE_LEGACY_LAND_ +if(id_t_flux_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) +callsend_tile_data(id_t_flux_land,diag_land) +endif +!-------tracerfluxesforland +dotr=1,n_exch_tr +if(id_tr_flux_land(tr)>0.or.id_tr_mol_flux_land(tr)>0)then +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) +if(id_tr_flux_land(tr)>0)callsend_tile_data(id_tr_flux_land(tr),diag_land) +if(id_tr_mol_flux_land(tr)>0)then +if(fms_mpp_lowercase(trim(tr_name))=='co2')then +callsend_tile_data(id_tr_mol_flux_land(tr),diag_land*1000./wtmco2) +elseif(fms_mpp_lowercase(trim(tr_units)).eq.'vmr')then +!fluxisinvmr*kg/m2/s.DividebyMW_air +callfms_xgrid_get_from_xgrid_(diag_land,'LND',& +ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& +/(1e-3*wtmair*wtmh2o),& +xmap_sfc) +callsend_tile_data(id_tr_mol_flux_land(tr),diag_land) +endif +endif +endif +enddo + +!--------tracerdepositionvelocity +dotr=1,n_exch_tr +if(id_tr_con_atm_land(tr)>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_atm(:,tr),xmap_sfc) +callsend_tile_data(id_tr_con_atm_land(tr),diag_land) +endif +if(id_tr_con_ref_land(tr)>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_ref(:,tr),xmap_sfc) +callsend_tile_data(id_tr_con_ref_land(tr),diag_land) +endif +enddo + +#endif + +!----------------------------------------------------------------------- +!----accumulateglobalintegralofevaporation(mm/day)----- +callfms_xgrid_get_from_xgrid(evap_atm,'ATM',ex_flux_tr(:,isphum),xmap_sfc) +if(id_q_flux>0)used=fms_diag_send_data(id_q_flux,evap_atm,time) +if(id_evspsbl>0)used=fms_diag_send_data(id_evspsbl,evap_atm,time) +if(id_hfls>0)used=fms_diag_send_data(id_hfls,hlv*evap_atm,time) +#ifndefuse_AM3_physics +if(id_hfls_g>0)used=send_global_diag(id_hfls_g,hlv*evap_atm,time) +#endif + +if(id_q_flux_land>0)then +callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,isphum),xmap_sfc) +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_q_flux_land,diag_land) +#else +used=fms_diag_send_tile_averaged_data(id_q_flux_land,diag_land,& +land%tile_size,time,mask=land%mask) +#endif +endif +callfms_sum_diag_integral_field('evap',evap_atm*86400.) + +#ifndefuse_AM3_physics +if(id_evspsbl_g>0)used=send_global_diag(id_evspsbl_g,evap_atm,time) +#endif + +#ifndef_USE_LEGACY_LAND_ +callsend_tile_data(id_q_flux_land,diag_land) +!needthistoavoiddiagissueswithtilingchangesinupdate_land_slow +calldump_tile_diag_fields(time) +#endif +!}ENDSENDDATATODIAG_MANAGER_BUFFER + +!{ +callfms_xgrid_get_from_xgrid_(data_lnd,'LND',ex_flux_tr(:,isphum),xmap_sfc) + +!Lnd->Atm(evap) +callfms_xgrid_stock_move_(& +&to=fms_stock_constants_atm_stock(istock_water),& +&from=fms_stock_constants_lnd_stock(istock_water),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=data_lnd,& +#else +&stock_data3d=data_lnd,& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_side,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP(Lnd->ATm)') + +!Lnd->Atm(heatlostthroughevap) +callfms_xgrid_stock_move_(& +&to=fms_stock_constants_atm_stock(istock_heat),& +&from=fms_stock_constants_lnd_stock(istock_heat),& +#ifndef_USE_LEGACY_LAND_ +&stock_ug_data3d=data_lnd*hlv,& +#else +&stock_data3d=data_lnd*hlv,& +#endif +&grid_index=x1_grid_lnd,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_side,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Lnd->ATm)') -!Ice->Atm(evap) -callfms_xgrid_stock_move(& -&to=fms_stock_constants_atm_stock(istock_water),& -&from=fms_stock_constants_ice_stock(istock_water),& -&stock_data3d=data_ice,& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_top,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP(Ice->ATm)') - -!Ice->Atm(heatlostthroughevap) -callfms_xgrid_stock_move(& -&to=fms_stock_constants_atm_stock(istock_heat),& -&from=fms_stock_constants_ice_stock(istock_heat),& -&stock_data3d=data_ice*hlv,& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_top,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Ice->ATm)') -!}ENDCOMPUTESTOCKEXCHANGE - -!Balaji -callfms_mpp_clock_end(fluxatmupclock) -callfms_mpp_clock_end(cplclock) -endsubroutineflux_up_to_atmos - - +callfms_xgrid_get_from_xgrid(data_ice,'OCN',ex_flux_tr(:,isphum),xmap_sfc) + +!Ice->Atm(evap) +callfms_xgrid_stock_move(& +&to=fms_stock_constants_atm_stock(istock_water),& +&from=fms_stock_constants_ice_stock(istock_water),& +&stock_data3d=data_ice,& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_top,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP(Ice->ATm)') + +!Ice->Atm(heatlostthroughevap) +callfms_xgrid_stock_move(& +&to=fms_stock_constants_atm_stock(istock_heat),& +&from=fms_stock_constants_ice_stock(istock_heat),& +&stock_data3d=data_ice*hlv,& +&grid_index=x1_grid_ice,& +&xmap=xmap_sfc,& +&delta_t=dt_atm,& +&to_side=istock_top,from_side=istock_top,& +&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Ice->ATm)') +!}ENDCOMPUTESTOCKEXCHANGE + +!Balaji +callfms_mpp_clock_end(fluxatmupclock) +callfms_mpp_clock_end(cplclock) +endsubroutineflux_up_to_atmos -subroutineflux_ex_arrays_dealloc() - -implicitnone -integer::m,n - -!----deallocatemodulestorage---- -deallocate(& -ex_t_surf,& -ex_t_surf_miz,& -ex_p_surf,& -ex_slp,& -ex_t_ca,& -ex_dhdt_surf,& -ex_dedt_surf,& -ex_dqsatdt_surf,& -ex_drdt_surf,& -ex_dhdt_atm,& -ex_flux_t,& -ex_flux_lw,& -ex_drag_q,& -ex_avail,& -ex_f_t_delt_n,& -ex_tr_surf,& -ex_tr_con_ref,& -ex_tr_con_atm,& -ex_dfdtr_surf,& -ex_dfdtr_atm,& -ex_flux_tr,& -ex_f_tr_delt_n,& -ex_e_tr_n,& -ex_e_t_n,& -ex_e_q_n,& -!valuesaddedforLM3 -ex_cd_t,& -ex_cd_m,& -ex_b_star,& -ex_u_star,& -ex_wind,& -ex_z_atm,& -ex_con_atm,& -ex_seawater,& -ex_land) - -#ifdefSCM -deallocate(& -ex_dhdt_surf_forland,& -ex_dedt_surf_forland,& -ex_dedq_surf_forland) -#endif - -!Extrafluxes -don=1,ex_gas_fields_ice%num_bcs -dom=1,ex_gas_fields_ice%bc(n)%num_fields -deallocate(ex_gas_fields_ice%bc(n)%field(m)%values) -nullify(ex_gas_fields_ice%bc(n)%field(m)%values) -enddo -enddo - -don=1,ex_gas_fields_atm%num_bcs -dom=1,ex_gas_fields_atm%bc(n)%num_fields -deallocate(ex_gas_fields_atm%bc(n)%field(m)%values) -nullify(ex_gas_fields_atm%bc(n)%field(m)%values) -enddo -enddo - -don=1,ex_gas_fluxes%num_bcs -dom=1,ex_gas_fluxes%bc(n)%num_fields -deallocate(ex_gas_fluxes%bc(n)%field(m)%values) -nullify(ex_gas_fluxes%bc(n)%field(m)%values) -enddo -enddo - -endsubroutineflux_ex_arrays_dealloc - -subroutineflux_atmos_to_ocean(Time,Atm,Ice_boundary,Ice) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(atmos_data_type),intent(inout)::Atm + + +subroutineflux_ex_arrays_dealloc() + +implicitnone +integer::m,n + +!----deallocatemodulestorage---- +deallocate(& +ex_t_surf,& +ex_t_surf_miz,& +ex_p_surf,& +ex_slp,& +ex_t_ca,& +ex_dhdt_surf,& +ex_dedt_surf,& +ex_dqsatdt_surf,& +ex_drdt_surf,& +ex_dhdt_atm,& +ex_flux_t,& +ex_flux_lw,& +ex_drag_q,& +ex_avail,& +ex_f_t_delt_n,& +ex_tr_surf,& +ex_tr_con_ref,& +ex_tr_con_atm,& +ex_dfdtr_surf,& +ex_dfdtr_atm,& +ex_flux_tr,& +ex_f_tr_delt_n,& +ex_e_tr_n,& +ex_e_t_n,& +ex_e_q_n,& +!valuesaddedforLM3 +ex_cd_t,& +ex_cd_m,& +ex_b_star,& +ex_u_star,& +ex_wind,& +ex_z_atm,& +ex_con_atm,& +ex_seawater,& +ex_land) + +#ifdefSCM +deallocate(& +ex_dhdt_surf_forland,& +ex_dedt_surf_forland,& +ex_dedq_surf_forland) +#endif + +!Extrafluxes +don=1,ex_gas_fields_ice%num_bcs +dom=1,ex_gas_fields_ice%bc(n)%num_fields +deallocate(ex_gas_fields_ice%bc(n)%field(m)%values) +nullify(ex_gas_fields_ice%bc(n)%field(m)%values) +enddo +enddo + +don=1,ex_gas_fields_atm%num_bcs +dom=1,ex_gas_fields_atm%bc(n)%num_fields +deallocate(ex_gas_fields_atm%bc(n)%field(m)%values) +nullify(ex_gas_fields_atm%bc(n)%field(m)%values) +enddo +enddo + +don=1,ex_gas_fluxes%num_bcs +dom=1,ex_gas_fluxes%bc(n)%num_fields +deallocate(ex_gas_fluxes%bc(n)%field(m)%values) +nullify(ex_gas_fluxes%bc(n)%field(m)%values) +enddo +enddo + +endsubroutineflux_ex_arrays_dealloc + +subroutineflux_atmos_to_ocean(Time,Atm,Ice_boundary,Ice) + +implicitnone +type(FmsTime_type),intent(in)::Time -type(atmos_ice_boundary_type),intent(inout)::Ice_boundary +type(atmos_data_type),intent(inout)::Atm -type(ice_data_type),intent(inout)::Ice - -integer::n,m -logical::used - -#ifndefuse_AM3_physics -callatmos_tracer_driver_gather_data_down(atm%fields,atm%tr_bot) -#endif - -!{ -!air-seadepositionfluxes -don=1,atm%fields%num_bcs -!Dothestringcopies. -atm%fields%bc(n)%flux_type=trim(ex_gas_fluxes%bc(n)%flux_type) -atm%fields%bc(n)%implementation=trim(ex_gas_fluxes%bc(n)%implementation) -if(ex_gas_fields_atm%bc(n)%flux_type.eq.'air_sea_deposition')then -dom=1,atm%fields%bc(n)%num_fields -callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& -ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method) -enddo -endif -enddo -!} - -!{ -callatmos_ocean_dep_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater) -!} - -!{ -don=1,ice_boundary%fluxes%num_bcs -if(ice_boundary%fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then -dom=1,ice_boundary%fluxes%bc(n)%num_fields -callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& -ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) - -callfms_data_override('ICE',ice_boundary%fluxes%bc(n)%field(m)%name,& -ice_boundary%fluxes%bc(n)%field(m)%values,time) -if(ice_boundary%fluxes%bc(n)%field(m)%id_diag>0)then -used=fms_diag_send_data(ice_boundary%fluxes%bc(n)%field(m)%id_diag,& -ice_boundary%fluxes%bc(n)%field(m)%values,time) -endif -enddo -endif -enddo -!} - -!{ -callupdate_ice_atm_deposition_flux(ice_boundary,ice) -!} - -endsubroutineflux_atmos_to_ocean +type(atmos_ice_boundary_type),intent(inout)::Ice_boundary + +type(ice_data_type),intent(inout)::Ice + +integer::n,m +logical::used + +#ifndefuse_AM3_physics +callatmos_tracer_driver_gather_data_down(atm%fields,atm%tr_bot) +#endif + +!{ +!air-seadepositionfluxes +don=1,atm%fields%num_bcs +!Dothestringcopies. +atm%fields%bc(n)%flux_type=trim(ex_gas_fluxes%bc(n)%flux_type) +atm%fields%bc(n)%implementation=trim(ex_gas_fluxes%bc(n)%implementation) +if(ex_gas_fields_atm%bc(n)%flux_type.eq.'air_sea_deposition')then +dom=1,atm%fields%bc(n)%num_fields +callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& +ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method) +enddo +endif +enddo +!} + +!{ +callatmos_ocean_dep_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater) +!} + +!{ +don=1,ice_boundary%fluxes%num_bcs +if(ice_boundary%fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then +dom=1,ice_boundary%fluxes%bc(n)%num_fields +callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& +ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) + +callfms_data_override('ICE',ice_boundary%fluxes%bc(n)%field(m)%name,& +ice_boundary%fluxes%bc(n)%field(m)%values,time) +if(ice_boundary%fluxes%bc(n)%field(m)%id_diag>0)then +used=fms_diag_send_data(ice_boundary%fluxes%bc(n)%field(m)%id_diag,& +ice_boundary%fluxes%bc(n)%field(m)%values,time) +endif +enddo +endif +enddo +!} + +!{ +callupdate_ice_atm_deposition_flux(ice_boundary,ice) +!} -subroutineput_logical_to_real_sg(mask,id,ex_mask,xmap) - -implicitnone -logical,intent(in)::mask(:,:,:) -character(len=3),intent(in)::id -real,intent(inout)::ex_mask(:) -type(FmsXgridXmap_type),intent(inout)::xmap - -real,dimension(size(mask,1),size(mask,2),size(mask,3))::rmask - -where(mask) -rmask=1.0 -elsewhere -rmask=0.0 -endwhere - -callfms_xgrid_put_to_xgrid(rmask,id,ex_mask,xmap) - -endsubroutineput_logical_to_real_sg +endsubroutineflux_atmos_to_ocean + +subroutineput_logical_to_real_sg(mask,id,ex_mask,xmap) + +implicitnone +logical,intent(in)::mask(:,:,:) +character(len=3),intent(in)::id +real,intent(inout)::ex_mask(:) +type(FmsXgridXmap_type),intent(inout)::xmap + +real,dimension(size(mask,1),size(mask,2),size(mask,3))::rmask + +where(mask) +rmask=1.0 +elsewhere +rmask=0.0 +endwhere + +callfms_xgrid_put_to_xgrid(rmask,id,ex_mask,xmap) - -subroutineput_logical_to_real_ug(mask,id,ex_mask,xmap) - -implicitnone -logical,intent(in)::mask(:,:) -character(len=3),intent(in)::id -real,intent(inout)::ex_mask(:) -type(FmsXgridXmap_type),intent(inout)::xmap - - -real,dimension(size(mask,1),size(mask,2))::rmask - -where(mask) -rmask=1.0 -elsewhere -rmask=0.0 -endwhere - -callfms_xgrid_put_to_xgrid_(rmask,id,ex_mask,xmap) +endsubroutineput_logical_to_real_sg + + +subroutineput_logical_to_real_ug(mask,id,ex_mask,xmap) + +implicitnone +logical,intent(in)::mask(:,:) +character(len=3),intent(in)::id +real,intent(inout)::ex_mask(:) +type(FmsXgridXmap_type),intent(inout)::xmap + + +real,dimension(size(mask,1),size(mask,2))::rmask + +where(mask) +rmask=1.0 +elsewhere +rmask=0.0 +endwhere -endsubroutineput_logical_to_real_ug - - -subroutinediag_field_init(Time,atmos_axes,land_axes,land_pe) - -implicitnone -type(FmsTime_type),intent(in)::Time -integer,intent(in)::atmos_axes(2) -integer,intent(in)::land_axes(:) -logical,intent(in)::land_pe - -integer::iref -character(len=6)::label_zm,label_zh -real,dimension(2)::& -trange=[100.,400.],& -vrange=[-400.,400.],& -frange=[-0.01,1.01] -character(len=32)::name,units!nameofthetracer -character(len=128)::longname!longnameofthetracer -integer::tr!tracerindex -integer::area_id - -!{ -!(z_ref_mom,z_ref_heatarenamelistvariables) -iref=int(z_ref_mom+0.5) -if(real(iref)==z_ref_mom)then -write(label_zm,105)iref -if(iref<10)write(label_zm,100)iref -else -write(label_zm,110)z_ref_mom -endif - -iref=int(z_ref_heat+0.5) -if(real(iref)==z_ref_heat)then -write(label_zh,105)iref -if(iref<10)write(label_zh,100)iref -else -write(label_zh,110)z_ref_heat -endif - -100format(i1,'m',3x) -105format(i2,'m',2x) -110format(f4.1,'m') -!} - - -!---------initializestaticdiagnosticfields-------------------- -id_land_mask=& -fms_diag_register_static_field(mod_name,'land_mask',atmos_axes,& -'fractionalamountofland','none',& -range=frange,interp_method="conserve_order1") - -!---------initializediagnosticfields-------------------- +callfms_xgrid_put_to_xgrid_(rmask,id,ex_mask,xmap) + +endsubroutineput_logical_to_real_ug + + +subroutinediag_field_init(Time,atmos_axes,land_axes,land_pe) + +implicitnone +type(FmsTime_type),intent(in)::Time +integer,intent(in)::atmos_axes(2) +integer,intent(in)::land_axes(:) +logical,intent(in)::land_pe + +integer::iref +character(len=6)::label_zm,label_zh +real,dimension(2)::& +trange=[100.,400.],& +vrange=[-400.,400.],& +frange=[-0.01,1.01] +character(len=32)::name,units!nameofthetracer +character(len=128)::longname!longnameofthetracer +integer::tr!tracerindex +integer::area_id + +!{ +!(z_ref_mom,z_ref_heatarenamelistvariables) +iref=int(z_ref_mom+0.5) +if(real(iref)==z_ref_mom)then +write(label_zm,105)iref +if(iref<10)write(label_zm,100)iref +else +write(label_zm,110)z_ref_mom +endif + +iref=int(z_ref_heat+0.5) +if(real(iref)==z_ref_heat)then +write(label_zh,105)iref +if(iref<10)write(label_zh,100)iref +else +write(label_zh,110)z_ref_heat +endif + +100format(i1,'m',3x) +105format(i2,'m',2x) +110format(f4.1,'m') +!} + + +!---------initializestaticdiagnosticfields-------------------- +id_land_mask=& +fms_diag_register_static_field(mod_name,'land_mask',atmos_axes,& +'fractionalamountofland','none',& +range=frange,interp_method="conserve_order1") -id_ice_mask=fms_diag_register_diag_field(& -mod_name,'ice_mask',atmos_axes,time,'fractionalamountofseaice','none',range=frange,& -interp_method="conserve_order1") - -id_wind=fms_diag_register_diag_field(& -mod_name,'wind',atmos_axes,time,'windspeedforfluxcalculations','m/s',range=[0.,vrange(2)]) - -id_drag_moist=fms_diag_register_diag_field(& -mod_name,'drag_moist',atmos_axes,time,'dragcoeffformoisture','none') - -id_drag_heat=fms_diag_register_diag_field(& -mod_name,'drag_heat',atmos_axes,time,'dragcoeffforheat','none') - -id_drag_mom=fms_diag_register_diag_field(& -mod_name,'drag_mom',atmos_axes,time,'dragcoeffformomentum','none') - -id_rough_moist=fms_diag_register_diag_field(& -mod_name,'rough_moist',atmos_axes,time,'surfaceroughnessformoisture','m') - -id_rough_heat=fms_diag_register_diag_field(& -mod_name,'rough_heat',atmos_axes,time,'surfaceroughnessforheat','m') - -id_rough_mom=fms_diag_register_diag_field(& -mod_name,'rough_mom',atmos_axes,time,'surfaceroughnessformomentum','m') - -id_u_star=fms_diag_register_diag_field(& -mod_name,'u_star',atmos_axes,time,'frictionvelocity','m/s') - -id_b_star=fms_diag_register_diag_field(& -mod_name,'b_star',atmos_axes,time,'buoyancyscale','m/s2') - -id_q_star=fms_diag_register_diag_field(& -mod_name,'q_star',atmos_axes,time,'moisturescale','kgwater/kgair') - -id_thv_atm=fms_diag_register_diag_field(& -mod_name,'thv_atm',atmos_axes,time,'surfaceairvirtualpotentialtemperature','K') - -id_thv_surf=fms_diag_register_diag_field(& -mod_name,'thv_surf',atmos_axes,time,'surfacevirtualpotentialtemperature','K') - -id_u_flux=fms_diag_register_diag_field(& -mod_name,'tau_x',atmos_axes,time,'zonalwindstress','pa') - -id_v_flux=fms_diag_register_diag_field(& -mod_name,'tau_y',atmos_axes,time,'meridionalwindstress','pa') - -id_t_ocean=fms_diag_register_diag_field(& -mod_name,'t_ocean',atmos_axes,time,'surfacetemperaturefromoceanoutput','deg_k',range=trange) - -id_t_surf=fms_diag_register_diag_field(& -mod_name,'t_surf',atmos_axes,time,'surfacetemperature','deg_k',range=trange) - -!+slm,Mar25,2002--adddiagnositcsfort_ca,q_ca,andq_atm -id_t_ca=fms_diag_register_diag_field(& -mod_name,'t_ca',atmos_axes,time,'canopyairtemperature','deg_k',range=trange) - -!-slm,Mar25,2002 -id_z_atm=fms_diag_register_diag_field(& -mod_name,'z_atm',atmos_axes,time,'heightofbtmlevel','m') - -id_p_atm=fms_diag_register_diag_field(& -mod_name,'p_atm',atmos_axes,time,'pressureatbtmlevel','pa') - -!-bw,Mar25,2002--addeddiagnosticslp -id_slp=fms_diag_register_diag_field(& -mod_name,'slp',atmos_axes,time,'sealevelpressure','pa') - -id_gust=fms_diag_register_diag_field(& -mod_name,'gust',atmos_axes,time,'gustscale','m/s') - -id_t_flux=fms_diag_register_diag_field(& -mod_name,'shflx',atmos_axes,time,'sensibleheatflux','w/m2') - -id_r_flux=fms_diag_register_diag_field(& -mod_name,'lwflx',atmos_axes,time,'net(down-up)longwaveflux','w/m2') - -id_t_atm=fms_diag_register_diag_field(& -mod_name,'t_atm',atmos_axes,time,'temperatureatbtmlevel','deg_k',range=trange) - -id_u_atm=fms_diag_register_diag_field(& -mod_name,'u_atm',atmos_axes,time,'uwindcomponentatbtmlevel','m/s',range=vrange) - -id_v_atm=fms_diag_register_diag_field(& -mod_name,'v_atm',atmos_axes,time,'vwindcomponentatbtmlevel','m/s',range=vrange) - -id_t_ref=fms_diag_register_diag_field(& -mod_name,'t_ref',atmos_axes,time,'temperatureat'//label_zh,'deg_k',range=trange) - -id_rh_ref=fms_diag_register_diag_field(& -mod_name,'rh_ref',atmos_axes,time,'relativehumidityat'//label_zh,'percent') - -id_rh_ref_cmip=fms_diag_register_diag_field(& -mod_name,'rh_ref_cmip',atmos_axes,time,'relativehumidityat'//label_zh,'percent') - -id_u_ref=fms_diag_register_diag_field(& -mod_name,'u_ref',atmos_axes,time,'zonalwindcomponentat'//label_zm,'m/s',range=vrange) - -id_v_ref=fms_diag_register_diag_field(& -mod_name,'v_ref',atmos_axes,time,'meridionalwindcomponentat'//label_zm,'m/s',range=vrange) - -id_wind_ref=fms_diag_register_diag_field(& -mod_name,'wind_ref',atmos_axes,time,'absolutevalueofwindat'//label_zm,'m/s',range=vrange) - -id_del_h=fms_diag_register_diag_field(& -mod_name,'del_h',atmos_axes,time,'refheightinterpfactorforheat','none') - -id_del_m=fms_diag_register_diag_field(& -mod_name,'del_m',atmos_axes,time,'refheightinterpfactorformomentum','none') - -id_del_q=fms_diag_register_diag_field(& -mod_name,'del_q',atmos_axes,time,'refheightinterpfactorformoisture','none') - -if(land_pe)then -!setthedefaultfilter(forareaandsubsampling)forconsequentcallstoregister_tiled_diag_field -#ifndef_USE_LEGACY_LAND_ -callset_default_diag_filter('land') -#endif -id_t_ref_land=fms_diag_register_field_(& -'flux_land','t_ref',land_axes,time,'temperatureat'//trim(label_zh)//'overland','deg_k',& -range=trange,missing_value=-100.0) - -id_q_ref_land=fms_diag_register_field_(& -'flux_land','q_ref',land_axes,time,'specifichumidityat'//trim(label_zh)//'overland','kg/kg',& -missing_value=-1.0) - -id_rh_ref_land=fms_diag_register_field_(& -'flux_land','rh_ref',land_axes,time,'relativehumidityat'//trim(label_zh)//'overland','percent',& -missing_value=-999.0) - -id_u_ref_land=fms_diag_register_field_(& -'flux_land','u_ref',land_axes,time,'zonalwindcomponentat'//trim(label_zm)//'overland','m/s',& -range=vrange,missing_value=-999.0) - -id_v_ref_land=fms_diag_register_field_(& -'flux_land','v_ref',land_axes,time,'meridionalwindcomponentat'//trim(label_zm)//'overland',& -'m/s',range=vrange,missing_value=-999.0) - -id_q_flux_land=fms_diag_register_field_(& -'flux_land','evap',land_axes,time,'evaporationrateoverland','kg/m2/s',missing_value=-1.0) - -id_t_flux_land=fms_diag_register_field_(& -'flux_land','shflx',land_axes,time,'sensibleheatflux','W/m2',missing_value=-1.0) - -id_taslut_land=fms_diag_register_field_(& -'cmor_land','tasLut',land_axes,time,& -'Near-SurfaceAirTemperature('//trim(label_zh)//'AboveDisplacementHeight)onLandUseTile',& -units='K',standard_name='air_temperature',missing_value=-1.0) - -id_husslut_land=fms_diag_register_field_(& -'cmor_land','hussLut',land_axes,time,'Near-SurfaceSpecificHumidityonLandUseTile','1.0',& -standard_name='specific_humidity',missing_value=-1.0) - -allocate(id_tr_flux_land(n_exch_tr)) -allocate(id_tr_mol_flux_land(n_exch_tr)) -allocate(id_tr_con_atm_land(n_exch_tr)) -allocate(id_tr_con_ref_land(n_exch_tr)) -allocate(id_tr_ref_land(n_exch_tr)) - -#ifdef_USE_LEGACY_LAND_ -id_tr_con_atm_land(:)=-1 -id_tr_con_ref_land(:)=-1 -id_tr_ref_land(:)=-1 -#endif - -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) - -id_tr_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_flux',& -land_axes,time,'fluxof'//trim(longname),trim(units)//'kgair/(m2s)',missing_value=-1.0) - -if(fms_mpp_lowercase(trim(name))=='co2')then -id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& -land_axes,time,'fluxof'//trim(longname),'molCO2/(m2s)',missing_value=-1.0) -else -id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& -land_axes,time,'fluxof'//trim(longname),'mol/(m2s)',missing_value=-1.0) -endif - -#ifndef_USE_LEGACY_LAND_ -id_tr_con_atm_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_tot_con_atm',& -land_axes,time,'vdof'//trim(longname),'m/s',missing_value=-1.0) - -id_tr_con_ref_land(tr)=register_diag_field('flux_land',trim(name)//'_tot_con_ref',& -land_axes,time,'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) - -!weskipsphumbecauseitisalreadyavailableasflux_land/q_ref -if(tr.ne.isphum)then -id_tr_ref_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_ref',& -land_axes,time,trim(longname)//'at'//trim(label_zh)//'overland',trim(units),missing_value=-1.0) -else -id_tr_ref_land(tr)=-1 -endif -#endif -enddo -endif - -id_q_ref=fms_diag_register_diag_field(& -mod_name,'q_ref',atmos_axes,time,'specifichumidityat'//trim(label_zh),'kg/kg',missing_value=-1.0) - -id_rough_scale=fms_diag_register_diag_field(& -mod_name,'rough_scale',atmos_axes,time,'topographicscalingfactorformomentumdrag','1') - -allocate(id_tr_atm(n_exch_tr)) -allocate(id_tr_surf(n_exch_tr)) -allocate(id_tr_flux(n_exch_tr)) -allocate(id_tr_mol_flux(n_exch_tr)) -allocate(id_tr_mol_flux0(n_exch_tr)) -allocate(id_tr_con_atm(n_exch_tr)) -allocate(id_tr_con_ref(n_exch_tr)) -allocate(id_tr_ref(n_exch_tr)) - -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) - -id_tr_con_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_atm',atmos_axes,time,& -'vdof'//trim(longname),'m/s',missing_value=-1.0) -id_tr_con_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_ref',atmos_axes,time,& -'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) - -id_tr_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_atm',atmos_axes,time,& -trim(longname)//'atbtmlevel',trim(units)) - -id_tr_surf(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_surf',atmos_axes,time,& -trim(longname)//'atthesurface',trim(units)) - -id_tr_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_flux',atmos_axes,time,& -'fluxof'//trim(longname),trim(units)//'kgair/(m2s)') - -if(tr.ne.isphum)then -id_tr_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_ref',atmos_axes,time,& -trim(longname)//'at'//trim(label_zh),trim(units),missing_value=-1.0) -else -id_tr_ref(tr)=-1 -endif - -!!adddryvmrco2_surfandco2_atm -if(fms_mpp_lowercase(trim(name))=='co2')then -!-slmMar25,2010:movedregistrationofmol_fluxinside'if'todisable -!savingincorrectresults(molfluxesforothertracerscomputedwithCO2molarmass -id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& -'fluxof'//trim(longname),'molCO2/(m2s)') -id_co2_atm_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_atm_dvmr',atmos_axes,time,& -trim(longname)//'atbtmlevel','molCO2/molair') -id_co2_surf_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_surf_dvmr',atmos_axes,time,& -trim(longname)//'atthesurface','molCO2/molair') -else -!f1p -id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& -'fluxof'//trim(longname),'mol/(m2s)') -endif -!f1p -id_tr_mol_flux0(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux_atm0',atmos_axes,time,& -'grossfluxof'//trim(longname),'mol/(m2s)') - -enddo +!---------initializediagnosticfields-------------------- + +id_ice_mask=fms_diag_register_diag_field(& +mod_name,'ice_mask',atmos_axes,time,'fractionalamountofseaice','none',range=frange,& +interp_method="conserve_order1") + +id_wind=fms_diag_register_diag_field(& +mod_name,'wind',atmos_axes,time,'windspeedforfluxcalculations','m/s',range=[0.,vrange(2)]) + +id_drag_moist=fms_diag_register_diag_field(& +mod_name,'drag_moist',atmos_axes,time,'dragcoeffformoisture','none') + +id_drag_heat=fms_diag_register_diag_field(& +mod_name,'drag_heat',atmos_axes,time,'dragcoeffforheat','none') + +id_drag_mom=fms_diag_register_diag_field(& +mod_name,'drag_mom',atmos_axes,time,'dragcoeffformomentum','none') + +id_rough_moist=fms_diag_register_diag_field(& +mod_name,'rough_moist',atmos_axes,time,'surfaceroughnessformoisture','m') + +id_rough_heat=fms_diag_register_diag_field(& +mod_name,'rough_heat',atmos_axes,time,'surfaceroughnessforheat','m') + +id_rough_mom=fms_diag_register_diag_field(& +mod_name,'rough_mom',atmos_axes,time,'surfaceroughnessformomentum','m') + +id_u_star=fms_diag_register_diag_field(& +mod_name,'u_star',atmos_axes,time,'frictionvelocity','m/s') + +id_b_star=fms_diag_register_diag_field(& +mod_name,'b_star',atmos_axes,time,'buoyancyscale','m/s2') + +id_q_star=fms_diag_register_diag_field(& +mod_name,'q_star',atmos_axes,time,'moisturescale','kgwater/kgair') + +id_thv_atm=fms_diag_register_diag_field(& +mod_name,'thv_atm',atmos_axes,time,'surfaceairvirtualpotentialtemperature','K') + +id_thv_surf=fms_diag_register_diag_field(& +mod_name,'thv_surf',atmos_axes,time,'surfacevirtualpotentialtemperature','K') + +id_u_flux=fms_diag_register_diag_field(& +mod_name,'tau_x',atmos_axes,time,'zonalwindstress','pa') + +id_v_flux=fms_diag_register_diag_field(& +mod_name,'tau_y',atmos_axes,time,'meridionalwindstress','pa') + +id_t_ocean=fms_diag_register_diag_field(& +mod_name,'t_ocean',atmos_axes,time,'surfacetemperaturefromoceanoutput','deg_k',range=trange) + +id_t_surf=fms_diag_register_diag_field(& +mod_name,'t_surf',atmos_axes,time,'surfacetemperature','deg_k',range=trange) + +!+slm,Mar25,2002--adddiagnositcsfort_ca,q_ca,andq_atm +id_t_ca=fms_diag_register_diag_field(& +mod_name,'t_ca',atmos_axes,time,'canopyairtemperature','deg_k',range=trange) + +!-slm,Mar25,2002 +id_z_atm=fms_diag_register_diag_field(& +mod_name,'z_atm',atmos_axes,time,'heightofbtmlevel','m') + +id_p_atm=fms_diag_register_diag_field(& +mod_name,'p_atm',atmos_axes,time,'pressureatbtmlevel','pa') + +!-bw,Mar25,2002--addeddiagnosticslp +id_slp=fms_diag_register_diag_field(& +mod_name,'slp',atmos_axes,time,'sealevelpressure','pa') + +id_gust=fms_diag_register_diag_field(& +mod_name,'gust',atmos_axes,time,'gustscale','m/s') + +id_t_flux=fms_diag_register_diag_field(& +mod_name,'shflx',atmos_axes,time,'sensibleheatflux','w/m2') + +id_r_flux=fms_diag_register_diag_field(& +mod_name,'lwflx',atmos_axes,time,'net(down-up)longwaveflux','w/m2') + +id_t_atm=fms_diag_register_diag_field(& +mod_name,'t_atm',atmos_axes,time,'temperatureatbtmlevel','deg_k',range=trange) + +id_u_atm=fms_diag_register_diag_field(& +mod_name,'u_atm',atmos_axes,time,'uwindcomponentatbtmlevel','m/s',range=vrange) + +id_v_atm=fms_diag_register_diag_field(& +mod_name,'v_atm',atmos_axes,time,'vwindcomponentatbtmlevel','m/s',range=vrange) + +id_t_ref=fms_diag_register_diag_field(& +mod_name,'t_ref',atmos_axes,time,'temperatureat'//label_zh,'deg_k',range=trange) + +id_rh_ref=fms_diag_register_diag_field(& +mod_name,'rh_ref',atmos_axes,time,'relativehumidityat'//label_zh,'percent') + +id_rh_ref_cmip=fms_diag_register_diag_field(& +mod_name,'rh_ref_cmip',atmos_axes,time,'relativehumidityat'//label_zh,'percent') + +id_u_ref=fms_diag_register_diag_field(& +mod_name,'u_ref',atmos_axes,time,'zonalwindcomponentat'//label_zm,'m/s',range=vrange) + +id_v_ref=fms_diag_register_diag_field(& +mod_name,'v_ref',atmos_axes,time,'meridionalwindcomponentat'//label_zm,'m/s',range=vrange) + +id_wind_ref=fms_diag_register_diag_field(& +mod_name,'wind_ref',atmos_axes,time,'absolutevalueofwindat'//label_zm,'m/s',range=vrange) + +id_del_h=fms_diag_register_diag_field(& +mod_name,'del_h',atmos_axes,time,'refheightinterpfactorforheat','none') + +id_del_m=fms_diag_register_diag_field(& +mod_name,'del_m',atmos_axes,time,'refheightinterpfactorformomentum','none') + +id_del_q=fms_diag_register_diag_field(& +mod_name,'del_q',atmos_axes,time,'refheightinterpfactorformoisture','none') + +if(land_pe)then +!setthedefaultfilter(forareaandsubsampling)forconsequentcallstoregister_tiled_diag_field +#ifndef_USE_LEGACY_LAND_ +callset_default_diag_filter('land') +#endif +id_t_ref_land=fms_diag_register_field_(& +'flux_land','t_ref',land_axes,time,'temperatureat'//trim(label_zh)//'overland','deg_k',& +range=trange,missing_value=-100.0) + +id_q_ref_land=fms_diag_register_field_(& +'flux_land','q_ref',land_axes,time,'specifichumidityat'//trim(label_zh)//'overland','kg/kg',& +missing_value=-1.0) + +id_rh_ref_land=fms_diag_register_field_(& +'flux_land','rh_ref',land_axes,time,'relativehumidityat'//trim(label_zh)//'overland','percent',& +missing_value=-999.0) + +id_u_ref_land=fms_diag_register_field_(& +'flux_land','u_ref',land_axes,time,'zonalwindcomponentat'//trim(label_zm)//'overland','m/s',& +range=vrange,missing_value=-999.0) + +id_v_ref_land=fms_diag_register_field_(& +'flux_land','v_ref',land_axes,time,'meridionalwindcomponentat'//trim(label_zm)//'overland',& +'m/s',range=vrange,missing_value=-999.0) + +id_q_flux_land=fms_diag_register_field_(& +'flux_land','evap',land_axes,time,'evaporationrateoverland','kg/m2/s',missing_value=-1.0) + +id_t_flux_land=fms_diag_register_field_(& +'flux_land','shflx',land_axes,time,'sensibleheatflux','W/m2',missing_value=-1.0) + +id_taslut_land=fms_diag_register_field_(& +'cmor_land','tasLut',land_axes,time,& +'Near-SurfaceAirTemperature('//trim(label_zh)//'AboveDisplacementHeight)onLandUseTile',& +units='K',standard_name='air_temperature',missing_value=-1.0) + +id_husslut_land=fms_diag_register_field_(& +'cmor_land','hussLut',land_axes,time,'Near-SurfaceSpecificHumidityonLandUseTile','1.0',& +standard_name='specific_humidity',missing_value=-1.0) + +allocate(id_tr_flux_land(n_exch_tr)) +allocate(id_tr_mol_flux_land(n_exch_tr)) +allocate(id_tr_con_atm_land(n_exch_tr)) +allocate(id_tr_con_ref_land(n_exch_tr)) +allocate(id_tr_ref_land(n_exch_tr)) + +#ifdef_USE_LEGACY_LAND_ +id_tr_con_atm_land(:)=-1 +id_tr_con_ref_land(:)=-1 +id_tr_ref_land(:)=-1 +#endif + +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) + +id_tr_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_flux',& +land_axes,time,'fluxof'//trim(longname),trim(units)//'kgair/(m2s)',missing_value=-1.0) + +if(fms_mpp_lowercase(trim(name))=='co2')then +id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& +land_axes,time,'fluxof'//trim(longname),'molCO2/(m2s)',missing_value=-1.0) +else +id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& +land_axes,time,'fluxof'//trim(longname),'mol/(m2s)',missing_value=-1.0) +endif + +#ifndef_USE_LEGACY_LAND_ +id_tr_con_atm_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_tot_con_atm',& +land_axes,time,'vdof'//trim(longname),'m/s',missing_value=-1.0) + +id_tr_con_ref_land(tr)=register_diag_field('flux_land',trim(name)//'_tot_con_ref',& +land_axes,time,'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) + +!weskipsphumbecauseitisalreadyavailableasflux_land/q_ref +if(tr.ne.isphum)then +id_tr_ref_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_ref',& +land_axes,time,trim(longname)//'at'//trim(label_zh)//'overland',trim(units),missing_value=-1.0) +else +id_tr_ref_land(tr)=-1 +endif +#endif +enddo +endif + +id_q_ref=fms_diag_register_diag_field(& +mod_name,'q_ref',atmos_axes,time,'specifichumidityat'//trim(label_zh),'kg/kg',missing_value=-1.0) + +id_rough_scale=fms_diag_register_diag_field(& +mod_name,'rough_scale',atmos_axes,time,'topographicscalingfactorformomentumdrag','1') + +allocate(id_tr_atm(n_exch_tr)) +allocate(id_tr_surf(n_exch_tr)) +allocate(id_tr_flux(n_exch_tr)) +allocate(id_tr_mol_flux(n_exch_tr)) +allocate(id_tr_mol_flux0(n_exch_tr)) +allocate(id_tr_con_atm(n_exch_tr)) +allocate(id_tr_con_ref(n_exch_tr)) +allocate(id_tr_ref(n_exch_tr)) + +dotr=1,n_exch_tr +callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) + +id_tr_con_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_atm',atmos_axes,time,& +'vdof'//trim(longname),'m/s',missing_value=-1.0) +id_tr_con_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_ref',atmos_axes,time,& +'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) + +id_tr_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_atm',atmos_axes,time,& +trim(longname)//'atbtmlevel',trim(units)) + +id_tr_surf(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_surf',atmos_axes,time,& +trim(longname)//'atthesurface',trim(units)) + +id_tr_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_flux',atmos_axes,time,& +'fluxof'//trim(longname),trim(units)//'kgair/(m2s)') + +if(tr.ne.isphum)then +id_tr_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_ref',atmos_axes,time,& +trim(longname)//'at'//trim(label_zh),trim(units),missing_value=-1.0) +else +id_tr_ref(tr)=-1 +endif + +!!adddryvmrco2_surfandco2_atm +if(fms_mpp_lowercase(trim(name))=='co2')then +!-slmMar25,2010:movedregistrationofmol_fluxinside'if'todisable +!savingincorrectresults(molfluxesforothertracerscomputedwithCO2molarmass +id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& +'fluxof'//trim(longname),'molCO2/(m2s)') +id_co2_atm_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_atm_dvmr',atmos_axes,time,& +trim(longname)//'atbtmlevel','molCO2/molair') +id_co2_surf_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_surf_dvmr',atmos_axes,time,& +trim(longname)//'atthesurface','molCO2/molair') +else +!f1p +id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& +'fluxof'//trim(longname),'mol/(m2s)') +endif +!f1p +id_tr_mol_flux0(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux_atm0',atmos_axes,time,& +'grossfluxof'//trim(longname),'mol/(m2s)') -!2017/08/08jgjadddiagnosticsforco2dataoverridesevenifco2isnotatracer -!registerdatacallsnotneededhereforco2_flux_pcair_atmando2_flux_pcair_atmasthishappenselsewhere -id_co2_bot=fms_diag_register_diag_field(mod_name,'co2_bot',atmos_axes,time,& -'co2_botfromdata_override','ppmv') - -!id_nh3_flux_atm0=fms_diag_register_diag_field(mod_name,'nh3_flux_atm0',atmos_axes,Time,& -!'nh3fluxoutoftheoceanassumingnotnh3intheatmosphere','mol/m2/s') - - -id_q_flux=fms_diag_register_diag_field(mod_name,'evap',fatmos_axes,time,& -'evaporationrate','kg/m2/s') - -!-------------------------------------------------------------------- -!retrievethediag_manageridfortheareadiagnostic, -!neededforcmorizingvariousdiagnostics. -!-------------------------------------------------------------------- -area_id=fms_diag_get_field_id('dynamics','area') -if(area_id.eq.diag_field_not_found)callfms_error_mesg& -('diag_field_initinatm_land_ice_flux_exchange_mod',& -'diagnosticfield"dynamics","area"isnotinthediag_table',note) - -!----------------------------------------------------------------------- -!registercmipvariablenames +enddo + +!2017/08/08jgjadddiagnosticsforco2dataoverridesevenifco2isnotatracer +!registerdatacallsnotneededhereforco2_flux_pcair_atmando2_flux_pcair_atmasthishappenselsewhere +id_co2_bot=fms_diag_register_diag_field(mod_name,'co2_bot',atmos_axes,time,& +'co2_botfromdata_override','ppmv') + +!id_nh3_flux_atm0=fms_diag_register_diag_field(mod_name,'nh3_flux_atm0',atmos_axes,Time,& +!'nh3fluxoutoftheoceanassumingnotnh3intheatmosphere','mol/m2/s') + + +id_q_flux=fms_diag_register_diag_field(mod_name,'evap',fatmos_axes,time,& +'evaporationrate','kg/m2/s') + +!-------------------------------------------------------------------- +!retrievethediag_manageridfortheareadiagnostic, +!neededforcmorizingvariousdiagnostics. +!-------------------------------------------------------------------- +area_id=fms_diag_get_field_id('dynamics','area') +if(area_id.eq.diag_field_not_found)callfms_error_mesg& +('diag_field_initinatm_land_ice_flux_exchange_mod',& +'diagnosticfield"dynamics","area"isnotinthediag_table',note) + !----------------------------------------------------------------------- -!NOTE:addextradimensionreferencelevelfields?height2m,height10m -!fornowwewillhandlethiswithanattribute - -id_height2m=fms_diag_register_static_field(& -mod_name,'height2m',[null_axis_id],'Height','m',standard_name='height') -if(id_height2m>0)then -callfms_diag_field_add_attribute(id_height2m,'axis','Z') -callfms_diag_field_add_attribute(id_height2m,'positive','up') -endif - -id_height10m=fms_diag_register_static_field(& -mod_name,'height10m',[null_axis_id],'Height','m',standard_name='height') -if(id_height10m>0)then -callfms_diag_field_add_attribute(id_height10m,'axis','Z') -callfms_diag_field_add_attribute(id_height10m,'positive','up') -endif - -#ifdefuse_AM3_physics -id_tas=fms_diag_register_diag_field(& -mod_name,'tas',atmos_axes,time,'Near-SurfaceAirTemperature','K',& -standard_name='air_temperature',area=area_id,missing_value=cmor_missing_value,range=trange) - -if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') +!registercmipvariablenames +!----------------------------------------------------------------------- +!NOTE:addextradimensionreferencelevelfields?height2m,height10m +!fornowwewillhandlethiswithanattribute + +id_height2m=fms_diag_register_static_field(& +mod_name,'height2m',[null_axis_id],'Height','m',standard_name='height') +if(id_height2m>0)then +callfms_diag_field_add_attribute(id_height2m,'axis','Z') +callfms_diag_field_add_attribute(id_height2m,'positive','up') +endif + +id_height10m=fms_diag_register_static_field(& +mod_name,'height10m',[null_axis_id],'Height','m',standard_name='height') +if(id_height10m>0)then +callfms_diag_field_add_attribute(id_height10m,'axis','Z') +callfms_diag_field_add_attribute(id_height10m,'positive','up') +endif + +#ifdefuse_AM3_physics +id_tas=fms_diag_register_diag_field(& +mod_name,'tas',atmos_axes,time,'Near-SurfaceAirTemperature','K',& +standard_name='air_temperature',area=area_id,missing_value=cmor_missing_value,range=trange) -id_uas=fms_diag_register_diag_field(& -mod_name,'uas',atmos_axes,time,'EastwardNear-SurfaceWind','ms-1',& -standard_name='eastward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) - -if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') +if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') + +id_uas=fms_diag_register_diag_field(& +mod_name,'uas',atmos_axes,time,'EastwardNear-SurfaceWind','ms-1',& +standard_name='eastward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) -id_vas=fms_diag_register_diag_field(& -mod_name,'vas',atmos_axes,time,'NorthwardNear-SurfaceWind','ms-1',& -standard_name='northward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) - -if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') +if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') + +id_vas=fms_diag_register_diag_field(& +mod_name,'vas',atmos_axes,time,'NorthwardNear-SurfaceWind','ms-1',& +standard_name='northward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) -id_sfcwind=fms_diag_register_diag_field(mod_name,'sfcWind',atmos_axes,time,& -'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed',area=area_id,& -missing_value=cmor_missing_value,range=vrange) - -if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') +if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') + +id_sfcwind=fms_diag_register_diag_field(mod_name,'sfcWind',atmos_axes,time,& +'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed',area=area_id,& +missing_value=cmor_missing_value,range=vrange) -id_huss=fms_diag_register_diag_field(mod_name,'huss',atmos_axes,time,& -'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity',area=area_id,& -missing_value=cmor_missing_value) - -if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') - -id_hurs=fms_diag_register_diag_field(mod_name,'hurs',atmos_axes,time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& -missing_value=cmor_missing_value) - -if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') +if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') + +id_huss=fms_diag_register_diag_field(mod_name,'huss',atmos_axes,time,& +'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity',area=area_id,& +missing_value=cmor_missing_value) + +if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') + +id_hurs=fms_diag_register_diag_field(mod_name,'hurs',atmos_axes,time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& +missing_value=cmor_missing_value) -id_rhs=fms_diag_register_diag_field(mod_name,'rhs',atmos_axes,time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& -missing_value=cmor_missing_value) - -if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') +if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') + +id_rhs=fms_diag_register_diag_field(mod_name,'rhs',atmos_axes,time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& +missing_value=cmor_missing_value) -id_ts=fms_diag_register_diag_field(mod_name,'ts',atmos_axes,time,& -'SurfaceTemperature','K',standard_name='surface_temperature',area=area_id,& -missing_value=cmor_missing_value,range=trange) - -id_psl=fms_diag_register_diag_field(mod_name,'psl',atmos_axes,time,& -'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level',area=area_id,& -missing_value=cmor_missing_value) - -id_tauu=fms_diag_register_diag_field(mod_name,'tauu',atmos_axes,time,& -'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress',& -area=area_id,missing_value=cmor_missing_value) - -id_tauv=fms_diag_register_diag_field(mod_name,'tauv',atmos_axes,time,& -'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress',& -area=area_id,missing_value=cmor_missing_value) - -id_hfss=fms_diag_register_diag_field(mod_name,'hfss',atmos_axes,time,& -'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux',& -area=area_id,missing_value=cmor_missing_value) - -id_hfls=fms_diag_register_diag_field(mod_name,'hfls',atmos_axes,time,& -'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux',& -area=area_id,missing_value=cmor_missing_value) - -if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') +if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') + +id_ts=fms_diag_register_diag_field(mod_name,'ts',atmos_axes,time,& +'SurfaceTemperature','K',standard_name='surface_temperature',area=area_id,& +missing_value=cmor_missing_value,range=trange) + +id_psl=fms_diag_register_diag_field(mod_name,'psl',atmos_axes,time,& +'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level',area=area_id,& +missing_value=cmor_missing_value) + +id_tauu=fms_diag_register_diag_field(mod_name,'tauu',atmos_axes,time,& +'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress',& +area=area_id,missing_value=cmor_missing_value) + +id_tauv=fms_diag_register_diag_field(mod_name,'tauv',atmos_axes,time,& +'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress',& +area=area_id,missing_value=cmor_missing_value) + +id_hfss=fms_diag_register_diag_field(mod_name,'hfss',atmos_axes,time,& +'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux',& +area=area_id,missing_value=cmor_missing_value) + +id_hfls=fms_diag_register_diag_field(mod_name,'hfls',atmos_axes,time,& +'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux',& +area=area_id,missing_value=cmor_missing_value) -id_evspsbl=fms_diag_register_diag_field(mod_name,'evspsbl',atmos_axes,time,& -'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux',area=area_id,& -missing_value=cmor_missing_value) - -id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& -'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',area=area_id,& -interp_method="conserve_order1") - -id_tslsi=fms_diag_register_diag_field(mod_name,'tslsi',atmos_axes,time,& -'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',area=area_id,& -mask_variant=.true.,missing_value=cmor_missing_value) - -id_tos=fms_diag_register_diag_field(mod_name,'tos',atmos_axes,time,& -'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',area=area_id,& -mask_variant=.true.,missing_value=cmor_missing_value) - -id_sic=fms_diag_register_diag_field(mod_name,'sic',atmos_axes,time,& -'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction',area=area_id,& -missing_value=cmor_missing_value) - -if(id_sic>0)& -callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') -#else -id_tas=register_cmip_diag_field_2d(mod_name,'tas',time,& -'Near-SurfaceAirTemperature','K',standard_name='air_temperature') - -if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') - -id_uas=register_cmip_diag_field_2d(mod_name,'uas',time,& -'EastwardNear-SurfaceWind','ms-1',standard_name='eastward_wind') - -if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') +if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') + +id_evspsbl=fms_diag_register_diag_field(mod_name,'evspsbl',atmos_axes,time,& +'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux',area=area_id,& +missing_value=cmor_missing_value) + +id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& +'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',area=area_id,& +interp_method="conserve_order1") + +id_tslsi=fms_diag_register_diag_field(mod_name,'tslsi',atmos_axes,time,& +'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',area=area_id,& +mask_variant=.true.,missing_value=cmor_missing_value) + +id_tos=fms_diag_register_diag_field(mod_name,'tos',atmos_axes,time,& +'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',area=area_id,& +mask_variant=.true.,missing_value=cmor_missing_value) + +id_sic=fms_diag_register_diag_field(mod_name,'sic',atmos_axes,time,& +'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction',area=area_id,& +missing_value=cmor_missing_value) + +if(id_sic>0)& +callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') +#else +id_tas=register_cmip_diag_field_2d(mod_name,'tas',time,& +'Near-SurfaceAirTemperature','K',standard_name='air_temperature') + +if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') + +id_uas=register_cmip_diag_field_2d(mod_name,'uas',time,& +'EastwardNear-SurfaceWind','ms-1',standard_name='eastward_wind') -id_vas=register_cmip_diag_field_2d(mod_name,'vas',time,& -'NorthwardNear-SurfaceWind','ms-1',standard_name='northward_wind') - -if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') - -id_sfcwind=register_cmip_diag_field_2d(mod_name,'sfcWind',time,& -'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed') - -if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') +if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') + +id_vas=register_cmip_diag_field_2d(mod_name,'vas',time,& +'NorthwardNear-SurfaceWind','ms-1',standard_name='northward_wind') + +if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') + +id_sfcwind=register_cmip_diag_field_2d(mod_name,'sfcWind',time,& +'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed') -id_huss=register_cmip_diag_field_2d(mod_name,'huss',time,& -'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity') - -if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') +if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') + +id_huss=register_cmip_diag_field_2d(mod_name,'huss',time,& +'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity') -id_hurs=register_cmip_diag_field_2d(mod_name,'hurs',time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') - -if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') +if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') + +id_hurs=register_cmip_diag_field_2d(mod_name,'hurs',time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') -id_rhs=register_cmip_diag_field_2d(mod_name,'rhs',time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') - -if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') +if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') + +id_rhs=register_cmip_diag_field_2d(mod_name,'rhs',time,& +'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') -id_ts=register_cmip_diag_field_2d(mod_name,'ts',time,& -'SurfaceTemperature','K',standard_name='surface_temperature') - -id_psl=register_cmip_diag_field_2d(mod_name,'psl',time,& -'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level') - -id_tauu=register_cmip_diag_field_2d(mod_name,'tauu',time,& -'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress') - -id_tauv=register_cmip_diag_field_2d(mod_name,'tauv',time,& -'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress') - -id_hfss=register_cmip_diag_field_2d(mod_name,'hfss',time,& -'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') - -id_hfls=register_cmip_diag_field_2d(mod_name,'hfls',time,& -'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') -if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') - -id_evspsbl=register_cmip_diag_field_2d(mod_name,'evspsbl',time,& -'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux') - -id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& -'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',& -area=area_id,interp_method='conserve_order1') - -id_tslsi=register_cmip_diag_field_2d(mod_name,'tslsi',time,& -'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',mask_variant=.true.) - - -!tos,sicareocean,seaIcefieldsontheatmosgrid -!usefulforamip-typeruns - -id_tos=register_cmip_diag_field_2d(mod_name,'tos',time,& -'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',mask_variant=.true.) - -id_sic=register_cmip_diag_field_2d(mod_name,'sic',time,& -'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction') - -if(id_sic>0)& -callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') - -!-----initializeglobalintegralsfornetCDFoutput----- -id_evspsbl_g=register_global_diag_field(& -'evspsbl',time,'Evaporation','mmd-1',standard_name='water_evaporation_flux') - -id_ts_g=register_global_diag_field(& -'ts',time,'SurfaceTemperature','K',standard_name='surface_temperature') - -id_tas_g=register_global_diag_field(& -'tas',time,'Near-SurfaceAirTemperature','K',standard_name='air_temperature') - -if(id_tas_g>0.and.id_height2m>0)& -callfms_diag_field_add_attribute(get_global_diag_field_id(id_tas_g),'coordinates','height2m') - -id_tasl_g=register_global_diag_field(& -'tasl',time,'Near-SurfaceAirTemperature(LandOnly)','K',standard_name='air_temperature') - -#ifdefined(_USE_LEGACY_LAND_)||defined(use_AM3_physics) -if(id_tasl_g>0)then -callfms_mpp_error(warning,"diag_field_init:fieldtaslisregistered,butmacro"//& -"_USE_LEGACY_LAND_oruse_AM3_physicsisdefined,nodatawillbewrittenout") -endif -#endif -if(id_tasl_g>0.and.id_height2m>0)& -callfms_diag_field_add_attribute(get_global_diag_field_id(id_tasl_g),'coordinates','height2m') - -id_hfss_g=register_global_diag_field('hfss',time,& -'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') - -id_hfls_g=register_global_diag_field('hfls',time,& -'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') - -if(id_hfls_g>0)& -callfms_diag_field_add_attribute(get_global_diag_field_id(id_hfls_g),'comment','Lv*evap') - -id_rls_g=register_global_diag_field('rls',time,& -'NetLongwaveSurfaceRadiation','Wm-2',standard_name='surface_net_longwave_flux') - -#endif - -endsubroutinediag_field_init - - -subroutinedivide_by_area(data,area) - -implicitnone -real,intent(inout)::data(:,:) -real,intent(in)::area(:,:) - -if(size(data,dim=1)/=size(area,dim=1).or.size(data,dim=2)/=size(area,dim=2))return - -where(area/=0.0) -data=data/area -endwhere - -endsubroutinedivide_by_area - -!Thiswascalledinsideflux_ocean_to_ice.Why? -subroutinesend_ice_mask_sic(Time) - -implicitnone -type(FmsTime_type),intent(in)::Time - -real,dimension(nxc_ice,nyc_ice,nk_ice)::ice_frac -real,dimension(n_xgrid_sfc)::ex_ice_frac -real,dimension(ni_atm,nj_atm)::diag_atm,ocean_frac -logical::used - -if(id_ice_mask>0.or.id_sic>0)then +if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') + +id_ts=register_cmip_diag_field_2d(mod_name,'ts',time,& +'SurfaceTemperature','K',standard_name='surface_temperature') + +id_psl=register_cmip_diag_field_2d(mod_name,'psl',time,& +'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level') + +id_tauu=register_cmip_diag_field_2d(mod_name,'tauu',time,& +'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress') + +id_tauv=register_cmip_diag_field_2d(mod_name,'tauv',time,& +'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress') + +id_hfss=register_cmip_diag_field_2d(mod_name,'hfss',time,& +'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') + +id_hfls=register_cmip_diag_field_2d(mod_name,'hfls',time,& +'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') +if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') + +id_evspsbl=register_cmip_diag_field_2d(mod_name,'evspsbl',time,& +'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux') + +id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& +'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',& +area=area_id,interp_method='conserve_order1') + +id_tslsi=register_cmip_diag_field_2d(mod_name,'tslsi',time,& +'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',mask_variant=.true.) + + +!tos,sicareocean,seaIcefieldsontheatmosgrid +!usefulforamip-typeruns + +id_tos=register_cmip_diag_field_2d(mod_name,'tos',time,& +'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',mask_variant=.true.) + +id_sic=register_cmip_diag_field_2d(mod_name,'sic',time,& +'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction') + +if(id_sic>0)& +callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') + +!-----initializeglobalintegralsfornetCDFoutput----- +id_evspsbl_g=register_global_diag_field(& +'evspsbl',time,'Evaporation','mmd-1',standard_name='water_evaporation_flux') + +id_ts_g=register_global_diag_field(& +'ts',time,'SurfaceTemperature','K',standard_name='surface_temperature') + +id_tas_g=register_global_diag_field(& +'tas',time,'Near-SurfaceAirTemperature','K',standard_name='air_temperature') + +if(id_tas_g>0.and.id_height2m>0)& +callfms_diag_field_add_attribute(get_global_diag_field_id(id_tas_g),'coordinates','height2m') + +id_tasl_g=register_global_diag_field(& +'tasl',time,'Near-SurfaceAirTemperature(LandOnly)','K',standard_name='air_temperature') + +#ifdefined(_USE_LEGACY_LAND_)||defined(use_AM3_physics) +if(id_tasl_g>0)then +callfms_mpp_error(warning,"diag_field_init:fieldtaslisregistered,butmacro"//& +"_USE_LEGACY_LAND_oruse_AM3_physicsisdefined,nodatawillbewrittenout") +endif +#endif +if(id_tasl_g>0.and.id_height2m>0)& +callfms_diag_field_add_attribute(get_global_diag_field_id(id_tasl_g),'coordinates','height2m') + +id_hfss_g=register_global_diag_field('hfss',time,& +'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') + +id_hfls_g=register_global_diag_field('hfls',time,& +'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') + +if(id_hfls_g>0)& +callfms_diag_field_add_attribute(get_global_diag_field_id(id_hfls_g),'comment','Lv*evap') + +id_rls_g=register_global_diag_field('rls',time,& +'NetLongwaveSurfaceRadiation','Wm-2',standard_name='surface_net_longwave_flux') + +#endif + +endsubroutinediag_field_init + + +subroutinedivide_by_area(data,area) + +implicitnone +real,intent(inout)::data(:,:) +real,intent(in)::area(:,:) + +if(size(data,dim=1)/=size(area,dim=1).or.size(data,dim=2)/=size(area,dim=2))return + +where(area/=0.0) +data=data/area +endwhere + +endsubroutinedivide_by_area + +!Thiswascalledinsideflux_ocean_to_ice.Why? +subroutinesend_ice_mask_sic(Time) + +implicitnone +type(FmsTime_type),intent(in)::Time + +real,dimension(nxc_ice,nyc_ice,nk_ice)::ice_frac +real,dimension(n_xgrid_sfc)::ex_ice_frac +real,dimension(ni_atm,nj_atm)::diag_atm,ocean_frac +logical::used -ice_frac=1. -ice_frac(:,:,1)=0. -ex_ice_frac=0. - -callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ice_frac,xmap_sfc) - -if(id_ice_mask>0)used=fms_diag_send_data(id_ice_mask,diag_atm,time) - -if(id_sic>0)then -ice_frac=1. -ex_ice_frac=0. -callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) -callfms_xgrid_get_from_xgrid(ocean_frac,'ATM',ex_ice_frac,xmap_sfc) -where(ocean_frac>0.0) -diag_atm=min(1.,diag_atm/ocean_frac)!CMIP6asfraction -ocean_frac=1.0 -elsewhere -diag_atm=0.0 -ocean_frac=0.0 -endwhere -used=fms_diag_send_data(id_sic,diag_atm,time,rmask=ocean_frac) -endif -endif - -endsubroutinesend_ice_mask_sic +if(id_ice_mask>0.or.id_sic>0)then + +ice_frac=1. +ice_frac(:,:,1)=0. +ex_ice_frac=0. + +callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) +callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ice_frac,xmap_sfc) + +if(id_ice_mask>0)used=fms_diag_send_data(id_ice_mask,diag_atm,time) + +if(id_sic>0)then +ice_frac=1. +ex_ice_frac=0. +callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) +callfms_xgrid_get_from_xgrid(ocean_frac,'ATM',ex_ice_frac,xmap_sfc) +where(ocean_frac>0.0) +diag_atm=min(1.,diag_atm/ocean_frac)!CMIP6asfraction +ocean_frac=1.0 +elsewhere +diag_atm=0.0 +ocean_frac=0.0 +endwhere +used=fms_diag_send_data(id_sic,diag_atm,time,rmask=ocean_frac) +endif +endif -!####################################################################### +endsubroutinesend_ice_mask_sic -subroutineatm_stock_integrate(Atm,res) - -implicitnone -type(atmos_data_type),intent(in)::Atm -real,intent(out)::res - -integer::ier +!####################################################################### + +subroutineatm_stock_integrate(Atm,res) + +implicitnone +type(atmos_data_type),intent(in)::Atm +real,intent(out)::res -callfms_xgrid_stock_integrate_2d(atm%lprec+atm%fprec,xmap=xmap_sfc,delta_t=dt_atm,& -&radius=radius,res=res,ier=ier) - -endsubroutineatm_stock_integrate +integer::ier + +callfms_xgrid_stock_integrate_2d(atm%lprec+atm%fprec,xmap=xmap_sfc,delta_t=dt_atm,& +&radius=radius,res=res,ier=ier) -!######################################################################### +endsubroutineatm_stock_integrate -endmoduleatm_land_ice_flux_exchange_mod +!######################################################################### -#undefFMS_DATA_OVERRIDE_ -#undefFMS_XGRID_PUT_TO_XGRID_ -#undefFMS_XGRID_STOCK_MOVE_ -#undefFMS_XGRID_SET_FRAC_AREA_ -#undefFMS_XGRID_GET_FROM_XGRID_ -#undefFMS_DIAG_REGISTER_FIELD_ +endmoduleatm_land_ice_flux_exchange_mod + +#undefFMS_DATA_OVERRIDE_ +#undefFMS_XGRID_PUT_TO_XGRID_ +#undefFMS_XGRID_STOCK_MOVE_ +#undefFMS_XGRID_SET_FRAC_AREA_ +#undefFMS_XGRID_GET_FROM_XGRID_ +#undefFMS_DIAG_REGISTER_FIELD_ diff --git a/docs/xml/index.xml b/docs/xml/index.xml index ba385c19..d66fc611 100644 --- a/docs/xml/index.xml +++ b/docs/xml/index.xml @@ -219,7 +219,6 @@ id_vas id_evspsbl_g id_hfls_g - id_hfss_g id_rls_g id_tas_g id_tasl_g @@ -234,7 +233,6 @@ frac_precip z_ref_heat z_ref_mom - do_area_weighted_flux do_forecast nblocks partition_fprec_from_lprec @@ -273,6 +271,9 @@ ex_u_star ex_wind ex_z_atm + ex_dhdt_surf_forland + ex_dedt_surf_forland + ex_dedq_surf_forland ex_dfdtr_atm ex_dfdtr_surf ex_e_tr_n @@ -312,9 +313,7 @@ x1_grid_ice x1_grid_lnd dt_atm - atmospheric - timestep - s + dt_cpl ni_atm nj_atm nxc_ice diff --git a/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml b/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml index a4b0bcdb..a2c9bebb 100644 --- a/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml +++ b/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml @@ -45,7 +45,7 @@ - + subroutine @@ -89,7 +89,7 @@ - + diff --git a/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml b/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml index 82248dc5..8c4bcfd7 100644 --- a/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml +++ b/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml @@ -81,12 +81,12 @@ id_b_star - +diag_manager registered field id for bouyancy scale - + integer @@ -94,12 +94,12 @@ id_del_h - +diag_manager registered field id ref height interp factor for heat - + integer @@ -107,12 +107,12 @@ id_del_m - +diag_manager registered field id ref height for interp factor for momentum - + integer @@ -120,12 +120,12 @@ id_del_q - +diag_manager registered field id ref height interp factor for moisture - + integer @@ -133,12 +133,12 @@ id_drag_heat - +diag_manager registered field id drag coefficient for heat - + integer @@ -146,12 +146,12 @@ id_drag_moist - +diag_manager registered field id drag coefficient for moisture - + integer @@ -159,12 +159,12 @@ id_drag_mom - +diag_manager registered field id drag coefficient for momentum - + integer @@ -172,12 +172,12 @@ id_gust - +diag_manager registered field id gust scale - + integer @@ -185,12 +185,12 @@ id_husslut_land - +diag_manager registered field id near-surface specific humidity on land use tile - + integer @@ -198,12 +198,12 @@ id_ice_mask - +diag_manager registered field id fractional amount of land - + integer @@ -211,12 +211,12 @@ id_land_mask - +diag_manager registered field id fractional amount of sea ice - + integer @@ -224,12 +224,12 @@ id_p_atm - +diag_manager registered field id pressure at lowest atmospheric level - + integer @@ -237,12 +237,12 @@ id_q_flux - +diag_manager registered field id evaporation rate - + integer @@ -250,12 +250,12 @@ id_q_flux_land - +diag_manager registered field id evaporation rate over land - + integer @@ -263,12 +263,12 @@ id_q_ref - +diag_manager registered field id specific humidity at z_ref_heat - + integer @@ -276,12 +276,12 @@ id_q_ref_land - +diag_manager registered field id specific humidity at z_ref_heat over land - + integer @@ -289,12 +289,12 @@ id_q_star - +diag_manager registered field id moisture scale - + integer @@ -302,12 +302,12 @@ id_r_flux - +diag_manager registered field id net (down-up) longwave flux - + integer @@ -315,12 +315,12 @@ id_rh_ref - +diag_manager registered field id relative humidity at z_ref_heat - + integer @@ -328,12 +328,12 @@ id_rh_ref_cmip - +diag_manager registered field id relative humidity at z_ref_heat - + integer @@ -341,12 +341,12 @@ id_rh_ref_land - +diag_manager registered field id relative humidity at z_ref_heat over land - + integer @@ -354,12 +354,12 @@ id_rough_heat - +diag_manager registered field id surface roughness for heat - + integer @@ -367,12 +367,12 @@ id_rough_moist - +diag_manager registered field id surface roughness for moisture - + integer @@ -380,12 +380,12 @@ id_rough_mom - +diag_manager registered field id surface roughness for momentum - + integer @@ -393,12 +393,12 @@ id_rough_scale - +diag_manager registered field id topographic scaling fractor for momentum drag - + integer @@ -406,12 +406,12 @@ id_slp - +diag_manager registered field id sea level pressure - + integer @@ -419,12 +419,12 @@ id_t_atm - +diag_manager registered field id temperature at lowest atmospheric level - + integer @@ -432,12 +432,12 @@ id_t_ca - +diag_manager registered field id canopy air temperature - + integer @@ -445,12 +445,12 @@ id_t_flux - +diag_manager registered field id sensible heat flux - + integer @@ -458,12 +458,12 @@ id_t_ocean - +diag_manager registered field id surface temperature from ocean output - + integer @@ -471,12 +471,12 @@ id_t_ref - +diag_manager registered field id temperature at z_ref_heat - + integer @@ -484,12 +484,12 @@ id_t_ref_land - +diag_manager registered field id temperature at z_ref_heat over land - + integer @@ -497,12 +497,12 @@ id_t_surf - +diag_manager registered field id surface temperature - + integer @@ -510,12 +510,12 @@ id_taslut_land - +diag_manager registered field id near-surface air temperature z_ref_heat - + integer @@ -523,12 +523,12 @@ id_thv_atm - +diag_manager registered field id surface air virtual potential temperature - + integer @@ -536,12 +536,12 @@ id_thv_surf - +diag_manager registered field id surface virtual potential temperature - + integer @@ -549,12 +549,12 @@ id_u_atm - +diag_manager registered field id u wind component at lowest atmospheric level - + integer @@ -562,12 +562,12 @@ id_u_flux - +diag_manager registered field id zonal wind stress - + integer @@ -575,12 +575,12 @@ id_u_ref - +diag_manager registered field id zonal wind component at z_ref_mom - + integer @@ -588,12 +588,12 @@ id_u_ref_land - +diag_manager registered field id zonal wind component at z_ref_mom over land - + integer @@ -606,7 +606,7 @@ - + integer @@ -614,12 +614,12 @@ id_v_atm - +diag_manager registered field id v wind component at lowest atmospheric level - + integer @@ -627,12 +627,12 @@ id_v_flux - +diag_manager registered field id meridional wind stress - + integer @@ -640,12 +640,12 @@ id_v_ref - +diag_manager registered field id meridional wind component at z_ref_mom - + integer @@ -653,12 +653,12 @@ id_v_ref_land - +diag_manager registered field id meridional wind component at z_ref_mom over land - + integer @@ -666,12 +666,12 @@ id_wind - +diag_manager registered field id wind speed for flux calculations - + integer @@ -679,12 +679,12 @@ id_wind_ref - +diag_manager registered field id absolute value of wind at z_ref_mom - + integer @@ -692,12 +692,12 @@ id_z_atm - +diag_manager registered field id height of lowest atmospheric level - + integer @@ -705,12 +705,12 @@ id_co2_atm_dvmr - +diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level - + integer @@ -723,7 +723,7 @@ - + integer @@ -731,12 +731,12 @@ id_co2_bot - +diag_manager registered field id concentration of co2 to be passed to land/photosynthesis - + integer @@ -744,12 +744,12 @@ id_co2_flux_pcair_atm - +diag_manager registered field id concentration of co2 to be passed to ocean - + integer @@ -757,12 +757,12 @@ id_o2_flux_pcair_atm - +diag_manager registered field id concentration of o2 to be passed to to ocean - + integer, dimension(:), allocatable @@ -770,12 +770,12 @@ id_tr_atm - +diag_manager registered field id value of tracer at lowest atmospheric level - + integer, dimension(:), allocatable @@ -783,12 +783,12 @@ id_tr_surf - +diag_manager registered field id value of tracer at surface - + integer, dimension(:), allocatable @@ -796,12 +796,12 @@ id_tr_flux - +diag_manager registered field id tracer fluxes - + integer, dimension(:), allocatable @@ -809,12 +809,12 @@ id_tr_mol_flux - +diag_manager registered field id flux of co2 concentration in [mol/m2*s] - + integer, dimension(:), allocatable @@ -822,12 +822,12 @@ id_tr_ref - +diag_manager registered field id value of tracer at z_ref_heat - + integer, dimension(:), allocatable @@ -835,12 +835,12 @@ id_tr_ref_land - +diag_manager registered field id tracer flux at z_ref_heat over land - + integer, dimension(:), allocatable @@ -848,12 +848,12 @@ id_tr_mol_flux0 - +diag_manager registered field id - + integer, dimension(:), allocatable @@ -861,12 +861,12 @@ id_tr_flux_land - +diag_manager registered field id flux of tracer concentration over land in [kg/m2*s] - + integer, dimension(:), allocatable @@ -874,12 +874,12 @@ id_tr_mol_flux_land - +diag_manager registered field id flux of - + integer, dimension(:), allocatable @@ -887,12 +887,12 @@ id_tr_con_atm - +diag_manager registered field id deposition velocity at lowest atmospheric level (atm) - + integer, dimension(:), allocatable @@ -900,12 +900,12 @@ id_tr_con_atm_land - +diag_manager registered field id - + integer, dimension(:), allocatable @@ -913,12 +913,12 @@ id_tr_con_ref - +diag_manager registered field id deposition velocity at reference height (atm) - + integer, dimension(:), allocatable @@ -926,12 +926,12 @@ id_tr_con_ref_land - +diag_manager registered field id deposition velocity at reference height over land - + integer @@ -939,12 +939,12 @@ id_evspsbl - +diag_manager registered field id water evaporation flux (for cmip) - + integer @@ -952,12 +952,12 @@ id_height10m - +diag_manager registered field id near surface height (for cmip) - + integer @@ -965,12 +965,12 @@ id_height2m - +diag_manager registered field id near surface height (for cmip) - + integer @@ -978,12 +978,12 @@ id_hfls - +diag_manager registered field id surface upward latent heat flux (for cmip) - + integer @@ -991,12 +991,12 @@ id_hfss - +diag_manager registered field id surface upward sensible heat flux (for cmip) - + integer @@ -1004,12 +1004,12 @@ id_hurs - +diag_manager registered field id near-surface relative humidity (for cmip) - + integer @@ -1017,12 +1017,12 @@ id_huss - +diag_manager registered field id near-surface specific humidity (for cmip) - + integer @@ -1030,12 +1030,12 @@ id_psl - +diag_manager registered field id air pressure at sea level (for cmip) - + integer @@ -1043,12 +1043,12 @@ id_rhs - +diag_manager registered field id near-surface relative humidity (for cmip) - + integer @@ -1056,12 +1056,12 @@ id_sfcwind - +diag_manager registered field id near-surface wind speed (for cmip) - + integer @@ -1069,12 +1069,12 @@ id_sftlf - +diag_manager registered field id fraction of the grid cell occupied by land (for cmip) - + integer @@ -1082,12 +1082,12 @@ id_sic - +diag_manager registered field id sea ice area fraction (for cmip) - + integer @@ -1095,12 +1095,12 @@ id_tas - +diag_manager registered field id near-surface air temperature (for cmip) - + integer @@ -1108,12 +1108,12 @@ id_tauu - +diag_manager registered field id surface downward eastward wind stress (for cmip) - + integer @@ -1121,12 +1121,12 @@ id_tauv - +diag_manager registered field id surface downward northward wind stress (for cmip) - + integer @@ -1134,12 +1134,12 @@ id_tos - +diag_manager registered field id sea surface temperature (for cmip) - + integer @@ -1147,12 +1147,12 @@ id_ts - +diag_manager registered field id surface temperature (for cmip) - + integer @@ -1160,12 +1160,12 @@ id_tslsi - +diag_manager registered field id surface temperature on land or sea ice (for cmip) - + integer @@ -1173,12 +1173,12 @@ id_uas - +diag_manager registered field id eastward near-surface wind (for cmip) - + integer @@ -1186,12 +1186,12 @@ id_vas - +diag_manager registered field id northward near-surface wind (for cmip) - + integer @@ -1199,12 +1199,12 @@ id_evspsbl_g - +diag_manager registered field id global integral of water evaporation flux - + integer @@ -1212,20 +1212,7 @@ id_hfls_g - - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_hfss_g - - id_hfss_g - - +diag_manager registered field id global integral of surface upward sensible heat flux @@ -1238,7 +1225,7 @@ id_rls_g - +diag_manager registered field id global integral of near-surface relative humidty @@ -1251,7 +1238,7 @@ id_tas_g - +diag_manager registered field id global integral of near-surface air temperature @@ -1264,7 +1251,7 @@ id_tasl_g - +diag_manager registered field id global integral of near-surface air temperature on land only @@ -1277,7 +1264,7 @@ id_ts_g - +diag_manager registered field id global integral of surface temperature @@ -1296,7 +1283,7 @@ - + logical @@ -1305,12 +1292,12 @@ do_init = .true. - +true if atm_land_ice_flux_exchnge_init has been called - + integer @@ -1319,12 +1306,12 @@ remap_method = 1 - +first or second order conservative remapping onto exchange grid - + real, parameter @@ -1338,7 +1325,7 @@ - + real, parameter @@ -1352,7 +1339,7 @@ - + real, parameter @@ -1366,7 +1353,7 @@ - + real, parameter @@ -1380,7 +1367,7 @@ - + real, dimension(:,:), allocatable @@ -1393,7 +1380,7 @@ - + real @@ -1402,12 +1389,12 @@ z_ref_heat = 2. - +Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml. - + real @@ -1416,26 +1403,12 @@ z_ref_mom = 10. - - - - - - - - - logical - logical atm_land_ice_flux_exchange_mod::do_area_weighted_flux - - do_area_weighted_flux - = .FALSE. - - +Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml. - + logical @@ -1444,7 +1417,7 @@ do_forecast = .false. - +flag to do forecast, defined through flux_exchange_nml @@ -1458,7 +1431,7 @@ nblocks = 1 - +OpenMP number of threads. @@ -1472,7 +1445,7 @@ partition_fprec_from_lprec = .FALSE. - +If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined. @@ -1486,12 +1459,12 @@ scale_precip_2d = .false. - +If true, scale mass of liqud preciptation. - + integer @@ -1500,12 +1473,12 @@ my_nblocks = 1 - +Initializing OpenMP parameter. - + integer, dimension(:), allocatable @@ -1513,12 +1486,12 @@ block_start - +starting do loop indices for OpenMP thread - + integer, dimension(:), allocatable @@ -1526,12 +1499,12 @@ block_end - +ending do loop indices for OpenMP thread - + real, dimension(:), allocatable @@ -1539,12 +1512,12 @@ ex_albedo_fix - +used for albedo correction - + real, dimension(:), allocatable @@ -1552,12 +1525,12 @@ ex_albedo_nir_dif_fix - +used for albedo correction - + real, dimension(:), allocatable @@ -1565,12 +1538,12 @@ ex_albedo_nir_dir_fix - +used for albedo correction - + real, dimension(:), allocatable @@ -1578,12 +1551,12 @@ ex_albedo_vis_dif_fix - +used for albedo correction - + real, dimension(:), allocatable @@ -1591,12 +1564,12 @@ ex_albedo_vis_dir_fix - +used for albedo correction - + real, dimension(:), allocatable @@ -1604,12 +1577,12 @@ ex_b_star - +boyuancy scale on exchange grid - + real, dimension(:), allocatable @@ -1617,12 +1590,12 @@ ex_cd_m - +drag coefficient for momentum on exchange grid - + real, dimension(:), allocatable @@ -1635,7 +1608,7 @@ - + real, dimension(:), allocatable @@ -1643,12 +1616,12 @@ ex_con_atm -deposition velocity at lowest atmospheric level on exchange grid +deposition velocity at lowest atmospheric level on exchange grid on exchange grid - + real, dimension(:), allocatable @@ -1656,12 +1629,12 @@ ex_dedt_surf - +d(water.vap.flux)/d(T canopy) on exchange grid - + real, dimension(:), allocatable @@ -1669,12 +1642,12 @@ ex_dhdt_atm - +d(sens.heat.flux)/d(T atm) on exchange grid - + real, dimension(:), allocatable @@ -1682,12 +1655,12 @@ ex_dhdt_surf - +d(sens.heat.flux)/d(T canopy) on exchange grid - + real, dimension(:), allocatable @@ -1695,12 +1668,12 @@ ex_dqsatdt_surf - +d(water.vap.flux)/d(q canopy) on exchange grid - + real, dimension(:), allocatable @@ -1708,12 +1681,12 @@ ex_drdt_surf - +d(LW flux)/d(T surf) on exchange grid - + real, dimension(:), allocatable @@ -1721,12 +1694,12 @@ ex_dtaudu_atm - +d(stress)/d(u) on exchange grid - + real, dimension(:), allocatable @@ -1734,12 +1707,12 @@ ex_dtaudv_atm - +d(stress)/d(v) on exchange grid - + real, dimension(:), allocatable @@ -1747,12 +1720,12 @@ ex_e_q_n - +dt/mass * dedet_surf * gamma on exchange grid - + real, dimension(:), allocatable @@ -1760,12 +1733,12 @@ ex_flux_lw - +longwave radiation flux on exchange grid - + real, dimension(:), allocatable @@ -1773,12 +1746,12 @@ ex_flux_t - +sensible heat flux on exchange grid - + real, dimension(:), allocatable @@ -1786,12 +1759,12 @@ ex_flux_u - +u stress on atmosphere on exchange grid - + real, dimension(:), allocatable @@ -1799,12 +1772,12 @@ ex_flux_v - +v stress on atmosphere on exchange grid - + real, dimension(:), allocatable @@ -1812,12 +1785,12 @@ ex_old_albedo - +old value of albedo for downward flux calculations, used for albedo correction - + real, dimension(:), allocatable @@ -1825,12 +1798,12 @@ ex_p_surf - +surface pressure on exchange grid - + real, dimension(:), allocatable @@ -1838,12 +1811,12 @@ ex_seawater - +mask array of seaice fractions on exchange grid - + real, dimension(:), allocatable @@ -1851,12 +1824,12 @@ ex_slp - +surface pressure on exchange grid - + real, dimension(:), allocatable @@ -1864,12 +1837,12 @@ ex_t_ca - +near-surface (canopy) air temperature on exchange grid [K] - + real, dimension(:), allocatable @@ -1877,12 +1850,12 @@ ex_t_surf - +surface temperature for radiation calc on exchange grid [K] - + real, dimension(:), allocatable @@ -1890,12 +1863,12 @@ ex_t_surf_miz -miz NEED HELP +used when do_forecast = .true. - + real, dimension(:), allocatable @@ -1903,12 +1876,12 @@ ex_u_star - +friction velocity on exchange grid - + real, dimension(:), allocatable @@ -1916,12 +1889,12 @@ ex_wind - +wind speed on exchange grid - + real, dimension(:), allocatable @@ -1929,12 +1902,51 @@ ex_z_atm +height of lowest atmospheric level on exchange grid + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf_forland + + ex_dhdt_surf_forland + - + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf_forland + + ex_dedt_surf_forland + + + + + + + + + + real, dimension(:), allocatable + real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedq_surf_forland + + ex_dedq_surf_forland + + + + + + + real, dimension(:,:), allocatable @@ -1942,12 +1954,12 @@ ex_dfdtr_atm -d(tracer flux)/d(atm tracer) +d(tracer flux)/d(atm tracer) on exchange grid - + real, dimension(:,:), allocatable @@ -1955,12 +1967,12 @@ ex_dfdtr_surf -d(tracer flux)/d(surf tracer) +d(tracer flux)/d(surf tracer) on exchange grid - + real, dimension(:,:), allocatable @@ -1968,12 +1980,12 @@ ex_e_tr_n -coefficient in implicit scheme +coefficient in implicit scheme on exchange grid - + real, dimension(:,:), allocatable @@ -1981,12 +1993,12 @@ ex_f_tr_delt_n -coefficient in implicit scheme +coefficient in implicit scheme on exchange grid - + real, dimension(:,:), allocatable @@ -1994,12 +2006,12 @@ ex_flux_tr -tracer fluxes +tracer fluxes on exchange grid - + real, dimension(:,:), allocatable @@ -2007,12 +2019,12 @@ ex_tr_con_ref -deposition velocity at reference height +deposition velocity at reference height on exchange grid - + real, dimension(:,:), allocatable @@ -2020,12 +2032,12 @@ ex_tr_con_atm -deposition velocity at atmospheric height +deposition velocity at atmospheric height on exchange grid - + real, dimension(:,:), allocatable @@ -2033,12 +2045,12 @@ ex_tr_surf -near-surface tracer fields +near-surface tracer fields on exchange grid - + logical, dimension(:), allocatable @@ -2046,12 +2058,12 @@ ex_avail -true where data on exchange grid are available +mask where true if data on exchange grid are available - + logical, dimension(:), allocatable @@ -2059,12 +2071,12 @@ ex_land -true if exchange grid cell is over land +mask where true if exchange grid cell is over land - + real, dimension(:), allocatable @@ -2077,7 +2089,7 @@ - + real, dimension(:), allocatable @@ -2090,7 +2102,7 @@ - + integer @@ -2103,7 +2115,7 @@ - + integer @@ -2111,12 +2123,12 @@ n_atm_tr_tot -number of prognostic tracers in the atmos model +number of tracers in the atmos model - + integer @@ -2129,7 +2141,7 @@ - + integer @@ -2137,12 +2149,12 @@ n_lnd_tr_tot -number of prognostic tracers in the land model +number of tracers in the land model - + integer @@ -2155,7 +2167,7 @@ - + integer @@ -2163,12 +2175,12 @@ n_gex_atm2lnd -number of gex fields exchanged between land and atmosphere +number of generic exchange fields exchanged from atmospehre to land - + integer @@ -2176,12 +2188,12 @@ n_gex_lnd2atm -number of gex fields exchanged between atmosphere and land +number of generic exchange fields exchanged from land to atmosphere - + type(tracer_ind_type), dimension(:), allocatable @@ -2194,7 +2206,7 @@ - + type(tracer_exch_ind_type), dimension(:), allocatable @@ -2202,12 +2214,12 @@ tr_table_map -map atm tracers to exchange, ice and land variables +holds tracer id in atm, ice, and land models - + integer @@ -2221,7 +2233,7 @@ - + integer @@ -2235,7 +2247,7 @@ - + integer @@ -2249,7 +2261,7 @@ - + type(fmscoupler1dbc_type), pointer @@ -2258,12 +2270,12 @@ ex_gas_fields_atm =>NULL() -gas fields in atm place holder for various atmospheric fields. +pointer to gas fields in atm, place holder for various atmospheric fields. - + type(fmscoupler1dbc_type), pointer @@ -2272,12 +2284,12 @@ ex_gas_fields_ice =>NULL() -gas fields on ice +pointer to gas fields on ice - + type(fmscoupler1dbc_type), pointer @@ -2286,12 +2298,12 @@ ex_gas_fluxes =>NULL() -gas flux place holder of intermediate calculations, such as piston velocities etc. +pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. - + integer, parameter @@ -2300,12 +2312,12 @@ regrid =1 -grids are physically different, pass via exchange grid +flag to indicate component grids for flux exchange are different, - + integer, parameter @@ -2314,12 +2326,12 @@ redist =2 -same physical grid, different decomposition, must move data around +component grid for flux exchange are identical but are decomposed differently, - + integer, parameter @@ -2328,12 +2340,12 @@ redirect =3 -same physical grid, same domain decomposition, can directly copy data +component grid for flux exchange are identical with same domain decomposition, - + integer @@ -2341,12 +2353,12 @@ cplclock - +FMS clock to profile general processes. - + integer @@ -2359,7 +2371,7 @@ - + integer @@ -2372,7 +2384,7 @@ - + integer @@ -2385,7 +2397,7 @@ - + integer @@ -2398,7 +2410,7 @@ - + integer @@ -2411,7 +2423,7 @@ - + integer @@ -2424,7 +2436,7 @@ - + integer @@ -2437,7 +2449,7 @@ - + real @@ -2445,51 +2457,25 @@ dt_atm - - - - - - - - - real - real atm_land_ice_flux_exchange_mod::atmospheric - - atmospheric - - - - - - - - - - real - real atm_land_ice_flux_exchange_mod::timestep - - timestep - - +atmospheric timestep [s] - + - + real - real atm_land_ice_flux_exchange_mod::s + real atm_land_ice_flux_exchange_mod::dt_cpl - s + dt_cpl coupled timestep [s] - + integer @@ -2502,7 +2488,7 @@ - + integer @@ -2515,7 +2501,7 @@ - + integer @@ -2529,7 +2515,7 @@ - + integer @@ -2543,7 +2529,7 @@ - + integer @@ -2557,7 +2543,7 @@ - + integer @@ -2571,7 +2557,7 @@ - + integer @@ -2585,7 +2571,7 @@ - + @@ -2810,7 +2796,7 @@ INITIALIZE MODULE LEVEL VARIABLESGET FILE UNIT FOR STDOUT AND STDLOGFROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LANDASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERSGET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND HELP: WHAT IS GENERIC EXCHANGE?SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFERGET THE TRACER INDEX OF SPECIFIC HUMIDITYINITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUESET UP THE EXCHANGE GRIDINITIALIZE SURFACE_FLUXINITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGERGET THE SIZE OF THE ATM GRIDALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZEROALLOCATE FIELDS FOR EXTRA FLUXESALLOCATE LAND_ICE_ATMOS_BOUNDARYALLOCATE FIELDS FOR EXTRA TRACERSGET DIMENSION OF THE DECOMPOSED ICE DOMAINGET DIMENSION OF THE DECOMPOSED LAND DOMAININITIALIZE CLOCKS FOR PROFILING - + subroutine, public @@ -2901,7 +2887,7 @@ Initialize clocks for profilingALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOSALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARYALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHREALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDSSET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDSOVERRIDE ATM ATMT_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLECONVERT CO2 TRACER UNITS to WET_MMR UNITSOVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLEOVERRIDE ICET_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. OVERRIDE LANDT_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLEMAP ATM FIELDS ONTO THE EXCHANGE GRIDINITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYERMAP ICE FIELDS ONTO THE EXCHANGE GRIDGENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRIDINITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRIDMAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRIDCALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRIDCOMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRIDCALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRIDCOMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRIDCOMPUTE EXPLICIT OCEAN FLUXESOVERRIDE LAND AND ICE TRACER FLUXES DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLECOMPUTE T_SURF**4 - + subroutine, public @@ -2970,7 +2956,7 @@ start clocks for profilinginitialize reusable flag. data_override will return ov=.true. if data was overwrittenupdate Atm fields with override values. Note, data_override will only overwrite data if the field is specified in the data_tablescale liquid precipitation by frac_precip if scale_precip_2d is true scale_precip_2d is set during module initialization call to atm_land_ice_flux_exchange_init frac_precip is set with data_overridepartition preciptation to liquid precipitation and frozen precipitation if partition_fprec_from_lprec = .true. partiion_fprec_from_lprec is set as part of module initialization call in atm_land_ice_flux_exchange Note, the partitioning only occurs on mpi ranks for atmosphereupdate more Atm fields with override values. Note, data_override will only overwriteMap atmosphere quantities onto the exchange grid in order to exchange quantities with other componentsupdate u and v stress on the exchange gridfix shortwave radiation flux of visible light on the exchange gridAdjust fluxes for implicit dependence (TOM HELP, this sounds awkward)map fluxes from the exchange grid to the land gridoverride land fluxes only if the field is specified in the data_tableMap ice fields from the exchange grid to the Ice gridoverride Ice fields only if the field is specified in the data tableCompute stock changes between componentssend data to diag_manager buffer where if the field is specified in the diag_table, data will be outputted at the end of the simulationend clock for profiling - + subroutine, public @@ -3006,7 +2992,7 @@ update fractional areas of ice and land on the exchange gridreset the number of exchange grid cells saved in the module - + subroutine, public @@ -3091,7 +3077,7 @@ override Ice and Land temperature fields. Note, data_override will only overwrite data if the field is specified in the data_tableCOMPUTE CHANGE IN SURFACE TEMPERATUREUPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATUREUPDATE TRACER TENDENCIES IN THE ATMOSPHEREMAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRIDSEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUNCOMPUTE STOCK EXCHANGE BETWEEN COMPONENTS - + subroutine, public @@ -3104,7 +3090,7 @@ - + subroutine, public @@ -3155,7 +3141,7 @@ MAP ATMOSPHERE FIELDS TO THE EXCHANGE MAP FOR FLUX EXCHANGE WITH OCEANCALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRIDMAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRIDUPDATE AIR_SEA_DEPOSITION FLUXES - + subroutine @@ -3199,7 +3185,7 @@ - + subroutine @@ -3243,7 +3229,7 @@ - + subroutine @@ -3272,7 +3258,7 @@ Convert diagnostic labels from integers to strings - + subroutine @@ -3293,7 +3279,7 @@ check the size of data and area are the samedivide data in each grid cell by grid cell area - + subroutine, public @@ -3322,7 +3308,7 @@ remap ice_mask (fractional amount of sea ice) to the atm gridsend ice_mask to diag_manager buffer compute sea ice area fraction for cells on atm grid that are over ocean normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean - + subroutine, public @@ -3358,7 +3344,7 @@ - + diff --git a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml index e6de21ca..0bf246c9 100644 --- a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml +++ b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml @@ -15,7 +15,7 @@ - + integer @@ -29,7 +29,7 @@ - + integer @@ -43,14 +43,14 @@ - + - + atm_land_ice_flux_exchange_mod::tracer_exch_ind_typeexch atm_land_ice_flux_exchange_mod::tracer_exch_ind_typeice diff --git a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml index 27225e7b..c22ad6b2 100644 --- a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml +++ b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml @@ -14,7 +14,7 @@ - + integer @@ -27,7 +27,7 @@ - + integer @@ -40,14 +40,14 @@ - + - + atm_land_ice_flux_exchange_mod::tracer_ind_typeatm atm_land_ice_flux_exchange_mod::tracer_ind_typeice diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index a8e38e3a..7d0955c8 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -188,118 +188,117 @@ module atm_land_ice_flux_exchange_mod character(len=4), parameter :: mod_name = 'flux' !< module name used to register diag_manager - ! returned ids from registering diagnostic field with diag_manager integer :: & - id_b_star, & ! bouyancy scale - id_del_h, & ! ref height interp factor for heat - id_del_m, & ! ref height for interp factor for momentum - id_del_q, & ! ref height interp factor for moisture - id_drag_heat, & ! drag coefficient for heat - id_drag_moist, & ! drag coefficient for moisture - id_drag_mom, & ! drag coefficient for momentum - id_gust, & ! gust scale - id_hussLut_land, & ! near-surface specific humidity on land use tile - id_ice_mask, & ! fractional amount of land - id_land_mask, & ! fractional amount of sea ice - id_p_atm, & ! pressure at lowest atmospheric level - id_q_flux, & ! evaporation rate - id_q_flux_land, & ! evaporation rate over land - id_q_ref, & !specific humidity at z_ref_heat - id_q_ref_land, & ! specific humidity at z_ref_heat over land - id_q_star, & ! moisture scale - id_r_flux, & ! net (down-up) longwave flux - id_rh_ref, & ! relative humidity at z_ref_heat - id_rh_ref_cmip, & ! relative humidity at z_ref_heat - id_rh_ref_land, & ! relative humidity at z_ref_heat over land - id_rough_heat, & !surface roughness for heat - id_rough_moist, & ! surface roughness for moisture - id_rough_mom, & ! surface roughness for momentum - id_rough_scale, & ! topographic scaling fractor for momentum drag - id_slp, & ! sea level pressure - id_t_atm, & ! temperature at lowest atmospheric level - id_t_ca, & ! canopy air temperature - id_t_flux, & !sensible heat flux - id_t_ocean, & ! surface temperature from ocean output - id_t_ref, & ! temperature at z_ref_heat - id_t_ref_land, & !temperature at z_ref_heat over land - id_t_surf, & ! surface temperature - id_tasLut_land, & ! near-surface air temperature z_ref_heat above displacement height on land-use tile - id_thv_atm, & ! surface air virtual potential temperature - id_thv_surf, & ! surface virtual potential temperature - id_u_atm, & ! u wind component at lowest atmospheric level - id_u_flux, & ! zonal wind stress - id_u_ref, & ! zonal wind component at z_ref_mom - id_u_ref_land, & ! zonal wind component at z_ref_mom over land - id_u_star, & ! friction velocity - id_v_atm, & ! v wind component at lowest atmospheric level - id_v_flux, & ! meridional wind stress - id_v_ref, & ! meridional wind component at z_ref_mom - id_v_ref_land, & ! meridional wind component at z_ref_mom over land - id_wind, & ! wind speed for flux calculations - id_wind_ref, & ! absolute value of wind at z_ref_mom - id_z_atm, & ! height of lowest atmospheric level - id_co2_atm_dvmr, & ! co2 dry volume mixing ratio at lowest atmospheric level - id_co2_surf_dvmr & ! c02 dry volume mixing ratio at surface + id_b_star, & !< diag_manager registered field id for bouyancy scale + id_del_h, & !< diag_manager registered field id ref height interp factor for heat + id_del_m, & !< diag_manager registered field id ref height for interp factor for momentum + id_del_q, & !< diag_manager registered field id ref height interp factor for moisture + id_drag_heat, & !< diag_manager registered field id drag coefficient for heat + id_drag_moist, & !< diag_manager registered field id drag coefficient for moisture + id_drag_mom, & !< diag_manager registered field id drag coefficient for momentum + id_gust, & !< diag_manager registered field id gust scale + id_hussLut_land, & !< diag_manager registered field id near-surface specific humidity on land use tile + id_ice_mask, & !< diag_manager registered field id fractional amount of land + id_land_mask, & !< diag_manager registered field id fractional amount of sea ice + id_p_atm, & !< diag_manager registered field id pressure at lowest atmospheric level + id_q_flux, & !< diag_manager registered field id evaporation rate + id_q_flux_land, & !< diag_manager registered field id evaporation rate over land + id_q_ref, & !< diag_manager registered field id specific humidity at z_ref_heat + id_q_ref_land, & !< diag_manager registered field id specific humidity at z_ref_heat over land + id_q_star, & !< diag_manager registered field id moisture scale + id_r_flux, & !< diag_manager registered field id net (down-up) longwave flux + id_rh_ref, & !< diag_manager registered field id relative humidity at z_ref_heat + id_rh_ref_cmip, & !< diag_manager registered field id relative humidity at z_ref_heat + id_rh_ref_land, & !< diag_manager registered field id relative humidity at z_ref_heat over land + id_rough_heat, & !< diag_manager registered field id surface roughness for heat + id_rough_moist, & !< diag_manager registered field id surface roughness for moisture + id_rough_mom, & !< diag_manager registered field id surface roughness for momentum + id_rough_scale, & !< diag_manager registered field id topographic scaling fractor for momentum drag + id_slp, & !< diag_manager registered field id sea level pressure + id_t_atm, & !< diag_manager registered field id temperature at lowest atmospheric level + id_t_ca, & !< diag_manager registered field id canopy air temperature + id_t_flux, & !< diag_manager registered field id sensible heat flux + id_t_ocean, & !< diag_manager registered field id surface temperature from ocean output + id_t_ref, & !< diag_manager registered field id temperature at z_ref_heat + id_t_ref_land, & !< diag_manager registered field id temperature at z_ref_heat over land + id_t_surf, & !< diag_manager registered field id surface temperature + id_tasLut_land, & !< diag_manager registered field id near-surface air temperature z_ref_heat + !! above displacement height on land-use tile + id_thv_atm, & !< diag_manager registered field id surface air virtual potential temperature + id_thv_surf, & !< diag_manager registered field id surface virtual potential temperature + id_u_atm, & !< diag_manager registered field id u wind component at lowest atmospheric level + id_u_flux, & !< diag_manager registered field id zonal wind stress + id_u_ref, & !< diag_manager registered field id zonal wind component at z_ref_mom + id_u_ref_land, & !< diag_manager registered field id zonal wind component at z_ref_mom over land + id_u_star, & ! diag_manager registered field id friction velocity + id_v_atm, & !< diag_manager registered field id v wind component at lowest atmospheric level + id_v_flux, & !< diag_manager registered field id meridional wind stress + id_v_ref, & !< diag_manager registered field id meridional wind component at z_ref_mom + id_v_ref_land, & !< diag_manager registered field id meridional wind component at z_ref_mom over land + id_wind, & !< diag_manager registered field id wind speed for flux calculations + id_wind_ref, & !< diag_manager registered field id absolute value of wind at z_ref_mom + id_z_atm, & !< diag_manager registered field id height of lowest atmospheric level + id_co2_atm_dvmr, & !< diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level + id_co2_surf_dvmr & !< diag_manager registered field id co2 dry volume mixing ratio at surface ! 2017/08/15 jgj added - id_co2_bot, & ! concentration of co2 to be passed to land/photosynthesis - id_co2_flux_pcair_atm, & ! concentration of co2 to be passed to ocean NEED HELP - id_o2_flux_pcair_atm ! concentration of o2 to be passed to to ocean NEED HELP + id_co2_bot, & !< diag_manager registered field id concentration of co2 to be passed to land/photosynthesis + id_co2_flux_pcair_atm, & !< diag_manager registered field id concentration of co2 to be passed to ocean + id_o2_flux_pcair_atm !< diag_manager registered field id concentration of o2 to be passed to to ocean - ! arrays for holding ids returned from registering diag_fields with diag_manager for tracers integer, allocatable :: & - id_tr_atm(:), & ! value of tracer at lowest atmospheric level NEED HELP - id_tr_surf(:), & ! value of tracer at surface NEED HELP - id_tr_flux(:), & ! tracer fluxes - id_tr_mol_flux(:), & ! flux of co2 concentration in [mol/m2*s] - id_tr_ref(:), & ! value of tracer at z_ref_heat - id_tr_ref_land(:), & ! tracer flux at z_ref_heat over land NEED HELP + id_tr_atm(:), & !< diag_manager registered field id value of tracer at lowest atmospheric level + id_tr_surf(:), & !< diag_manager registered field id value of tracer at surface + id_tr_flux(:), & !< diag_manager registered field id tracer fluxes + id_tr_mol_flux(:), & !< diag_manager registered field id flux of co2 concentration in [mol/m2*s] + id_tr_ref(:), & !< diag_manager registered field id value of tracer at z_ref_heat + id_tr_ref_land(:), & !< diag_manager registered field id tracer flux at z_ref_heat over land !f1p - id_tr_mol_flux0(:), & ! gross flux of tracer concentration over land in [mol/m2*s] - id_tr_flux_land(:), & ! flux of tracer concentration over land in [kg/m2*s] - id_tr_mol_flux_land(:), & ! flux of tracer concentration over land in [mol/m2*s] + id_tr_mol_flux0(:), & !< diag_manager registered field id + !! gross flux of tracer concentration over land in [mol/m2*s] + id_tr_flux_land(:), & !< diag_manager registered field id flux of tracer concentration over land in [kg/m2*s] + id_tr_mol_flux_land(:), & !< diag_manager registered field id flux of + !! tracer concentration over land in [mol/m2*s] ! used with _USE_LEGACY_LAND_ - id_tr_con_atm(:), & ! deposition velocity at lowest atmospheric level (atm) - id_tr_con_atm_land(:), & ! deposition velocity at lowest atmospheric level over land - id_tr_con_ref(:), & ! deposition velocity at reference height (atm) - id_tr_con_ref_land(:) ! deposition velocity at reference height over land + id_tr_con_atm(:), & !< diag_manager registered field id deposition velocity at lowest atmospheric level (atm) + id_tr_con_atm_land(:), & !< diag_manager registered field id + !! deposition velocity at lowest atmospheric level over land + id_tr_con_ref(:), & !< diag_manager registered field id deposition velocity at reference height (atm) + id_tr_con_ref_land(:) !< diag_manager registered field id deposition velocity at reference height over land - ! id's for cmip specific fields integer :: & - id_evspsbl, & ! water evaporation flux - id_height10m, & ! near surface height - id_height2m, & ! near surface height - id_hfls, & ! surface upward latent heat flux - id_hfss, & ! surface upward sensible heat flux - id_hurs, & ! near-surface relative humidty - id_huss, & ! near-surface specific humidity - id_psl, & ! air pressure at sea level - id_rhs, & ! near-surface relative humidty - id_sfcWind, & ! near-surface wind speed - id_sftlf, & ! fraction of the grid cell occupied by land - id_sic, & ! sea ice area fraction - id_tas, & ! near-surface air temperature - id_tauu, & ! surface downward eastward wind stress - id_tauv, & ! surface downward northward wind stress - id_tos, & ! sea surface temperature - id_ts, & ! surface temperature - id_tslsi, & ! surface temperature on land or sea ice - id_uas, & ! eastward near-surface wind - id_vas !northward near-surface wind - - ! globally averaged diagnostics + id_evspsbl, & !< diag_manager registered field id water evaporation flux (for cmip) + id_height10m, & !< diag_manager registered field id near surface height (for cmip) + id_height2m, & !< diag_manager registered field id near surface height (for cmip) + id_hfls, & !< diag_manager registered field id surface upward latent heat flux (for cmip) + id_hfss, & !< diag_manager registered field id surface upward sensible heat flux (for cmip) + id_hurs, & !< diag_manager registered field id near-surface relative humidity (for cmip) + id_huss, & !< diag_manager registered field id near-surface specific humidity (for cmip) + id_psl, & !< diag_manager registered field id air pressure at sea level (for cmip) + id_rhs, & !< diag_manager registered field id near-surface relative humidity (for cmip) + id_sfcWind, & !< diag_manager registered field id near-surface wind speed (for cmip) + id_sftlf, & !< diag_manager registered field id fraction of the grid cell occupied by land (for cmip) + id_sic, & !< diag_manager registered field id sea ice area fraction (for cmip) + id_tas, & !< diag_manager registered field id near-surface air temperature (for cmip) + id_tauu, & !< diag_manager registered field id surface downward eastward wind stress (for cmip) + id_tauv, & !< diag_manager registered field id surface downward northward wind stress (for cmip) + id_tos, & !< diag_manager registered field id sea surface temperature (for cmip) + id_ts, & !< diag_manager registered field id surface temperature (for cmip) + id_tslsi, & !< diag_manager registered field id surface temperature on land or sea ice (for cmip) + id_uas, & !< diag_manager registered field id eastward near-surface wind (for cmip) + id_vas !< diag_manager registered field id northward near-surface wind (for cmip) + integer :: & - id_evspsbl_g, & ! global integral of water evaporation flux - id_hfls_g, & ! global integral of surface upward latent heat flux - id_hfss_g, & ! global integral of surface upward sensible heat flux - id_rls_g, & ! global integral of near-surface relative humidty - id_tas_g, & ! global integral of near-surface air temperature - id_tasl_g, & ! global integral of near-surface air temperature on land only - id_ts_g ! global integral of surface temperature + id_evspsbl_g, & !< diag_manager registered field id global integral of water evaporation flux + id_hfls_g, & !< diag_manager registered field id global integral of surface upward sensible heat flux + id_rls_g, & !< diag_manager registered field id global integral of near-surface relative humidty + id_tas_g, & !< diag_manager registered field id global integral of near-surface air temperature + id_tasl_g, & !< diag_manager registered field id global integral of near-surface air temperature on land only + id_ts_g !< diag_manager registered field id global integral of surface temperature logical :: first_static = .true. !< If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer - logical :: do_init = .true. ! true if atm_land_ice_flux_exchnge_init has been called - integer :: remap_method = 1 ! first or second order conservative remapping onto exchange grid + logical :: do_init = .true. !< true if atm_land_ice_flux_exchnge_init has been called + integer :: remap_method = 1 !< first or second order conservative remapping onto exchange grid real, parameter :: d622 = rdgas/rvgas real, parameter :: d378 = 1.0-d622 @@ -307,58 +306,58 @@ module atm_land_ice_flux_exchange_mod real, parameter :: tfreeze = 273.15 !< freezing point of water at 1 atm [K] real, allocatable, dimension(:,:) :: frac_precip - !--- the following is from flux_exchange_nml real :: z_ref_heat = 2. - ! Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q + !< Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q + !! defined through flux_exchange_nml real :: z_ref_mom = 10. - ! Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m + !< Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m + !! defined through flux_exchange_nml + - logical :: do_area_weighted_flux = .FALSE. ! NOT USED DELETE - logical :: do_forecast = .false. ! NEED HELP - integer :: nblocks = 1 !OpenMP number of threads - logical :: partition_fprec_from_lprec = .FALSE. - ! If true, convert liquid precip to snow when t_ref < tfreeze - ! Used for atm override experiments where liquid and frozen precip are combined - logical :: scale_precip_2d = .false. ! If true, scale mass of liqud preciptation + logical :: do_forecast = .false. !< flag to do forecast, defined through flux_exchange_nml + integer :: nblocks = 1 !< OpenMP number of threads + logical :: partition_fprec_from_lprec = .FALSE. !< If true, convert liquid precip to snow when t_ref < tfreeze + !! Used for atm override experiments where liquid and frozen precip are combined + logical :: scale_precip_2d = .false. !< If true, scale mass of liqud preciptation - integer :: my_nblocks = 1 ! Initializing OpenMP parameter + integer :: my_nblocks = 1 !< Initializing OpenMP parameter integer, allocatable :: & - block_start(:), & ! starting do loop indices for OpenMP thread - block_end(:) ! ending do loop indices for OpenMP thread + block_start(:), & !< starting do loop indices for OpenMP thread + block_end(:) !< ending do loop indices for OpenMP thread real, allocatable, dimension(:) :: & ! NOTE: T canopy is only differet from t_surf over vegetated land - ex_albedo_fix, & ! - ex_albedo_nir_dif_fix, & ! - ex_albedo_nir_dir_fix, & ! - ex_albedo_vis_dif_fix, & ! - ex_albedo_vis_dir_fix, & ! - ex_b_star, & ! boyuancy scale on exchange grid - ex_cd_m, & ! drag coefficient for momentum on exchange grid - ex_cd_t, & !< drag coefficient for heat on exchange grid - ex_con_atm, & !< deposition velocity at lowest atmospheric level on exchange grid - ex_dedt_surf, & ! d(water.vap.flux)/d(T canopy) - ex_dhdt_atm, & ! d(sens.heat.flux)/d(T atm) - ex_dhdt_surf, & ! d(sens.heat.flux)/d(T canopy) - ex_dqsatdt_surf, & ! d(water.vap.flux)/d(q canopy) - ex_drdt_surf, & ! d(LW flux)/d(T surf) - ex_dtaudu_atm, & ! d(stress)/d(u) - ex_dtaudv_atm, & ! d(stress)/d(v) - ex_e_q_n, & ! dt/mass * dedet_surf * gamma - ex_flux_lw, & ! longwave radiation flux - ex_flux_t, & ! sens heat flux - ex_flux_u, & ! u stress on atmosphere - ex_flux_v, & ! v stress on atmosphere - ex_old_albedo, & ! old value of albedo for downward flux calculations - ex_p_surf, & ! surface pressure on exchange grid - ex_seawater, & ! mask array of seaice fractions - ex_slp, & ! surface pressure on exchange grid - ex_t_ca, & ! near-surface (canopy) air temperature on exchange grid [K] - ex_t_surf, & ! surface temperature for radiation calc on exchange grid [K] - ex_t_surf_miz, & !< miz NEED HELP - ex_u_star, & ! friction velocity on exchange grid - ex_wind, & ! wind speed on exchange grid - ex_z_atm ! height of lowest atmospheric level on exchange grid + ex_albedo_fix, & !< used for albedo correction + ex_albedo_nir_dif_fix, & !< used for albedo correction + ex_albedo_nir_dir_fix, & !< used for albedo correction + ex_albedo_vis_dif_fix, & !< used for albedo correction + ex_albedo_vis_dir_fix, & !< used for albedo correction + ex_b_star, & !< boyuancy scale on exchange grid + ex_cd_m, & !< drag coefficient for momentum on exchange grid + ex_cd_t, & !< drag coefficient for heat on exchange grid + ex_con_atm, & !< deposition velocity at lowest atmospheric level on exchange grid on exchange grid + ex_dedt_surf, & !< d(water.vap.flux)/d(T canopy) on exchange grid + ex_dhdt_atm, & !< d(sens.heat.flux)/d(T atm) on exchange grid + ex_dhdt_surf, & !< d(sens.heat.flux)/d(T canopy) on exchange grid + ex_dqsatdt_surf, & !< d(water.vap.flux)/d(q canopy) on exchange grid + ex_drdt_surf, & !< d(LW flux)/d(T surf) on exchange grid + ex_dtaudu_atm, & !< d(stress)/d(u) on exchange grid + ex_dtaudv_atm, & !< d(stress)/d(v) on exchange grid + ex_e_q_n, & !< dt/mass * dedet_surf * gamma on exchange grid + ex_flux_lw, & !< longwave radiation flux on exchange grid + ex_flux_t, & !< sensible heat flux on exchange grid + ex_flux_u, & !< u stress on atmosphere on exchange grid + ex_flux_v, & !< v stress on atmosphere on exchange grid + ex_old_albedo, & !< old value of albedo for downward flux calculations, used for albedo correction + ex_p_surf, & !< surface pressure on exchange grid + ex_seawater, & !< mask array of seaice fractions on exchange grid + ex_slp, & !< surface pressure on exchange grid + ex_t_ca, & !< near-surface (canopy) air temperature on exchange grid [K] + ex_t_surf, & !< surface temperature for radiation calc on exchange grid [K] + ex_t_surf_miz, & !< used when do_forecast = .true. + ex_u_star, & !< friction velocity on exchange grid + ex_wind, & !< wind speed on exchange grid + ex_z_atm !< height of lowest atmospheric level on exchange grid #ifdef SCM real, allocatable, dimension(:) :: & @@ -368,29 +367,29 @@ module atm_land_ice_flux_exchange_mod #endif real, allocatable, dimension(:,:) :: & - ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) - ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) - ex_e_tr_n, & !< coefficient in implicit scheme - ex_f_tr_delt_n, & !< coefficient in implicit scheme - ex_flux_tr, & !< tracer fluxes - ex_tr_con_ref, & !< deposition velocity at reference height - ex_tr_con_atm, & !< deposition velocity at atmospheric height - ex_tr_surf !< near-surface tracer fields + ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) on exchange grid + ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) on exchange grid + ex_e_tr_n, & !< coefficient in implicit scheme on exchange grid + ex_f_tr_delt_n, & !< coefficient in implicit scheme on exchange grid + ex_flux_tr, & !< tracer fluxes on exchange grid + ex_tr_con_ref, & !< deposition velocity at reference height on exchange grid + ex_tr_con_atm, & !< deposition velocity at atmospheric height on exchange grid + ex_tr_surf !< near-surface tracer fields on exchange grid logical, allocatable, dimension(:) :: & - ex_avail, & !< true where data on exchange grid are available - ex_land !< true if exchange grid cell is over land + ex_avail, & !< mask where true if data on exchange grid are available + ex_land !< mask where true if exchange grid cell is over land real, allocatable, dimension(:) :: & ex_e_t_n, & ex_f_t_delt_n integer :: n_atm_tr !< number of prognostic tracers in the atmos model - integer :: n_atm_tr_tot !< number of prognostic tracers in the atmos model + integer :: n_atm_tr_tot !< number of tracers in the atmos model integer :: n_lnd_tr !< number of prognostic tracers in the land model - integer :: n_lnd_tr_tot !< number of prognostic tracers in the land model + integer :: n_lnd_tr_tot !< number of tracers in the land model integer :: n_exch_tr !< number of tracers exchanged between models - integer :: n_gex_atm2lnd !< number of gex fields exchanged between land and atmosphere - integer :: n_gex_lnd2atm !< number of gex fields exchanged between atmosphere and land + integer :: n_gex_atm2lnd !< number of generic exchange fields exchanged from atmospehre to land + integer :: n_gex_lnd2atm !< number of generic exchange fields exchanged from land to atmosphere type :: tracer_ind_type integer :: atm !< tracer index in atm model @@ -405,29 +404,32 @@ module atm_land_ice_flux_exchange_mod integer :: lnd = 0 !< land model index end type tracer_exch_ind_type - type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< map atm tracers to exchange, ice and land variables + type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< holds tracer id in atm, ice, and land models integer :: isphum = NO_TRACER !< tracer index for specific humidity - integer :: ico2 = NO_TRACER !< tracer index for co2 - integer :: inh3 = NO_TRACER !< tracer index for nh3 + integer :: ico2 = NO_TRACER !< tracer index for co2 + integer :: inh3 = NO_TRACER !< tracer index for nh3 type(fmscoupler1dbc_type), pointer :: ex_gas_fields_atm=>NULL() - !< gas fields in atm place holder for various atmospheric fields. + !< pointer to gas fields in atm, place holder for various atmospheric fields. type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() - !< gas fields on ice + !< pointer to gas fields on ice type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() - !< gas flux place holder of intermediate calculations, such as piston velocities etc. + !< pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. !real, dimension(3) :: ccc !< for conservation checks !balaji, sets boundary_type%xtype integer, parameter :: & - regrid=1, & !< grids are physically different, pass via exchange grid - redist=2, & !< same physical grid, different decomposition, must move data around - redirect=3 !< same physical grid, same domain decomposition, can directly copy data + regrid=1, & !< flag to indicate component grids for flux exchange are different, + !! exchange data via the exchange grid + redist=2, & !< component grid for flux exchange are identical but are decomposed differently, + !! exchange data by "moving it around" + redirect=3 !< component grid for flux exchange are identical with same domain decomposition, + !! exchange data by copying integer :: & - cplClock, & + cplClock, & !< FMS clock to profile general processes sfcClock, & !< FMS clock id to profile sfc_boundary_layer fluxAtmDnClock, & !< FMS clock id to profile flux down from atmosphere regenClock, & !< FMS clock to profile exchange grid generation @@ -439,7 +441,7 @@ module atm_land_ice_flux_exchange_mod X1_GRID_LND !< =3 exchange grid index for xgrid_stock_move real :: & - Dt_atm, & < atmospheric timestep [s] + Dt_atm, & !< atmospheric timestep [s] Dt_cpl !< coupled timestep [s] integer :: & From 8942526a9d1a8fa84bc2e2715470920fa8571758 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Thu, 26 Feb 2026 14:07:13 -0500 Subject: [PATCH 22/31] updated doc --- docs/html/_formulas.tex | 65 - .../_s_hi_e_l_d_2coupler__main_8_f90.html | 186 - docs/html/annotated.html | 94 - .../atm__land__ice__flux__exchange_8_f90.html | 826 --- ...atmos__ocean__dep__fluxes__calc_8_f90.html | 107 - .../atmos__ocean__fluxes__calc_8_f90.html | 133 - docs/html/bc_s.png | Bin 676 -> 0 bytes docs/html/bdwn.png | Bin 147 -> 0 bytes docs/html/classes.html | 94 - docs/html/closed.png | Bin 132 -> 0 bytes docs/html/coupler_config.html | 134 - .../dir_9982052f7ce695d12571567315b2fafa.html | 88 - .../dir_d31ef39e894be3975a1de5d6a46d3717.html | 88 - .../dir_ec0543676189fadf8843b558a280dd29.html | 94 - .../dir_f6406403be25082e487bde7aa9e18575.html | 108 - docs/html/doc.png | Bin 746 -> 0 bytes docs/html/doxygen.css | 1793 ----- docs/html/doxygen.png | Bin 3779 -> 0 bytes docs/html/dynsections.js | 121 - docs/html/files.html | 98 - docs/html/flux_exchange_conf.html | 102 - docs/html/folderclosed.png | Bin 616 -> 0 bytes docs/html/folderopen.png | Bin 597 -> 0 bytes docs/html/full_2coupler__main_8_f90.html | 124 - docs/html/full_2flux__exchange_8_f90.html | 337 - docs/html/full__coupler__mod_8_f90.html | 344 - docs/html/functions.html | 450 -- docs/html/functions_func.html | 114 - docs/html/functions_vars.html | 407 -- docs/html/globals.html | 108 - docs/html/globals_defs.html | 93 - docs/html/globals_func.html | 90 - docs/html/ice__model_8_f90.html | 204 - .../ice__ocean__flux__exchange_8_f90.html | 150 - docs/html/index.html | 108 - ...mod_1_1put__logical__to__real-members.html | 86 - ...change__mod_1_1put__logical__to__real.html | 212 - ...e__flux__mod_1_1surface__flux-members.html | 86 - ...cesurface__flux__mod_1_1surface__flux.html | 766 -- docs/html/jquery.js | 35 - .../html/land__ice__flux__exchange_8_f90.html | 123 - docs/html/menu.js | 51 - docs/html/menudata.js | 35 - ...ceatm__land__ice__flux__exchange__mod.html | 6183 ----------------- ...eatmos__ocean__dep__fluxes__calc__mod.html | 159 - ...espaceatmos__ocean__fluxes__calc__mod.html | 684 -- docs/html/namespaceflux__exchange__mod.html | 4082 ----------- docs/html/namespacefull__coupler__mod.html | 3594 ---------- docs/html/namespaceice__model__mod.html | 1382 ---- ...espaceice__ocean__flux__exchange__mod.html | 851 --- ...mespaceland__ice__flux__exchange__mod.html | 400 -- docs/html/namespacemembers.html | 117 - docs/html/namespacemembers_b.html | 98 - docs/html/namespacemembers_c.html | 232 - docs/html/namespacemembers_d.html | 219 - docs/html/namespacemembers_e.html | 236 - docs/html/namespacemembers_f.html | 176 - docs/html/namespacemembers_func.html | 439 -- docs/html/namespacemembers_g.html | 119 - docs/html/namespacemembers_h.html | 86 - docs/html/namespacemembers_i.html | 476 -- docs/html/namespacemembers_j.html | 85 - docs/html/namespacemembers_k.html | 80 - docs/html/namespacemembers_l.html | 89 - docs/html/namespacemembers_m.html | 103 - docs/html/namespacemembers_n.html | 157 - docs/html/namespacemembers_o.html | 89 - docs/html/namespacemembers_p.html | 99 - docs/html/namespacemembers_q.html | 80 - docs/html/namespacemembers_r.html | 112 - docs/html/namespacemembers_s.html | 128 - docs/html/namespacemembers_t.html | 116 - docs/html/namespacemembers_u.html | 122 - docs/html/namespacemembers_v.html | 86 - docs/html/namespacemembers_vars.html | 101 - docs/html/namespacemembers_vars_b.html | 98 - docs/html/namespacemembers_vars_c.html | 121 - docs/html/namespacemembers_vars_d.html | 208 - docs/html/namespacemembers_vars_e.html | 236 - docs/html/namespacemembers_vars_f.html | 126 - docs/html/namespacemembers_vars_g.html | 89 - docs/html/namespacemembers_vars_h.html | 86 - docs/html/namespacemembers_vars_i.html | 452 -- docs/html/namespacemembers_vars_j.html | 85 - docs/html/namespacemembers_vars_k.html | 80 - docs/html/namespacemembers_vars_l.html | 83 - docs/html/namespacemembers_vars_m.html | 103 - docs/html/namespacemembers_vars_n.html | 148 - docs/html/namespacemembers_vars_o.html | 89 - docs/html/namespacemembers_vars_p.html | 84 - docs/html/namespacemembers_vars_q.html | 80 - docs/html/namespacemembers_vars_r.html | 109 - docs/html/namespacemembers_vars_s.html | 105 - docs/html/namespacemembers_vars_t.html | 116 - docs/html/namespacemembers_vars_u.html | 116 - docs/html/namespacemembers_vars_v.html | 83 - docs/html/namespacemembers_vars_w.html | 80 - docs/html/namespacemembers_vars_x.html | 98 - docs/html/namespacemembers_vars_z.html | 85 - docs/html/namespacemembers_w.html | 80 - docs/html/namespacemembers_x.html | 101 - docs/html/namespacemembers_z.html | 85 - docs/html/namespaces.html | 90 - docs/html/namespacesurface__flux__mod.html | 2247 ------ docs/html/nav_f.png | Bin 153 -> 0 bytes docs/html/nav_g.png | Bin 95 -> 0 bytes docs/html/nav_h.png | Bin 98 -> 0 bytes docs/html/open.png | Bin 123 -> 0 bytes docs/html/pages.html | 84 - docs/html/search/all_0.html | 30 - docs/html/search/all_0.js | 34 - docs/html/search/all_1.html | 30 - docs/html/search/all_1.js | 10 - docs/html/search/all_10.html | 30 - docs/html/search/all_10.js | 5 - docs/html/search/all_11.html | 30 - docs/html/search/all_11.js | 18 - docs/html/search/all_12.html | 30 - docs/html/search/all_12.js | 27 - docs/html/search/all_13.html | 30 - docs/html/search/all_13.js | 24 - docs/html/search/all_14.html | 30 - docs/html/search/all_14.js | 27 - docs/html/search/all_15.html | 30 - docs/html/search/all_15.js | 5 - docs/html/search/all_16.html | 30 - docs/html/search/all_16.js | 4 - docs/html/search/all_17.html | 30 - docs/html/search/all_17.js | 12 - docs/html/search/all_18.html | 30 - docs/html/search/all_18.js | 5 - docs/html/search/all_2.html | 30 - docs/html/search/all_2.js | 64 - docs/html/search/all_3.html | 30 - docs/html/search/all_3.js | 50 - docs/html/search/all_4.html | 30 - docs/html/search/all_4.js | 56 - docs/html/search/all_5.html | 30 - docs/html/search/all_5.js | 48 - docs/html/search/all_6.html | 30 - docs/html/search/all_6.js | 22 - docs/html/search/all_7.html | 30 - docs/html/search/all_7.js | 6 - docs/html/search/all_8.html | 30 - docs/html/search/all_8.js | 128 - docs/html/search/all_9.html | 30 - docs/html/search/all_9.js | 5 - docs/html/search/all_a.html | 30 - docs/html/search/all_a.js | 4 - docs/html/search/all_b.html | 30 - docs/html/search/all_b.js | 20 - docs/html/search/all_c.html | 30 - docs/html/search/all_c.js | 12 - docs/html/search/all_d.html | 30 - docs/html/search/all_d.js | 28 - docs/html/search/all_e.html | 30 - docs/html/search/all_e.js | 10 - docs/html/search/all_f.html | 30 - docs/html/search/all_f.js | 11 - docs/html/search/classes_0.html | 30 - docs/html/search/classes_0.js | 4 - docs/html/search/classes_1.html | 30 - docs/html/search/classes_1.js | 6 - docs/html/search/classes_2.html | 30 - docs/html/search/classes_2.js | 4 - docs/html/search/classes_3.html | 30 - docs/html/search/classes_3.js | 4 - docs/html/search/classes_4.html | 30 - docs/html/search/classes_4.js | 4 - docs/html/search/classes_5.html | 30 - docs/html/search/classes_5.js | 5 - docs/html/search/close.png | Bin 273 -> 0 bytes docs/html/search/defines_0.html | 30 - docs/html/search/defines_0.js | 9 - docs/html/search/files_0.html | 30 - docs/html/search/files_0.js | 6 - docs/html/search/files_1.html | 30 - docs/html/search/files_1.js | 4 - docs/html/search/files_2.html | 30 - docs/html/search/files_2.js | 5 - docs/html/search/files_3.html | 30 - docs/html/search/files_3.js | 5 - docs/html/search/files_4.html | 30 - docs/html/search/files_4.js | 4 - docs/html/search/files_5.html | 30 - docs/html/search/files_5.js | 4 - docs/html/search/functions_0.html | 30 - docs/html/search/functions_0.js | 8 - docs/html/search/functions_1.html | 30 - docs/html/search/functions_1.js | 42 - docs/html/search/functions_2.html | 30 - docs/html/search/functions_2.js | 6 - docs/html/search/functions_3.html | 30 - docs/html/search/functions_3.js | 19 - docs/html/search/functions_4.html | 30 - docs/html/search/functions_4.js | 13 - docs/html/search/functions_5.html | 30 - docs/html/search/functions_5.js | 11 - docs/html/search/functions_6.html | 30 - docs/html/search/functions_6.js | 5 - docs/html/search/functions_7.html | 30 - docs/html/search/functions_7.js | 6 - docs/html/search/functions_8.html | 30 - docs/html/search/functions_8.js | 8 - docs/html/search/functions_9.html | 30 - docs/html/search/functions_9.js | 4 - docs/html/search/functions_a.html | 30 - docs/html/search/functions_a.js | 10 - docs/html/search/functions_b.html | 30 - docs/html/search/functions_b.js | 5 - docs/html/search/functions_c.html | 30 - docs/html/search/functions_c.js | 4 - docs/html/search/functions_d.html | 30 - docs/html/search/functions_d.js | 4 - docs/html/search/mag_sel.png | Bin 563 -> 0 bytes docs/html/search/namespaces_0.html | 30 - docs/html/search/namespaces_0.js | 6 - docs/html/search/namespaces_1.html | 30 - docs/html/search/namespaces_1.js | 5 - docs/html/search/namespaces_2.html | 30 - docs/html/search/namespaces_2.js | 5 - docs/html/search/namespaces_3.html | 30 - docs/html/search/namespaces_3.js | 4 - docs/html/search/namespaces_4.html | 30 - docs/html/search/namespaces_4.js | 4 - docs/html/search/nomatches.html | 12 - docs/html/search/pages_0.html | 30 - docs/html/search/pages_0.js | 4 - docs/html/search/pages_1.html | 30 - docs/html/search/pages_1.js | 4 - docs/html/search/pages_2.html | 30 - docs/html/search/pages_2.js | 4 - docs/html/search/search.css | 257 - docs/html/search/search.js | 816 --- docs/html/search/search_l.png | Bin 604 -> 0 bytes docs/html/search/search_m.png | Bin 158 -> 0 bytes docs/html/search/search_r.png | Bin 612 -> 0 bytes docs/html/search/searchdata.js | 36 - docs/html/search/variables_0.html | 30 - docs/html/search/variables_0.js | 22 - docs/html/search/variables_1.html | 30 - docs/html/search/variables_1.js | 10 - docs/html/search/variables_10.html | 30 - docs/html/search/variables_10.js | 5 - docs/html/search/variables_11.html | 30 - docs/html/search/variables_11.js | 17 - docs/html/search/variables_12.html | 30 - docs/html/search/variables_12.js | 17 - docs/html/search/variables_13.html | 30 - docs/html/search/variables_13.js | 22 - docs/html/search/variables_14.html | 30 - docs/html/search/variables_14.js | 26 - docs/html/search/variables_15.html | 30 - docs/html/search/variables_15.js | 4 - docs/html/search/variables_16.html | 30 - docs/html/search/variables_16.js | 4 - docs/html/search/variables_17.html | 30 - docs/html/search/variables_17.js | 11 - docs/html/search/variables_18.html | 30 - docs/html/search/variables_18.js | 5 - docs/html/search/variables_2.html | 30 - docs/html/search/variables_2.js | 20 - docs/html/search/variables_3.html | 30 - docs/html/search/variables_3.js | 47 - docs/html/search/variables_4.html | 30 - docs/html/search/variables_4.js | 56 - docs/html/search/variables_5.html | 30 - docs/html/search/variables_5.js | 29 - docs/html/search/variables_6.html | 30 - docs/html/search/variables_6.js | 13 - docs/html/search/variables_7.html | 30 - docs/html/search/variables_7.js | 6 - docs/html/search/variables_8.html | 30 - docs/html/search/variables_8.js | 116 - docs/html/search/variables_9.html | 30 - docs/html/search/variables_9.js | 5 - docs/html/search/variables_a.html | 30 - docs/html/search/variables_a.js | 4 - docs/html/search/variables_b.html | 30 - docs/html/search/variables_b.js | 16 - docs/html/search/variables_c.html | 30 - docs/html/search/variables_c.js | 12 - docs/html/search/variables_d.html | 30 - docs/html/search/variables_d.js | 25 - docs/html/search/variables_e.html | 30 - docs/html/search/variables_e.js | 10 - docs/html/search/variables_f.html | 30 - docs/html/search/variables_f.js | 5 - docs/html/simple_2coupler__main_8_f90.html | 189 - docs/html/simple_2flux__exchange_8_f90.html | 316 - docs/html/splitbar.png | Bin 314 -> 0 bytes ...od_1_1tracer__exch__ind__type-members.html | 87 - ...hange__mod_1_1tracer__exch__ind__type.html | 173 - ...nge__mod_1_1tracer__ind__type-members.html | 87 - ...x__exchange__mod_1_1tracer__ind__type.html | 173 - ..._mod_1_1coupler__chksum__type-members.html | 92 - ...coupler__mod_1_1coupler__chksum__type.html | 280 - ...__mod_1_1coupler__clock__type-members.html | 122 - ..._coupler__mod_1_1coupler__clock__type.html | 1009 --- ..._1_1coupler__components__type-members.html | 96 - ...ler__mod_1_1coupler__components__type.html | 408 -- ...1_1atmos__ice__boundary__type-members.html | 97 - ...el__mod_1_1atmos__ice__boundary__type.html | 404 -- ...model__mod_1_1ice__data__type-members.html | 110 - ...uctice__model__mod_1_1ice__data__type.html | 716 -- docs/html/surface__flux_8_f90.html | 202 - docs/html/surface_flux_config.html | 104 - docs/html/sync_off.png | Bin 853 -> 0 bytes docs/html/sync_on.png | Bin 845 -> 0 bytes docs/html/tab_a.png | Bin 142 -> 0 bytes docs/html/tab_b.png | Bin 169 -> 0 bytes docs/html/tab_h.png | Bin 177 -> 0 bytes docs/html/tab_s.png | Bin 184 -> 0 bytes docs/html/tabs.css | 1 - docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml | 547 -- .../atm__land__ice__flux__exchange_8_f90.xml | 4113 ----------- .../atmos__ocean__dep__fluxes__calc_8_f90.xml | 121 - docs/xml/atmos__ocean__fluxes__calc_8_f90.xml | 411 -- docs/xml/combine.xslt | 15 - docs/xml/compound.xsd | 1131 --- docs/xml/coupler_config.xml | 63 - .../dir_9982052f7ce695d12571567315b2fafa.xml | 12 - .../dir_d31ef39e894be3975a1de5d6a46d3717.xml | 12 - .../dir_ec0543676189fadf8843b558a280dd29.xml | 14 - .../dir_f6406403be25082e487bde7aa9e18575.xml | 19 - docs/xml/flux_exchange_conf.xml | 34 - docs/xml/full_2coupler__main_8_f90.xml | 426 -- docs/xml/full_2flux__exchange_8_f90.xml | 793 --- docs/xml/full__coupler__mod_8_f90.xml | 2269 ------ docs/xml/ice__model_8_f90.xml | 1324 ---- docs/xml/ice__ocean__flux__exchange_8_f90.xml | 700 -- docs/xml/index.xml | 762 -- docs/xml/index.xsd | 66 - docs/xml/indexpage.xml | 53 - ...xchange__mod_1_1put__logical__to__real.xml | 105 - ...acesurface__flux__mod_1_1surface__flux.xml | 529 -- docs/xml/land__ice__flux__exchange_8_f90.xml | 169 - docs/xml/namespace_f_m_s.xml | 11 - ...aceatm__land__ice__flux__exchange__mod.xml | 3356 --------- ...ceatmos__ocean__dep__fluxes__calc__mod.xml | 87 - ...mespaceatmos__ocean__fluxes__calc__mod.xml | 533 -- docs/xml/namespaceflux__exchange__mod.xml | 2438 ------- docs/xml/namespacefull__coupler__mod.xml | 2749 -------- docs/xml/namespaceice__model__mod.xml | 786 --- ...mespaceice__ocean__flux__exchange__mod.xml | 578 -- docs/xml/namespaceiso__fortran__env.xml | 11 - ...amespaceland__ice__flux__exchange__mod.xml | 240 - docs/xml/namespaceomp__lib.xml | 11 - docs/xml/namespacesurface__flux__mod.xml | 1451 ---- docs/xml/simple_2coupler__main_8_f90.xml | 672 -- docs/xml/simple_2flux__exchange_8_f90.xml | 1240 ---- ...change__mod_1_1tracer__exch__ind__type.xml | 60 - ...ux__exchange__mod_1_1tracer__ind__type.xml | 57 - ..._coupler__mod_1_1coupler__chksum__type.xml | 204 - ...__coupler__mod_1_1coupler__clock__type.xml | 547 -- ...pler__mod_1_1coupler__components__type.xml | 253 - ...del__mod_1_1atmos__ice__boundary__type.xml | 209 - ...ructice__model__mod_1_1ice__data__type.xml | 400 -- docs/xml/surface__flux_8_f90.xml | 1025 --- docs/xml/surface_flux_config.xml | 36 - full/atm_land_ice_flux_exchange.F90 | 365 +- 361 files changed, 200 insertions(+), 75212 deletions(-) delete mode 100644 docs/html/_formulas.tex delete mode 100644 docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html delete mode 100644 docs/html/annotated.html delete mode 100644 docs/html/atm__land__ice__flux__exchange_8_f90.html delete mode 100644 docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html delete mode 100644 docs/html/atmos__ocean__fluxes__calc_8_f90.html delete mode 100644 docs/html/bc_s.png delete mode 100644 docs/html/bdwn.png delete mode 100644 docs/html/classes.html delete mode 100644 docs/html/closed.png delete mode 100644 docs/html/coupler_config.html delete mode 100644 docs/html/dir_9982052f7ce695d12571567315b2fafa.html delete mode 100644 docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html delete mode 100644 docs/html/dir_ec0543676189fadf8843b558a280dd29.html delete mode 100644 docs/html/dir_f6406403be25082e487bde7aa9e18575.html delete mode 100644 docs/html/doc.png delete mode 100644 docs/html/doxygen.css delete mode 100644 docs/html/doxygen.png delete mode 100644 docs/html/dynsections.js delete mode 100644 docs/html/files.html delete mode 100644 docs/html/flux_exchange_conf.html delete mode 100644 docs/html/folderclosed.png delete mode 100644 docs/html/folderopen.png delete mode 100644 docs/html/full_2coupler__main_8_f90.html delete mode 100644 docs/html/full_2flux__exchange_8_f90.html delete mode 100644 docs/html/full__coupler__mod_8_f90.html delete mode 100644 docs/html/functions.html delete mode 100644 docs/html/functions_func.html delete mode 100644 docs/html/functions_vars.html delete mode 100644 docs/html/globals.html delete mode 100644 docs/html/globals_defs.html delete mode 100644 docs/html/globals_func.html delete mode 100644 docs/html/ice__model_8_f90.html delete mode 100644 docs/html/ice__ocean__flux__exchange_8_f90.html delete mode 100644 docs/html/index.html delete mode 100644 docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html delete mode 100644 docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html delete mode 100644 docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html delete mode 100644 docs/html/interfacesurface__flux__mod_1_1surface__flux.html delete mode 100644 docs/html/jquery.js delete mode 100644 docs/html/land__ice__flux__exchange_8_f90.html delete mode 100644 docs/html/menu.js delete mode 100644 docs/html/menudata.js delete mode 100644 docs/html/namespaceatm__land__ice__flux__exchange__mod.html delete mode 100644 docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html delete mode 100644 docs/html/namespaceatmos__ocean__fluxes__calc__mod.html delete mode 100644 docs/html/namespaceflux__exchange__mod.html delete mode 100644 docs/html/namespacefull__coupler__mod.html delete mode 100644 docs/html/namespaceice__model__mod.html delete mode 100644 docs/html/namespaceice__ocean__flux__exchange__mod.html delete mode 100644 docs/html/namespaceland__ice__flux__exchange__mod.html delete mode 100644 docs/html/namespacemembers.html delete mode 100644 docs/html/namespacemembers_b.html delete mode 100644 docs/html/namespacemembers_c.html delete mode 100644 docs/html/namespacemembers_d.html delete mode 100644 docs/html/namespacemembers_e.html delete mode 100644 docs/html/namespacemembers_f.html delete mode 100644 docs/html/namespacemembers_func.html delete mode 100644 docs/html/namespacemembers_g.html delete mode 100644 docs/html/namespacemembers_h.html delete mode 100644 docs/html/namespacemembers_i.html delete mode 100644 docs/html/namespacemembers_j.html delete mode 100644 docs/html/namespacemembers_k.html delete mode 100644 docs/html/namespacemembers_l.html delete mode 100644 docs/html/namespacemembers_m.html delete mode 100644 docs/html/namespacemembers_n.html delete mode 100644 docs/html/namespacemembers_o.html delete mode 100644 docs/html/namespacemembers_p.html delete mode 100644 docs/html/namespacemembers_q.html delete mode 100644 docs/html/namespacemembers_r.html delete mode 100644 docs/html/namespacemembers_s.html delete mode 100644 docs/html/namespacemembers_t.html delete mode 100644 docs/html/namespacemembers_u.html delete mode 100644 docs/html/namespacemembers_v.html delete mode 100644 docs/html/namespacemembers_vars.html delete mode 100644 docs/html/namespacemembers_vars_b.html delete mode 100644 docs/html/namespacemembers_vars_c.html delete mode 100644 docs/html/namespacemembers_vars_d.html delete mode 100644 docs/html/namespacemembers_vars_e.html delete mode 100644 docs/html/namespacemembers_vars_f.html delete mode 100644 docs/html/namespacemembers_vars_g.html delete mode 100644 docs/html/namespacemembers_vars_h.html delete mode 100644 docs/html/namespacemembers_vars_i.html delete mode 100644 docs/html/namespacemembers_vars_j.html delete mode 100644 docs/html/namespacemembers_vars_k.html delete mode 100644 docs/html/namespacemembers_vars_l.html delete mode 100644 docs/html/namespacemembers_vars_m.html delete mode 100644 docs/html/namespacemembers_vars_n.html delete mode 100644 docs/html/namespacemembers_vars_o.html delete mode 100644 docs/html/namespacemembers_vars_p.html delete mode 100644 docs/html/namespacemembers_vars_q.html delete mode 100644 docs/html/namespacemembers_vars_r.html delete mode 100644 docs/html/namespacemembers_vars_s.html delete mode 100644 docs/html/namespacemembers_vars_t.html delete mode 100644 docs/html/namespacemembers_vars_u.html delete mode 100644 docs/html/namespacemembers_vars_v.html delete mode 100644 docs/html/namespacemembers_vars_w.html delete mode 100644 docs/html/namespacemembers_vars_x.html delete mode 100644 docs/html/namespacemembers_vars_z.html delete mode 100644 docs/html/namespacemembers_w.html delete mode 100644 docs/html/namespacemembers_x.html delete mode 100644 docs/html/namespacemembers_z.html delete mode 100644 docs/html/namespaces.html delete mode 100644 docs/html/namespacesurface__flux__mod.html delete mode 100644 docs/html/nav_f.png delete mode 100644 docs/html/nav_g.png delete mode 100644 docs/html/nav_h.png delete mode 100644 docs/html/open.png delete mode 100644 docs/html/pages.html delete mode 100644 docs/html/search/all_0.html delete mode 100644 docs/html/search/all_0.js delete mode 100644 docs/html/search/all_1.html delete mode 100644 docs/html/search/all_1.js delete mode 100644 docs/html/search/all_10.html delete mode 100644 docs/html/search/all_10.js delete mode 100644 docs/html/search/all_11.html delete mode 100644 docs/html/search/all_11.js delete mode 100644 docs/html/search/all_12.html delete mode 100644 docs/html/search/all_12.js delete mode 100644 docs/html/search/all_13.html delete mode 100644 docs/html/search/all_13.js delete mode 100644 docs/html/search/all_14.html delete mode 100644 docs/html/search/all_14.js delete mode 100644 docs/html/search/all_15.html delete mode 100644 docs/html/search/all_15.js delete mode 100644 docs/html/search/all_16.html delete mode 100644 docs/html/search/all_16.js delete mode 100644 docs/html/search/all_17.html delete mode 100644 docs/html/search/all_17.js delete mode 100644 docs/html/search/all_18.html delete mode 100644 docs/html/search/all_18.js delete mode 100644 docs/html/search/all_2.html delete mode 100644 docs/html/search/all_2.js delete mode 100644 docs/html/search/all_3.html delete mode 100644 docs/html/search/all_3.js delete mode 100644 docs/html/search/all_4.html delete mode 100644 docs/html/search/all_4.js delete mode 100644 docs/html/search/all_5.html delete mode 100644 docs/html/search/all_5.js delete mode 100644 docs/html/search/all_6.html delete mode 100644 docs/html/search/all_6.js delete mode 100644 docs/html/search/all_7.html delete mode 100644 docs/html/search/all_7.js delete mode 100644 docs/html/search/all_8.html delete mode 100644 docs/html/search/all_8.js delete mode 100644 docs/html/search/all_9.html delete mode 100644 docs/html/search/all_9.js delete mode 100644 docs/html/search/all_a.html delete mode 100644 docs/html/search/all_a.js delete mode 100644 docs/html/search/all_b.html delete mode 100644 docs/html/search/all_b.js delete mode 100644 docs/html/search/all_c.html delete mode 100644 docs/html/search/all_c.js delete mode 100644 docs/html/search/all_d.html delete mode 100644 docs/html/search/all_d.js delete mode 100644 docs/html/search/all_e.html delete mode 100644 docs/html/search/all_e.js delete mode 100644 docs/html/search/all_f.html delete mode 100644 docs/html/search/all_f.js delete mode 100644 docs/html/search/classes_0.html delete mode 100644 docs/html/search/classes_0.js delete mode 100644 docs/html/search/classes_1.html delete mode 100644 docs/html/search/classes_1.js delete mode 100644 docs/html/search/classes_2.html delete mode 100644 docs/html/search/classes_2.js delete mode 100644 docs/html/search/classes_3.html delete mode 100644 docs/html/search/classes_3.js delete mode 100644 docs/html/search/classes_4.html delete mode 100644 docs/html/search/classes_4.js delete mode 100644 docs/html/search/classes_5.html delete mode 100644 docs/html/search/classes_5.js delete mode 100644 docs/html/search/close.png delete mode 100644 docs/html/search/defines_0.html delete mode 100644 docs/html/search/defines_0.js delete mode 100644 docs/html/search/files_0.html delete mode 100644 docs/html/search/files_0.js delete mode 100644 docs/html/search/files_1.html delete mode 100644 docs/html/search/files_1.js delete mode 100644 docs/html/search/files_2.html delete mode 100644 docs/html/search/files_2.js delete mode 100644 docs/html/search/files_3.html delete mode 100644 docs/html/search/files_3.js delete mode 100644 docs/html/search/files_4.html delete mode 100644 docs/html/search/files_4.js delete mode 100644 docs/html/search/files_5.html delete mode 100644 docs/html/search/files_5.js delete mode 100644 docs/html/search/functions_0.html delete mode 100644 docs/html/search/functions_0.js delete mode 100644 docs/html/search/functions_1.html delete mode 100644 docs/html/search/functions_1.js delete mode 100644 docs/html/search/functions_2.html delete mode 100644 docs/html/search/functions_2.js delete mode 100644 docs/html/search/functions_3.html delete mode 100644 docs/html/search/functions_3.js delete mode 100644 docs/html/search/functions_4.html delete mode 100644 docs/html/search/functions_4.js delete mode 100644 docs/html/search/functions_5.html delete mode 100644 docs/html/search/functions_5.js delete mode 100644 docs/html/search/functions_6.html delete mode 100644 docs/html/search/functions_6.js delete mode 100644 docs/html/search/functions_7.html delete mode 100644 docs/html/search/functions_7.js delete mode 100644 docs/html/search/functions_8.html delete mode 100644 docs/html/search/functions_8.js delete mode 100644 docs/html/search/functions_9.html delete mode 100644 docs/html/search/functions_9.js delete mode 100644 docs/html/search/functions_a.html delete mode 100644 docs/html/search/functions_a.js delete mode 100644 docs/html/search/functions_b.html delete mode 100644 docs/html/search/functions_b.js delete mode 100644 docs/html/search/functions_c.html delete mode 100644 docs/html/search/functions_c.js delete mode 100644 docs/html/search/functions_d.html delete mode 100644 docs/html/search/functions_d.js delete mode 100644 docs/html/search/mag_sel.png delete mode 100644 docs/html/search/namespaces_0.html delete mode 100644 docs/html/search/namespaces_0.js delete mode 100644 docs/html/search/namespaces_1.html delete mode 100644 docs/html/search/namespaces_1.js delete mode 100644 docs/html/search/namespaces_2.html delete mode 100644 docs/html/search/namespaces_2.js delete mode 100644 docs/html/search/namespaces_3.html delete mode 100644 docs/html/search/namespaces_3.js delete mode 100644 docs/html/search/namespaces_4.html delete mode 100644 docs/html/search/namespaces_4.js delete mode 100644 docs/html/search/nomatches.html delete mode 100644 docs/html/search/pages_0.html delete mode 100644 docs/html/search/pages_0.js delete mode 100644 docs/html/search/pages_1.html delete mode 100644 docs/html/search/pages_1.js delete mode 100644 docs/html/search/pages_2.html delete mode 100644 docs/html/search/pages_2.js delete mode 100644 docs/html/search/search.css delete mode 100644 docs/html/search/search.js delete mode 100644 docs/html/search/search_l.png delete mode 100644 docs/html/search/search_m.png delete mode 100644 docs/html/search/search_r.png delete mode 100644 docs/html/search/searchdata.js delete mode 100644 docs/html/search/variables_0.html delete mode 100644 docs/html/search/variables_0.js delete mode 100644 docs/html/search/variables_1.html delete mode 100644 docs/html/search/variables_1.js delete mode 100644 docs/html/search/variables_10.html delete mode 100644 docs/html/search/variables_10.js delete mode 100644 docs/html/search/variables_11.html delete mode 100644 docs/html/search/variables_11.js delete mode 100644 docs/html/search/variables_12.html delete mode 100644 docs/html/search/variables_12.js delete mode 100644 docs/html/search/variables_13.html delete mode 100644 docs/html/search/variables_13.js delete mode 100644 docs/html/search/variables_14.html delete mode 100644 docs/html/search/variables_14.js delete mode 100644 docs/html/search/variables_15.html delete mode 100644 docs/html/search/variables_15.js delete mode 100644 docs/html/search/variables_16.html delete mode 100644 docs/html/search/variables_16.js delete mode 100644 docs/html/search/variables_17.html delete mode 100644 docs/html/search/variables_17.js delete mode 100644 docs/html/search/variables_18.html delete mode 100644 docs/html/search/variables_18.js delete mode 100644 docs/html/search/variables_2.html delete mode 100644 docs/html/search/variables_2.js delete mode 100644 docs/html/search/variables_3.html delete mode 100644 docs/html/search/variables_3.js delete mode 100644 docs/html/search/variables_4.html delete mode 100644 docs/html/search/variables_4.js delete mode 100644 docs/html/search/variables_5.html delete mode 100644 docs/html/search/variables_5.js delete mode 100644 docs/html/search/variables_6.html delete mode 100644 docs/html/search/variables_6.js delete mode 100644 docs/html/search/variables_7.html delete mode 100644 docs/html/search/variables_7.js delete mode 100644 docs/html/search/variables_8.html delete mode 100644 docs/html/search/variables_8.js delete mode 100644 docs/html/search/variables_9.html delete mode 100644 docs/html/search/variables_9.js delete mode 100644 docs/html/search/variables_a.html delete mode 100644 docs/html/search/variables_a.js delete mode 100644 docs/html/search/variables_b.html delete mode 100644 docs/html/search/variables_b.js delete mode 100644 docs/html/search/variables_c.html delete mode 100644 docs/html/search/variables_c.js delete mode 100644 docs/html/search/variables_d.html delete mode 100644 docs/html/search/variables_d.js delete mode 100644 docs/html/search/variables_e.html delete mode 100644 docs/html/search/variables_e.js delete mode 100644 docs/html/search/variables_f.html delete mode 100644 docs/html/search/variables_f.js delete mode 100644 docs/html/simple_2coupler__main_8_f90.html delete mode 100644 docs/html/simple_2flux__exchange_8_f90.html delete mode 100644 docs/html/splitbar.png delete mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html delete mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html delete mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html delete mode 100644 docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html delete mode 100644 docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html delete mode 100644 docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html delete mode 100644 docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html delete mode 100644 docs/html/structfull__coupler__mod_1_1coupler__clock__type.html delete mode 100644 docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html delete mode 100644 docs/html/structfull__coupler__mod_1_1coupler__components__type.html delete mode 100644 docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html delete mode 100644 docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html delete mode 100644 docs/html/structice__model__mod_1_1ice__data__type-members.html delete mode 100644 docs/html/structice__model__mod_1_1ice__data__type.html delete mode 100644 docs/html/surface__flux_8_f90.html delete mode 100644 docs/html/surface_flux_config.html delete mode 100644 docs/html/sync_off.png delete mode 100644 docs/html/sync_on.png delete mode 100644 docs/html/tab_a.png delete mode 100644 docs/html/tab_b.png delete mode 100644 docs/html/tab_h.png delete mode 100644 docs/html/tab_s.png delete mode 100644 docs/html/tabs.css delete mode 100644 docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml delete mode 100644 docs/xml/atm__land__ice__flux__exchange_8_f90.xml delete mode 100644 docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml delete mode 100644 docs/xml/atmos__ocean__fluxes__calc_8_f90.xml delete mode 100644 docs/xml/combine.xslt delete mode 100644 docs/xml/compound.xsd delete mode 100644 docs/xml/coupler_config.xml delete mode 100644 docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml delete mode 100644 docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml delete mode 100644 docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml delete mode 100644 docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml delete mode 100644 docs/xml/flux_exchange_conf.xml delete mode 100644 docs/xml/full_2coupler__main_8_f90.xml delete mode 100644 docs/xml/full_2flux__exchange_8_f90.xml delete mode 100644 docs/xml/full__coupler__mod_8_f90.xml delete mode 100644 docs/xml/ice__model_8_f90.xml delete mode 100644 docs/xml/ice__ocean__flux__exchange_8_f90.xml delete mode 100644 docs/xml/index.xml delete mode 100644 docs/xml/index.xsd delete mode 100644 docs/xml/indexpage.xml delete mode 100644 docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml delete mode 100644 docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml delete mode 100644 docs/xml/land__ice__flux__exchange_8_f90.xml delete mode 100644 docs/xml/namespace_f_m_s.xml delete mode 100644 docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml delete mode 100644 docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml delete mode 100644 docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml delete mode 100644 docs/xml/namespaceflux__exchange__mod.xml delete mode 100644 docs/xml/namespacefull__coupler__mod.xml delete mode 100644 docs/xml/namespaceice__model__mod.xml delete mode 100644 docs/xml/namespaceice__ocean__flux__exchange__mod.xml delete mode 100644 docs/xml/namespaceiso__fortran__env.xml delete mode 100644 docs/xml/namespaceland__ice__flux__exchange__mod.xml delete mode 100644 docs/xml/namespaceomp__lib.xml delete mode 100644 docs/xml/namespacesurface__flux__mod.xml delete mode 100644 docs/xml/simple_2coupler__main_8_f90.xml delete mode 100644 docs/xml/simple_2flux__exchange_8_f90.xml delete mode 100644 docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml delete mode 100644 docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml delete mode 100644 docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml delete mode 100644 docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml delete mode 100644 docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml delete mode 100644 docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml delete mode 100644 docs/xml/structice__model__mod_1_1ice__data__type.xml delete mode 100644 docs/xml/surface__flux_8_f90.xml delete mode 100644 docs/xml/surface_flux_config.xml diff --git a/docs/html/_formulas.tex b/docs/html/_formulas.tex deleted file mode 100644 index 453e3f93..00000000 --- a/docs/html/_formulas.tex +++ /dev/null @@ -1,65 +0,0 @@ -\documentclass{article} -\usepackage{epsfig} -\pagestyle{empty} -\begin{document} -$k_w$ -\pagebreak - -\[ F = K_g(c_g - H C_l) = K_l(c_g/H - C_l) \] -\pagebreak - -$c_g$ -\pagebreak - -$C_l$ -\pagebreak - -$H$ -\pagebreak - -$H = c_{sg}/C_{sl}$ -\pagebreak - -$c_{sg}$ -\pagebreak - -$g/cm^3$ -\pagebreak - -$C_{sl}$ -\pagebreak - -\[ 1/K_g = 1/k_g + H/k_l \] -\pagebreak - -\[ 1/K_l = 1/k_l + 1/{Hk_g} \] -\pagebreak - -$k_g$ -\pagebreak - -$k_l$ -\pagebreak - -$H=c_sg/C_sl$ -\pagebreak - -$u_{10} \sqrt{C_D}$ -\pagebreak - -$C_D$ -\pagebreak - -$6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$ -\pagebreak - -$k_a$ -\pagebreak - -$cm3/mol$ -\pagebreak - -$m^2/s$ -\pagebreak - -\end{document} diff --git a/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html b/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html deleted file mode 100644 index d1c9395b..00000000 --- a/docs/html/_s_hi_e_l_d_2coupler__main_8_f90.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - -FMS Coupler: SHiELD/coupler_main.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              coupler_main.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Main driver program for the SHiELD model. -More...

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              program coupler_main
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine coupler_init
                                                                                                                                                                                                                                                                                                               Read namelists and restart file, initializes all defined exchange grids and all boundary maps. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine coupler_restart (time_stamp)
                                                                                                                                                                                                                                                                                                               Writes a restart file for the current date. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine coupler_end
                                                                                                                                                                                                                                                                                                               Finalizes run, outputs restart files and diagnostic fields. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Main driver program for the SHiELD model.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Sequences the dynamics, radiation/physics, and updates the prognostic state.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_end()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine coupler_main::coupler_end ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Finalizes run, outputs restart files and diagnostic fields.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine coupler_main::coupler_init ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Read namelists and restart file, initializes all defined exchange grids and all boundary maps.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_main()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              program coupler_main ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_restart()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine coupler_main::coupler_restart (character(len=32), intent(in), optional time_stamp)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Writes a restart file for the current date.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]time_stampOptional timestamp for file name
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/annotated.html b/docs/html/annotated.html deleted file mode 100644 index cb7d14c2..00000000 --- a/docs/html/annotated.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -FMS Coupler: By Module - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              By Module
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Interfaces and derived types by module
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              [detail level 12]
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                               Natm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                                                                               Cput_logical_to_real
                                                                                                                                                                                                                                                                                                               Ctracer_exch_ind_type
                                                                                                                                                                                                                                                                                                               Ctracer_ind_type
                                                                                                                                                                                                                                                                                                               Nfull_coupler_mod
                                                                                                                                                                                                                                                                                                               Ccoupler_chksum_typeThe purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components
                                                                                                                                                                                                                                                                                                               Ccoupler_clock_typeCoupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main
                                                                                                                                                                                                                                                                                                               Ccoupler_components_type
                                                                                                                                                                                                                                                                                                               Nice_model_mod
                                                                                                                                                                                                                                                                                                               Catmos_ice_boundary_type
                                                                                                                                                                                                                                                                                                               Cice_data_type
                                                                                                                                                                                                                                                                                                               Nsurface_flux_modModule for the calculation of fluxes on the exchange grids
                                                                                                                                                                                                                                                                                                               Csurface_fluxFor the calculation of fluxes on the exchange grids
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/atm__land__ice__flux__exchange_8_f90.html b/docs/html/atm__land__ice__flux__exchange_8_f90.html deleted file mode 100644 index daa6bf5f..00000000 --- a/docs/html/atm__land__ice__flux__exchange_8_f90.html +++ /dev/null @@ -1,826 +0,0 @@ - - - - - - - -FMS Coupler: full/atm_land_ice_flux_exchange.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (59f3f38e42012e8f21e03004f3740ee4c7e107b4)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice. -More...

                                                                                                                                                                                                                                                                                                              - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              interface  atm_land_ice_flux_exchange_mod::put_logical_to_real
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_ind_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  atm_land_ice_flux_exchange_mod::tracer_exch_ind_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  atm_land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Macros

                                                                                                                                                                                                                                                                                                              #define FMS_DATA_OVERRIDE_   fms_data_override_ug
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
                                                                                                                                                                                                                                                                                                               module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
                                                                                                                                                                                                                                                                                                               Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                                                                                                                                                               Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (Land, Ice)
                                                                                                                                                                                                                                                                                                               Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                                                                                                                                                               Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
                                                                                                                                                                                                                                                                                                               Internal subroutine to deallocate exchange fields. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
                                                                                                                                                                                                                                                                                                               Computes deposition gas fluxes between atmosphere and ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (mask, id, ex_mask, xmap)
                                                                                                                                                                                                                                                                                                               Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (mask, id, ex_mask, xmap)
                                                                                                                                                                                                                                                                                                               Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::diag_field_init (Time, atmos_axes, land_axes, land_pe)
                                                                                                                                                                                                                                                                                                               Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::divide_by_area (data, area)
                                                                                                                                                                                                                                                                                                               Divide data by area where grid cell area is not zero. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (Time)
                                                                                                                                                                                                                                                                                                               compute and send fractional amount of sea ice to diag_manager buffer More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (Atm, res)
                                                                                                                                                                                                                                                                                                               integrate the total precipitation in atmosphere and multipy by dt More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len=128) atm_land_ice_flux_exchange_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                               coupler version number More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) atm_land_ice_flux_exchange_mod::tag = '$Name$'
                                                                                                                                                                                                                                                                                                               coupler tag More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc
                                                                                                                                                                                                                                                                                                               holds exchange grid between different components More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc =0
                                                                                                                                                                                                                                                                                                               total number of exchange grid cells More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name = 'flux'
                                                                                                                                                                                                                                                                                                               module name used to register diag_manager More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_b_star
                                                                                                                                                                                                                                                                                                               diag_manager registered field id for bouyancy scale More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_del_h
                                                                                                                                                                                                                                                                                                               diag_manager registered field id ref height interp factor for heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_del_m
                                                                                                                                                                                                                                                                                                               diag_manager registered field id ref height for interp factor for momentum More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_del_q
                                                                                                                                                                                                                                                                                                               diag_manager registered field id ref height interp factor for moisture More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_drag_heat
                                                                                                                                                                                                                                                                                                               diag_manager registered field id drag coefficient for heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_drag_moist
                                                                                                                                                                                                                                                                                                               diag_manager registered field id drag coefficient for moisture More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_drag_mom
                                                                                                                                                                                                                                                                                                               diag_manager registered field id drag coefficient for momentum More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_gust
                                                                                                                                                                                                                                                                                                               diag_manager registered field id gust scale More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_husslut_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface specific humidity on land use tile More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_ice_mask
                                                                                                                                                                                                                                                                                                               diag_manager registered field id fractional amount of land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_land_mask
                                                                                                                                                                                                                                                                                                               diag_manager registered field id fractional amount of sea ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_p_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id pressure at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id evaporation rate More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_flux_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id evaporation rate over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id specific humidity at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id specific humidity at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_star
                                                                                                                                                                                                                                                                                                               diag_manager registered field id moisture scale More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_r_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id net (down-up) longwave flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rh_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip
                                                                                                                                                                                                                                                                                                               diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rh_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id relative humidity at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_heat
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface roughness for heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_moist
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface roughness for moisture More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_mom
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface roughness for momentum More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_scale
                                                                                                                                                                                                                                                                                                               diag_manager registered field id topographic scaling fractor for momentum drag More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_slp
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sea level pressure More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id temperature at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ca
                                                                                                                                                                                                                                                                                                               diag_manager registered field id canopy air temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sensible heat flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ocean
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature from ocean output More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id temperature at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id temperature at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_surf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_taslut_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface air temperature z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_thv_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface air virtual potential temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_thv_surf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface virtual potential temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id u wind component at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id zonal wind stress More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id zonal wind component at z_ref_mom More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id zonal wind component at z_ref_mom over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id v wind component at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id meridional wind stress More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id meridional wind component at z_ref_mom More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id meridional wind component at z_ref_mom over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_wind
                                                                                                                                                                                                                                                                                                               diag_manager registered field id wind speed for flux calculations More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_wind_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id absolute value of wind at z_ref_mom More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_z_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id height of lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr
                                                                                                                                                                                                                                                                                                               diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_bot
                                                                                                                                                                                                                                                                                                               diag_manager registered field id concentration of co2 to be passed to land/photosynthesis More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id concentration of co2 to be passed to ocean More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id concentration of o2 to be passed to to ocean More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id value of tracer at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id value of tracer at surface More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id tracer fluxes More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id flux of co2 concentration in [mol/m2*s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id value of tracer at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id tracer flux at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0
                                                                                                                                                                                                                                                                                                               diag_manager registered field id More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id flux of tracer concentration over land in [kg/m2*s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id flux of More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id deposition velocity at lowest atmospheric level (atm) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id deposition velocity at reference height (atm) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id deposition velocity at reference height over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_evspsbl
                                                                                                                                                                                                                                                                                                               diag_manager registered field id water evaporation flux (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_height10m
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_height2m
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hfls
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface upward latent heat flux (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hfss
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface upward sensible heat flux (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hurs
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_huss
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface specific humidity (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_psl
                                                                                                                                                                                                                                                                                                               diag_manager registered field id air pressure at sea level (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rhs
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_sfcwind
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface wind speed (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_sftlf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id fraction of the grid cell occupied by land (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_sic
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sea ice area fraction (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tas
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface air temperature (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tauu
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface downward eastward wind stress (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tauv
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface downward northward wind stress (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tos
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sea surface temperature (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_ts
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tslsi
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature on land or sea ice (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_uas
                                                                                                                                                                                                                                                                                                               diag_manager registered field id eastward near-surface wind (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_vas
                                                                                                                                                                                                                                                                                                               diag_manager registered field id northward near-surface wind (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_evspsbl_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of water evaporation flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hfls_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of surface upward sensible heat flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rls_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of near-surface relative humidty More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tas_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of near-surface air temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tasl_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of near-surface air temperature on land only More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_ts_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of surface temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::first_static = .true.
                                                                                                                                                                                                                                                                                                               If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::do_init = .true.
                                                                                                                                                                                                                                                                                                               true if atm_land_ice_flux_exchnge_init has been called More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::remap_method = 1
                                                                                                                                                                                                                                                                                                               first or second order conservative remapping onto exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::d378 = 1.0-d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::d608 = d378/d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::tfreeze = 273.15
                                                                                                                                                                                                                                                                                                               freezing point of water at 1 atm [K] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::z_ref_heat = 2.
                                                                                                                                                                                                                                                                                                               Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::z_ref_mom = 10.
                                                                                                                                                                                                                                                                                                               Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::do_forecast = .false.
                                                                                                                                                                                                                                                                                                               flag to do forecast, defined through flux_exchange_nml More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nblocks = 1
                                                                                                                                                                                                                                                                                                               OpenMP number of threads. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
                                                                                                                                                                                                                                                                                                               If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::scale_precip_2d = .false.
                                                                                                                                                                                                                                                                                                               If true, scale mass of liqud preciptation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::my_nblocks = 1
                                                                                                                                                                                                                                                                                                               Initializing OpenMP parameter. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start
                                                                                                                                                                                                                                                                                                               starting do loop indices for OpenMP thread More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end
                                                                                                                                                                                                                                                                                                               ending do loop indices for OpenMP thread More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star
                                                                                                                                                                                                                                                                                                               boyuancy scale on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m
                                                                                                                                                                                                                                                                                                               drag coefficient for momentum on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t
                                                                                                                                                                                                                                                                                                               drag coefficient for heat on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm
                                                                                                                                                                                                                                                                                                               deposition velocity at lowest atmospheric level on exchange grid on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf
                                                                                                                                                                                                                                                                                                               d(water.vap.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm
                                                                                                                                                                                                                                                                                                               d(sens.heat.flux)/d(T atm) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf
                                                                                                                                                                                                                                                                                                               d(sens.heat.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf
                                                                                                                                                                                                                                                                                                               d(water.vap.flux)/d(q canopy) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf
                                                                                                                                                                                                                                                                                                               d(LW flux)/d(T surf) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm
                                                                                                                                                                                                                                                                                                               d(stress)/d(u) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm
                                                                                                                                                                                                                                                                                                               d(stress)/d(v) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n
                                                                                                                                                                                                                                                                                                               dt/mass * dedet_surf * gamma on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw
                                                                                                                                                                                                                                                                                                               longwave radiation flux on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t
                                                                                                                                                                                                                                                                                                               sensible heat flux on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u
                                                                                                                                                                                                                                                                                                               u stress on atmosphere on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v
                                                                                                                                                                                                                                                                                                               v stress on atmosphere on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo
                                                                                                                                                                                                                                                                                                               old value of albedo for downward flux calculations, used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf
                                                                                                                                                                                                                                                                                                               surface pressure on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater
                                                                                                                                                                                                                                                                                                               mask array of seaice fractions on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp
                                                                                                                                                                                                                                                                                                               surface pressure on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca
                                                                                                                                                                                                                                                                                                               near-surface (canopy) air temperature on exchange grid [K] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf
                                                                                                                                                                                                                                                                                                               surface temperature for radiation calc on exchange grid [K] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz
                                                                                                                                                                                                                                                                                                               used when do_forecast = .true. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star
                                                                                                                                                                                                                                                                                                               friction velocity on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind
                                                                                                                                                                                                                                                                                                               wind speed on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm
                                                                                                                                                                                                                                                                                                               height of lowest atmospheric level on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf_forland
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf_forland
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedq_surf_forland
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm
                                                                                                                                                                                                                                                                                                               d(tracer flux)/d(atm tracer) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf
                                                                                                                                                                                                                                                                                                               d(tracer flux)/d(surf tracer) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n
                                                                                                                                                                                                                                                                                                               coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n
                                                                                                                                                                                                                                                                                                               coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr
                                                                                                                                                                                                                                                                                                               tracer fluxes on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref
                                                                                                                                                                                                                                                                                                               deposition velocity at reference height on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm
                                                                                                                                                                                                                                                                                                               deposition velocity at atmospheric height on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf
                                                                                                                                                                                                                                                                                                               near-surface tracer fields on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail
                                                                                                                                                                                                                                                                                                               mask where true if data on exchange grid are available More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land
                                                                                                                                                                                                                                                                                                               mask where true if exchange grid cell is over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_atm_tr
                                                                                                                                                                                                                                                                                                               number of prognostic tracers in the atmos model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot
                                                                                                                                                                                                                                                                                                               number of tracers in the atmos model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_lnd_tr
                                                                                                                                                                                                                                                                                                               number of prognostic tracers in the land model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot
                                                                                                                                                                                                                                                                                                               number of tracers in the land model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_exch_tr
                                                                                                                                                                                                                                                                                                               number of tracers exchanged between models More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd
                                                                                                                                                                                                                                                                                                               number of generic exchange fields exchanged from atmospehre to land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm
                                                                                                                                                                                                                                                                                                               number of generic exchange fields exchanged from land to atmosphere More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table
                                                                                                                                                                                                                                                                                                               table of tracers passed through flux exchange More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map
                                                                                                                                                                                                                                                                                                               holds tracer id in atm, ice, and land models More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::isphum = NO_TRACER
                                                                                                                                                                                                                                                                                                               tracer index for specific humidity More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::ico2 = NO_TRACER
                                                                                                                                                                                                                                                                                                               tracer index for co2 More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::inh3 = NO_TRACER
                                                                                                                                                                                                                                                                                                               tracer index for nh3 More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm =>NULL()
                                                                                                                                                                                                                                                                                                               pointer to gas fields in atm, place holder for various atmospheric fields. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice =>NULL()
                                                                                                                                                                                                                                                                                                               pointer to gas fields on ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes =>NULL()
                                                                                                                                                                                                                                                                                                               pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter atm_land_ice_flux_exchange_mod::regrid =1
                                                                                                                                                                                                                                                                                                               flag to indicate component grids for flux exchange are different, More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter atm_land_ice_flux_exchange_mod::redist =2
                                                                                                                                                                                                                                                                                                               component grid for flux exchange are identical but are decomposed differently, More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter atm_land_ice_flux_exchange_mod::redirect =3
                                                                                                                                                                                                                                                                                                               component grid for flux exchange are identical with same domain decomposition, More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::cplclock
                                                                                                                                                                                                                                                                                                               FMS clock to profile general processes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::sfcclock
                                                                                                                                                                                                                                                                                                               FMS clock id to profile sfc_boundary_layer. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::fluxatmdnclock
                                                                                                                                                                                                                                                                                                               FMS clock id to profile flux down from atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::regenclock
                                                                                                                                                                                                                                                                                                               FMS clock to profile exchange grid generation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::fluxatmupclock
                                                                                                                                                                                                                                                                                                               FMS clock to profile flux up to atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::x1_grid_atm
                                                                                                                                                                                                                                                                                                               =1, exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::x1_grid_ice
                                                                                                                                                                                                                                                                                                               =2, exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::x1_grid_lnd
                                                                                                                                                                                                                                                                                                               =3 exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::dt_atm
                                                                                                                                                                                                                                                                                                               atmospheric timestep [s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                               coupled timestep [s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::ni_atm
                                                                                                                                                                                                                                                                                                               number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nj_atm
                                                                                                                                                                                                                                                                                                               number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nxc_ice =0
                                                                                                                                                                                                                                                                                                               number of x points in ice compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nyc_ice =0
                                                                                                                                                                                                                                                                                                               number of y points in ice compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nk_ice =0
                                                                                                                                                                                                                                                                                                               number of vertical levels in ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nxc_lnd =0
                                                                                                                                                                                                                                                                                                               number of x points in land compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nyc_lnd =0
                                                                                                                                                                                                                                                                                                               number of y points in land compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Performs flux calculations and exchange grid operations for atmosphere, land and ice.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Macro Definition Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ FMS_DATA_OVERRIDE_

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              #define FMS_DATA_OVERRIDE_   fms_data_override_ug
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ FMS_DIAG_REGISTER_FIELD_

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              #define FMS_DIAG_REGISTER_FIELD_   register_tiled_diag_field
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ FMS_XGRID_GET_FROM_XGRID_

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_GET_FROM_XGRID_   fms_xgrid_get_from_xgrid_ug
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ FMS_XGRID_PUT_TO_XGRID_

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_PUT_TO_XGRID_   fms_xgrid_put_to_xgrid_ug
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ FMS_XGRID_SET_FRAC_AREA_

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_SET_FRAC_AREA_   fms_xgrid_set_frac_area_ug
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ FMS_XGRID_STOCK_MOVE_

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              #define FMS_XGRID_STOCK_MOVE_   fms_xgrid_stock_move_ug
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html deleted file mode 100644 index efefa98d..00000000 --- a/docs/html/atmos__ocean__dep__fluxes__calc_8_f90.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - -FMS Coupler: full/atmos_ocean_dep_fluxes_calc.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atmos_ocean_dep_fluxes_calc.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Calculates ocean and atmosphere deposition gas fluxes. -More...

                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  atmos_ocean_dep_fluxes_calc_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine atmos_ocean_dep_fluxes_calc_mod::atmos_ocean_dep_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater)
                                                                                                                                                                                                                                                                                                               atmos_ocean_dep_fluxes_calc More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len= *), parameter atmos_ocean_dep_fluxes_calc_mod::mod_name = "aodfc"
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Calculates ocean and atmosphere deposition gas fluxes.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/atmos__ocean__fluxes__calc_8_f90.html b/docs/html/atmos__ocean__fluxes__calc_8_f90.html deleted file mode 100644 index 9d76f720..00000000 --- a/docs/html/atmos__ocean__fluxes__calc_8_f90.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -FMS Coupler: full/atmos_ocean_fluxes_calc.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atmos_ocean_fluxes_calc.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Calculates gas fluxes for atmosphere and ocean. -More...

                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  atmos_ocean_fluxes_calc_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public atmos_ocean_fluxes_calc_mod::atmos_ocean_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater, tsurf, ustar, cd_m)
                                                                                                                                                                                                                                                                                                               Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::calc_kw (tk, p, u10, h, vb, mw, sc_w, ustar, cd_m)
                                                                                                                                                                                                                                                                                                               Calculate $k_w$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::calc_ka (t, p, mw, vb, u10, ustar, cd_m)
                                                                                                                                                                                                                                                                                                               Calculate $k_a$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::calc_kl (t, v, sc)
                                                                                                                                                                                                                                                                                                               Calculate $k_l$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::schmidt_g (t, p, mw, vb)
                                                                                                                                                                                                                                                                                                               Schmidt number of the gas in air. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::d_air (t, p, mw, vb)
                                                                                                                                                                                                                                                                                                               From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::p_air (t)
                                                                                                                                                                                                                                                                                                               kinematic viscosity in air More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::v_air (t)
                                                                                                                                                                                                                                                                                                               Kinematic viscosity in air ( $m^2/s$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::n_air (t)
                                                                                                                                                                                                                                                                                                               dynamic viscosity in air More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len= *), parameter atmos_ocean_fluxes_calc_mod::mod_name = "cdwfe"
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter atmos_ocean_fluxes_calc_mod::epsln =1.0e-30
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Calculates gas fluxes for atmosphere and ocean.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/bc_s.png b/docs/html/bc_s.png deleted file mode 100644 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/docs/html/bdwn.png b/docs/html/bdwn.png deleted file mode 100644 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T - - - - - - -FMS Coupler: By Name - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              By Name
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - diff --git a/docs/html/closed.png b/docs/html/closed.png deleted file mode 100644 index 98cc2c909da37a6df914fbf67780eebd99c597f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/docs/html/coupler_config.html b/docs/html/coupler_config.html deleted file mode 100644 index 48a4261d..00000000 --- a/docs/html/coupler_config.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - -FMS Coupler: Coupler Configuration - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Coupler Configuration
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              coupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables.

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              Variable Name Type Default Value Description
                                                                                                                                                                                                                                                                                                              current_date integer, dimension(6) (/0,0,0,0,0,0/) The date that the current integration starts with.
                                                                                                                                                                                                                                                                                                              force_date_from_namelist logical .FALSE. Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has not effect, the value of current_date will be used.
                                                                                                                                                                                                                                                                                                              calendar character(len=17) '' The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' can not be used because the time_manager's date function are used. All values must be lowercase.
                                                                                                                                                                                                                                                                                                              months integer 0 The number of months that the current integration will be run for.
                                                                                                                                                                                                                                                                                                              days integer 0 The number of days that the current integration will be run for.
                                                                                                                                                                                                                                                                                                              hours integer 0 The number of hours that the current integration will be run for.
                                                                                                                                                                                                                                                                                                              minutes integer 0 The number of minutes that the current integration will be run for.
                                                                                                                                                                                                                                                                                                              seconds integer 0 The number of seconds that the current integration will be run for.
                                                                                                                                                                                                                                                                                                              dt_atmos integer 0 Atmospheric model time step in seconds, including the fast coupling with land and sea ice.
                                                                                                                                                                                                                                                                                                              dt_cpld integer 0 Time step in seconds for coupling between ocean and atmospheric models: must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep.
                                                                                                                                                                                                                                                                                                              do_atmos, do_ocean, do_ice, do_land, do_flux logical .TRUE. If true (default), that particular model component (atmos, etc.) is run. If false, the execution of that component is skipped. This is used when ALL the output fields sent by that component to the coupler have been overridden using the data_override feature. For advanced users only: if you're not sure, you should leave these values at TRUE.
                                                                                                                                                                                                                                                                                                              concurrent logical .FALSE. If true, the ocean executes concurrently with the atmosphere-land-ocean on a separate set of PEs. If false (default), the execution is serial: call atmos... followed by call ocean... If using concurrent execution, you must set one of atmos_npes and ocean_npes, see below.
                                                                                                                                                                                                                                                                                                              do_concurrent_radiation logical .FALSE. If true then radiation is done concurrently.
                                                                                                                                                                                                                                                                                                              atmos_npes, ocean_npes integer none If concurrent is set to true, we use these to set the list of PEs on which each component runs. At least one of them must be set to a number between 0 and NPES. If exactly one of these two is set non-zero, the other is set to the remainder from NPES. If both are set non-zero they must add up to NPES.
                                                                                                                                                                                                                                                                                                              atmos_nthreads, ocean_nthreads integer 1 We set here the number of OpenMP threads to use separately for each component.
                                                                                                                                                                                                                                                                                                              radiation_nthreads integer 1 Number of threads to use for the concurrent radiation when do_concurrent_radiation = .true., otherwise is equal to atmos_nthreads
                                                                                                                                                                                                                                                                                                              use_lag_fluxes logical .TRUE. If true, the ocean is forced with SBCs from one coupling timestep ago. If false, the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable.
                                                                                                                                                                                                                                                                                                              concurrent_ice logical .FALSE. If true, the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=true, this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities.
                                                                                                                                                                                                                                                                                                              slow_ice_with_ocean logical .FALSE. If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice.
                                                                                                                                                                                                                                                                                                              restart_interval integer, dimension(6) (/0,0,0,0,0,0/) The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out.
                                                                                                                                                                                                                                                                                                              do_debug logical .FALSE. If .TRUE. print additional debugging messages.
                                                                                                                                                                                                                                                                                                              do_chksum logical .FALSE. Turns on/off checksum of certain variables.
                                                                                                                                                                                                                                                                                                              do_endpoint_chksum logical .TRUE. Report checksums of the start and end states of certain variables.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Note
                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                              1. If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.
                                                                                                                                                                                                                                                                                                              2. -
                                                                                                                                                                                                                                                                                                              3. The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.
                                                                                                                                                                                                                                                                                                              4. -
                                                                                                                                                                                                                                                                                                              5. The run length must be an intergal multiple of the coupling timestep dt_cpld.
                                                                                                                                                                                                                                                                                                              6. -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/dir_9982052f7ce695d12571567315b2fafa.html b/docs/html/dir_9982052f7ce695d12571567315b2fafa.html deleted file mode 100644 index b3dbc694..00000000 --- a/docs/html/dir_9982052f7ce695d12571567315b2fafa.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -FMS Coupler: shared Directory Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              shared Directory Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -

                                                                                                                                                                                                                                                                                                              -Files

                                                                                                                                                                                                                                                                                                              file  surface_flux.F90
                                                                                                                                                                                                                                                                                                               Handles calculation of fluxes on the exchange grids, see module page for more information.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html b/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html deleted file mode 100644 index 492ac18d..00000000 --- a/docs/html/dir_d31ef39e894be3975a1de5d6a46d3717.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - -FMS Coupler: SHiELD Directory Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              SHiELD Directory Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -

                                                                                                                                                                                                                                                                                                              -Files

                                                                                                                                                                                                                                                                                                              file  coupler_main.F90
                                                                                                                                                                                                                                                                                                               Main driver program for the SHiELD model.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/dir_ec0543676189fadf8843b558a280dd29.html b/docs/html/dir_ec0543676189fadf8843b558a280dd29.html deleted file mode 100644 index 38741bc6..00000000 --- a/docs/html/dir_ec0543676189fadf8843b558a280dd29.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -FMS Coupler: simple Directory Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              simple Directory Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Files

                                                                                                                                                                                                                                                                                                              file  coupler_main.F90
                                                                                                                                                                                                                                                                                                               Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  flux_exchange.F90
                                                                                                                                                                                                                                                                                                               Routines to handle flux exchanges through exchange grids for the simple coupler.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  ice_model.F90
                                                                                                                                                                                                                                                                                                               Handles ice component updates and time steps.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/dir_f6406403be25082e487bde7aa9e18575.html b/docs/html/dir_f6406403be25082e487bde7aa9e18575.html deleted file mode 100644 index 9b62f066..00000000 --- a/docs/html/dir_f6406403be25082e487bde7aa9e18575.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -FMS Coupler: full Directory Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full Directory Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Files

                                                                                                                                                                                                                                                                                                              file  atm_land_ice_flux_exchange.F90
                                                                                                                                                                                                                                                                                                               Performs flux calculations and exchange grid operations for atmosphere, land and ice.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  atmos_ocean_dep_fluxes_calc.F90
                                                                                                                                                                                                                                                                                                               Calculates ocean and atmosphere deposition gas fluxes.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  atmos_ocean_fluxes_calc.F90
                                                                                                                                                                                                                                                                                                               Calculates gas fluxes for atmosphere and ocean.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  coupler_main.F90
                                                                                                                                                                                                                                                                                                               Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean).
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  flux_exchange.F90
                                                                                                                                                                                                                                                                                                               The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  full_coupler_mod.F90
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  ice_ocean_flux_exchange.F90
                                                                                                                                                                                                                                                                                                               Handles flux calculations and exchange grids for ice and ocean.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              file  land_ice_flux_exchange.F90
                                                                                                                                                                                                                                                                                                               Handles flux exchanges and exchange grids between land and ice grids.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/doc.png b/docs/html/doc.png deleted file mode 100644 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css deleted file mode 100644 index ded311bb..00000000 --- a/docs/html/doxygen.css +++ /dev/null @@ -1,1793 +0,0 @@ -/* The standard CSS for doxygen 1.8.14 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -p.interli { -} - -p.interdd { -} - -p.intertd { -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.navtab { - border-right: 1px solid #A3B4D7; - padding-right: 15px; - text-align: right; - line-height: 110%; -} - -div.navtab table { - border-spacing: 0; -} - -td.navtab { - padding-right: 6px; - padding-left: 6px; -} -td.navtabHL { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - padding-right: 6px; - padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} - -a.navtab { - font-weight: bold; -} - -div.qindex{ - text-align: center; - width: 100%; - line-height: 140%; - font-size: 130%; - color: #A0A0A0; -} - -dt.alphachar{ - font-size: 180%; - font-weight: bold; -} - -.alphachar a{ - color: black; -} - -.alphachar a:hover, .alphachar a:visited{ - text-decoration: none; -} - -.classindex dl { - padding: 25px; - column-count:1 -} - -.classindex dd { - display:inline-block; - margin-left: 50px; - width: 90%; - line-height: 1.15em; -} - -.classindex dl.odd { - background-color: #F8F9FC; -} - -@media(min-width: 1120px) { - .classindex dl { - column-count:2 - } -} - -@media(min-width: 1320px) { - .classindex dl { - column-count:3 - } -} - - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -.contents a.qindexHL:visited { - color: #FFFFFF; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -ul { - overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ -} - -#side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ -} - -#main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ -} - -.fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #FFFFFF; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl, img.inline { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -blockquote.DocNodeRTL { - border-left: 0; - border-right: 2px solid #9CAFD4; - margin: 0 4px 0 24px; - padding: 0 16px 0 12px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight, .memTemplItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; -} - -dl { - padding: 0 0 0 0; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; -} - -dl.section.DocNodeRTL { - margin-right: 0px; - padding-right: 0px; -} - -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; -} - -dl.note.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; -} - -dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; -} - -dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00D000; -} - -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; -} - -dl.deprecated.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #505050; -} - -dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; -} - -dl.todo.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #00C0E0; -} - -dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; -} - -dl.test.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #3030E0; -} - -dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; -} - -dl.bug.DocNodeRTL { - margin-left: 0; - padding-left: 0; - border-left: 0; - margin-right: -7px; - padding-right: 3px; - border-right: 4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; -} - -dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -.PageDocRTL-title div.toc { - float: left !important; - text-align: right; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -.PageDocRTL-title div.toc li { - background-position-x: right !important; - padding-left: 0 !important; - padding-right: 10px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -span.emoji { - /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html - * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; - */ -} - -.PageDocRTL-title div.toc li.level1 { - margin-left: 0 !important; - margin-right: 0; -} - -.PageDocRTL-title div.toc li.level2 { - margin-left: 0 !important; - margin-right: 15px; -} - -.PageDocRTL-title div.toc li.level3 { - margin-left: 0 !important; - margin-right: 30px; -} - -.PageDocRTL-title div.toc li.level4 { - margin-left: 0 !important; - margin-right: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #FFFFFF; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #FFFFFF; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - -.DocNodeRTL { - text-align: right; - direction: rtl; -} - -.DocNodeLTR { - text-align: left; - direction: ltr; -} - -table.DocNodeRTL { - width: auto; - margin-right: 0; - margin-left: auto; -} - -table.DocNodeLTR { - width: auto; - margin-right: auto; - margin-left: 0; -} - -tt, code, kbd, samp -{ - display: inline-block; - direction:ltr; -} -/* @end */ - -u { - text-decoration: underline; -} - diff --git a/docs/html/doxygen.png b/docs/html/doxygen.png deleted file mode 100644 index 3ff17d807fd8aa003bed8bb2a69e8f0909592fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3779 zcmV;!4m|ORP)tMIv#Q0*~7*`IBSO7_x;@a8#Zk6_PeKR_s92J&)(m+);m9Iz3blw)z#Gi zP!9lj4$%+*>Hz@HCmM9L9|8c+0u=!H$O3?R0Kgx|#WP<6fKfC8fM-CQZT|_r@`>VO zX^Hgb|9cJqpdJA5$MCEK`F_2@2Y@s>^+;pF`~jdI0Pvr|vl4`=C)EH@1IFe7pdJ8F zH(qGi004~QnF)Ggga~8v08kGAs2hKTATxr7pwfNk|4#_AaT>w8P6TV+R2kbS$v==} zAjf`s0g#V8lB+b3)5oEI*q+{Yt$MZDruD2^;$+(_%Qn+%v0X-bJO=;@kiJ^ygLBnC z?1OVv_%aex1M@jKU|Z~$eI?PoF4Vj>fDzyo zAiLfpXY*a^Sj-S5D0S3@#V$sRW)g)_1e#$%8xdM>Jm7?!h zu0P2X=xoN>^!4DoPRgph2(2va07yfpXF+WH7EOg1GY%Zn z7~1A<(z7Q$ktEXhW_?GMpHp9l_UL18F3KOsxu81pqoBiNbFSGsof-W z6~eloMoz=4?OOnl2J268x5rOY`dCk0us(uS#Ud4yqOr@?=Q57a}tit|BhY>}~frH1sP`ScHS_d)oqH^lYy zZ%VP`#10MlE~P?cE(%(#(AUSv_T{+;t@$U}El}(1ig`vZo`Rm;+5&(AYzJ^Ae=h2X z@Re%vHwZU>|f0NI&%$*4eJweC5OROQrpPMA@*w|o z()A==l}(@bv^&>H1Ob3C=<^|hob?0+xJ?QQ3-ueQC}zy&JQNib!OqSO@-=>XzxlSF zAZ^U*1l6EEmg3r};_HY>&Jo_{dOPEFTWPmt=U&F#+0(O59^UIlHbNX+eF8UzyDR*T z(=5X$VF3!gm@RooS-&iiUYGG^`hMR(07zr_xP`d!^BH?uD>Phl8Rdifx3Af^Zr`Ku ztL+~HkVeL#bJ)7;`=>;{KNRvjmc}1}c58Sr#Treq=4{xo!ATy|c>iRSp4`dzMMVd@ zL8?uwXDY}Wqgh4mH`|$BTXpUIu6A1-cSq%hJw;@^Zr8TP=GMh*p(m(tN7@!^D~sl$ zz^tf4II4|};+irE$Fnm4NTc5%p{PRA`%}Zk`CE5?#h3|xcyQsS#iONZ z6H(@^i9td!$z~bZiJLTax$o>r(p}3o@< zyD7%(>ZYvy=6$U3e!F{Z`uSaYy`xQyl?b{}eg|G3&fz*`QH@mDUn)1%#5u`0m$%D} z?;tZ0u(mWeMV0QtzjgN!lT*pNRj;6510Wwx?Yi_=tYw|J#7@(Xe7ifDzXuK;JB;QO z#bg~K$cgm$@{QiL_3yr}y&~wuv=P=#O&Tj=Sr)aCUlYmZMcw?)T?c%0rUe1cS+o!qs_ zQ6Gp)-{)V!;=q}llyK3|^WeLKyjf%y;xHku;9(vM!j|~<7w1c*Mk-;P{T&yG) z@C-8E?QPynNQ<8f01D`2qexcVEIOU?y}MG)TAE6&VT5`rK8s(4PE;uQ92LTXUQ<>^ ztyQ@=@kRdh@ebUG^Z6NWWIL;_IGJ2ST>$t!$m$qvtj0Qmw8moN6GUV^!QKNK zHBXCtUH8)RY9++gH_TUV4^=-j$t}dD3qsN7GclJ^Zc&(j6&a_!$jCf}%c5ey`pm~1)@{yI3 zTdWyB+*X{JFw#z;PwRr5evb2!ueWF;v`B0HoUu4-(~aL=z;OXUUEtG`_$)Oxw6FKg zEzY`CyKaSBK3xt#8gA|r_|Kehn_HYVBMpEwbn9-fI*!u*eTA1ef8Mkl1=!jV4oYwWYM}i`A>_F4nhmlCIC6WLa zY%;4&@AlnaG11ejl61Jev21|r*m+?Kru3;1tFDl}#!OzUp6c>go4{C|^erwpG*&h6bspUPJag}oOkN2912Y3I?(eRc@U9>z#HPBHC?nps7H5!zP``90!Q1n80jo+B3TWXp!8Pe zwuKuLLI6l3Gv@+QH*Y}2wPLPQ1^EZhT#+Ed8q8Wo z1pTmIBxv14-{l&QVKxAyQF#8Q@NeJwWdKk>?cpiJLkJr+aZ!Me+Cfp!?FWSRf^j2k z73BRR{WSKaMkJ>1Nbx5dan5hg^_}O{Tj6u%iV%#QGz0Q@j{R^Ik)Z*+(YvY2ziBG)?AmJa|JV%4UT$k`hcOg5r9R?5>?o~JzK zJCrj&{i#hG>N7!B4kNX(%igb%kDj0fOQThC-8mtfap82PNRXr1D>lbgg)dYTQ(kbx z`Ee5kXG~Bh+BHQBf|kJEy6(ga%WfhvdQNDuOfQoe377l#ht&DrMGeIsI5C<&ai zWG$|hop2@@q5YDa)_-A?B02W;#fH!%k`daQLEItaJJ8Yf1L%8x;kg?)k)00P-lH+w z)5$QNV6r2$YtnV(4o=0^3{kmaXn*Dm0F*fU(@o)yVVjk|ln8ea6BMy%vZAhW9|wvA z8RoDkVoMEz1d>|5(k0Nw>22ZT){V<3$^C-cN+|~hKt2)){+l-?3m@-$c?-dlzQ)q- zZ)j%n^gerV{|+t}9m1_&&Ly!9$rtG4XX|WQ8`xYzGC~U@nYh~g(z9)bdAl#xH)xd5a=@|qql z|FzEil{P5(@gy!4ek05i$>`E^G~{;pnf6ftpLh$h#W?^#4UkPfa;;?bsIe&kz!+40 zI|6`F2n020)-r`pFaZ38F!S-lJM-o&inOw|66=GMeP@xQU5ghQH{~5Uh~TMTd;I9` z>YhVB`e^EVj*S7JF39ZgNf}A-0DwOcTT63ydN$I3b?yBQtUI*_fae~kPvzoD$zjX3 zoqBe#>12im4WzZ=f^4+u=!lA|#r%1`WB0-6*3BL#at`47#ebPpR|D1b)3BjT34nYY z%Ds%d?5$|{LgOIaRO{{oC&RK`O91$fqwM0(C_TALcozu*fWHb%%q&p-q{_8*2Zsi^ zh1ZCnr^UYa;4vQEtHk{~zi>wwMC5o{S=$P0X681y`SXwFH?Ewn{x-MOZynmc)JT5v zuHLwh;tLfxRrr%|k370}GofLl7thg>ACWWY&msqaVu&ry+`7+Ss>NL^%T1|z{IGMA zW-SKl=V-^{(f!Kf^#3(|T2W47d(%JVCI4JgRrT1pNz>+ietmFToNv^`gzC@&O-)+i zPQ~RwK8%C_vf%;%e>NyTp~dM5;!C|N0Q^6|CEb7Bw=Vz~$1#FA;Z*?mKSC)Hl-20s t8QyHj(g6VK0RYbl8UjE)0O0w=e*@m04r>stuEhWV002ovPDHLkV1hl;dM*F} diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js deleted file mode 100644 index 3174bd7b..00000000 --- a/docs/html/dynsections.js +++ /dev/null @@ -1,121 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -FMS Coupler: File List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              File List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all files with brief descriptions:
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              [detail level 12]
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                                full
                                                                                                                                                                                                                                                                                                               atm_land_ice_flux_exchange.F90Performs flux calculations and exchange grid operations for atmosphere, land and ice
                                                                                                                                                                                                                                                                                                               atmos_ocean_dep_fluxes_calc.F90Calculates ocean and atmosphere deposition gas fluxes
                                                                                                                                                                                                                                                                                                               atmos_ocean_fluxes_calc.F90Calculates gas fluxes for atmosphere and ocean
                                                                                                                                                                                                                                                                                                               coupler_main.F90Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean)
                                                                                                                                                                                                                                                                                                               flux_exchange.F90The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved
                                                                                                                                                                                                                                                                                                               full_coupler_mod.F90
                                                                                                                                                                                                                                                                                                               ice_ocean_flux_exchange.F90Handles flux calculations and exchange grids for ice and ocean
                                                                                                                                                                                                                                                                                                               land_ice_flux_exchange.F90Handles flux exchanges and exchange grids between land and ice grids
                                                                                                                                                                                                                                                                                                                shared
                                                                                                                                                                                                                                                                                                               surface_flux.F90Handles calculation of fluxes on the exchange grids, see module page for more information
                                                                                                                                                                                                                                                                                                                SHiELD
                                                                                                                                                                                                                                                                                                               coupler_main.F90Main driver program for the SHiELD model
                                                                                                                                                                                                                                                                                                                simple
                                                                                                                                                                                                                                                                                                               coupler_main.F90Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90
                                                                                                                                                                                                                                                                                                               flux_exchange.F90Routines to handle flux exchanges through exchange grids for the simple coupler
                                                                                                                                                                                                                                                                                                               ice_model.F90Handles ice component updates and time steps
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/flux_exchange_conf.html b/docs/html/flux_exchange_conf.html deleted file mode 100644 index 8777559e..00000000 --- a/docs/html/flux_exchange_conf.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -FMS Coupler: Flux Exchange Configuration - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Flux Exchange Configuration
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              flux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables.

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              Variable Name Type Default Value Description
                                                                                                                                                                                                                                                                                                              z_ref_heat real 2.0 Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q).
                                                                                                                                                                                                                                                                                                              z_ref_mom real 10.0 Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m).
                                                                                                                                                                                                                                                                                                              do_area_weighted_flux logical .FALSE.
                                                                                                                                                                                                                                                                                                              debug_stocks logical .FALSE.
                                                                                                                                                                                                                                                                                                              divert_stocks_report logical .FALSE.
                                                                                                                                                                                                                                                                                                              do_runoff logical .TRUE. Turns on/off the land runoff interpolation to the ocean.
                                                                                                                                                                                                                                                                                                              do_forecast logical .FALSE.
                                                                                                                                                                                                                                                                                                              nblocks integer 1 Specify number of blocks that n_xgrid_sfc is divided into. The main purpose is for Openmp implementation. Normally you may set nblocks to be coupler_nml atmos_nthreads.
                                                                                                                                                                                                                                                                                                              partition_fprec_from_lprec logical .FALSE. Option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter
                                                                                                                                                                                                                                                                                                              scale_precip_2d logical .false. Option to scale the Atmlprec. If this varible is set to .true. Atmlprec will be rescaled by a field read from the data_table
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/folderclosed.png b/docs/html/folderclosed.png deleted file mode 100644 index bb8ab35edce8e97554e360005ee9fc5bffb36e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/docs/html/full_2coupler__main_8_f90.html b/docs/html/full_2coupler__main_8_f90.html deleted file mode 100644 index 10d339f0..00000000 --- a/docs/html/full_2coupler__main_8_f90.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -FMS Coupler: full/coupler_main.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              coupler_main.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (e357d8ffc44c2808628ec7912c827d2ad41978b7)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean). -More...

                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              program coupler_main
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean).

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Please see the main page for additional information.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_main()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              program coupler_main ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Exceptions
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              FATAL,no namelist value for current_dateA namelist value for current_date must be given if no restart file for coupler_main (INPUT/coupler.res) is found.
                                                                                                                                                                                                                                                                                                              FATAL,invalid namelist value for calendarThe value of calendar must be 'gregorian', 'julian', 'noleap', or 'thirty_day'. See the namelist documentation.
                                                                                                                                                                                                                                                                                                              FATAL,no namelist value for calendarIf no restart file is present, then a namelist value for calendar must be specified.
                                                                                                                                                                                                                                                                                                              FATAL,initial time is greater than current timeIf a restart file is present, then the namelist value for either current_date or start_date was incorrectly set.
                                                                                                                                                                                                                                                                                                              FATAL,run length must be multiple of ocean time stepThere must be an even number of ocean time steps for the requested run length.
                                                                                                                                                                                                                                                                                                              FATAL,final time does not match expected ending timeThis error should probably not occur because of checks done at initialization time.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/full_2flux__exchange_8_f90.html b/docs/html/full_2flux__exchange_8_f90.html deleted file mode 100644 index 85bf4e43..00000000 --- a/docs/html/full_2flux__exchange_8_f90.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - -FMS Coupler: full/flux_exchange.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              flux_exchange.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved. -More...

                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  flux_exchange_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::gas_exchange_init (gas_fields_atm, gas_fields_ice, gas_fluxes)
                                                                                                                                                                                                                                                                                                               Gas and tracer exchange initialization routine. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_exchange_init (Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)
                                                                                                                                                                                                                                                                                                               Initialization routine. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_check_stocks (Time, Atm, Lnd, Ice, Ocn_state)
                                                                                                                                                                                                                                                                                                               Check stock values. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_init_stocks (Time, Atm, Lnd, Ice, Ocn_state)
                                                                                                                                                                                                                                                                                                               Initialize stock values. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::check_atm_grid (Atm, grid_file)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len=128) flux_exchange_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) flux_exchange_mod::tag = '$Name$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_init = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter flux_exchange_mod::bound_tol = 1e-7
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter flux_exchange_mod::d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter flux_exchange_mod::d378 = 1.0-d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::z_ref_heat = 2.
                                                                                                                                                                                                                                                                                                               Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::z_ref_mom = 10.
                                                                                                                                                                                                                                                                                                               Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_area_weighted_flux = .FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::debug_stocks = .FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::divert_stocks_report = .FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_runoff = .TRUE.
                                                                                                                                                                                                                                                                                                               Turns on/off the land runoff interpolation to the ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_forecast = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::nblocks = 1
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
                                                                                                                                                                                                                                                                                                               option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter flux_exchange_mod::tfreeze = 273.15
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::scale_precip_2d = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::gas_fluxes_initialized = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_atm
                                                                                                                                                                                                                                                                                                               Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_ice
                                                                                                                                                                                                                                                                                                               Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fluxes
                                                                                                                                                                                                                                                                                                               A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::ni_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::nj_atm
                                                                                                                                                                                                                                                                                                               to do atmos diagnostic from flux_ocean_to_ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(3) flux_exchange_mod::ccc
                                                                                                                                                                                                                                                                                                               for conservation checks More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::cplclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::dt_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::atm_precip_new
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Author
                                                                                                                                                                                                                                                                                                              Bruce Wyman Bruce.nosp@m..Wym.nosp@m.an@no.nosp@m.aa.g.nosp@m.ov
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -V. Balaji V.Bal.nosp@m.aji@.nosp@m.noaa..nosp@m.gov
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -Sergey Malyshev Serge.nosp@m.y.Ma.nosp@m.lyshe.nosp@m.v@no.nosp@m.aa.go.nosp@m.v
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                              1. This version of flux_exchange_mod allows the definition of physically independent grids for atmosphere, land and sea ice. Ice and ocean must share the same physical grid (though the domain decomposition on parallel systems may be different). Grid information is input through the grid_spec file (URL). The masked region of the land grid and ice/ocean grid must "tile" each other. The masked region of the ice grid and ocean grid must be identical.

                                                                                                                                                                                                                                                                                                                -         ATMOSPHERE  |----|----|----|----|----|----|----|----|
                                                                                                                                                                                                                                                                                                                               LAND  |---|---|---|---|xxx|xxx|xxx|xxx|xxx|xxx|
                                                                                                                                                                                                                                                                                                                                ICE  |xxx|xxx|xxx|xxx|---|---|---|---|---|---|
                                                                                                                                                                                                                                                                                                                               OCEAN |xxx|xxx|xxx|xxx|---|---|---|---|---|---|
                                                                                                                                                                                                                                                                                                                - 

                                                                                                                                                                                                                                                                                                                where |xxx| represents a masked grid point

                                                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                                                The atmosphere, land, and ice grids exchange information using the exchange grid xmap_sfc.

                                                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                                                The land and ice grids exchange runoff data using the exchange grid xmap_runoff.

                                                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                                                Transfer of data between the ice bottom and ocean does not require an exchange grid as the grids are physically identical. The flux routines will automatically detect and redistribute data if their domain decompositions are different.

                                                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                                                To get information from the atmosphere to the ocean it must pass through the ice model, first by interpolating from the atmospheric grid to the ice grid, and then transferring from the ice grid to the ocean grid.

                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                              2. -
                                                                                                                                                                                                                                                                                                              3. Each component model must have a public defined data type containing specific boundary fields. A list of these quantities is located in the NOTES of this document.
                                                                                                                                                                                                                                                                                                              4. -
                                                                                                                                                                                                                                                                                                              5. The surface flux of sensible heat and surface evaporation can be implicit functions of surface temperature. As a consequence, the parts of the land and sea-ice models that update the surface temperature must be called on the atmospheric time step
                                                                                                                                                                                                                                                                                                              6. -
                                                                                                                                                                                                                                                                                                              7. The surface fluxes of all other tracers and of momentum are assumed to be explicit functions of all surface parameters.
                                                                                                                                                                                                                                                                                                              8. -
                                                                                                                                                                                                                                                                                                              9. While no explicit reference is made within this module to the implicit treatment of vertical diffusion in the atmosphere and in the land or sea-ice models, the module is designed to allow for simultaneous implicit time integration on both sides of the surface interface.
                                                                                                                                                                                                                                                                                                              10. -
                                                                                                                                                                                                                                                                                                              11. Due to #5, the diffusion part of the land and ice models must be called on the atmospheric time step, although in the case of concurrent-ice coupling, this version of the sea-ice that is called by the atmosphere may later be replaced by a version of the ice that is tightly coupled with the ocean.
                                                                                                                                                                                                                                                                                                              12. -
                                                                                                                                                                                                                                                                                                              13. The fluxes of additional tracers related to biological quantities or the air-sea exchange of gases are accomplished by specifying fields that will be passed between components via the "field_table" and the use of named fields in the coupler_..._bc_types.
                                                                                                                                                                                                                                                                                                              14. -
                                                                                                                                                                                                                                                                                                              15. Any field passed from one component to another may be "faked" to a constant value, or to data acquired from a file, using the data_override feature of FMS. The fields to override are runtime configurable, using the text file data_table for input. See the data_override_mod documentation for more details.

                                                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                                                We DO NOT RECOMMEND exercising the data override capabilities of the FMS coupler until the user has acquired considerable sophistication in running FMS.

                                                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                                                Here is a listing of the override capabilities of the flux_exchange module:

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • FROM the atmosphere boundary TO the exchange grid (in sfc_boundary_layer):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  t_bot, q_bot, z_bot, p_bot, u_bot, v_bot, p_surf, slp, gust

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the ice boundary TO the exchange grid (in sfc_boundary_layer):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  t_surf, rough_mom, rough_heat, rough_moist, albedo, u_surf, v_surf

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the land boundary TO the exchange grid (in sfc_boundary_layer):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  t_surf, t_ca, q_ca, rough_mom, rough_heat, albedo

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the exchange grid TO land_ice_atmos_boundary (in sfc_boundary_layer):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  t, albedo, land_frac, dt_t, dt_q, u_flux, v_flux, dtaudu, dtaudv, u_star, b_star, rough_mom

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the atmosphere boundary TO the exchange grid (in flux_down_from_atmos):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  flux_sw, flux_lw, lprec, fprec, coszen, dtmass, delta_t, delta_q, dflux_t, dflux_q

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the exchange grid TO the land boundary (in flux_down_from_atmos):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  t_flux, q_flux, lw_flux, sw_flux, lprec, fprec, dhdt, dedt, dedq, drdt, drag_q, p_surf

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the exchange grid TO the ice boundary (in flux_down_from_atmos):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  u_flux, v_flux, t_flux, q_flux, lw_flux, lw_flux_dn, sw_flux, sw_flux_dn, lprec, fprec, dhdt, dedt, drdt, coszen, p

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the land boundary TO the ice boundary (in flux_land_to_ice):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  runoff, calving

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the ice boundary TO the ocean boundary (in flux_ice_to_ocean):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  u_flux, v_flux, t_flux, q_flux, salt_flux, lw_flux, sw_flux, lprec, fprec, runoff, calving, p, ustar_berg, area_berg, mass_berg

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the ocean boundary TO the ice boundary (in flux_ocean_to_ice):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  u, v, t, s, frazil, sea_level

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the ice boundary TO the atmosphere boundary (in flux_up_to_atmos):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  t_surf

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                • FROM the land boundary TO the atmosphere boundary (in flux_up_to_atmos):

                                                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                                                  t_ca, t_surf, q_ca

                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                                                See NOTES below for an explanation of the field names.

                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                              16. -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              -Diagnostic Fields

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The table below contains the available diagnostic fields is the flux diagnostic module.

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              Field Name Units Description
                                                                                                                                                                                                                                                                                                              land_mask none Fractional amount of land
                                                                                                                                                                                                                                                                                                              wind m/s Wind speed for flux calculations
                                                                                                                                                                                                                                                                                                              drag_moist none Drag coeff for moisture
                                                                                                                                                                                                                                                                                                              drag_heat none Drag coeff for heat
                                                                                                                                                                                                                                                                                                              drag_mom none Drag coeff for momentum
                                                                                                                                                                                                                                                                                                              rough_moist m Surface roughness for moisture
                                                                                                                                                                                                                                                                                                              rough_heat m Surface roughness for heat
                                                                                                                                                                                                                                                                                                              rough_mom m Surface roughness for momentum
                                                                                                                                                                                                                                                                                                              u_star m/s Friction velocity
                                                                                                                                                                                                                                                                                                              b_star m/s Buoyancy scale
                                                                                                                                                                                                                                                                                                              q_star kg water/kg air moisture scale
                                                                                                                                                                                                                                                                                                              t_atm deg_k temperature at btm level
                                                                                                                                                                                                                                                                                                              u_atm m/s u wind component at btm level
                                                                                                                                                                                                                                                                                                              v_atm m/s v wind component at btm level
                                                                                                                                                                                                                                                                                                              q_atm kg/kg specific humidity at btm level
                                                                                                                                                                                                                                                                                                              p_atm pa pressure at btm level
                                                                                                                                                                                                                                                                                                              z_atm m height of btm level
                                                                                                                                                                                                                                                                                                              gust m/s gust scale
                                                                                                                                                                                                                                                                                                              rh_ref percent relative humidity at ref height
                                                                                                                                                                                                                                                                                                              t_ref deg_k temperature at ref height
                                                                                                                                                                                                                                                                                                              u_ref m/s zonal wind component at ref height
                                                                                                                                                                                                                                                                                                              v_ref m/s meridional wind component at ref height
                                                                                                                                                                                                                                                                                                              del_h none ref height interp factor for heat
                                                                                                                                                                                                                                                                                                              del_m none ref height interp factor for momentum
                                                                                                                                                                                                                                                                                                              del_q none ref height interp factor for moisture
                                                                                                                                                                                                                                                                                                              tau_x pa zonal wind stress
                                                                                                                                                                                                                                                                                                              tau_y pa meridional wind stress
                                                                                                                                                                                                                                                                                                              ice_mask none fractional amount of sea ice
                                                                                                                                                                                                                                                                                                              t_surf deg_k surface temperature
                                                                                                                                                                                                                                                                                                              t_ca deg_k canopy air temperature
                                                                                                                                                                                                                                                                                                              q_surf kg/kg surface specific humidity
                                                                                                                                                                                                                                                                                                              shflx w/m2 sensible heat flux
                                                                                                                                                                                                                                                                                                              evap kg/m2/s evaporation rate
                                                                                                                                                                                                                                                                                                              lwflx w/m2 net (down-up) longwave flux
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              -Main Program Example

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Below is some pseudo-code to illustrate the logic of the main loop.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              DO slow time steps(ocean)
                                                                                                                                                                                                                                                                                                              call flux_ocean_to_ice
                                                                                                                                                                                                                                                                                                              call ice_slow_up
                                                                                                                                                                                                                                                                                                              DO fast time steps(atmos)
                                                                                                                                                                                                                                                                                                              call sfc_boundary_layer
                                                                                                                                                                                                                                                                                                              call atmos_down
                                                                                                                                                                                                                                                                                                              call flux_down_from_atmos
                                                                                                                                                                                                                                                                                                              call land_fast
                                                                                                                                                                                                                                                                                                              call ice_fast
                                                                                                                                                                                                                                                                                                              call flux_up_to_atmos
                                                                                                                                                                                                                                                                                                              call atmos_up
                                                                                                                                                                                                                                                                                                              END DO
                                                                                                                                                                                                                                                                                                              call ice_slow_dn
                                                                                                                                                                                                                                                                                                              call flux_ice_to_ocean
                                                                                                                                                                                                                                                                                                              call ocean
                                                                                                                                                                                                                                                                                                              END DO
                                                                                                                                                                                                                                                                                                              Note
                                                                                                                                                                                                                                                                                                              LAND_FAST and ICE_FAST must update the surface temperature
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              -Variables In Defined Data Types For Component Models

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              -Atmosphere

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              type(atmos_boundary_data_type) :: atm
                                                                                                                                                                                                                                                                                                              real, dimension(:) :: Atm%lon_bnd & ! longitude axis grid box boundaries in radians
                                                                                                                                                                                                                                                                                                              ! must be monotonic
                                                                                                                                                                                                                                                                                                              atm%lat_bnd ! latitude axis grid box boundaries in radians
                                                                                                                                                                                                                                                                                                              ! must be monotonic
                                                                                                                                                                                                                                                                                                              real, dimension(:,:) :: Atm%t_bot & ! temperature at lowest model level
                                                                                                                                                                                                                                                                                                              Atm%q_bot & ! specific humidity at lowest model level
                                                                                                                                                                                                                                                                                                              Atm%z_bot & ! height above the surface for the lowest model level (m)
                                                                                                                                                                                                                                                                                                              Atm%p_bot & ! pressure at lowest model level (pa)
                                                                                                                                                                                                                                                                                                              Atm%u_bot & ! zonal wind component at lowest model level (m/s)
                                                                                                                                                                                                                                                                                                              Atm%v_bot & ! meridional wind component at lowest model level (m/s)
                                                                                                                                                                                                                                                                                                              Atm%p_surf & ! surface pressure (pa)
                                                                                                                                                                                                                                                                                                              Atm%slp & ! sea level pressure (pa)
                                                                                                                                                                                                                                                                                                              Atm%gust & ! gustiness factor (m/s)
                                                                                                                                                                                                                                                                                                              Atm%flux_sw & ! net shortwave flux at the surface
                                                                                                                                                                                                                                                                                                              Atm%flux_lw & ! downward longwave flux at the surface
                                                                                                                                                                                                                                                                                                              Atm%lprec & ! liquid precipitation (kg/m2)
                                                                                                                                                                                                                                                                                                              Atm%fprec & ! water equivalent frozen precipitation (kg/m2)
                                                                                                                                                                                                                                                                                                              Atm%coszen & ! cosine of the zenith angle
                                                                                                                                                                                                                                                                                                              integer, dimension(4) :: Atm%axes ! Axis identifiers returned by diag_axis_init for the
                                                                                                                                                                                                                                                                                                              ! atmospheric model axes: x, y, z_full, z_half.

                                                                                                                                                                                                                                                                                                              The following five fields are gathered into a data type for convenience in passing this information through the different levels of the atmospheric model – these fields are rlated to the simultaneous implicit time steps in the atmosphere and surface models – they are described more fully in flux_exchange.tech.ps and in the documntation for vert_diff_mod

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              type(surf_diff_type) :: atm%Surf_Diff
                                                                                                                                                                                                                                                                                                              real, dimension(:,:) :: Atm%Surf_Diff%dtmass & !dt/mass where dt=atmospheric time step ((i+1)=(i-1) for leapfrog)(s)
                                                                                                                                                                                                                                                                                                              ! mass = mass per unit area of lowest atmosphehic layer (Kg/m2))
                                                                                                                                                                                                                                                                                                              atm%Surf_Diff%delta_t & ! increment ((i+1) = (i-1) for leapfrog) in temperature of
                                                                                                                                                                                                                                                                                                              ! lowest atmospheric layer (K)
                                                                                                                                                                                                                                                                                                              atm%Surf_Diff%delta_q & ! increment ((i+1) = (i-1) for leapfrog) in specific humidity of
                                                                                                                                                                                                                                                                                                              ! lowest atmospheric layer (nondimensional -- Kg/Kg)
                                                                                                                                                                                                                                                                                                              atm%Surf_Diff%dflux_t & ! derivative of implicit part of downward temperature flux at top of
                                                                                                                                                                                                                                                                                                              ! lowest atmospheric layer with respect to temperature
                                                                                                                                                                                                                                                                                                              ! of lowest atmospheric layer (Kg/(m2 s))
                                                                                                                                                                                                                                                                                                              atm%Surf_Diff%dflux_q ! derivative of implicit part of downward moisture flux at top of
                                                                                                                                                                                                                                                                                                              ! lowest atmospheric layer with respect to specific humidity of
                                                                                                                                                                                                                                                                                                              ! of lowest atmospheric layer(kg/(m2 s))

                                                                                                                                                                                                                                                                                                              -Land

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              type(land_boundary_data_type) :: land
                                                                                                                                                                                                                                                                                                              real, dimension(:) :: Land%lon_bnd & ! longitude axis grid box boundaries in radians
                                                                                                                                                                                                                                                                                                              ! must be monotonic
                                                                                                                                                                                                                                                                                                              land%lat_bnd ! latitude axis grid box boundaries in radians
                                                                                                                                                                                                                                                                                                              ! must be monotonic
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:,:) :: Land%mask & ! land/sea mask (true for land)
                                                                                                                                                                                                                                                                                                              Land%glacier ! glacier mask (true for glacier)
                                                                                                                                                                                                                                                                                                              real, dimension(:,:,:) :: Land%tile_size & ! fractional area of each tile (partition)
                                                                                                                                                                                                                                                                                                              Land%t_surf & ! surface temperature (deg k)
                                                                                                                                                                                                                                                                                                              Land%albedo & ! surface albedo (fraction)
                                                                                                                                                                                                                                                                                                              Land%rough_mom & ! surface roughness for momentum (m)
                                                                                                                                                                                                                                                                                                              Land%rough_heat & ! surface roughness for heat/moisture (m)
                                                                                                                                                                                                                                                                                                              Land%stomatal & ! stomatal resistance
                                                                                                                                                                                                                                                                                                              Land%snow & ! snow depth (water equivalent) (kg/m2)
                                                                                                                                                                                                                                                                                                              Land%water & ! water depth of the uppermost bucket (kg/m2)
                                                                                                                                                                                                                                                                                                              Land%max_water ! maximum water depth allowed in the uppermost bucket (kg/m2)

                                                                                                                                                                                                                                                                                                              -Ice

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              type(ice_boundary_data_type) :: ice
                                                                                                                                                                                                                                                                                                              real, dimension(:) :: Ice%lon_bnd & ! longitude axis grid box boundaries for temperature points
                                                                                                                                                                                                                                                                                                              ! in radians (must be monotonic)
                                                                                                                                                                                                                                                                                                              ice%lat_bnd & ! latitude axis grid box boundaries for temperature points
                                                                                                                                                                                                                                                                                                              ! in radians (must be monotonic)
                                                                                                                                                                                                                                                                                                              ice%lon_bnd_uv & ! longitude axis grid box boundaries for momentum points
                                                                                                                                                                                                                                                                                                              ! in radians (must be monotonic)
                                                                                                                                                                                                                                                                                                              ice%lat_bnd_uv ! latitude axis grid box boundaries for momentum points
                                                                                                                                                                                                                                                                                                              ! in radians (must be monotonic)
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:,:) :: Ice%mask & ! ocean/land mask for temperature points
                                                                                                                                                                                                                                                                                                              ! (true for ocean, with or without ice)
                                                                                                                                                                                                                                                                                                              ice%mask_uv & ! ocean/land mask for momentum points
                                                                                                                                                                                                                                                                                                              ! (true for ocean, with or without ice)
                                                                                                                                                                                                                                                                                                              ice%ice_mask ! optional ice mask (true for ice)
                                                                                                                                                                                                                                                                                                              real, dimension(:,:,:) :: Ice%part_size & ! fractional area of each partition of a temperature grid box
                                                                                                                                                                                                                                                                                                              Ice%part_size_uv ! fractional area of each partition of a momentum grid box

                                                                                                                                                                                                                                                                                                              The following fields are located on the ice top grid

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:,:) :: Ice%t_surf & ! surface temperature (deg k)
                                                                                                                                                                                                                                                                                                              Ice%albedo & ! surface albedo (fraction)
                                                                                                                                                                                                                                                                                                              Ice%rough_mom & ! surface roughness for momentum (m)
                                                                                                                                                                                                                                                                                                              Ice%rough_heat & ! surface roughness for heat/moisture (m)
                                                                                                                                                                                                                                                                                                              Ice%u_surf & ! zonal (ocean/ice) current at the surface (m/s)
                                                                                                                                                                                                                                                                                                              Ice%v_surf ! meridional (ocean/ice) current at the surface (m/s)

                                                                                                                                                                                                                                                                                                              The following fields are located on the ice bottom grid

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:,:) :: Ice%flux_u & ! zonal wind stress (Pa)
                                                                                                                                                                                                                                                                                                              Ice%flux_v & ! meridional wind stress (Pa)
                                                                                                                                                                                                                                                                                                              Ice%flux_t & ! sensible heat flux (w/m2)
                                                                                                                                                                                                                                                                                                              Ice%flux_q & ! specific humidity flux (kg/m2/s)
                                                                                                                                                                                                                                                                                                              Ice%flux_sw & ! net (down-up) shortwave flux (w/m2)
                                                                                                                                                                                                                                                                                                              Ice%flux_lw & ! net (down-up) longwave flux (w/m2)
                                                                                                                                                                                                                                                                                                              Ice%lprec & ! mass of liquid precipitation since last time step (Kg/m2)
                                                                                                                                                                                                                                                                                                              Ice%fprec & ! mass of frozen precipitation since last time step (Kg/m2)
                                                                                                                                                                                                                                                                                                              Ice%runoff ! mass of runoff water since last time step (Kg/m2)

                                                                                                                                                                                                                                                                                                              -Ocean

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              type(ocean_boundary_data_type) :: ocean
                                                                                                                                                                                                                                                                                                              real, dimension(:) :: Ocean%Data%lon_bnd & ! longitude axis grid box boundaries for temperature
                                                                                                                                                                                                                                                                                                              ! points on the ocean DATA GRID (radians)
                                                                                                                                                                                                                                                                                                              ocean%Data%lat_bnd & ! latitude axis grid box boundaries for temperature
                                                                                                                                                                                                                                                                                                              ! points on the ocean DATA GRID (radians)
                                                                                                                                                                                                                                                                                                              ocean%Data%lon_bnd_uv & ! longitude axis grid box boundaries for momentum
                                                                                                                                                                                                                                                                                                              ! points on the ocean DATA GRID (radians)
                                                                                                                                                                                                                                                                                                              ocean%Data%lat_bnd_uv & ! latitude axis grid box boundaries for momentum
                                                                                                                                                                                                                                                                                                              ! points on the ocean DATA GRID (radians)
                                                                                                                                                                                                                                                                                                              ocean%Ocean%lon_bnd & ! longitude axis grid box boundaries for temperature
                                                                                                                                                                                                                                                                                                              ! points on the ocean MODEL GRID (radians)
                                                                                                                                                                                                                                                                                                              ocean%Ocean%lat_bnd & ! latitude axis grid box boundaries for temperature
                                                                                                                                                                                                                                                                                                              ! points on the ocean MODEL GRID (radians)
                                                                                                                                                                                                                                                                                                              ocean%Ocean%lon_bnd_uv & ! longitude axis grid box boundaries for momentum
                                                                                                                                                                                                                                                                                                              ! points on the ocean MODEL GRID (radians)
                                                                                                                                                                                                                                                                                                              ocean%Ocean%lat_bnd_uv & ! latitude axis grid box boundaries for momentum
                                                                                                                                                                                                                                                                                                              ! points on the ocean model grid(radians)
                                                                                                                                                                                                                                                                                                              Note
                                                                                                                                                                                                                                                                                                              The data values in all longitude and latitude grid box boundary array must be monotonic.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:) :: Ocean%Data%mask & ! ocean/land mask for temperature points on the ocean
                                                                                                                                                                                                                                                                                                              ! DATA GRID (true for ocean)
                                                                                                                                                                                                                                                                                                              ocean%Data%mask_uv & ! ocean/land mask for momentum points on the ocean
                                                                                                                                                                                                                                                                                                              ! DATA GRID (true for ocean)
                                                                                                                                                                                                                                                                                                              ocean%Ocean%mask & ! ocean/land mask for temperature points on the ocean
                                                                                                                                                                                                                                                                                                              ! MODEL GRID (true for ocean)
                                                                                                                                                                                                                                                                                                              ocean%Ocean%mask_uv ! ocean/land mask for momentum points on the ocean
                                                                                                                                                                                                                                                                                                              ! MODEL GRID (true for ocean)
                                                                                                                                                                                                                                                                                                              real, dimension(:,:) :: Ocean%t_surf_data & ! surface temperature on the ocean DATA GRID (deg k)
                                                                                                                                                                                                                                                                                                              Ocean%t_surf & ! surface temperature on the ocean MODEL GRID (deg k)
                                                                                                                                                                                                                                                                                                              Ocean%u_surf & ! zonal ocean current at the surface on the ocean
                                                                                                                                                                                                                                                                                                              ! MODEL GRID (m/s)
                                                                                                                                                                                                                                                                                                              ocean%v_surf & ! meridional ocean current at the surface on the
                                                                                                                                                                                                                                                                                                              ! ocean MODEL GRID (m/s)
                                                                                                                                                                                                                                                                                                              ocean%frazil ! frazil at temperature points on the ocean model grid
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/full__coupler__mod_8_f90.html b/docs/html/full__coupler__mod_8_f90.html deleted file mode 100644 index 92cdf0eb..00000000 --- a/docs/html/full__coupler__mod_8_f90.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - - -FMS Coupler: full/full_coupler_mod.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              #include <file_version.fh>
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              type  full_coupler_mod::coupler_clock_type
                                                                                                                                                                                                                                                                                                               coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  full_coupler_mod::coupler_components_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  full_coupler_mod::coupler_chksum_type
                                                                                                                                                                                                                                                                                                               The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  full_coupler_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_init (Atm, Ocean, Land, Ice, Ocean_state, Atmos_land_boundary, Atmos_ice_boundary, Ocean_ice_boundary, Ice_ocean_boundary, Land_ice_atmos_boundary, Land_ice_boundary, Ice_ocean_driver_CS, Ice_bc_restart, Ocn_bc_restart, ensemble_pelist, slow_ice_ocean_pelist, conc_nthreads, coupler_clocks, coupler_components_obj, coupler_chksum_obj, Time_step_cpld, Time_step_atmos, Time_atmos, Time_ocean, num_cpld_calls, num_atmos_calls, Time, Time_start, Time_end, Time_restart, Time_restart_current)
                                                                                                                                                                                                                                                                                                               Initialize all defined exchange grids and all boundary maps. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::initialize_coupler_components_obj (this, Atm, Land, Ice, Ocean, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Land_ice_boundary, Ice_ocean_boundary, Ocean_ice_boundary)
                                                                                                                                                                                                                                                                                                               This subroutine associates the pointer in an object of coupler_components_type to the model components. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_component (this, retrieve_component)
                                                                                                                                                                                                                                                                                                               Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::initialize_coupler_chksum_obj (this, components_obj)
                                                                                                                                                                                                                                                                                                               This subroutine associates the pointer in an object of coupler_chksum_type to the component models. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_components_obj (this, components_obj)
                                                                                                                                                                                                                                                                                                               This subroutine retrieves coupler_chksum_objcomponents_obj. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_end (Atm, Land, Ice, Ocean, Ocean_state, Land_ice_atmos_boundary, Atmos_ice_boundary, Atmos_land_boundary, Ice_ocean_boundary, Ocean_ice_boundary, Ocn_bc_restart, Ice_bc_restart, current_timestep, Time_current, Time_start, Time_end, Time_restart_current, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::add_domain_dimension_data (fileobj)
                                                                                                                                                                                                                                                                                                               Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_restart (Atm, Ice, Ocean, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart_current, Time_start, time_stamp)
                                                                                                                                                                                                                                                                                                               Writing restart file that contains running time and restart file writing time. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_coupler_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               Print out checksums for several atm, land and ice variables. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_atmos_ice_land_ocean_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_atmos_ice_land_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (atm%pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(atm%pelist)
                                                                                                                                                                                                                                                                                                              call atmos_ice_land_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist. More...

                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_slow_ice_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (ice%slow_ice_pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(ice%slow_pelist)
                                                                                                                                                                                                                                                                                                              call slow_ice_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist. More...

                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_ocean_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (ocean%is_ocean_pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(ocean%pelist)
                                                                                                                                                                                                                                                                                                              call ocean_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist. More...

                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::coupler_set_clock_ids (coupler_clocks, Atm, Land, Ice, Ocean, ensemble_pelist, slow_ice_ocean_pelist, ensemble_id)
                                                                                                                                                                                                                                                                                                               This subroutine sets the ID for clocks used in coupler_main. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_init_finish_stocks (Time, Atm, Land, Ice, Ocean_state, coupler_clocks, init_stocks, finish_stocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_init_stocks or does the final call to flux_check_stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_check_stocks (nc, Time, Atm, Land, Ice, Ocean_state, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_ocean_to_ice (Ocean, Ice, Ocean_ice_boundary, coupler_clocks, slow_ice_ocean_pelist)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_ice_to_ocean (Ice, Ocean, Ice_ocean_boundary, coupler_clocks, slow_ice_ocean_pelist, set_current_slow_ice_ocean_pelist)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_unpack_ocean_ice_boundary (nc, Time_flux_ocean_to_ice, Ice, Ocean_ice_boundary, coupler_clocks, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_exchange_slow_to_fast_ice (Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_exchange_fast_to_slow_ice (Ice, coupler_clocks, set_ice_current_pelist)
                                                                                                                                                                                                                                                                                                               This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_set_ice_surface_fields (Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_generate_sfc_xgrid (Land, Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls generate_sfc_xgrid. Clocks are set and before the call. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_atmos_tracer_driver_gather_data (Atm, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_sfc_boundary_layer (Atm, Land, Ice, Land_ice_atmos_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_dynamics (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_radiation (Atm, Land_ice_atmos_boundary, coupler_clocks, current_timestep, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_down (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_down_from_atmos (Atm, Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_clocks, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_land_model_fast (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_ice_model_fast (Ice, Atmos_ice_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_up_to_atmos (Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_up (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_atmos_to_ocean (Atm, Atmos_ice_boundary, Ice, Time_atmos)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_state (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_land_model_slow (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_land_to_ice (Land, Ice, Land_ice_boundary, Time, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_unpack_land_ice_boundary (Ice, Land_ice_boundary, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_ice_model_slow_and_stocks (Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_ocean_model (Ocean, Ocean_state, Ice_ocean_boundary, Time_ocean, Time_step_cpld, current_timestep, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_intermediate_restart (Atm, Ice, Ocean, Ocean_state, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart, Time_restart_current, Time_start)
                                                                                                                                                                                                                                                                                                               Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_summarize_timestep (current_timestep, num_cpld_calls, coupler_chksum_obj, is_atmos_pe, omp_sec, imb_sec)
                                                                                                                                                                                                                                                                                                               This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              integer, dimension(6), public full_coupler_mod::restart_interval = (/ 0, 0, 0, 0, 0, 0/)
                                                                                                                                                                                                                                                                                                               namelist interface More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(6) full_coupler_mod::current_date = (/ 0, 0, 0, 0, 0, 0 /)
                                                                                                                                                                                                                                                                                                               The date that the current integration starts with. (See force_date_from_namelist.) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=17) full_coupler_mod::calendar = ' '
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical full_coupler_mod::force_date_from_namelist = .false.
                                                                                                                                                                                                                                                                                                               Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::months =0
                                                                                                                                                                                                                                                                                                               Number of months the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::days =0
                                                                                                                                                                                                                                                                                                               Number of days the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::hours =0
                                                                                                                                                                                                                                                                                                               Number of hours the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::minutes =0
                                                                                                                                                                                                                                                                                                               Number of minutes the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::seconds =0
                                                                                                                                                                                                                                                                                                               Number of seconds the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::dt_atmos = 0
                                                                                                                                                                                                                                                                                                               Atmospheric model time step in seconds, including the fast coupling with land and sea ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::dt_cpld = 0
                                                                                                                                                                                                                                                                                                               Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::atmos_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::ocean_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::ice_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::land_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the land. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::atmos_nthreads =1
                                                                                                                                                                                                                                                                                                               Number of OpenMP threads to use in the atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::ocean_nthreads =1
                                                                                                                                                                                                                                                                                                               Number of OpenMP threads to use in the ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::radiation_nthreads =1
                                                                                                                                                                                                                                                                                                               Number of threads to use for the radiation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_atmos =.true.
                                                                                                                                                                                                                                                                                                               Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_land =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_ice =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_ocean =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_flux =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::concurrent =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean... More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_concurrent_radiation =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE. then radiation is done concurrently. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::use_lag_fluxes =.TRUE.
                                                                                                                                                                                                                                                                                                               If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::concurrent_ice =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::slow_ice_with_ocean =.FALSE.
                                                                                                                                                                                                                                                                                                               If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::combined_ice_and_ocean =.FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_chksum =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE., do multiple checksums throughout the execution of the model. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_endpoint_chksum =.TRUE.
                                                                                                                                                                                                                                                                                                               If .TRUE., do checksums of the initial and final states. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_debug =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE. print additional debugging messages. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::check_stocks = 0
                                                                                                                                                                                                                                                                                                               -1: never 0: at end of run only n>0: every n coupled steps More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::use_hyper_thread = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=80) full_coupler_mod::text
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=48), parameter full_coupler_mod::mod_name = 'coupler_main_mod'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::calendar_type = INVALID_CALENDAR
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(6) full_coupler_mod::date_init = (/ 0, 0, 0, 0, 0, 0 /)
                                                                                                                                                                                                                                                                                                               coupled model initial date More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/functions.html b/docs/html/functions.html deleted file mode 100644 index dd8d8fe8..00000000 --- a/docs/html/functions.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - - -FMS Coupler: Data Fields - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all data types members with links to the data types they belong to:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - a -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - c -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - e -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - f -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - i -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - l -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - m -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - o -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - p -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - q -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - r -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - s -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - t -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - x -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html deleted file mode 100644 index fc9371be..00000000 --- a/docs/html/functions_func.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - -FMS Coupler: Data Fields - Functions/Subroutines - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html deleted file mode 100644 index b0d9f293..00000000 --- a/docs/html/functions_vars.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - - -FMS Coupler: Data Fields - Variables - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - a -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - c -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - e -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - f -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - i -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - l -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - m -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - o -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - q -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - r -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - s -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - t -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - x -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/globals.html b/docs/html/globals.html deleted file mode 100644 index 10079d84..00000000 --- a/docs/html/globals.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -FMS Coupler: File Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all file members with links to the files they belong to:
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html deleted file mode 100644 index 14786a43..00000000 --- a/docs/html/globals_defs.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -FMS Coupler: File Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html deleted file mode 100644 index 8b919863..00000000 --- a/docs/html/globals_func.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -FMS Coupler: File Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/ice__model_8_f90.html b/docs/html/ice__model_8_f90.html deleted file mode 100644 index c795c888..00000000 --- a/docs/html/ice__model_8_f90.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - -FMS Coupler: simple/ice_model.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_model.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles ice component updates and time steps. -More...

                                                                                                                                                                                                                                                                                                              - - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              type  ice_model_mod::ice_data_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  ice_model_mod::atmos_ice_boundary_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  ice_model_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::update_ice_model_fast (Atmos_boundary, Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::update_ice_model_slow (Atmos_boundary, Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::prognostic_ice (Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::prognostic_sst (Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::ice_model_init (Ice, Time_Init, Time, Time_step_fast, Time_step_slow, glon_bnd, glat_bnd, Atmos_domain)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::ice_register_restart (fileobj, Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::ice_model_end (Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::add_domain_dimension_data (fileobj)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical function ice_model_mod::is_latlon (lon, lat)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::get_cell_center (lonb, latb, lon, lat)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::latlon2xyz (sph_coor, xyz_coor)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::xyz2latlon (xyz_coor, sph_coor)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              real ice_model_mod::cmin
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::cmax
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::diff = 2.092
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::thickness_min = 0.10
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::specified_ice_thickness = 2.0
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::heat_capacity_ocean = 1.e07
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::temp_ice_freeze = -1.66
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::roughness_ice = 1.e-4
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::mixed_layer_ocean = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_climo_ice = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_annual_ice = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_climo_sst = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_annual_sst = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::ice_method = 'prognostic'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::sst_method = 'specified'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::specified
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::uniform
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::or
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::mixed_layer
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::temp_ice = 270.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::temp_sst = 280.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_model_mod::sst_anom = 0.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::interp_method = "bilinear"
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::do_netcdf_restart = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::is
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::ie
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::js
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::je
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmsamipinterp_type), save ice_model_mod::amip_ice
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmsamipinterp_type), save ice_model_mod::amip_sst
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::module_is_initialized = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::fname = 'INPUT/ice_model.res.nc'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) ice_model_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) ice_model_mod::tagname = '$Name$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter ice_model_mod::latent = HLV + HLF
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles ice component updates and time steps.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/ice__ocean__flux__exchange_8_f90.html b/docs/html/ice__ocean__flux__exchange_8_f90.html deleted file mode 100644 index 7b6b7cc3..00000000 --- a/docs/html/ice__ocean__flux__exchange_8_f90.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - -FMS Coupler: full/ice_ocean_flux_exchange.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_ocean_flux_exchange.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles flux calculations and exchange grids for ice and ocean. -More...

                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  ice_ocean_flux_exchange_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::ice_ocean_flux_exchange_init (Time, Ice, Ocean, Ocean_state, ice_ocean_boundary, ocean_ice_boundary, Dt_cpl_in, debug_stocks_in, do_area_weighted_flux_in, ex_gas_fields_ice, ex_gas_fluxes, do_ocean, slow_ice_ocean_pelist_in)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean (Ice, Ocean, Ice_Ocean_Boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_finish (Time, Ice_Ocean_Boundary)
                                                                                                                                                                                                                                                                                                               flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice (Ocean, Ice, Ocean_Ice_Boundary)
                                                                                                                                                                                                                                                                                                               Takes the ocean model state and interpolates it onto the bottom of the ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice_finish (Time, Ice, Ocean_Ice_Boundary)
                                                                                                                                                                                                                                                                                                               flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks (Ice)
                                                                                                                                                                                                                                                                                                               Updates Ice and Ocean stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_from_ice_stocks (ocean_state, Ocean, Ice_Ocean_boundary)
                                                                                                                                                                                                                                                                                                               Updates Ocean stocks due to input that the Ocean model gets. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_ocean_flux_exchange_mod::flux_ice_to_ocean_redistribute (ice, ocean, ice_data, ocn_bnd_data, type, do_area_weighted)
                                                                                                                                                                                                                                                                                                               Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_ocean_flux_exchange_mod::divide_by_area (data, area)
                                                                                                                                                                                                                                                                                                               Divide data by area while avoiding zero area elements. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_ocean_flux_exchange_mod::check_flux_conservation (Ice, Ocean, Ice_Ocean_Boundary)
                                                                                                                                                                                                                                                                                                               Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              integer, parameter ice_ocean_flux_exchange_mod::regrid =1
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter ice_ocean_flux_exchange_mod::redist =2
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter ice_ocean_flux_exchange_mod::direct =3
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_ocean_flux_exchange_mod::debug_stocks = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ice_ocean_flux_exchange_mod::do_area_weighted_flux = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_ocean_flux_exchange_mod::cplocnclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_ocean_flux_exchange_mod::fluxoceaniceclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_ocean_flux_exchange_mod::fluxiceoceanclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real ice_ocean_flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable ice_ocean_flux_exchange_mod::slow_ice_ocean_pelist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles flux calculations and exchange grids for ice and ocean.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/index.html b/docs/html/index.html deleted file mode 100644 index fde9bdb6..00000000 --- a/docs/html/index.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -FMS Coupler: Main Page - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler Documentation
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean) on different logically rectangular grids. This repository holds 3 separate directories with driver programs for different usages along with modules with routines for common operations.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              There are currently 3 coupler_main driver programs, each with their own directory:

                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                              • the original 'full' coupler_main
                                                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                                                              • a slimmed down 'simple' version
                                                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                                                              • a SHiELD version for use with the model
                                                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Additionally, files in the 'shared' directory holds modules used by multiple drivers. The information below is provided for the full coupler, but there is considerable overlap between the other versions. Documentation on all programs and modules is available through the files tab.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Author
                                                                                                                                                                                                                                                                                                              Bruce Wyman Bruce.nosp@m..Wym.nosp@m.an@no.nosp@m.aa.g.nosp@m.ov
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -V. Balaji V.Bal.nosp@m.aji@.nosp@m.noaa..nosp@m.gov
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              coupler_main.F90 couples component models for atmosphere, ocean, land and sea ice on independent grids. It also controls the time integration.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              This version couples model components representing atmosphere, ocean, land and sea ice on independent grids. Each model component is represented by a data type giving the instantaneous model state.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The component models are coupled to allow implicit vertical diffusion of heat and moisture at the interfaces of the atmosphere, land, and ice models. As a result, the atmosphere, land, and ice models all use the same time step. The atmospheric model has been separated into down and up calls that correspond to the down and up sweeps of the standard tridiagonal elimination.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The ocean interface uses explicit mixing. Fluxes to and from the ocean must be passed through the ice model. This includes atmospheric fluxes as well as fluxes from the land to the ocean (runoff).

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              This program contains the model's main time loop. Each iteration of the main time loop is one coupled (slow) time step. Within this slow time step loop is a fast time step loop, using the atmospheric time step, where the tridiagonal vertical diffusion equations are solved. Exchange between sea ice and ocean occurs once every slow timestep.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              -Namelists

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The three components of coupler: coupler_main , flux_exchange_mod, and surface_flux_mod are configured through three namelists

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Note
                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                              1. If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.
                                                                                                                                                                                                                                                                                                              2. -
                                                                                                                                                                                                                                                                                                              3. The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.
                                                                                                                                                                                                                                                                                                              4. -
                                                                                                                                                                                                                                                                                                              5. The run length must be an intergal multiple of the coupling timestep dt_cpld.
                                                                                                                                                                                                                                                                                                              6. -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              -Program Example

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Below is some pseudo-code to illustrate the runtime loop of the coupler_main drivers.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              DO slow time steps(ocean)
                                                                                                                                                                                                                                                                                                              call flux_ocean_to_ice
                                                                                                                                                                                                                                                                                                              call set_ice_surface_fields
                                                                                                                                                                                                                                                                                                              DO fast time steps(atmos)
                                                                                                                                                                                                                                                                                                              call flux_calculation
                                                                                                                                                                                                                                                                                                              call atmos_down
                                                                                                                                                                                                                                                                                                              call flux_down_from_atmos
                                                                                                                                                                                                                                                                                                              call land_fast
                                                                                                                                                                                                                                                                                                              call ice_fast
                                                                                                                                                                                                                                                                                                              call flux_up_to_atmos
                                                                                                                                                                                                                                                                                                              call atmos_up
                                                                                                                                                                                                                                                                                                              ENDDO
                                                                                                                                                                                                                                                                                                              call ice_slow
                                                                                                                                                                                                                                                                                                              call flux_ice_to_ocean
                                                                                                                                                                                                                                                                                                              call ocean
                                                                                                                                                                                                                                                                                                              enddo
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html deleted file mode 100644 index b414b6a6..00000000 --- a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange_mod::put_logical_to_real Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This is the complete list of members for atm_land_ice_flux_exchange_mod::put_logical_to_real, including all inherited members.

                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              put_logical_to_real_sg(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
                                                                                                                                                                                                                                                                                                              put_logical_to_real_ug(mask, id, ex_mask, xmap)atm_land_ice_flux_exchange_mod::put_logical_to_realprivate
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html b/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html deleted file mode 100644 index 1dda0eba..00000000 --- a/docs/html/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - -FMS Coupler: atm_land_ice_flux_exchange_mod::put_logical_to_real Interface Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange_mod::put_logical_to_real Interface Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Member Functions

                                                                                                                                                                                                                                                                                                              subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
                                                                                                                                                                                                                                                                                                               Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
                                                                                                                                                                                                                                                                                                               Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ put_logical_to_real_sg()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
                                                                                                                                                                                                                                                                                                              character(len=3), intent(in) id,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) ex_mask,
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), intent(inout) xmap 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]maskland/ice mask to map to exchange grid
                                                                                                                                                                                                                                                                                                              [in,out]ex_maskconverted mask on exchange grid
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ put_logical_to_real_ug()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
                                                                                                                                                                                                                                                                                                              character(len=3), intent(in) id,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) ex_mask,
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), intent(inout) xmap 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]maskmask on component grid
                                                                                                                                                                                                                                                                                                              [in,out]ex_maskconverted mask on exchange grid
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this interface was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html deleted file mode 100644 index e45ea29e..00000000 --- a/docs/html/interfacesurface__flux__mod_1_1surface__flux-members.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              surface_flux_mod::surface_flux Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This is the complete list of members for surface_flux_mod::surface_flux, including all inherited members.

                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              surface_flux_1d(t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)surface_flux_mod::surface_fluxprivate
                                                                                                                                                                                                                                                                                                              surface_flux_2d(t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)surface_flux_mod::surface_fluxprivate
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/interfacesurface__flux__mod_1_1surface__flux.html b/docs/html/interfacesurface__flux__mod_1_1surface__flux.html deleted file mode 100644 index 10c7ae82..00000000 --- a/docs/html/interfacesurface__flux__mod_1_1surface__flux.html +++ /dev/null @@ -1,766 +0,0 @@ - - - - - - - -FMS Coupler: surface_flux_mod::surface_flux Interface Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              surface_flux_mod::surface_flux Interface Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              For the calculation of fluxes on the exchange grids. - More...

                                                                                                                                                                                                                                                                                                              - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Member Functions

                                                                                                                                                                                                                                                                                                              subroutine surface_flux_1d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              For the calculation of fluxes on the exchange grids.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              For the calculation of fluxes on the exchange grids.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ surface_flux_1d()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux::surface_flux_1d (real, dimension(:), intent(in) t_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) q_atm_in,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) u_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) v_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) p_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) z_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) p_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) t_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) t_ca,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) q_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) u_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) v_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_mom,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_heat,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_moist,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) rough_scale,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) gust,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_r,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_u,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_v,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) cd_m,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) cd_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) cd_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) w_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) u_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) b_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) q_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) thv_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) thv_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dhdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dedt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dedq_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) drdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dhdt_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dedq_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dtaudu_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dtaudv_atm,
                                                                                                                                                                                                                                                                                                              real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) land,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) seawater,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) avail 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]avail.TRUE. where the exchange cell is active
                                                                                                                                                                                                                                                                                                              [in]gustGustiness factor
                                                                                                                                                                                                                                                                                                              [out]cd_qMoisture exchange coefficient
                                                                                                                                                                                                                                                                                                              [in,out]rough_moistMoisture roughness length
                                                                                                                                                                                                                                                                                                              [in]dtTime step (it is not used presently)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              t_atmAir temp lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
                                                                                                                                                                                                                                                                                                              u_atmZonal wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              v_atmMeridional wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_atmPressure lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              z_atmHeight lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_surfPressure at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_surfTemp at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_caAir temp at the canopy
                                                                                                                                                                                                                                                                                                              q_surfMixing ratio at the Earth's surface (kg/kg)
                                                                                                                                                                                                                                                                                                              u_surfZonal wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              v_surfMeridional wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              rough_momMomentum roughness length
                                                                                                                                                                                                                                                                                                              rough_heatHeat roughness length
                                                                                                                                                                                                                                                                                                              rough_scaleScale factor used to topographic roughness calculation
                                                                                                                                                                                                                                                                                                              flux_tSensible heat flux
                                                                                                                                                                                                                                                                                                              flux_qEvaporative water flux
                                                                                                                                                                                                                                                                                                              flux_rRadiative energy flux
                                                                                                                                                                                                                                                                                                              flux_uZonal momentum flux
                                                                                                                                                                                                                                                                                                              flux_vMeridional momentum flux
                                                                                                                                                                                                                                                                                                              cd_mMomentum exchange coefficient
                                                                                                                                                                                                                                                                                                              w_atmAbsolute wind at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              u_starTurbulent velocity scale
                                                                                                                                                                                                                                                                                                              b_starTurbulent buoyant scale
                                                                                                                                                                                                                                                                                                              q_starTurbulent moisture scale
                                                                                                                                                                                                                                                                                                              dhdt_surfSensible heat flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedt_surfMoisture flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedq_surfMoisture flux humidity sensitivity
                                                                                                                                                                                                                                                                                                              drdt_surfRadiative energy flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dhdt_atmDerivative of sensible heat flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
                                                                                                                                                                                                                                                                                                              dtaudv_atmDerivative of meridional wind stress with respect to the lowest
                                                                                                                                                                                                                                                                                                              landIndicates where land exists (.TRUE. if exchange cell is on land
                                                                                                                                                                                                                                                                                                              seawaterIndicates where liquid ocean water exists
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ surface_flux_2d()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux::surface_flux_2d (real, dimension(:,:), intent(in) t_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) q_atm_in,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) u_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) v_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) p_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) z_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) p_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) t_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) t_ca,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) q_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) u_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) v_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_mom,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_heat,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_moist,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) rough_scale,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) gust,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_r,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_u,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_v,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_m,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) w_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) u_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) b_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) q_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) thv_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) thv_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dhdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedq_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) drdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dhdt_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedq_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dtaudu_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dtaudv_atm,
                                                                                                                                                                                                                                                                                                              real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) land,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) seawater,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) avail 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]avail.TRUE. where the exchange cell is active
                                                                                                                                                                                                                                                                                                              [in]gustGustiness factor
                                                                                                                                                                                                                                                                                                              [out]cd_qMoisture exchange coefficient
                                                                                                                                                                                                                                                                                                              [in,out]rough_moistMoisture roughness length
                                                                                                                                                                                                                                                                                                              [in]dtTime step (it is not used presently)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              t_atmAir temp lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
                                                                                                                                                                                                                                                                                                              u_atmZonal wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              v_atmMeridional wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_atmPressure lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              z_atmHeight lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_surfPressure at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_surfTemp at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_caAir temp at the canopy
                                                                                                                                                                                                                                                                                                              q_surfMixing ratio at the Earth's surface (kg/kg)
                                                                                                                                                                                                                                                                                                              u_surfZonal wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              v_surfMeridional wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              rough_momMomentum roughness length
                                                                                                                                                                                                                                                                                                              rough_heatHeat roughness length
                                                                                                                                                                                                                                                                                                              rough_scaleScale factor used to topographic roughness calculation
                                                                                                                                                                                                                                                                                                              flux_tSensible heat flux
                                                                                                                                                                                                                                                                                                              flux_qEvaporative water flux
                                                                                                                                                                                                                                                                                                              flux_rRadiative energy flux
                                                                                                                                                                                                                                                                                                              flux_uZonal momentum flux
                                                                                                                                                                                                                                                                                                              flux_vMeridional momentum flux
                                                                                                                                                                                                                                                                                                              cd_mMomentum exchange coefficient
                                                                                                                                                                                                                                                                                                              w_atmAbsolute wind at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              u_starTurbulent velocity scale
                                                                                                                                                                                                                                                                                                              b_starTurbulent buoyant scale
                                                                                                                                                                                                                                                                                                              q_starTurbulent moisture scale
                                                                                                                                                                                                                                                                                                              dhdt_surfSensible heat flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedt_surfMoisture flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedq_surfMoisture flux humidity sensitivity
                                                                                                                                                                                                                                                                                                              drdt_surfRadiative energy flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dhdt_atmDerivative of sensible heat flux over temp at the lowest
                                                                                                                                                                                                                                                                                                              dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
                                                                                                                                                                                                                                                                                                              dtaudv_atmDerivative of meridional wind stress with respect to the lowest
                                                                                                                                                                                                                                                                                                              landIndicates where land exists (.TRUE. if exchange cell is on land
                                                                                                                                                                                                                                                                                                              seawaterIndicates where liquid ocean water exists
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this interface was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/jquery.js b/docs/html/jquery.js deleted file mode 100644 index c9ed3d99..00000000 --- a/docs/html/jquery.js +++ /dev/null @@ -1,35 +0,0 @@ -/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
                                                                                                                                                                                                                                                                                                              "],col:[2,"","
                                                                                                                                                                                                                                                                                                              "],tr:[2,"","
                                                                                                                                                                                                                                                                                                              "],td:[3,"","
                                                                                                                                                                                                                                                                                                              "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
                                                                                                                                                                                                                                                                                                              ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
                                                                                                                                                                                                                                                                                                              ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
                                                                                                                                                                                                                                                                                                              "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
                                                                                                                                                                                                                                                                                                              ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
                                                                                                                                                                                                                                                                                                              "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
                                                                                                                                                                                                                                                                                                              "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element -},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** - * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler - * Licensed under MIT - * @author Ariel Flesler - * @version 2.1.2 - */ -;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 - * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
                                                                                                                                                                                                                                                                                                              ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/html/land__ice__flux__exchange_8_f90.html b/docs/html/land__ice__flux__exchange_8_f90.html deleted file mode 100644 index 5ea1e943..00000000 --- a/docs/html/land__ice__flux__exchange_8_f90.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - -FMS Coupler: full/land_ice_flux_exchange.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              land_ice_flux_exchange.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (8003a2efda6c2fece0a209ad7b23b647db1339c0)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles flux exchanges and exchange grids between land and ice grids. -More...

                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  land_ice_flux_exchange_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public land_ice_flux_exchange_mod::land_ice_flux_exchange_init (Land, Ice, land_ice_boundary, Dt_cpl_in, do_runoff_in, cplClock_in)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public land_ice_flux_exchange_mod::flux_land_to_ice (Time, Land, Ice, Land_Ice_Boundary)
                                                                                                                                                                                                                                                                                                               Conservative transfer of water and snow discharge from the land model to sea ice/ocean model. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), save land_ice_flux_exchange_mod::xmap_runoff
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::n_xgrid_runoff =0
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::x2_grid_lnd
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::x2_grid_ice
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::cplclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::fluxlandiceclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical land_ice_flux_exchange_mod::do_runoff
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real land_ice_flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles flux exchanges and exchange grids between land and ice grids.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/menu.js b/docs/html/menu.js deleted file mode 100644 index e88d4ba9..00000000 --- a/docs/html/menu.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { - function makeTree(data,relPath) { - var result=''; - if ('children' in data) { - result+=''; - } - return result; - } - - $('#main-nav').append(makeTree(menudata,relPath)); - $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchEnabled) { - if (serverSide) { - $('#main-menu').append('
                                                                                                                                                                                                                                                                                                            • '); - } else { - $('#main-menu').append('
                                                                                                                                                                                                                                                                                                            • '); - } - } - $('#main-menu').smartmenus(); -} -/* @license-end */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js deleted file mode 100644 index 39dc162a..00000000 --- a/docs/html/menudata.js +++ /dev/null @@ -1,35 +0,0 @@ -/* -@ @licstart The following is the entire license notice for the -JavaScript code in this file. - -Copyright (C) 1997-2017 by Dimitri van Heesch - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -@licend The above is the entire license notice -for the JavaScript code in this file -*/ -var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Namelist Configuration",url:"pages.html"}, -{text:"Interfaces and Derived Types",url:"annotated.html",children:[ -{text:"By Module",url:"annotated.html"}, -{text:"By Name",url:"classes.html"}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}, -{text:"File Members",url:"globals.html",children:[ -{text:"All",url:"globals.html"}, -{text:"Functions/Subroutines",url:"globals_func.html"}, -{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/html/namespaceatm__land__ice__flux__exchange__mod.html b/docs/html/namespaceatm__land__ice__flux__exchange__mod.html deleted file mode 100644 index 9e93fcf7..00000000 --- a/docs/html/namespaceatm__land__ice__flux__exchange__mod.html +++ /dev/null @@ -1,6183 +0,0 @@ - - - - - - - -FMS Coupler: atm_land_ice_flux_exchange_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              interface  put_logical_to_real
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  tracer_exch_ind_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  tracer_ind_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in)
                                                                                                                                                                                                                                                                                                               module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary)
                                                                                                                                                                                                                                                                                                               Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_down_from_atmos (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                                                                                                                                                               Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public generate_sfc_xgrid (Land, Ice)
                                                                                                                                                                                                                                                                                                               Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_up_to_atmos (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                                                                                                                                                               Corrects the fluxes for consistency with the new surface temperatures in land and ice models. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_ex_arrays_dealloc ()
                                                                                                                                                                                                                                                                                                               Internal subroutine to deallocate exchange fields. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_atmos_to_ocean (Time, Atm, Ice_boundary, Ice)
                                                                                                                                                                                                                                                                                                               Computes deposition gas fluxes between atmosphere and ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap)
                                                                                                                                                                                                                                                                                                               Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap)
                                                                                                                                                                                                                                                                                                               Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine diag_field_init (Time, atmos_axes, land_axes, land_pe)
                                                                                                                                                                                                                                                                                                               Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine divide_by_area (data, area)
                                                                                                                                                                                                                                                                                                               Divide data by area where grid cell area is not zero. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public send_ice_mask_sic (Time)
                                                                                                                                                                                                                                                                                                               compute and send fractional amount of sea ice to diag_manager buffer More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public atm_stock_integrate (Atm, res)
                                                                                                                                                                                                                                                                                                               integrate the total precipitation in atmosphere and multipy by dt More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len=128) version = '$Id$'
                                                                                                                                                                                                                                                                                                               coupler version number More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) tag = '$Name$'
                                                                                                                                                                                                                                                                                                               coupler tag More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), save xmap_sfc
                                                                                                                                                                                                                                                                                                               holds exchange grid between different components More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_xgrid_sfc =0
                                                                                                                                                                                                                                                                                                               total number of exchange grid cells More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=4), parameter mod_name = 'flux'
                                                                                                                                                                                                                                                                                                               module name used to register diag_manager More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_b_star
                                                                                                                                                                                                                                                                                                               diag_manager registered field id for bouyancy scale More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_del_h
                                                                                                                                                                                                                                                                                                               diag_manager registered field id ref height interp factor for heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_del_m
                                                                                                                                                                                                                                                                                                               diag_manager registered field id ref height for interp factor for momentum More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_del_q
                                                                                                                                                                                                                                                                                                               diag_manager registered field id ref height interp factor for moisture More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_drag_heat
                                                                                                                                                                                                                                                                                                               diag_manager registered field id drag coefficient for heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_drag_moist
                                                                                                                                                                                                                                                                                                               diag_manager registered field id drag coefficient for moisture More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_drag_mom
                                                                                                                                                                                                                                                                                                               diag_manager registered field id drag coefficient for momentum More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_gust
                                                                                                                                                                                                                                                                                                               diag_manager registered field id gust scale More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_husslut_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface specific humidity on land use tile More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_ice_mask
                                                                                                                                                                                                                                                                                                               diag_manager registered field id fractional amount of land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_land_mask
                                                                                                                                                                                                                                                                                                               diag_manager registered field id fractional amount of sea ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_p_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id pressure at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id evaporation rate More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_flux_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id evaporation rate over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id specific humidity at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id specific humidity at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_star
                                                                                                                                                                                                                                                                                                               diag_manager registered field id moisture scale More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_r_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id net (down-up) longwave flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rh_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rh_ref_cmip
                                                                                                                                                                                                                                                                                                               diag_manager registered field id relative humidity at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rh_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id relative humidity at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_heat
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface roughness for heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_moist
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface roughness for moisture More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_mom
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface roughness for momentum More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_scale
                                                                                                                                                                                                                                                                                                               diag_manager registered field id topographic scaling fractor for momentum drag More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_slp
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sea level pressure More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id temperature at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_ca
                                                                                                                                                                                                                                                                                                               diag_manager registered field id canopy air temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sensible heat flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_ocean
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature from ocean output More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id temperature at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id temperature at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_surf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_taslut_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface air temperature z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_thv_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface air virtual potential temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_thv_surf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface virtual potential temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id u wind component at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id zonal wind stress More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id zonal wind component at z_ref_mom More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id zonal wind component at z_ref_mom over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_v_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id v wind component at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_v_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id meridional wind stress More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_v_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id meridional wind component at z_ref_mom More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_v_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id meridional wind component at z_ref_mom over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_wind
                                                                                                                                                                                                                                                                                                               diag_manager registered field id wind speed for flux calculations More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_wind_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id absolute value of wind at z_ref_mom More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_z_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id height of lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_co2_atm_dvmr
                                                                                                                                                                                                                                                                                                               diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_co2_surf_dvmr
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_co2_bot
                                                                                                                                                                                                                                                                                                               diag_manager registered field id concentration of co2 to be passed to land/photosynthesis More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_co2_flux_pcair_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id concentration of co2 to be passed to ocean More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_o2_flux_pcair_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id concentration of o2 to be passed to to ocean More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id value of tracer at lowest atmospheric level More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_surf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id value of tracer at surface More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id tracer fluxes More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_mol_flux
                                                                                                                                                                                                                                                                                                               diag_manager registered field id flux of co2 concentration in [mol/m2*s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id value of tracer at z_ref_heat More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id tracer flux at z_ref_heat over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_mol_flux0
                                                                                                                                                                                                                                                                                                               diag_manager registered field id More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_flux_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id flux of tracer concentration over land in [kg/m2*s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_mol_flux_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id flux of More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_con_atm
                                                                                                                                                                                                                                                                                                               diag_manager registered field id deposition velocity at lowest atmospheric level (atm) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_con_atm_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_con_ref
                                                                                                                                                                                                                                                                                                               diag_manager registered field id deposition velocity at reference height (atm) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable id_tr_con_ref_land
                                                                                                                                                                                                                                                                                                               diag_manager registered field id deposition velocity at reference height over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_evspsbl
                                                                                                                                                                                                                                                                                                               diag_manager registered field id water evaporation flux (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_height10m
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_height2m
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near surface height (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_hfls
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface upward latent heat flux (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_hfss
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface upward sensible heat flux (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_hurs
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_huss
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface specific humidity (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_psl
                                                                                                                                                                                                                                                                                                               diag_manager registered field id air pressure at sea level (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rhs
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface relative humidity (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_sfcwind
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface wind speed (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_sftlf
                                                                                                                                                                                                                                                                                                               diag_manager registered field id fraction of the grid cell occupied by land (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_sic
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sea ice area fraction (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tas
                                                                                                                                                                                                                                                                                                               diag_manager registered field id near-surface air temperature (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tauu
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface downward eastward wind stress (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tauv
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface downward northward wind stress (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tos
                                                                                                                                                                                                                                                                                                               diag_manager registered field id sea surface temperature (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_ts
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tslsi
                                                                                                                                                                                                                                                                                                               diag_manager registered field id surface temperature on land or sea ice (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_uas
                                                                                                                                                                                                                                                                                                               diag_manager registered field id eastward near-surface wind (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_vas
                                                                                                                                                                                                                                                                                                               diag_manager registered field id northward near-surface wind (for cmip) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_evspsbl_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of water evaporation flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_hfls_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of surface upward sensible heat flux More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rls_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of near-surface relative humidty More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tas_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of near-surface air temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tasl_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of near-surface air temperature on land only More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_ts_g
                                                                                                                                                                                                                                                                                                               diag_manager registered field id global integral of surface temperature More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical first_static = .true.
                                                                                                                                                                                                                                                                                                               If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_init = .true.
                                                                                                                                                                                                                                                                                                               true if atm_land_ice_flux_exchnge_init has been called More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer remap_method = 1
                                                                                                                                                                                                                                                                                                               first or second order conservative remapping onto exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter d378 = 1.0-d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter d608 = d378/d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter tfreeze = 273.15
                                                                                                                                                                                                                                                                                                               freezing point of water at 1 atm [K] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable frac_precip
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real z_ref_heat = 2.
                                                                                                                                                                                                                                                                                                               Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real z_ref_mom = 10.
                                                                                                                                                                                                                                                                                                               Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_forecast = .false.
                                                                                                                                                                                                                                                                                                               flag to do forecast, defined through flux_exchange_nml More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nblocks = 1
                                                                                                                                                                                                                                                                                                               OpenMP number of threads. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical partition_fprec_from_lprec = .FALSE.
                                                                                                                                                                                                                                                                                                               If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical scale_precip_2d = .false.
                                                                                                                                                                                                                                                                                                               If true, scale mass of liqud preciptation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer my_nblocks = 1
                                                                                                                                                                                                                                                                                                               Initializing OpenMP parameter. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable block_start
                                                                                                                                                                                                                                                                                                               starting do loop indices for OpenMP thread More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable block_end
                                                                                                                                                                                                                                                                                                               ending do loop indices for OpenMP thread More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_albedo_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_albedo_nir_dif_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_albedo_nir_dir_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_albedo_vis_dif_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_albedo_vis_dir_fix
                                                                                                                                                                                                                                                                                                               used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_b_star
                                                                                                                                                                                                                                                                                                               boyuancy scale on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_cd_m
                                                                                                                                                                                                                                                                                                               drag coefficient for momentum on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_cd_t
                                                                                                                                                                                                                                                                                                               drag coefficient for heat on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_con_atm
                                                                                                                                                                                                                                                                                                               deposition velocity at lowest atmospheric level on exchange grid on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dedt_surf
                                                                                                                                                                                                                                                                                                               d(water.vap.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dhdt_atm
                                                                                                                                                                                                                                                                                                               d(sens.heat.flux)/d(T atm) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dhdt_surf
                                                                                                                                                                                                                                                                                                               d(sens.heat.flux)/d(T canopy) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dqsatdt_surf
                                                                                                                                                                                                                                                                                                               d(water.vap.flux)/d(q canopy) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_drdt_surf
                                                                                                                                                                                                                                                                                                               d(LW flux)/d(T surf) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dtaudu_atm
                                                                                                                                                                                                                                                                                                               d(stress)/d(u) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dtaudv_atm
                                                                                                                                                                                                                                                                                                               d(stress)/d(v) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_e_q_n
                                                                                                                                                                                                                                                                                                               dt/mass * dedet_surf * gamma on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_flux_lw
                                                                                                                                                                                                                                                                                                               longwave radiation flux on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_flux_t
                                                                                                                                                                                                                                                                                                               sensible heat flux on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_flux_u
                                                                                                                                                                                                                                                                                                               u stress on atmosphere on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_flux_v
                                                                                                                                                                                                                                                                                                               v stress on atmosphere on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_old_albedo
                                                                                                                                                                                                                                                                                                               old value of albedo for downward flux calculations, used for albedo correction More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_p_surf
                                                                                                                                                                                                                                                                                                               surface pressure on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_seawater
                                                                                                                                                                                                                                                                                                               mask array of seaice fractions on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_slp
                                                                                                                                                                                                                                                                                                               surface pressure on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_t_ca
                                                                                                                                                                                                                                                                                                               near-surface (canopy) air temperature on exchange grid [K] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_t_surf
                                                                                                                                                                                                                                                                                                               surface temperature for radiation calc on exchange grid [K] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_t_surf_miz
                                                                                                                                                                                                                                                                                                               used when do_forecast = .true. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_u_star
                                                                                                                                                                                                                                                                                                               friction velocity on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_wind
                                                                                                                                                                                                                                                                                                               wind speed on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_z_atm
                                                                                                                                                                                                                                                                                                               height of lowest atmospheric level on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dhdt_surf_forland
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dedt_surf_forland
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_dedq_surf_forland
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_dfdtr_atm
                                                                                                                                                                                                                                                                                                               d(tracer flux)/d(atm tracer) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_dfdtr_surf
                                                                                                                                                                                                                                                                                                               d(tracer flux)/d(surf tracer) on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_e_tr_n
                                                                                                                                                                                                                                                                                                               coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_f_tr_delt_n
                                                                                                                                                                                                                                                                                                               coefficient in implicit scheme on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_flux_tr
                                                                                                                                                                                                                                                                                                               tracer fluxes on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_tr_con_ref
                                                                                                                                                                                                                                                                                                               deposition velocity at reference height on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_tr_con_atm
                                                                                                                                                                                                                                                                                                               deposition velocity at atmospheric height on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable ex_tr_surf
                                                                                                                                                                                                                                                                                                               near-surface tracer fields on exchange grid More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, dimension(:), allocatable ex_avail
                                                                                                                                                                                                                                                                                                               mask where true if data on exchange grid are available More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, dimension(:), allocatable ex_land
                                                                                                                                                                                                                                                                                                               mask where true if exchange grid cell is over land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_e_t_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable ex_f_t_delt_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_atm_tr
                                                                                                                                                                                                                                                                                                               number of prognostic tracers in the atmos model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_atm_tr_tot
                                                                                                                                                                                                                                                                                                               number of tracers in the atmos model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_lnd_tr
                                                                                                                                                                                                                                                                                                               number of prognostic tracers in the land model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_lnd_tr_tot
                                                                                                                                                                                                                                                                                                               number of tracers in the land model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_exch_tr
                                                                                                                                                                                                                                                                                                               number of tracers exchanged between models More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_gex_atm2lnd
                                                                                                                                                                                                                                                                                                               number of generic exchange fields exchanged from atmospehre to land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_gex_lnd2atm
                                                                                                                                                                                                                                                                                                               number of generic exchange fields exchanged from land to atmosphere More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(tracer_ind_type), dimension(:), allocatable tr_table
                                                                                                                                                                                                                                                                                                               table of tracers passed through flux exchange More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(tracer_exch_ind_type), dimension(:), allocatable tr_table_map
                                                                                                                                                                                                                                                                                                               holds tracer id in atm, ice, and land models More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer isphum = NO_TRACER
                                                                                                                                                                                                                                                                                                               tracer index for specific humidity More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ico2 = NO_TRACER
                                                                                                                                                                                                                                                                                                               tracer index for co2 More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer inh3 = NO_TRACER
                                                                                                                                                                                                                                                                                                               tracer index for nh3 More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer ex_gas_fields_atm =>NULL()
                                                                                                                                                                                                                                                                                                               pointer to gas fields in atm, place holder for various atmospheric fields. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer ex_gas_fields_ice =>NULL()
                                                                                                                                                                                                                                                                                                               pointer to gas fields on ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer ex_gas_fluxes =>NULL()
                                                                                                                                                                                                                                                                                                               pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter regrid =1
                                                                                                                                                                                                                                                                                                               flag to indicate component grids for flux exchange are different, More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter redist =2
                                                                                                                                                                                                                                                                                                               component grid for flux exchange are identical but are decomposed differently, More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter redirect =3
                                                                                                                                                                                                                                                                                                               component grid for flux exchange are identical with same domain decomposition, More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer cplclock
                                                                                                                                                                                                                                                                                                               FMS clock to profile general processes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer sfcclock
                                                                                                                                                                                                                                                                                                               FMS clock id to profile sfc_boundary_layer. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer fluxatmdnclock
                                                                                                                                                                                                                                                                                                               FMS clock id to profile flux down from atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer regenclock
                                                                                                                                                                                                                                                                                                               FMS clock to profile exchange grid generation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer fluxatmupclock
                                                                                                                                                                                                                                                                                                               FMS clock to profile flux up to atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer x1_grid_atm
                                                                                                                                                                                                                                                                                                               =1, exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer x1_grid_ice
                                                                                                                                                                                                                                                                                                               =2, exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer x1_grid_lnd
                                                                                                                                                                                                                                                                                                               =3 exchange grid index for xgrid_stock_move More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real dt_atm
                                                                                                                                                                                                                                                                                                               atmospheric timestep [s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real dt_cpl
                                                                                                                                                                                                                                                                                                               coupled timestep [s] More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ni_atm
                                                                                                                                                                                                                                                                                                               number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nj_atm
                                                                                                                                                                                                                                                                                                               number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nxc_ice =0
                                                                                                                                                                                                                                                                                                               number of x points in ice compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nyc_ice =0
                                                                                                                                                                                                                                                                                                               number of y points in ice compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nk_ice =0
                                                                                                                                                                                                                                                                                                               number of vertical levels in ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nxc_lnd =0
                                                                                                                                                                                                                                                                                                               number of x points in land compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nyc_lnd =0
                                                                                                                                                                                                                                                                                                               number of y points in land compute domain More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atm_land_ice_flux_exchange_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              real, intent(in) Dt_atm_in,
                                                                                                                                                                                                                                                                                                              real, intent(in) Dt_cpl_in,
                                                                                                                                                                                                                                                                                                              real, intent(in) z_ref_heat_in,
                                                                                                                                                                                                                                                                                                              real, intent(in) z_ref_mom_in,
                                                                                                                                                                                                                                                                                                              logical, intent(in) do_area_weighted_flux_in,
                                                                                                                                                                                                                                                                                                              logical, intent(in) do_forecast_in,
                                                                                                                                                                                                                                                                                                              logical, intent(in) partition_fprec_from_lprec_in,
                                                                                                                                                                                                                                                                                                              logical, intent(in) scale_precip_2d_in,
                                                                                                                                                                                                                                                                                                              integer, intent(in) nblocks_in,
                                                                                                                                                                                                                                                                                                              integer, intent(in) cplClock_in,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(in), target ex_gas_fields_atm_in,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(in), target ex_gas_fields_ice_in,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(in), target ex_gas_fluxes_in 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]timemodel's current time
                                                                                                                                                                                                                                                                                                              [in,out]atmderived data type to specify atmosphere boundary data
                                                                                                                                                                                                                                                                                                              [in]landderived data type to specify land boundary data
                                                                                                                                                                                                                                                                                                              [in,out]icederived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]atmos_ice_boundaryderived type to specify properties and fluxes passed from atmosphere to ice
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_atmos_boundaryderived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice
                                                                                                                                                                                                                                                                                                              [in]dt_atm_inatmosphere time step in seconds
                                                                                                                                                                                                                                                                                                              [in]dt_cpl_incoupled time step in seconds
                                                                                                                                                                                                                                                                                                              [in]z_ref_heat_inreference height for temperature and relative humidity diagnostics [m]
                                                                                                                                                                                                                                                                                                              [in]z_ref_mom_inreference height for momentum diagnostics [m]
                                                                                                                                                                                                                                                                                                              [in]scale_precip_2d_inif true, rescale Atmlprec by a field from diag_table
                                                                                                                                                                                                                                                                                                              [in]do_area_weighted_flux_inif true, divide flux by area
                                                                                                                                                                                                                                                                                                              [in]do_forecast_inif true, put atmsurf_diffsst_miz on the exchange grid if AM3_physics is used
                                                                                                                                                                                                                                                                                                              [in]partition_fprec_from_lprec_inif true, will convert liquid precip to snow when t_ref < tfreeze
                                                                                                                                                                                                                                                                                                              [in]nblocks_individe the surface exchange grid to nblocks for OpenMP parallelizatio
                                                                                                                                                                                                                                                                                                              [in]cplclock_inclock to measure processes, mainly used for development and debugging
                                                                                                                                                                                                                                                                                                              [in]ex_gas_fields_atm_ingas fields in Atm. Contains atmospheric surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters
                                                                                                                                                                                                                                                                                                              [in]ex_gas_fields_ice_ingas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters
                                                                                                                                                                                                                                                                                                              [in]ex_gas_fluxes_ingas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between the atmosphere and ocean. Values defined from the field table or computed during model run
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              INITIALIZE MODULE LEVEL VARIABLES

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              GET FILE UNIT FOR STDOUT AND STDLOG

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              FROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LAND

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND HELP: WHAT IS GENERIC EXCHANGE?

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              GET THE TRACER INDEX OF SPECIFIC HUMIDITY

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              SET UP THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              INITIALIZE SURFACE_FLUX

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              INITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGER

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              GET THE SIZE OF THE ATM GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZERO

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE FIELDS FOR EXTRA FLUXES

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE LAND_ICE_ATMOS_BOUNDARY

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE FIELDS FOR EXTRA TRACERS

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              GET DIMENSION OF THE DECOMPOSED ICE DOMAIN

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              GET DIMENSION OF THE DECOMPOSED LAND DOMAIN

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              INITIALIZE CLOCKS FOR PROFILING

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atm_stock_integrate()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate (type(atmos_data_type), intent(in) Atm,
                                                                                                                                                                                                                                                                                                              real, intent(out) res 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              integrate the total precipitation in atmosphere and multipy by dt

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]atmderived type to holding atmosphere boundary data
                                                                                                                                                                                                                                                                                                              [out]resintegrated value
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ diag_field_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::diag_field_init (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              integer, dimension(2), intent(in) atmos_axes,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) land_axes,
                                                                                                                                                                                                                                                                                                              logical, intent(in) land_pe 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Convert diagnostic labels from integers to strings

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ divide_by_area()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::divide_by_area (real, dimension(:,:), intent(inout) data,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) area 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Divide data by area where grid cell area is not zero.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              check the size of data and area are the same

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              divide data in each grid cell by grid cell area

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_atmos_to_ocean()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Ice_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Computes deposition gas fluxes between atmosphere and ocean.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]timeCurrent time
                                                                                                                                                                                                                                                                                                              [in,out]atmA derived data type to specify atmosphere boundary data
                                                                                                                                                                                                                                                                                                              [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              MAP ATMOSPHERE FIELDS TO THE EXCHANGE MAP FOR FLUX EXCHANGE WITH OCEAN

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              CALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              MAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              UPDATE AIR_SEA_DEPOSITION FLUXES

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_down_from_atmos()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(in) Atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Land_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]timeCurrent model time
                                                                                                                                                                                                                                                                                                              [in,out]atmA derived data type holding atmosphere boundary data
                                                                                                                                                                                                                                                                                                              [in]atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice
                                                                                                                                                                                                                                                                                                              [in,out]land_boundaryA derived data type to specify properties and fluxes passed from atmosphere to land
                                                                                                                                                                                                                                                                                                              [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              start clocks for profiling

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              initialize reusable flag. data_override will return ov=.true. if data was overwritten

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              update Atm fields with override values. Note, data_override will only overwrite data if the field is specified in the data_table

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              scale liquid precipitation by frac_precip if scale_precip_2d is true scale_precip_2d is set during module initialization call to atm_land_ice_flux_exchange_init frac_precip is set with data_override

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              partition preciptation to liquid precipitation and frozen precipitation if partition_fprec_from_lprec = .true. partiion_fprec_from_lprec is set as part of module initialization call in atm_land_ice_flux_exchange Note, the partitioning only occurs on mpi ranks for atmosphere

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              update more Atm fields with override values. Note, data_override will only overwrite

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Map atmosphere quantities onto the exchange grid in order to exchange quantities with other components

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              update u and v stress on the exchange grid

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              fix shortwave radiation flux of visible light on the exchange grid

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Adjust fluxes for implicit dependence (TOM HELP, this sounds awkward)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              map fluxes from the exchange grid to the land grid

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              override land fluxes only if the field is specified in the data_table

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Map ice fields from the exchange grid to the Ice grid

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              override Ice fields only if the field is specified in the data table

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Compute stock changes between components

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              send data to diag_manager buffer where if the field is specified in the diag_table, data will be outputted at the end of the simulation

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              end clock for profiling

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ex_arrays_dealloc()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Internal subroutine to deallocate exchange fields.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_up_to_atmos()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_Ice_Atmos_Boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Land_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Corrects the fluxes for consistency with the new surface temperatures in land and ice models.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Corrects the fluxes for consistency with the new surface temperatures in land and ice models. Final increments for temperature and specific humidity in the lowest atmospheric layer are computed and returned to the atmospheric model so that it can finalize the increments in the rest of the atmosphere.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The following elements of the land_ice_atmos_boundary_type are computed:

                                                                                                                                                                                                                                                                                                              -        dt_t  = temperature change at the lowest
                                                                                                                                                                                                                                                                                                              -                 atmospheric level (deg k)
                                                                                                                                                                                                                                                                                                              -        dt_q  = specific humidity change at the lowest
                                                                                                                                                                                                                                                                                                              -                 atmospheric level (kg/kg)
                                                                                                                                                                                                                                                                                                              - 
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]timecurrent model time
                                                                                                                                                                                                                                                                                                              [in,out]landderived data type holding land boundary data
                                                                                                                                                                                                                                                                                                              [in,out]icederived data type holding ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
                                                                                                                                                                                                                                                                                                              [in,out]land_boundaryA derived data type to specify properties and fluxes passed from atmosphere to land
                                                                                                                                                                                                                                                                                                              [in,out]ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              override Ice and Land temperature fields. Note, data_override will only overwrite data if the field is specified in the data_table

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              COMPUTE CHANGE IN SURFACE TEMPERATURE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              UPDATE TRACER TENDENCIES IN THE ATMOSPHERE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              MAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              SEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUN

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ generate_sfc_xgrid()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid (type(land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(in) Ice 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0)

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]landA derived data type to specify land boundary data
                                                                                                                                                                                                                                                                                                              [in]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              update fractional areas of ice and land on the exchange grid

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              reset the number of exchange grid cells saved in the module

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ put_logical_to_real_sg()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg (logical, dimension(:,:,:), intent(in) mask,
                                                                                                                                                                                                                                                                                                              character(len=3), intent(in) id,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) ex_mask,
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), intent(inout) xmap 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]maskland/ice mask to map to exchange grid
                                                                                                                                                                                                                                                                                                              [in,out]ex_maskconverted mask on exchange grid
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ put_logical_to_real_ug()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug (logical, dimension(:,:), intent(in) mask,
                                                                                                                                                                                                                                                                                                              character(len=3), intent(in) id,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) ex_mask,
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), intent(inout) xmap 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]maskmask on component grid
                                                                                                                                                                                                                                                                                                              [in,out]ex_maskconverted mask on exchange grid
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ send_ice_mask_sic()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic (type(fmstime_type), intent(in) Time)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              compute and send fractional amount of sea ice to diag_manager buffer

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]timeCurrent time
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              initialize ice_frac
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - remap ice_mask (fractional amount of sea ice) to the atm grid

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              send ice_mask to diag_manager buffer
                                                                                                                                                                                                                                                                                                              - compute sea ice area fraction for cells on atm grid that are over ocean normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ sfc_boundary_layer()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer (real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_Ice_Atmos_Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -   t_surf_atm: surface temperature used for radiation [K]
                                                                                                                                                                                                                                                                                                              -   albedo_atm: surface albedo used for radiation  [dimensionless]
                                                                                                                                                                                                                                                                                                              -   rough_mom_atm: surface roughness for momentum [m]
                                                                                                                                                                                                                                                                                                              -   land_frac_atm: fractional area of land beneath an atmospheric grid box
                                                                                                                                                                                                                                                                                                              -   dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)]
                                                                                                                                                                                                                                                                                                              -   flux_u_atm: zonal wind stress  [Pa]
                                                                                                                                                                                                                                                                                                              -   flux_v_atm: meridional wind stress [Pa]
                                                                                                                                                                                                                                                                                                              -   u_star_atm: friction velocity [m/s]
                                                                                                                                                                                                                                                                                                              -   b_star_atm: buoyancy scale  [m2/s]
                                                                                                                                                                                                                                                                                                              - 

                                                                                                                                                                                                                                                                                                              Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data between one component grid to another component grid. Computed fluxes can also be overwritten with calls to data_override. Note, data_override will not override data if the tracers

                                                                                                                                                                                                                                                                                                              Note
                                                                                                                                                                                                                                                                                                              u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]dttimestep
                                                                                                                                                                                                                                                                                                              [in]timecurrent model time
                                                                                                                                                                                                                                                                                                              [in,out]atmderived type to specify atmosphere boundary data
                                                                                                                                                                                                                                                                                                              [in,out]landderived type to specify land boundary data
                                                                                                                                                                                                                                                                                                              [in,out]icederived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_atmos_boundaryderived data type to specify properties and fluxes passed between land and ice to atmos
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Initialize clocks for profiling

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHRE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              ALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDS

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              SET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDS

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              OVERRIDE ATM ATMT_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              CONVERT CO2 TRACER UNITS to WET_MMR UNITS

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              OVERRIDE ICET_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. OVERRIDE LANDT_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              MAP ATM FIELDS ONTO THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              INITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYER

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              MAP ICE FIELDS ONTO THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              GENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              CALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              CALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              COMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRID

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              COMPUTE EXPLICIT OCEAN FLUXES

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              OVERRIDE LAND AND ICE TRACER FLUXES DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              COMPUTE T_SURF**4

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ block_end

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ending do loop indices for OpenMP thread

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ block_start

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              starting do loop indices for OpenMP thread

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cplclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::cplclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              FMS clock to profile general processes.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d378

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::d378 = 1.0-d622
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d608

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::d608 = d378/d622
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d622

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_forecast

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::do_forecast = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              flag to do forecast, defined through flux_exchange_nml

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::do_init = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              true if atm_land_ice_flux_exchnge_init has been called

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::dt_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              atmospheric timestep [s]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_cpl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              coupled timestep [s]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_albedo_fix

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              used for albedo correction

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_albedo_nir_dif_fix

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              used for albedo correction

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_albedo_nir_dir_fix

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              used for albedo correction

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_albedo_vis_dif_fix

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              used for albedo correction

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_albedo_vis_dir_fix

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              used for albedo correction

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_avail

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              mask where true if data on exchange grid are available

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_b_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              boyuancy scale on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_cd_m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              drag coefficient for momentum on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_cd_t

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              drag coefficient for heat on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_con_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              deposition velocity at lowest atmospheric level on exchange grid on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dedq_surf_forland

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedq_surf_forland
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dedt_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(water.vap.flux)/d(T canopy) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dedt_surf_forland

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf_forland
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dfdtr_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(tracer flux)/d(atm tracer) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dfdtr_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(tracer flux)/d(surf tracer) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dhdt_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(sens.heat.flux)/d(T atm) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dhdt_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(sens.heat.flux)/d(T canopy) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dhdt_surf_forland

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf_forland
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dqsatdt_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(water.vap.flux)/d(q canopy) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_drdt_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(LW flux)/d(T surf) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dtaudu_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(stress)/d(u) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_dtaudv_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              d(stress)/d(v) on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_e_q_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              dt/mass * dedet_surf * gamma on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_e_t_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_e_tr_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              coefficient in implicit scheme on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_f_t_delt_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_f_tr_delt_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              coefficient in implicit scheme on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_flux_lw

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              longwave radiation flux on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_flux_t

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              sensible heat flux on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_flux_tr

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              tracer fluxes on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_flux_u

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              u stress on atmosphere on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_flux_v

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              v stress on atmosphere on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_gas_fields_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to gas fields in atm, place holder for various atmospheric fields.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_gas_fields_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to gas fields on ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_gas_fluxes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to gas flux place holder of intermediate calculations such as piston velocities, etc.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              mask where true if exchange grid cell is over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_old_albedo

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              old value of albedo for downward flux calculations, used for albedo correction

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_p_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              surface pressure on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_seawater

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              mask array of seaice fractions on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_slp

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              surface pressure on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_t_ca

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              near-surface (canopy) air temperature on exchange grid [K]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_t_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              surface temperature for radiation calc on exchange grid [K]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_t_surf_miz

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              used when do_forecast = .true.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_tr_con_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              deposition velocity at atmospheric height on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_tr_con_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              deposition velocity at reference height on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_tr_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              near-surface tracer fields on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_u_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              friction velocity on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_wind

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              wind speed on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_z_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              height of lowest atmospheric level on exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ first_static

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::first_static = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ fluxatmdnclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::fluxatmdnclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              FMS clock id to profile flux down from atmosphere.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ fluxatmupclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::fluxatmupclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              FMS clock to profile flux up to atmosphere.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ frac_precip

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ico2

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::ico2 = NO_TRACER
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              tracer index for co2

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_b_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_b_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id for bouyancy scale

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_co2_atm_dvmr

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_co2_bot

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_bot
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id concentration of co2 to be passed to land/photosynthesis

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_co2_flux_pcair_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id concentration of co2 to be passed to ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_co2_surf_dvmr

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_del_h

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_del_h
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id ref height interp factor for heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_del_m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_del_m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id ref height for interp factor for momentum

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_del_q

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_del_q
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id ref height interp factor for moisture

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_drag_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_drag_heat
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id drag coefficient for heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_drag_moist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_drag_moist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id drag coefficient for moisture

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_drag_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_drag_mom
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id drag coefficient for momentum

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_evspsbl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_evspsbl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id water evaporation flux (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_evspsbl_g

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_evspsbl_g
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id global integral of water evaporation flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_gust

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_gust
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id gust scale

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_height10m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_height10m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near surface height (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_height2m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_height2m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near surface height (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_hfls

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hfls
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface upward latent heat flux (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_hfls_g

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hfls_g
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id global integral of surface upward sensible heat flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_hfss

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hfss
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface upward sensible heat flux (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_hurs

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_hurs
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near-surface relative humidity (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_huss

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_huss
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near-surface specific humidity (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_husslut_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_husslut_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near-surface specific humidity on land use tile

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_ice_mask

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_ice_mask
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id fractional amount of land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_land_mask

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_land_mask
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id fractional amount of sea ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_o2_flux_pcair_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id concentration of o2 to be passed to to ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_p_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_p_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id pressure at lowest atmospheric level

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_psl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_psl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id air pressure at sea level (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id evaporation rate

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_flux_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_flux_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id evaporation rate over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id specific humidity at z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_ref_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_ref_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id specific humidity at z_ref_heat over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_q_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id moisture scale

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_r_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_r_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id net (down-up) longwave flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rh_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rh_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id relative humidity at z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rh_ref_cmip

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id relative humidity at z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rh_ref_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rh_ref_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id relative humidity at z_ref_heat over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rhs

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rhs
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near-surface relative humidity (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rls_g

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rls_g
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id global integral of near-surface relative humidty

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_heat
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface roughness for heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_moist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_moist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface roughness for moisture

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_mom
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface roughness for momentum

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_scale

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_rough_scale
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id topographic scaling fractor for momentum drag

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_sfcwind

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_sfcwind
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near-surface wind speed (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_sftlf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_sftlf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id fraction of the grid cell occupied by land (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_sic

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_sic
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id sea ice area fraction (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_slp

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_slp
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id sea level pressure

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id temperature at lowest atmospheric level

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_ca

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ca
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id canopy air temperature

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id sensible heat flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ocean
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface temperature from ocean output

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id temperature at z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_ref_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_ref_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id temperature at z_ref_heat over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_t_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface temperature

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tas

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near-surface air temperature (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tas_g

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tas_g
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id global integral of near-surface air temperature

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tasl_g

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tasl_g
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id global integral of near-surface air temperature on land only

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_taslut_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_taslut_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id near-surface air temperature z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tauu

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tauu
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface downward eastward wind stress (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tauv

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tauv
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface downward northward wind stress (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_thv_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_thv_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface air virtual potential temperature

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_thv_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_thv_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface virtual potential temperature

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tos

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tos
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id sea surface temperature (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id value of tracer at lowest atmospheric level

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_con_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id deposition velocity at lowest atmospheric level (atm)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_con_atm_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_con_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id deposition velocity at reference height (atm)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_con_ref_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id deposition velocity at reference height over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id tracer fluxes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_flux_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id flux of tracer concentration over land in [kg/m2*s]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_mol_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id flux of co2 concentration in [mol/m2*s]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_mol_flux0

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_mol_flux_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id flux of

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id value of tracer at z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_ref_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id tracer flux at z_ref_heat over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tr_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id value of tracer at surface

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_ts

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_ts
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface temperature (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_ts_g

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_ts_g
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id global integral of surface temperature

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tslsi

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_tslsi
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id surface temperature on land or sea ice (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id u wind component at lowest atmospheric level

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id zonal wind stress

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id zonal wind component at z_ref_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_ref_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_ref_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id zonal wind component at z_ref_mom over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_u_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_uas

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_uas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id eastward near-surface wind (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_v_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id v wind component at lowest atmospheric level

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_v_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id meridional wind stress

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_v_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id meridional wind component at z_ref_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_v_ref_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_v_ref_land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id meridional wind component at z_ref_mom over land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_vas

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_vas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id northward near-surface wind (for cmip)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_wind

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_wind
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id wind speed for flux calculations

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_wind_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_wind_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id absolute value of wind at z_ref_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_z_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::id_z_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              diag_manager registered field id height of lowest atmospheric level

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ inh3

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::inh3 = NO_TRACER
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              tracer index for nh3

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ isphum

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::isphum = NO_TRACER
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              tracer index for specific humidity

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mod_name

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name = 'flux'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              module name used to register diag_manager

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ my_nblocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::my_nblocks = 1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Initializing OpenMP parameter.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_atm_tr

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_atm_tr
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of prognostic tracers in the atmos model

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_atm_tr_tot

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of tracers in the atmos model

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_exch_tr

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_exch_tr
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of tracers exchanged between models

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_gex_atm2lnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of generic exchange fields exchanged from atmospehre to land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_gex_lnd2atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of generic exchange fields exchanged from land to atmosphere

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_lnd_tr

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_lnd_tr
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of prognostic tracers in the land model

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_lnd_tr_tot

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of tracers in the land model

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_xgrid_sfc

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              total number of exchange grid cells

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nblocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nblocks = 1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              OpenMP number of threads.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ni_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::ni_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nj_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nj_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nk_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nk_ice =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of vertical levels in ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nxc_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nxc_ice =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of x points in ice compute domain

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nxc_lnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nxc_lnd =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of x points in land compute domain

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nyc_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nyc_ice =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of y points in ice compute domain

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nyc_lnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::nyc_lnd =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              number of y points in land compute domain

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ partition_fprec_from_lprec

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ redirect

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, parameter atm_land_ice_flux_exchange_mod::redirect =3
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              component grid for flux exchange are identical with same domain decomposition,

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ redist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, parameter atm_land_ice_flux_exchange_mod::redist =2
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              component grid for flux exchange are identical but are decomposed differently,

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ regenclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::regenclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              FMS clock to profile exchange grid generation.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ regrid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, parameter atm_land_ice_flux_exchange_mod::regrid =1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              flag to indicate component grids for flux exchange are different,

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ remap_method

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::remap_method = 1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              first or second order conservative remapping onto exchange grid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ scale_precip_2d

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical atm_land_ice_flux_exchange_mod::scale_precip_2d = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If true, scale mass of liqud preciptation.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ sfcclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::sfcclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              FMS clock id to profile sfc_boundary_layer.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tag

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=128) atm_land_ice_flux_exchange_mod::tag = '$Name$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              coupler tag

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tfreeze

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter atm_land_ice_flux_exchange_mod::tfreeze = 273.15
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              freezing point of water at 1 atm [K]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tr_table

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              table of tracers passed through flux exchange

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tr_table_map

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              holds tracer id in atm, ice, and land models

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ version

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=128) atm_land_ice_flux_exchange_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              coupler version number

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ x1_grid_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::x1_grid_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              =1, exchange grid index for xgrid_stock_move

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ x1_grid_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::x1_grid_ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              =2, exchange grid index for xgrid_stock_move

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ x1_grid_lnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::x1_grid_lnd
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              =3 exchange grid index for xgrid_stock_move

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ xmap_sfc

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              holds exchange grid between different components

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::z_ref_heat = 2.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ z_ref_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real atm_land_ice_flux_exchange_mod::z_ref_mom = 10.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html deleted file mode 100644 index 4796582e..00000000 --- a/docs/html/namespaceatmos__ocean__dep__fluxes__calc__mod.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - -FMS Coupler: atmos_ocean_dep_fluxes_calc_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atmos_ocean_dep_fluxes_calc_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine atmos_ocean_dep_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater)
                                                                                                                                                                                                                                                                                                               atmos_ocean_dep_fluxes_calc More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len= *), parameter mod_name = "aodfc"
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_ocean_dep_fluxes_calc()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine atmos_ocean_dep_fluxes_calc_mod::atmos_ocean_dep_fluxes_calc (type(fmscoupler1dbc_type), intent(in) gas_fields_atm,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(in) gas_fields_ice,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(inout) gas_fluxes,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) seawater 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              atmos_ocean_dep_fluxes_calc

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              [in]gas_fields_atmStructure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
                                                                                                                                                                                                                                                                                                              [in]gas_fields_iceStructure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
                                                                                                                                                                                                                                                                                                              [in,out]gas_fluxesStructure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes.
                                                                                                                                                                                                                                                                                                              [in]seawater1 for the open water category, 0 if ice or land.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mod_name

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=*), parameter atmos_ocean_dep_fluxes_calc_mod::mod_name = "aodfc"
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html b/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html deleted file mode 100644 index eebebcde..00000000 --- a/docs/html/namespaceatmos__ocean__fluxes__calc__mod.html +++ /dev/null @@ -1,684 +0,0 @@ - - - - - - - -FMS Coupler: atmos_ocean_fluxes_calc_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atmos_ocean_fluxes_calc_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public atmos_ocean_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater, tsurf, ustar, cd_m)
                                                                                                                                                                                                                                                                                                               Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function calc_kw (tk, p, u10, h, vb, mw, sc_w, ustar, cd_m)
                                                                                                                                                                                                                                                                                                               Calculate $k_w$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function calc_ka (t, p, mw, vb, u10, ustar, cd_m)
                                                                                                                                                                                                                                                                                                               Calculate $k_a$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function calc_kl (t, v, sc)
                                                                                                                                                                                                                                                                                                               Calculate $k_l$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function schmidt_g (t, p, mw, vb)
                                                                                                                                                                                                                                                                                                               Schmidt number of the gas in air. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function d_air (t, p, mw, vb)
                                                                                                                                                                                                                                                                                                               From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function p_air (t)
                                                                                                                                                                                                                                                                                                               kinematic viscosity in air More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function v_air (t)
                                                                                                                                                                                                                                                                                                               Kinematic viscosity in air ( $m^2/s$. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real function n_air (t)
                                                                                                                                                                                                                                                                                                               dynamic viscosity in air More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len= *), parameter mod_name = "cdwfe"
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter epsln =1.0e-30
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_ocean_fluxes_calc()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public atmos_ocean_fluxes_calc_mod::atmos_ocean_fluxes_calc (type(fmscoupler1dbc_type), intent(in) gas_fields_atm,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(in) gas_fields_ice,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(inout) gas_fluxes,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) seawater,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) tsurf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in), optional ustar,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in), optional cd_m 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              [in]gas_fields_atmStructure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
                                                                                                                                                                                                                                                                                                              [in]gas_fields_iceStructure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
                                                                                                                                                                                                                                                                                                              [in,out]gas_fluxesStructure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes.
                                                                                                                                                                                                                                                                                                              [in]seawater1 for the open water category, 0 if ice or land.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ calc_ka()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::calc_ka (real, intent(in) t,
                                                                                                                                                                                                                                                                                                              real, intent(in) p,
                                                                                                                                                                                                                                                                                                              real, intent(in) mw,
                                                                                                                                                                                                                                                                                                              real, intent(in) vb,
                                                                                                                                                                                                                                                                                                              real, intent(in) u10,
                                                                                                                                                                                                                                                                                                              real, intent(in), optional ustar,
                                                                                                                                                                                                                                                                                                              real, intent(in), optional cd_m 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Calculate $k_a$.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              See calc_kw

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]ttemperature at surface in C
                                                                                                                                                                                                                                                                                                              [in]ppressure at surface in pa
                                                                                                                                                                                                                                                                                                              [in]mwmolecular weight (g/mol)
                                                                                                                                                                                                                                                                                                              [in]vbmolar volume
                                                                                                                                                                                                                                                                                                              [in]u10wind speed at 10m above the surface in m/s
                                                                                                                                                                                                                                                                                                              [in]ustarFriction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$.
                                                                                                                                                                                                                                                                                                              [in]cd_mDrag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ calc_kl()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::calc_kl (real, intent(in) t,
                                                                                                                                                                                                                                                                                                              real, intent(in) v,
                                                                                                                                                                                                                                                                                                              real, intent(in) sc 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Calculate $k_l$.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              See calc_kw, and Nightingale, Global Biogeochemical Cycles, 2000 (https://doi.org/10.1029/1999GB900091)

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]ttemperature at surface in C
                                                                                                                                                                                                                                                                                                              [in]vwind speed at surface in m/s
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ calc_kw()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::calc_kw (real, intent(in) tk,
                                                                                                                                                                                                                                                                                                              real, intent(in) p,
                                                                                                                                                                                                                                                                                                              real, intent(in) u10,
                                                                                                                                                                                                                                                                                                              real, intent(in) h,
                                                                                                                                                                                                                                                                                                              real, intent(in) vb,
                                                                                                                                                                                                                                                                                                              real, intent(in) mw,
                                                                                                                                                                                                                                                                                                              real, intent(in) sc_w,
                                                                                                                                                                                                                                                                                                              real, intent(in), optional ustar,
                                                                                                                                                                                                                                                                                                              real, intent(in), optional cd_m 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Calculate $k_w$.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Taken from Johnson, Ocean Science, 2010. (http://doi.org/10.5194/os-6-913-2010)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Uses equations defined in Liss[1974],

                                                                                                                                                                                                                                                                                                              -\[ F = K_g(c_g - H C_l) = K_l(c_g/H - C_l) \] -

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              where $c_g$ and $C_l$ are the bulk gas and liquid concentrations, $H$ is the Henry's law constant ( $H = c_{sg}/C_{sl}$, where $c_{sg}$ is the equilibrium concentration in gas phase ( $g/cm^3$ of air) and $C_{sl}$ is the equilibrium concentration of unionised dissolved gas in liquid phase ( $g/cm^3$ of water)),

                                                                                                                                                                                                                                                                                                              -\[ 1/K_g = 1/k_g + H/k_l \] -

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              and

                                                                                                                                                                                                                                                                                                              -\[ 1/K_l = 1/k_l + 1/{Hk_g} \] -

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              where $k_g$ and $k_l$ are the exchange constants for the gas and liquid phases, respectively.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]tktemperature at surface in kelvin
                                                                                                                                                                                                                                                                                                              [in]ppressure at surface in pa
                                                                                                                                                                                                                                                                                                              [in]u10wind speed at 10m above the surface in m/s
                                                                                                                                                                                                                                                                                                              [in]hHenry's law constant ( $H=c_sg/C_sl$) (unitless)
                                                                                                                                                                                                                                                                                                              [in]vbMolar volume
                                                                                                                                                                                                                                                                                                              [in]mwmolecular weight (g/mol)
                                                                                                                                                                                                                                                                                                              [in]ustarFriction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$.
                                                                                                                                                                                                                                                                                                              [in]cd_mDrag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d_air()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::d_air (real, intent(in) t,
                                                                                                                                                                                                                                                                                                              real, intent(in) p,
                                                                                                                                                                                                                                                                                                              real, intent(in) mw,
                                                                                                                                                                                                                                                                                                              real, intent(in) vb 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007)

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              [in]ttemperature in c
                                                                                                                                                                                                                                                                                                              [in]ppressure in pa
                                                                                                                                                                                                                                                                                                              [in]mwmolecular weight (g/mol)
                                                                                                                                                                                                                                                                                                              [in]vbdiffusion coefficient ( $cm3/mol$)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_air()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::n_air (real, intent(in) t)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              dynamic viscosity in air

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]ttemperature in C
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ p_air()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::p_air (real, intent(in) t)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              kinematic viscosity in air

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ schmidt_g()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::schmidt_g (real, intent(in) t,
                                                                                                                                                                                                                                                                                                              real, intent(in) p,
                                                                                                                                                                                                                                                                                                              real, intent(in) mw,
                                                                                                                                                                                                                                                                                                              real, intent(in) vb 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Schmidt number of the gas in air.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              [in]ttemperature at surface in C
                                                                                                                                                                                                                                                                                                              [in]ppressure at surface in pa
                                                                                                                                                                                                                                                                                                              [in]mwmolecular weight (g/mol)
                                                                                                                                                                                                                                                                                                              [in]vbmolar volume
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ v_air()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              real function atmos_ocean_fluxes_calc_mod::v_air (real, intent(in) t)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Kinematic viscosity in air ( $m^2/s$.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]ttemperature in C
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ epsln

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter atmos_ocean_fluxes_calc_mod::epsln =1.0e-30
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mod_name

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=*), parameter atmos_ocean_fluxes_calc_mod::mod_name = "cdwfe"
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespaceflux__exchange__mod.html b/docs/html/namespaceflux__exchange__mod.html deleted file mode 100644 index 5692d87e..00000000 --- a/docs/html/namespaceflux__exchange__mod.html +++ /dev/null @@ -1,4082 +0,0 @@ - - - - - - - -FMS Coupler: flux_exchange_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              flux_exchange_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public gas_exchange_init (gas_fields_atm, gas_fields_ice, gas_fluxes)
                                                                                                                                                                                                                                                                                                               Gas and tracer exchange initialization routine. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_init (Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)
                                                                                                                                                                                                                                                                                                               Initialization routine. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_check_stocks (Time, Atm, Lnd, Ice, Ocn_state)
                                                                                                                                                                                                                                                                                                               Check stock values. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_init_stocks (Time, Atm, Lnd, Ice, Ocn_state)
                                                                                                                                                                                                                                                                                                               Initialize stock values. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine check_atm_grid (Atm, grid_file)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public sfc_boundary_layer (dt, Time, Atm, Land, Ice, Boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_up_to_atmos (Time, Land, Ice, Boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine read_namelist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine diag_field_init (Time, atmos_axes)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_end (Atm)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len=128) version = '$Id$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) tag = '$Name$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_init = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter bound_tol = 1e-7
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter d378 = 1.0-d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real z_ref_heat = 2.
                                                                                                                                                                                                                                                                                                               Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real z_ref_mom = 10.
                                                                                                                                                                                                                                                                                                               Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_area_weighted_flux = .FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical debug_stocks = .FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical divert_stocks_report = .FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_runoff = .TRUE.
                                                                                                                                                                                                                                                                                                               Turns on/off the land runoff interpolation to the ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_forecast = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nblocks = 1
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical partition_fprec_from_lprec = .FALSE.
                                                                                                                                                                                                                                                                                                               option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter tfreeze = 273.15
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical scale_precip_2d = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical gas_fluxes_initialized = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target ex_gas_fields_atm
                                                                                                                                                                                                                                                                                                               Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target ex_gas_fields_ice
                                                                                                                                                                                                                                                                                                               Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target ex_gas_fluxes
                                                                                                                                                                                                                                                                                                               A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ni_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer nj_atm
                                                                                                                                                                                                                                                                                                               to do atmos diagnostic from flux_ocean_to_ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(3) ccc
                                                                                                                                                                                                                                                                                                               for conservation checks More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer cplclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real dt_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real dt_cpl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real atm_precip_new
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=14), parameter mod_name = 'flux'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_drag_moist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_drag_heat
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_drag_mom
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_moist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_heat
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_mom
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_b_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_v_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_r_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_v_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_wind
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_thv_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_thv_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rh_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_u_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_v_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_del_h
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_del_m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_del_q
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_albedo
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_gust
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_t_ca
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_q_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_z_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_p_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_land_mask
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_ice_mask
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_rough_scale
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_albedo_vis_dir
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_albedo_nir_dir
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_albedo_vis_dif
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_albedo_nir_dif
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_uas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_vas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_ts
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_psl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_sfcwind
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tauu
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_tauv
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_hurs
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_huss
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_evspsbl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_hfls
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_hfss
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_height2m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer id_height10m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical first_static = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_read_nml = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer isphum
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_atm_tr_tot
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_atm_tr
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_existing_grid_spec = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical all_ocean = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical all_land = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer is
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ie
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer js
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer je
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable t_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable t_ca
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable q_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable p_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable e_t_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable f_t_delt_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable e_q_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable f_q_delt_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable dhdt_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable dedt_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable dedq_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable drdt_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable dhdt_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable dedq_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_t
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_q
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_lw
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_u
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_v
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable drag_q
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable dtaudu_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable dtaudv_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable cd_t
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable cd_m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable b_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable u_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable wind
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical used
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ check_atm_grid()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::check_atm_grid (type(atmos_data_type), intent(in) Atm,
                                                                                                                                                                                                                                                                                                              character(len=*), intent(in) grid_file 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ diag_field_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::diag_field_init (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              integer, dimension(2), intent(in) atmos_axes 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_check_stocks()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_check_stocks (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout), optional Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout), optional Lnd,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout), optional Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), intent(inout), optional, pointer Ocn_state 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Check stock values.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Will print out any difference between the integrated flux (in time and space) feeding into a component, and the stock stored in that component.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_down_from_atmos()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_down_from_atmos (type (fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type (atmos_data_type), intent(in) Atm,
                                                                                                                                                                                                                                                                                                              type (land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type (ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(in) Atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Land_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Ice_boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_exchange_end()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_exchange_end (type (atmos_data_type), intent(in) Atm)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_exchange_init() [1/2]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_exchange_init (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), intent(inout) land_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) ice_ocean_boundary,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) ocean_ice_boundary,
                                                                                                                                                                                                                                                                                                              logical, intent(in) do_ocean,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) slow_ice_ocean_pelist,
                                                                                                                                                                                                                                                                                                              integer, intent(in), optional dt_atmos,
                                                                                                                                                                                                                                                                                                              integer, intent(in), optional dt_cpld 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Initialization routine.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Initializes the interpolation routines,diagnostics and boundary data

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Exceptions
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              FATAL,grid_spec.nc incompatible with atmosphere resolutionThe atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere resolution from atmosphere model.
                                                                                                                                                                                                                                                                                                              FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model.
                                                                                                                                                                                                                                                                                                              FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat)The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model.
                                                                                                                                                                                                                                                                                                              FATAL,grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc)The latitude from file grid_spec.nc is different from the latitude from atmosphere model.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]timeThe model's current time
                                                                                                                                                                                                                                                                                                              [in,out]atmA derived data type to specify atmosphere boundary data
                                                                                                                                                                                                                                                                                                              [in]landA derived data type to specify land boundary data
                                                                                                                                                                                                                                                                                                              [in,out]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]oceanA derived data type to specify ocean boundary data
                                                                                                                                                                                                                                                                                                              [in,out]atmos_ice_boundaryA derived data type to specify properties and fluxes passed from atmosphere to ice
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_atmos_boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_boundaryA derived data type to specify properties and fluxes passed from land to ice
                                                                                                                                                                                                                                                                                                              [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
                                                                                                                                                                                                                                                                                                              [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
                                                                                                                                                                                                                                                                                                              [in]dt_atmosAtmosphere time step in seconds
                                                                                                                                                                                                                                                                                                              [in]dt_cpldCoupled time step in seconds
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_exchange_init() [2/2]

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_exchange_init (type (fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type (atmos_data_type), intent(in) Atm,
                                                                                                                                                                                                                                                                                                              type (land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type (ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) land_ice_atmos_boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_init_stocks()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_init_stocks (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type) Lnd,
                                                                                                                                                                                                                                                                                                              type(ice_data_typeIce,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), pointer Ocn_state 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Initialize stock values.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              This will call the various component stock_pe routines to store the the initial stock values.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_up_to_atmos()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_up_to_atmos (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ gas_exchange_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::gas_exchange_init (type(fmscoupler1dbc_type), optional, pointer gas_fields_atm,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), optional, pointer gas_fields_ice,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), optional, pointer gas_fluxes 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Gas and tracer exchange initialization routine.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              This routine causes the field table to be read to determine which fields will be needed for the exchanges of gasses and tracers between the atmosphere and ocean. The metadata for these fields are stored in the ex_gas_fluxes and ex_gas_fields arrays, although the data is not allocated yet. This is intended to be called (optionally) prior to flux_exchange_init.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              gas_fields_atmPointer to a structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.
                                                                                                                                                                                                                                                                                                              gas_fields_icePointer to a structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.
                                                                                                                                                                                                                                                                                                              gas_fluxesPointer to a s structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ read_namelist()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::read_namelist ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ sfc_boundary_layer()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::sfc_boundary_layer (real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              type (fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type (atmos_data_type), intent(in) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]dtTime step
                                                                                                                                                                                                                                                                                                              [in]timeCurrent time
                                                                                                                                                                                                                                                                                                              [in]atmA derived data type to specify atmospheric boundary data
                                                                                                                                                                                                                                                                                                              [in,out]landA derived data type to specify land boundary data
                                                                                                                                                                                                                                                                                                              [in,out]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]boundaryA derived data type to specify properties and fluxes passed from exchange grid to the atmosphere,
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ surface_flux_2d()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::surface_flux_2d (real, dimension(:,:), intent(in) t_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) q_atm_in,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) u_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) v_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) p_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) z_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) p_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) t_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) t_ca,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) q_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) u_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) v_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_mom,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_heat,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_moist,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) rough_scale,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) gust,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_r,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_u,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_v,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_m,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) w_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) u_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) b_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) q_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) thv_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) thv_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dhdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedq_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) drdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dhdt_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedq_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dtaudu_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dtaudv_atm,
                                                                                                                                                                                                                                                                                                              real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) land,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) seawater,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) avail 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ all_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::all_land = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ all_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::all_ocean = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atm_precip_new

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::atm_precip_new
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ b_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::b_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ bound_tol

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter flux_exchange_mod::bound_tol = 1e-7
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ccc

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(3) flux_exchange_mod::ccc
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              for conservation checks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cd_m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::cd_m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cd_t

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::cd_t
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cplclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::cplclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d378

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real parameter flux_exchange_mod::d378 = 1.0-d622
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d622

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real parameter flux_exchange_mod::d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ debug_stocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::debug_stocks = .FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dedq_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dedq_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dedq_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dedq_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dedt_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dedt_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dhdt_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dhdt_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dhdt_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dhdt_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ divert_stocks_report

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::divert_stocks_report = .FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_area_weighted_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_area_weighted_flux = .FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_forecast

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_forecast = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_init = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_read_nml

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_read_nml = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_runoff

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_runoff = .TRUE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Turns on/off the land runoff interpolation to the ocean.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ drag_q

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::drag_q
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ drdt_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::drdt_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::dt_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_cpl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dtaudu_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dtaudu_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dtaudv_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dtaudv_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ e_q_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::e_q_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ e_t_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::e_t_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_gas_fields_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_gas_fields_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ex_gas_fluxes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fluxes
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ f_q_delt_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::f_q_delt_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ f_t_delt_n

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::f_t_delt_n
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ first_static

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::first_static = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_lw

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_lw
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_q

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_q
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_t

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_t
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_u

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_u
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_v

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_v
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ gas_fluxes_initialized

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::gas_fluxes_initialized = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_albedo

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_albedo_nir_dif

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_nir_dif
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_albedo_nir_dir

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_nir_dir
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_albedo_vis_dif

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_vis_dif
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_albedo_vis_dir

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_vis_dir
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_b_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_b_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_del_h

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_del_h
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_del_m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_del_m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_del_q

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_del_q
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_drag_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_drag_heat
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_drag_moist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_drag_moist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_drag_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_drag_mom
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_evspsbl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_evspsbl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_gust

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_gust
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_height10m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_height10m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_height2m

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_height2m
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_hfls

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_hfls
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_hfss

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_hfss
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_hurs

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_hurs
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_huss

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_huss
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_ice_mask

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_ice_mask
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_land_mask

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_land_mask
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_p_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_p_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_psl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_psl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_q_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_r_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_r_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rh_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rh_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_heat
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_moist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_moist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_mom
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_rough_scale

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_scale
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_sfcwind

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_sfcwind
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_ca

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_ca
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_t_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tas

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_tas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tauu

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_tauu
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_tauv

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_tauv
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_thv_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_thv_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_thv_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_thv_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_ts

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_ts
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_u_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_uas

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_uas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_v_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_v_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_v_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_v_flux
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_v_ref

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_v_ref
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_vas

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_vas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_wind

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_wind
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ id_z_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_z_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ie

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::ie
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ is

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::is
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ isphum

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::isphum
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ je

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::je
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ js

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::js
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mod_name

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=14), parameter flux_exchange_mod::mod_name = 'flux'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_atm_tr

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::n_atm_tr
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_atm_tr_tot

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::n_atm_tr_tot
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nblocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::nblocks = 1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ni_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::ni_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ nj_atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::nj_atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              to do atmos diagnostic from flux_ocean_to_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ p_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::p_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ partition_fprec_from_lprec

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::partition_fprec_from_lprec = .FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ q_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::q_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ scale_precip_2d

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::scale_precip_2d = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ t_ca

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::t_ca
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ t_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::t_surf
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tag

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=128) flux_exchange_mod::tag = '$Name$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tfreeze

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter flux_exchange_mod::tfreeze = 273.15
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ u_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::u_star
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_existing_grid_spec

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::use_existing_grid_spec = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ used

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::used
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ version

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=128) flux_exchange_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ wind

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::wind
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ z_ref_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::z_ref_heat = 2.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ z_ref_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real flux_exchange_mod::z_ref_mom = 10.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacefull__coupler__mod.html b/docs/html/namespacefull__coupler__mod.html deleted file mode 100644 index 7fbc4229..00000000 --- a/docs/html/namespacefull__coupler__mod.html +++ /dev/null @@ -1,3594 +0,0 @@ - - - - - - - -FMS Coupler: full_coupler_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              type  coupler_chksum_type
                                                                                                                                                                                                                                                                                                               The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  coupler_clock_type
                                                                                                                                                                                                                                                                                                               coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  coupler_components_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public coupler_init (Atm, Ocean, Land, Ice, Ocean_state, Atmos_land_boundary, Atmos_ice_boundary, Ocean_ice_boundary, Ice_ocean_boundary, Land_ice_atmos_boundary, Land_ice_boundary, Ice_ocean_driver_CS, Ice_bc_restart, Ocn_bc_restart, ensemble_pelist, slow_ice_ocean_pelist, conc_nthreads, coupler_clocks, coupler_components_obj, coupler_chksum_obj, Time_step_cpld, Time_step_atmos, Time_atmos, Time_ocean, num_cpld_calls, num_atmos_calls, Time, Time_start, Time_end, Time_restart, Time_restart_current)
                                                                                                                                                                                                                                                                                                               Initialize all defined exchange grids and all boundary maps. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine initialize_coupler_components_obj (this, Atm, Land, Ice, Ocean, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Land_ice_boundary, Ice_ocean_boundary, Ocean_ice_boundary)
                                                                                                                                                                                                                                                                                                               This subroutine associates the pointer in an object of coupler_components_type to the model components. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_component (this, retrieve_component)
                                                                                                                                                                                                                                                                                                               Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine initialize_coupler_chksum_obj (this, components_obj)
                                                                                                                                                                                                                                                                                                               This subroutine associates the pointer in an object of coupler_chksum_type to the component models. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_components_obj (this, components_obj)
                                                                                                                                                                                                                                                                                                               This subroutine retrieves coupler_chksum_objcomponents_obj. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_end (Atm, Land, Ice, Ocean, Ocean_state, Land_ice_atmos_boundary, Atmos_ice_boundary, Atmos_land_boundary, Ice_ocean_boundary, Ocean_ice_boundary, Ocn_bc_restart, Ice_bc_restart, current_timestep, Time_current, Time_start, Time_end, Time_restart_current, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine add_domain_dimension_data (fileobj)
                                                                                                                                                                                                                                                                                                               Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_restart (Atm, Ice, Ocean, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart_current, Time_start, time_stamp)
                                                                                                                                                                                                                                                                                                               Writing restart file that contains running time and restart file writing time. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_coupler_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               Print out checksums for several atm, land and ice variables. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_atmos_ice_land_ocean_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_atmos_ice_land_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (atm%pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(atm%pelist)
                                                                                                                                                                                                                                                                                                              call atmos_ice_land_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist. More...

                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_slow_ice_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (ice%slow_ice_pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(ice%slow_pelist)
                                                                                                                                                                                                                                                                                                              call slow_ice_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist. More...

                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_ocean_chksums (this, id, timestep)
                                                                                                                                                                                                                                                                                                               This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (ocean%is_ocean_pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(ocean%pelist)
                                                                                                                                                                                                                                                                                                              call ocean_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist. More...

                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine coupler_set_clock_ids (coupler_clocks, Atm, Land, Ice, Ocean, ensemble_pelist, slow_ice_ocean_pelist, ensemble_id)
                                                                                                                                                                                                                                                                                                               This subroutine sets the ID for clocks used in coupler_main. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_init_finish_stocks (Time, Atm, Land, Ice, Ocean_state, coupler_clocks, init_stocks, finish_stocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_init_stocks or does the final call to flux_check_stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_check_stocks (nc, Time, Atm, Land, Ice, Ocean_state, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_ocean_to_ice (Ocean, Ice, Ocean_ice_boundary, coupler_clocks, slow_ice_ocean_pelist)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_ice_to_ocean (Ice, Ocean, Ice_ocean_boundary, coupler_clocks, slow_ice_ocean_pelist, set_current_slow_ice_ocean_pelist)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_unpack_ocean_ice_boundary (nc, Time_flux_ocean_to_ice, Ice, Ocean_ice_boundary, coupler_clocks, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_exchange_slow_to_fast_ice (Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_exchange_fast_to_slow_ice (Ice, coupler_clocks, set_ice_current_pelist)
                                                                                                                                                                                                                                                                                                               This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_set_ice_surface_fields (Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_generate_sfc_xgrid (Land, Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls generate_sfc_xgrid. Clocks are set and before the call. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_atmos_tracer_driver_gather_data (Atm, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_sfc_boundary_layer (Atm, Land, Ice, Land_ice_atmos_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_atmos_model_dynamics (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_atmos_model_radiation (Atm, Land_ice_atmos_boundary, coupler_clocks, current_timestep, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_atmos_model_down (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_down_from_atmos (Atm, Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_clocks, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_land_model_fast (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_ice_model_fast (Ice, Atmos_ice_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_up_to_atmos (Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_atmos_model_up (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_atmos_to_ocean (Atm, Atmos_ice_boundary, Ice, Time_atmos)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_atmos_model_state (Atm, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_land_model_slow (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_flux_land_to_ice (Land, Ice, Land_ice_boundary, Time, current_timestep, coupler_chksum_obj, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_unpack_land_ice_boundary (Ice, Land_ice_boundary, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_ice_model_slow_and_stocks (Ice, coupler_clocks)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_update_ocean_model (Ocean, Ocean_state, Ice_ocean_boundary, Time_ocean, Time_step_cpld, current_timestep, coupler_chksum_obj)
                                                                                                                                                                                                                                                                                                               This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_intermediate_restart (Atm, Ice, Ocean, Ocean_state, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart, Time_restart_current, Time_start)
                                                                                                                                                                                                                                                                                                               Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public coupler_summarize_timestep (current_timestep, num_cpld_calls, coupler_chksum_obj, is_atmos_pe, omp_sec, imb_sec)
                                                                                                                                                                                                                                                                                                               This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              integer, dimension(6), public restart_interval = (/ 0, 0, 0, 0, 0, 0/)
                                                                                                                                                                                                                                                                                                               namelist interface More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(6) current_date = (/ 0, 0, 0, 0, 0, 0 /)
                                                                                                                                                                                                                                                                                                               The date that the current integration starts with. (See force_date_from_namelist.) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=17) calendar = ' '
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical force_date_from_namelist = .false.
                                                                                                                                                                                                                                                                                                               Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public months =0
                                                                                                                                                                                                                                                                                                               Number of months the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public days =0
                                                                                                                                                                                                                                                                                                               Number of days the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public hours =0
                                                                                                                                                                                                                                                                                                               Number of hours the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public minutes =0
                                                                                                                                                                                                                                                                                                               Number of minutes the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public seconds =0
                                                                                                                                                                                                                                                                                                               Number of seconds the current integration will be run. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public dt_atmos = 0
                                                                                                                                                                                                                                                                                                               Atmospheric model time step in seconds, including the fast coupling with land and sea ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public dt_cpld = 0
                                                                                                                                                                                                                                                                                                               Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public atmos_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public ocean_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public ice_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public land_npes =0
                                                                                                                                                                                                                                                                                                               The number of MPI tasks to use for the land. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public atmos_nthreads =1
                                                                                                                                                                                                                                                                                                               Number of OpenMP threads to use in the atmosphere. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public ocean_nthreads =1
                                                                                                                                                                                                                                                                                                               Number of OpenMP threads to use in the ocean. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public radiation_nthreads =1
                                                                                                                                                                                                                                                                                                               Number of threads to use for the radiation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_atmos =.true.
                                                                                                                                                                                                                                                                                                               Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_land =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_ice =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_ocean =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_flux =.true.
                                                                                                                                                                                                                                                                                                               See do_atmos. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public concurrent =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean... More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_concurrent_radiation =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE. then radiation is done concurrently. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public use_lag_fluxes =.TRUE.
                                                                                                                                                                                                                                                                                                               If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public concurrent_ice =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public slow_ice_with_ocean =.FALSE.
                                                                                                                                                                                                                                                                                                               If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public combined_ice_and_ocean =.FALSE.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_chksum =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE., do multiple checksums throughout the execution of the model. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_endpoint_chksum =.TRUE.
                                                                                                                                                                                                                                                                                                               If .TRUE., do checksums of the initial and final states. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public do_debug =.FALSE.
                                                                                                                                                                                                                                                                                                               If .TRUE. print additional debugging messages. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, public check_stocks = 0
                                                                                                                                                                                                                                                                                                               -1: never 0: at end of run only n>0: every n coupled steps More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, public use_hyper_thread = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=80) text
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=48), parameter mod_name = 'coupler_main_mod'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer calendar_type = INVALID_CALENDAR
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(6) date_init = (/ 0, 0, 0, 0, 0, 0 /)
                                                                                                                                                                                                                                                                                                               coupled model initial date More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ add_domain_dimension_data()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::add_domain_dimension_data (type(fmsnetcdfdomainfile_t) fileobj)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              fileobjFms2io domain decomposed fileobj
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_atmos_tracer_driver_gather_data()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_atmos_tracer_driver_gather_data (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_end()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_end (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), intent(inout), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_current,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_start,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_end,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_restart_current,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(in) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_atmos_boundaryLand_ice_boundary
                                                                                                                                                                                                                                                                                                              [in,out]ocn_bc_restartrequired for coupler_restart
                                                                                                                                                                                                                                                                                                              [in,out]ice_bc_restartrequired for coupler_restart
                                                                                                                                                                                                                                                                                                              [in]current_timestepcurrent_timestep (nc)
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objrequired for chksum computations
                                                                                                                                                                                                                                                                                                              [in]time_currentCurrent timestep
                                                                                                                                                                                                                                                                                                              [in]time_startmodel starting time
                                                                                                                                                                                                                                                                                                              [in]time_endmodel run time
                                                                                                                                                                                                                                                                                                              [in]time_restart_currentTime corresponding to last restart time
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_exchange_fast_to_slow_ice()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_exchange_fast_to_slow_ice (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              logical, intent(in), optional set_ice_current_pelist 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]set_ice_current_pelistIf true, call mpp_set_current_pelist(Icepelist)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_exchange_slow_to_fast_ice()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_exchange_slow_to_fast_ice (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_atmos_to_ocean()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_atmos_to_ocean (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_atmos 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]time_atmosTime in seconds
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_check_stocks()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_check_stocks (integer, intent(in) nc,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), intent(inout), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]nccurrent outerloop timestep
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_down_from_atmos()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_down_from_atmos (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_atmos,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]time_atmosTime_atmos FmsTime_type containing time in seconds
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objused to compute chksum
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_ice_to_ocean()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_ice_to_ocean (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in), optional slow_ice_ocean_pelist,
                                                                                                                                                                                                                                                                                                              logical, intent(in), optional set_current_slow_ice_ocean_pelist 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]set_current_slow_ice_ocean_pelistif true, will call mpp_set_current_pelist(slow_ice_ocean_pelist)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              mpp_set_current_pelist(slow_ice_ocean_pelist) is not required if coupler_flux_ice_to_ocean is being called after coupler_flux_ocean_to_ice: mpp_set_current_pelist(slow_ice_ocean_pelist) is called in coupler_flux_ocean_to_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_init_finish_stocks()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_init_finish_stocks (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), intent(inout), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              logical, intent(in), optional init_stocks,
                                                                                                                                                                                                                                                                                                              logical, intent(in), optional finish_stocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_init_stocks or does the final call to flux_check_stocks.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]timecurrent Time
                                                                                                                                                                                                                                                                                                              [in]finish_stockscontrol flags to either call flux_init_stocks or the final flux_check_stocks
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_land_to_ice()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_land_to_ice (type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), intent(inout) Land_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]timeTime (in seconds)
                                                                                                                                                                                                                                                                                                              [in]current_timestepcurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objcoupler_chksum_obj to compute chksums
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_ocean_to_ice()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_ocean_to_ice (type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) slow_ice_ocean_pelist 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_flux_up_to_atmos()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_flux_up_to_atmos (type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_atmos,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(in) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]time_atmosTime_atmos, time in seconds
                                                                                                                                                                                                                                                                                                              [in]current_timestepcurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objpoints to component types
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_generate_sfc_xgrid()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_generate_sfc_xgrid (type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls generate_sfc_xgrid. Clocks are set and before the call.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_init (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), intent(inout), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), intent(inout) Land_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_driver_type), intent(inout), pointer Ice_ocean_driver_CS,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
                                                                                                                                                                                                                                                                                                              integer, dimension(:,:), intent(inout), allocatable ensemble_pelist,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(inout), allocatable slow_ice_ocean_pelist,
                                                                                                                                                                                                                                                                                                              integer, intent(inout) conc_nthreads,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              type(coupler_components_type), intent(inout) coupler_components_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(inout) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_step_cpld,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_step_atmos,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_atmos,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_ocean,
                                                                                                                                                                                                                                                                                                              integer, intent(inout) num_cpld_calls,
                                                                                                                                                                                                                                                                                                              integer, intent(inout) num_atmos_calls,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_start,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_end,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_restart,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_restart_current 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Initialize all defined exchange grids and all boundary maps.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The pelists need to be set before initializing the clocks

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Initialize coupler_components_obj memebers to point to model components

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Initialize coupler_chksum_obj

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_intermediate_restart()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_intermediate_restart (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), intent(inout), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_current,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_restart,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_restart_current,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_start 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in,out]ocn_bc_restartused for coupler type restarts
                                                                                                                                                                                                                                                                                                              [in,out]ice_bc_restartused for coupler type restarts
                                                                                                                                                                                                                                                                                                              [in]time_startcurrent Timestep and model start time
                                                                                                                                                                                                                                                                                                              [in,out]time_restartRestart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart.
                                                                                                                                                                                                                                                                                                              [in,out]time_restart_currentRestart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_restart()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_restart (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ocn_bc_restart,
                                                                                                                                                                                                                                                                                                              type(fmsnetcdfdomainfile_t), dimension(:), intent(inout), pointer Ice_bc_restart,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_current,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_restart_current,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_start,
                                                                                                                                                                                                                                                                                                              character(len=*), intent(in), optional time_stamp 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Writing restart file that contains running time and restart file writing time.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in,out]ocn_bc_restartrequired for restarts
                                                                                                                                                                                                                                                                                                              [in,out]ice_bc_restartrequired for restarts
                                                                                                                                                                                                                                                                                                              [in]time_currentcurrent model runtime (Time)
                                                                                                                                                                                                                                                                                                              [in]time_restart_currentcurrent restart time
                                                                                                                                                                                                                                                                                                              [in]time_startmodel start time
                                                                                                                                                                                                                                                                                                              [in]time_stamptime_stamp for restart
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_set_clock_ids()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::coupler_set_clock_ids (type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(in) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(in) Ocean,
                                                                                                                                                                                                                                                                                                              integer, dimension(:,:), intent(in) ensemble_pelist,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) slow_ice_ocean_pelist,
                                                                                                                                                                                                                                                                                                              integer, intent(in) ensemble_id 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine sets the ID for clocks used in coupler_main.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]atmAtm, required to retrieve pe information
                                                                                                                                                                                                                                                                                                              [in]landLand, required to retrieve pe information
                                                                                                                                                                                                                                                                                                              [in]oceanOcean, required to retrieve pe information
                                                                                                                                                                                                                                                                                                              [in]iceIce, required to retrieve pe information
                                                                                                                                                                                                                                                                                                              [in]slow_ice_ocean_pelistslow_ice_oean_pelist
                                                                                                                                                                                                                                                                                                              [in]ensemble_idensemble_id used as index in ensemble_pelist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              initialization clock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_set_ice_surface_fields()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_set_ice_surface_fields (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_sfc_boundary_layer()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_sfc_boundary_layer (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_atmos,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]time_atmosAtmos time
                                                                                                                                                                                                                                                                                                              [in]current_timestep(nc-1)*num_atmos_cal + na
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_summarize_timestep()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_summarize_timestep (integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              integer, intent(in) num_cpld_calls,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              logical, intent(in) is_atmos_pe,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) omp_sec,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) imb_sec 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              [in]current_timestepcurrent_timestep, nc
                                                                                                                                                                                                                                                                                                              [in]num_cpld_callstotal number of outerloop timestep
                                                                                                                                                                                                                                                                                                              [in]is_atmos_peAtmpe
                                                                                                                                                                                                                                                                                                              [in,out]imb_secfrom omp computation
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_unpack_land_ice_boundary()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_unpack_land_ice_boundary (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), intent(inout) Land_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              These two calls occur on whichever PEs handle the fast ice processess.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_unpack_ocean_ice_boundary()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_unpack_ocean_ice_boundary (integer, intent(in) nc,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_flux_ocean_to_ice,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) Ocean_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]ncCurrent outer loop timestep
                                                                                                                                                                                                                                                                                                              [in,out]time_flux_ocean_to_iceTime flux_ocean_to_ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_atmos_model_down()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_down (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_atmos_boundaryLand ice_atmos_boundary
                                                                                                                                                                                                                                                                                                              [in]current_timestepCurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objcoupler_chksum_obj pointing to component types
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_atmos_model_dynamics()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_dynamics (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]current_timestepCurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objcoupler_chksum_obj pointing to component types
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_atmos_model_radiation()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_radiation (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks,
                                                                                                                                                                                                                                                                                                              integer, intent(in), optional current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in), optional coupler_chksum_obj 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]current_timestepCurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objpoints to component types
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              cannot put mpp_chksum for concurrent_radiation as it requires the ability to have two different OpenMP threads inside of MPI at the same time which is not currently allowed

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_atmos_model_state()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_state (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objused to compute chksums
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_atmos_model_up()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_atmos_model_up (type(atmos_data_type), intent(inout) Atm,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(inout) Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objpoints to component types
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_ice_model_fast()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_ice_model_fast (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(inout) Atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) atm_pelist,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]atm_pelistAtmpelist to reset the pelist to Atmpelist
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objpoints to component types
                                                                                                                                                                                                                                                                                                              [in,out]coupler_clockscurrent pelist = Atmpelist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_ice_model_slow_and_stocks()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_ice_model_slow_and_stocks (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_land_model_fast()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_land_model_fast (type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) atm_pelist,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              [in]atm_pelistAtmpelist to reset the pelist to Atmpelist
                                                                                                                                                                                                                                                                                                              [in]current_timestepcurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objpoints to component types
                                                                                                                                                                                                                                                                                                              [in,out]coupler_clockscurrent pelist=Atmpelist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_land_model_slow()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_land_model_slow (type(land_data_type), intent(inout) Land,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(inout) Atmos_land_boundary,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) atm_pelist,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj,
                                                                                                                                                                                                                                                                                                              type(coupler_clock_type), intent(inout) coupler_clocks 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]atm_pelistatm_pelist used for clocks
                                                                                                                                                                                                                                                                                                              [in]current_timestepcurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objcoupler_chksum_obj for chksum computation
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_update_ocean_model()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public full_coupler_mod::coupler_update_ocean_model (type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), intent(inout), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) Ice_ocean_boundary,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(inout) Time_ocean,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_step_cpld,
                                                                                                                                                                                                                                                                                                              integer, intent(in) current_timestep,
                                                                                                                                                                                                                                                                                                              type(coupler_chksum_type), intent(in) coupler_chksum_obj 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]time_step_cpldtotal number of timesteps
                                                                                                                                                                                                                                                                                                              [in]current_timestepcurrent timestep
                                                                                                                                                                                                                                                                                                              [in]coupler_chksum_objused for checksum computation
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_atmos_ice_land_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_atmos_ice_land_chksums (class(coupler_chksum_type), intent(in) this,
                                                                                                                                                                                                                                                                                                              character(len=*), intent(in) id,
                                                                                                                                                                                                                                                                                                              integer, intent(in) timestep 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (atm%pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(atm%pelist)
                                                                                                                                                                                                                                                                                                              call atmos_ice_land_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]thisself
                                                                                                                                                                                                                                                                                                              [in]idid to label CHECKSUMS in stdout
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_atmos_ice_land_ocean_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_atmos_ice_land_ocean_chksums (class(coupler_chksum_type), intent(in) this,
                                                                                                                                                                                                                                                                                                              character(len=*), intent(in) id,
                                                                                                                                                                                                                                                                                                              integer, intent(in) timestep 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]thisself
                                                                                                                                                                                                                                                                                                              [in]idID labelling the set of checksums
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_component()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_component (class(coupler_components_type), intent(in) this,
                                                                                                                                                                                                                                                                                                              class(*), intent(out) retrieve_component 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]thisthe coupler_components_type object
                                                                                                                                                                                                                                                                                                              [out]retrieve_componentrequested component to be retrieve. retrieve_component can be of type atmos_data_type, land_data_type, ice_data_type, ocean_public_type, land_ice_atmos_boundary_type, atmos_land_boundary_type, atmos_ice_boundary_type, land_ice_boundary_type, ice_ocean_boundary_type, ocean_ice_boundary_type
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_components_obj()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_components_obj (class(coupler_chksum_type), intent(in) this,
                                                                                                                                                                                                                                                                                                              type(coupler_components_type), intent(out) components_obj 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine retrieves coupler_chksum_objcomponents_obj.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]thiscoupler_chksum_type
                                                                                                                                                                                                                                                                                                              [out]components_objcoupler_components_type to be returned
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_coupler_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_coupler_chksums (class(coupler_chksum_type), intent(in) this,
                                                                                                                                                                                                                                                                                                              character(len=*), intent(in) id,
                                                                                                                                                                                                                                                                                                              integer, intent(in) timestep 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Print out checksums for several atm, land and ice variables.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]thisself
                                                                                                                                                                                                                                                                                                              [in]idid to label CHECKSUMS in stdout
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_ocean_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_ocean_chksums (class(coupler_chksum_type), intent(in) this,
                                                                                                                                                                                                                                                                                                              character(len=*), intent(in) id,
                                                                                                                                                                                                                                                                                                              integer, intent(in) timestep 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (ocean%is_ocean_pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(ocean%pelist)
                                                                                                                                                                                                                                                                                                              call ocean_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]thisself
                                                                                                                                                                                                                                                                                                              [in]idID labelling the set of CHECKSUMS
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_slow_ice_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::get_slow_ice_chksums (class(coupler_chksum_type), intent(in) this,
                                                                                                                                                                                                                                                                                                              character(len=*), intent(in) id,
                                                                                                                                                                                                                                                                                                              integer, intent(in) timestep 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way.

                                                                                                                                                                                                                                                                                                              if (ice%slow_ice_pe) then
                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist(ice%slow_pelist)
                                                                                                                                                                                                                                                                                                              call slow_ice_chksum('MAIN_LOOP-', nc)
                                                                                                                                                                                                                                                                                                              endif

                                                                                                                                                                                                                                                                                                              If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking

                                                                                                                                                                                                                                                                                                              call mpp_set_current_pelist()

                                                                                                                                                                                                                                                                                                              after you exit. This is only necessary if you need to return to the global pelist.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]thisself
                                                                                                                                                                                                                                                                                                              [in]idid to label CHECKSUMS in stdout
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ initialize_coupler_chksum_obj()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::initialize_coupler_chksum_obj (class(coupler_chksum_type), intent(inout) this,
                                                                                                                                                                                                                                                                                                              type(coupler_components_type), intent(in), target components_obj 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine associates the pointer in an object of coupler_chksum_type to the component models.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ initialize_coupler_components_obj()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine full_coupler_mod::initialize_coupler_components_obj (class(coupler_components_type), intent(inout) this,
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), intent(in), target Atm,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(in), target Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(in), target Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(in), target Ocean,
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), intent(in), target Land_ice_atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), intent(in), target Atmos_land_boundary,
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), intent(in), target Atmos_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), intent(in), target Land_ice_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(in), target Ice_ocean_boundary,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(in), target Ocean_ice_boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This subroutine associates the pointer in an object of coupler_components_type to the model components.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in,out]thisself
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_npes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::atmos_npes =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              The number of MPI tasks to use for the atmosphere.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_nthreads

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::atmos_nthreads =1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of OpenMP threads to use in the atmosphere.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ calendar

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=17) full_coupler_mod::calendar = ' '
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ calendar_type

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::calendar_type = INVALID_CALENDAR
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ check_stocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::check_stocks = 0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              -1: never 0: at end of run only n>0: every n coupled steps

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ combined_ice_and_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::combined_ice_and_ocean =.FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ concurrent

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::concurrent =.FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean...

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ concurrent_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::concurrent_ice =.FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ current_date

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(6) full_coupler_mod::current_date = (/ 0, 0, 0, 0, 0, 0 /)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              The date that the current integration starts with. (See force_date_from_namelist.)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' cannot be used because the time_manager's date functions are used. All values must be lower case.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ date_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(6) full_coupler_mod::date_init = (/ 0, 0, 0, 0, 0, 0 /)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              coupled model initial date

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ days

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::days =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of days the current integration will be run.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_atmos

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_atmos =.true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_chksum

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_chksum =.FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE., do multiple checksums throughout the execution of the model.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_concurrent_radiation

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_concurrent_radiation =.FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE. then radiation is done concurrently.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_debug

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_debug =.FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE. print additional debugging messages.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_endpoint_chksum

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_endpoint_chksum =.TRUE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE., do checksums of the initial and final states.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_flux =.true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              See do_atmos.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_ice =.true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              See do_atmos.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_land =.true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              See do_atmos.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::do_ocean =.true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              See do_atmos.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_atmos

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::dt_atmos = 0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Atmospheric model time step in seconds, including the fast coupling with land and sea ice.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_cpld

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::dt_cpld = 0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ force_date_from_namelist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical full_coupler_mod::force_date_from_namelist = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ hours

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::hours =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of hours the current integration will be run.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_npes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::ice_npes =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              The number of MPI tasks to use for the ice.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ land_npes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::land_npes =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              The number of MPI tasks to use for the land.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ minutes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::minutes =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of minutes the current integration will be run.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mod_name

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=48), parameter full_coupler_mod::mod_name = 'coupler_main_mod'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ months

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::months =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of months the current integration will be run.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ocean_npes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::ocean_npes =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              The number of MPI tasks to use for the ocean.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ocean_nthreads

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::ocean_nthreads =1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of OpenMP threads to use in the ocean.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ radiation_nthreads

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::radiation_nthreads =1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of threads to use for the radiation.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ restart_interval

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(6), public full_coupler_mod::restart_interval = (/ 0, 0, 0, 0, 0, 0/)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              namelist interface

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ seconds

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, public full_coupler_mod::seconds =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Number of seconds the current integration will be run.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ slow_ice_with_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::slow_ice_with_ocean =.FALSE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              If true, there is a single call from the coupler to advance both the slow sea-ice and the ocean. slow_ice_with_ocean and concurrent_ice must both be true if combined_ice_and_ocean is true.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ text

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=80) full_coupler_mod::text
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_hyper_thread

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::use_hyper_thread = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_lag_fluxes

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, public full_coupler_mod::use_lag_fluxes =.TRUE.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespaceice__model__mod.html b/docs/html/namespaceice__model__mod.html deleted file mode 100644 index e2727ad1..00000000 --- a/docs/html/namespaceice__model__mod.html +++ /dev/null @@ -1,1382 +0,0 @@ - - - - - - - -FMS Coupler: ice_model_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_model_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              type  atmos_ice_boundary_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type  ice_data_type
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public update_ice_model_fast (Atmos_boundary, Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public update_ice_model_slow (Atmos_boundary, Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine prognostic_ice (Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine prognostic_sst (Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_init (Ice, Time_Init, Time, Time_step_fast, Time_step_slow, glon_bnd, glat_bnd, Atmos_domain)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ice_register_restart (fileobj, Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_end (Ice)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine add_domain_dimension_data (fileobj)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical function is_latlon (lon, lat)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine get_cell_center (lonb, latb, lon, lat)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine latlon2xyz (sph_coor, xyz_coor)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine xyz2latlon (xyz_coor, sph_coor)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              real cmin
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real cmax
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real diff = 2.092
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real thickness_min = 0.10
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real specified_ice_thickness = 2.0
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real heat_capacity_ocean = 1.e07
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real temp_ice_freeze = -1.66
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real roughness_ice = 1.e-4
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical mixed_layer_ocean = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_climo_ice = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_annual_ice = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_climo_sst = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_annual_sst = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) ice_method = 'prognostic'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) sst_method = 'specified'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) specified
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) uniform
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) or
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) mixed_layer
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real temp_ice = 270.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real temp_sst = 280.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real sst_anom = 0.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) interp_method = "bilinear"
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_netcdf_restart = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer is
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ie
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer js
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer je
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmsamipinterp_type), save amip_ice
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmsamipinterp_type), save amip_sst
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical module_is_initialized = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=64) fname = 'INPUT/ice_model.res.nc'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) version = '$Id$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=128) tagname = '$Name$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter latent = HLV + HLF
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ add_domain_dimension_data()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::add_domain_dimension_data (type(fmsnetcdfdomainfile_t) fileobj)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              fileobjFms2io domain decomposed fileobj
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_cell_center()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::get_cell_center (real, dimension(:,:), intent(in) lonb,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) latb,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) lon,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) lat 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_model_end()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::ice_model_end (type(ice_data_type), intent(inout) Ice)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_model_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::ice_model_init (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_Init,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_step_fast,
                                                                                                                                                                                                                                                                                                              type(fmstime_type), intent(in) Time_step_slow,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) glon_bnd,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) glat_bnd,
                                                                                                                                                                                                                                                                                                              type(fmsmppdomain2d), intent(in), target Atmos_domain 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_register_restart()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::ice_register_restart (type(fmsnetcdfdomainfile_t), intent(inout) fileobj,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in,out]fileobjIce restart domain decomposed fileobj
                                                                                                                                                                                                                                                                                                              [in,out]iceIce data type
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ is_latlon()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              logical function ice_model_mod::is_latlon (real, dimension(:,:), intent(in) lon,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) lat 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ latlon2xyz()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::latlon2xyz (real, dimension(2), intent(in) sph_coor,
                                                                                                                                                                                                                                                                                                              real, dimension(3), intent(inout) xyz_coor 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ prognostic_ice()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::prognostic_ice (type(ice_data_type), intent(inout) Ice)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ prognostic_sst()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::prognostic_sst (type(ice_data_type), intent(inout) Ice)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_ice_model_fast()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::update_ice_model_fast (type(atmos_ice_boundary_type), intent(in) Atmos_boundary,
                                                                                                                                                                                                                                                                                                              type (ice_data_type), intent(inout) Ice 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_ice_model_slow()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_model_mod::update_ice_model_slow (type(atmos_ice_boundary_type), intent(in) Atmos_boundary,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ xyz2latlon()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_model_mod::xyz2latlon (real, dimension(3), intent(in) xyz_coor,
                                                                                                                                                                                                                                                                                                              real, dimension(2), intent(inout) sph_coor 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ amip_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmsamipinterp_type), save ice_model_mod::amip_ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ amip_sst

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmsamipinterp_type), save ice_model_mod::amip_sst
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cmax

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::cmax
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cmin

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::cmin
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ diff

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::diff = 2.092
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_netcdf_restart

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::do_netcdf_restart = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ fname

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::fname = 'INPUT/ice_model.res.nc'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ heat_capacity_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::heat_capacity_ocean = 1.e07
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_method

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::ice_method = 'prognostic'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ie

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::ie
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ interp_method

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::interp_method = "bilinear"
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ is

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::is
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ je

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::je
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ js

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::js
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ latent

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter ice_model_mod::latent = HLV + HLF
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mixed_layer

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::mixed_layer
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mixed_layer_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::mixed_layer_ocean = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ module_is_initialized

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::module_is_initialized = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ or

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::or
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ roughness_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::roughness_ice = 1.e-4
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ specified

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::specified
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ specified_ice_thickness

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::specified_ice_thickness = 2.0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ sst_anom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::sst_anom = 0.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ sst_method

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::sst_method = 'specified'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tagname

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=128) ice_model_mod::tagname = '$Name$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ temp_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::temp_ice = 270.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ temp_ice_freeze

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::temp_ice_freeze = -1.66
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ temp_sst

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::temp_sst = 280.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ thickness_min

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_model_mod::thickness_min = 0.10
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ uniform

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=64) ice_model_mod::uniform
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_annual_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_annual_ice = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_annual_sst

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_annual_sst = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_climo_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_climo_ice = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_climo_sst

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_model_mod::use_climo_sst = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ version

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=128) ice_model_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespaceice__ocean__flux__exchange__mod.html b/docs/html/namespaceice__ocean__flux__exchange__mod.html deleted file mode 100644 index 6ee71c03..00000000 --- a/docs/html/namespaceice__ocean__flux__exchange__mod.html +++ /dev/null @@ -1,851 +0,0 @@ - - - - - - - -FMS Coupler: ice_ocean_flux_exchange_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_ocean_flux_exchange_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_init (Time, Ice, Ocean, Ocean_state, ice_ocean_boundary, ocean_ice_boundary, Dt_cpl_in, debug_stocks_in, do_area_weighted_flux_in, ex_gas_fields_ice, ex_gas_fluxes, do_ocean, slow_ice_ocean_pelist_in)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_ice_to_ocean (Ice, Ocean, Ice_Ocean_Boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_ice_to_ocean_finish (Time, Ice_Ocean_Boundary)
                                                                                                                                                                                                                                                                                                               flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_ocean_to_ice (Ocean, Ice, Ocean_Ice_Boundary)
                                                                                                                                                                                                                                                                                                               Takes the ocean model state and interpolates it onto the bottom of the ice. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_ocean_to_ice_finish (Time, Ice, Ocean_Ice_Boundary)
                                                                                                                                                                                                                                                                                                               flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_ice_to_ocean_stocks (Ice)
                                                                                                                                                                                                                                                                                                               Updates Ice and Ocean stocks. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_ocean_from_ice_stocks (ocean_state, Ocean, Ice_Ocean_boundary)
                                                                                                                                                                                                                                                                                                               Updates Ocean stocks due to input that the Ocean model gets. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine flux_ice_to_ocean_redistribute (ice, ocean, ice_data, ocn_bnd_data, type, do_area_weighted)
                                                                                                                                                                                                                                                                                                               Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine divide_by_area (data, area)
                                                                                                                                                                                                                                                                                                               Divide data by area while avoiding zero area elements. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine check_flux_conservation (Ice, Ocean, Ice_Ocean_Boundary)
                                                                                                                                                                                                                                                                                                               Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              integer, parameter regrid =1
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter redist =2
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, parameter direct =3
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical debug_stocks = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_area_weighted_flux = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer cplocnclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer fluxoceaniceclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer fluxiceoceanclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real dt_cpl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable slow_ice_ocean_pelist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ check_flux_conservation()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_ocean_flux_exchange_mod::check_flux_conservation (type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) Ice_Ocean_Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ divide_by_area()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_ocean_flux_exchange_mod::divide_by_area (real, dimension(:,:), intent(inout) data,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) area 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Divide data by area while avoiding zero area elements.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ice_to_ocean()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean (type(ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(in) Ocean,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) Ice_Ocean_Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in]oceanA derived data type to specify ocean boundary data
                                                                                                                                                                                                                                                                                                              [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ice_to_ocean_finish()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_finish (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) Ice_Ocean_Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - -
                                                                                                                                                                                                                                                                                                              [in]timeCurrent time
                                                                                                                                                                                                                                                                                                              [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ice_to_ocean_redistribute()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine ice_ocean_flux_exchange_mod::flux_ice_to_ocean_redistribute (type(ice_data_type), intent(in) ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(in) ocean,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) ice_data,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) ocn_bnd_data,
                                                                                                                                                                                                                                                                                                              integer, intent(in) type,
                                                                                                                                                                                                                                                                                                              logical, intent(in) do_area_weighted 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Note
                                                                                                                                                                                                                                                                                                              Should be invoked by all PEs
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ice_to_ocean_stocks()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks (type(ice_data_type), intent(in) Ice)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Updates Ice and Ocean stocks.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Integrate the fluxes over the surface and in time.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              [in]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ocean_from_ice_stocks()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_from_ice_stocks (type(ocean_state_type), pointer ocean_state,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(in) Ocean,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(in) Ice_Ocean_boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Updates Ocean stocks due to input that the Ocean model gets.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              This subroutine updates the stocks of Ocean by the amount of input that the Ocean gets from Ice component. Unlike subroutine flux_ice_to_ocean_stocks() that uses Icefluxes to update the stocks due to the amount of output from Ice,this subroutine uses Ice_Ocean_boundaryfluxes to calculate the amount of input to the Ocean. These fluxes are the ones that Ocean model uses internally to calculate its budgets. Hence there should be no difference between this input and what Ocean model internal diagnostics uses. This bypasses the possible mismatch in cell areas between Ice and Ocean in diagnosing the stocks of Ocean and should report a conserving Ocean component regardless of the glitches in fluxes.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The use of this subroutine in conjunction with subroutine flux_ice_to_ocean_stocks() will also allow to directly diagnose the amount "stocks lost in exchange" between Ice and Ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ocean_to_ice()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice (type(ocean_public_type), intent(in) Ocean,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) Ocean_Ice_Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Takes the ocean model state and interpolates it onto the bottom of the ice.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The following quantities are transferred from the Ocean to the ocean_ice_boundary_type:

                                                                                                                                                                                                                                                                                                              -        t_surf = surface temperature (deg K)
                                                                                                                                                                                                                                                                                                              -        frazil = frazil fluxes since the last coupling step (J/m2)
                                                                                                                                                                                                                                                                                                              -        u_surf = zonal ocean current/ice motion (m/s)
                                                                                                                                                                                                                                                                                                              -        v_surf = meridional ocean current/ice motion (m/s)
                                                                                                                                                                                                                                                                                                              -        v_surf = meridional ocean current/ice motion (m/s)
                                                                                                                                                                                                                                                                                                              -       sea_lev = sea level used to drive ice accelerations (m)
                                                                                                                                                                                                                                                                                                              - 
                                                                                                                                                                                                                                                                                                              Exceptions
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              FATAL,Ocean_Ice_Boundary%xtype must be DIRECT or REDIST.The value of variable xtype of ice_ocean_boundary_type data must be DIRECT or REDIST.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]oceanA derived data type to specify ocean boundary data
                                                                                                                                                                                                                                                                                                              [in]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ocean_to_ice_finish()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice_finish (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) Ocean_Ice_Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]timeCurrent time
                                                                                                                                                                                                                                                                                                              [in]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_ocean_flux_exchange_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public ice_ocean_flux_exchange_mod::ice_ocean_flux_exchange_init (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), intent(inout) Ocean,
                                                                                                                                                                                                                                                                                                              type(ocean_state_type), pointer Ocean_state,
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), intent(inout) ice_ocean_boundary,
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), intent(inout) ocean_ice_boundary,
                                                                                                                                                                                                                                                                                                              real, intent(in) Dt_cpl_in,
                                                                                                                                                                                                                                                                                                              logical, intent(in) debug_stocks_in,
                                                                                                                                                                                                                                                                                                              logical, intent(in) do_area_weighted_flux_in,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(in) ex_gas_fields_ice,
                                                                                                                                                                                                                                                                                                              type(fmscoupler1dbc_type), intent(in) ex_gas_fluxes,
                                                                                                                                                                                                                                                                                                              logical, intent(in) do_ocean,
                                                                                                                                                                                                                                                                                                              integer, dimension(:), intent(in) slow_ice_ocean_pelist_in 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]timeThe model's current time
                                                                                                                                                                                                                                                                                                              [in,out]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]oceanA derived data type to specify ocean boundary data
                                                                                                                                                                                                                                                                                                              [in,out]ice_ocean_boundaryA derived data type to specify properties and fluxes passed from ice to ocean
                                                                                                                                                                                                                                                                                                              [in,out]ocean_ice_boundaryA derived data type to specify properties and fluxes passed from ocean to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cplocnclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_ocean_flux_exchange_mod::cplocnclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ debug_stocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_ocean_flux_exchange_mod::debug_stocks = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ direct

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, parameter ice_ocean_flux_exchange_mod::direct =3
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_area_weighted_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical ice_ocean_flux_exchange_mod::do_area_weighted_flux = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_cpl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real ice_ocean_flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ fluxiceoceanclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_ocean_flux_exchange_mod::fluxiceoceanclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ fluxoceaniceclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_ocean_flux_exchange_mod::fluxoceaniceclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ redist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, parameter ice_ocean_flux_exchange_mod::redist =2
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ regrid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, parameter ice_ocean_flux_exchange_mod::regrid =1
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ slow_ice_ocean_pelist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer, dimension(:), allocatable ice_ocean_flux_exchange_mod::slow_ice_ocean_pelist
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespaceland__ice__flux__exchange__mod.html b/docs/html/namespaceland__ice__flux__exchange__mod.html deleted file mode 100644 index e63faa4d..00000000 --- a/docs/html/namespaceland__ice__flux__exchange__mod.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - - -FMS Coupler: land_ice_flux_exchange_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              land_ice_flux_exchange_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public land_ice_flux_exchange_init (Land, Ice, land_ice_boundary, Dt_cpl_in, do_runoff_in, cplClock_in)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_land_to_ice (Time, Land, Ice, Land_Ice_Boundary)
                                                                                                                                                                                                                                                                                                               Conservative transfer of water and snow discharge from the land model to sea ice/ocean model. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), save xmap_runoff
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer n_xgrid_runoff =0
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer x2_grid_lnd
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer x2_grid_ice
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer cplclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer fluxlandiceclock
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_runoff
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real dt_cpl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_land_to_ice()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public land_ice_flux_exchange_mod::flux_land_to_ice (type(fmstime_type), intent(in) Time,
                                                                                                                                                                                                                                                                                                              type(land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(in) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), intent(inout) Land_Ice_Boundary 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Conservative transfer of water and snow discharge from the land model to sea ice/ocean model.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The following elements are transferred from the Land to the Land_ice_boundary:

                                                                                                                                                                                                                                                                                                              -        discharge --> runoff (kg/m2)
                                                                                                                                                                                                                                                                                                              -        discharge_snow --> calving (kg/m2)
                                                                                                                                                                                                                                                                                                              - 
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              [in]timeCurrent time
                                                                                                                                                                                                                                                                                                              [in]landA derived data type to specify land boundary data
                                                                                                                                                                                                                                                                                                              [in]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_boundaryA derived data type to specify properties and fluxes passed from land to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ land_ice_flux_exchange_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public land_ice_flux_exchange_mod::land_ice_flux_exchange_init (type(land_data_type), intent(in) Land,
                                                                                                                                                                                                                                                                                                              type(ice_data_type), intent(inout) Ice,
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), intent(inout) land_ice_boundary,
                                                                                                                                                                                                                                                                                                              real, intent(in) Dt_cpl_in,
                                                                                                                                                                                                                                                                                                              logical, intent(in) do_runoff_in,
                                                                                                                                                                                                                                                                                                              integer, intent(in) cplClock_in 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]landA derived data type to specify land boundary data
                                                                                                                                                                                                                                                                                                              [in,out]iceA derived data type to specify ice boundary data
                                                                                                                                                                                                                                                                                                              [in,out]land_ice_boundaryA derived data type to specify properties and fluxes passed from land to ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ cplclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::cplclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_runoff

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical land_ice_flux_exchange_mod::do_runoff
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dt_cpl

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real land_ice_flux_exchange_mod::dt_cpl
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ fluxlandiceclock

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::fluxlandiceclock
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ n_xgrid_runoff

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::n_xgrid_runoff =0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ x2_grid_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::x2_grid_ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ x2_grid_lnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer land_ice_flux_exchange_mod::x2_grid_lnd
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ xmap_runoff

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmsxgridxmap_type), save land_ice_flux_exchange_mod::xmap_runoff
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers.html b/docs/html/namespacemembers.html deleted file mode 100644 index 3715bbbd..00000000 --- a/docs/html/namespacemembers.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - a -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_b.html b/docs/html/namespacemembers_b.html deleted file mode 100644 index 5398d6f9..00000000 --- a/docs/html/namespacemembers_b.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - b -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_c.html b/docs/html/namespacemembers_c.html deleted file mode 100644 index 3453dcaf..00000000 --- a/docs/html/namespacemembers_c.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - c -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_d.html b/docs/html/namespacemembers_d.html deleted file mode 100644 index a2ce1935..00000000 --- a/docs/html/namespacemembers_d.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_e.html b/docs/html/namespacemembers_e.html deleted file mode 100644 index 70ce12dd..00000000 --- a/docs/html/namespacemembers_e.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - e -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_f.html b/docs/html/namespacemembers_f.html deleted file mode 100644 index 2733a0d1..00000000 --- a/docs/html/namespacemembers_f.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - f -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_func.html b/docs/html/namespacemembers_func.html deleted file mode 100644 index 726267fd..00000000 --- a/docs/html/namespacemembers_func.html +++ /dev/null @@ -1,439 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - a -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - c -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - f -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - i -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - l -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - n -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - p -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - r -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - s -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - v -

                                                                                                                                                                                                                                                                                                              - - -

                                                                                                                                                                                                                                                                                                              - x -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_g.html b/docs/html/namespacemembers_g.html deleted file mode 100644 index 45a1e2f9..00000000 --- a/docs/html/namespacemembers_g.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_h.html b/docs/html/namespacemembers_h.html deleted file mode 100644 index df01257a..00000000 --- a/docs/html/namespacemembers_h.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - h -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_i.html b/docs/html/namespacemembers_i.html deleted file mode 100644 index eca737de..00000000 --- a/docs/html/namespacemembers_i.html +++ /dev/null @@ -1,476 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - i -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_j.html b/docs/html/namespacemembers_j.html deleted file mode 100644 index f919bc5e..00000000 --- a/docs/html/namespacemembers_j.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - j -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_k.html b/docs/html/namespacemembers_k.html deleted file mode 100644 index 17f1b10b..00000000 --- a/docs/html/namespacemembers_k.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - k -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_l.html b/docs/html/namespacemembers_l.html deleted file mode 100644 index cdbae302..00000000 --- a/docs/html/namespacemembers_l.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - l -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_m.html b/docs/html/namespacemembers_m.html deleted file mode 100644 index e0be95f0..00000000 --- a/docs/html/namespacemembers_m.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - m -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_n.html b/docs/html/namespacemembers_n.html deleted file mode 100644 index 6cf45df3..00000000 --- a/docs/html/namespacemembers_n.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - n -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_o.html b/docs/html/namespacemembers_o.html deleted file mode 100644 index 8dc37a66..00000000 --- a/docs/html/namespacemembers_o.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - o -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_p.html b/docs/html/namespacemembers_p.html deleted file mode 100644 index 408d2b1a..00000000 --- a/docs/html/namespacemembers_p.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - p -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_q.html b/docs/html/namespacemembers_q.html deleted file mode 100644 index 537a7c17..00000000 --- a/docs/html/namespacemembers_q.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - q -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_r.html b/docs/html/namespacemembers_r.html deleted file mode 100644 index 9f4d87b8..00000000 --- a/docs/html/namespacemembers_r.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - r -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_s.html b/docs/html/namespacemembers_s.html deleted file mode 100644 index 7a1aa162..00000000 --- a/docs/html/namespacemembers_s.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - s -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_t.html b/docs/html/namespacemembers_t.html deleted file mode 100644 index 5812abb8..00000000 --- a/docs/html/namespacemembers_t.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - t -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_u.html b/docs/html/namespacemembers_u.html deleted file mode 100644 index abf29f35..00000000 --- a/docs/html/namespacemembers_u.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_v.html b/docs/html/namespacemembers_v.html deleted file mode 100644 index 173a2366..00000000 --- a/docs/html/namespacemembers_v.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - v -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars.html b/docs/html/namespacemembers_vars.html deleted file mode 100644 index 8ebfdbec..00000000 --- a/docs/html/namespacemembers_vars.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - a -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_b.html b/docs/html/namespacemembers_vars_b.html deleted file mode 100644 index 7b49b19d..00000000 --- a/docs/html/namespacemembers_vars_b.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - b -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_c.html b/docs/html/namespacemembers_vars_c.html deleted file mode 100644 index 03938180..00000000 --- a/docs/html/namespacemembers_vars_c.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - c -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_d.html b/docs/html/namespacemembers_vars_d.html deleted file mode 100644 index 71d67971..00000000 --- a/docs/html/namespacemembers_vars_d.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - d -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_e.html b/docs/html/namespacemembers_vars_e.html deleted file mode 100644 index ebd1e87b..00000000 --- a/docs/html/namespacemembers_vars_e.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - e -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_f.html b/docs/html/namespacemembers_vars_f.html deleted file mode 100644 index ed69b673..00000000 --- a/docs/html/namespacemembers_vars_f.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - f -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_g.html b/docs/html/namespacemembers_vars_g.html deleted file mode 100644 index 97590485..00000000 --- a/docs/html/namespacemembers_vars_g.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - g -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_h.html b/docs/html/namespacemembers_vars_h.html deleted file mode 100644 index e22034f7..00000000 --- a/docs/html/namespacemembers_vars_h.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - h -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_i.html b/docs/html/namespacemembers_vars_i.html deleted file mode 100644 index 2941076c..00000000 --- a/docs/html/namespacemembers_vars_i.html +++ /dev/null @@ -1,452 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - i -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_j.html b/docs/html/namespacemembers_vars_j.html deleted file mode 100644 index 9eec9cd3..00000000 --- a/docs/html/namespacemembers_vars_j.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - j -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_k.html b/docs/html/namespacemembers_vars_k.html deleted file mode 100644 index e0640e2a..00000000 --- a/docs/html/namespacemembers_vars_k.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - k -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_l.html b/docs/html/namespacemembers_vars_l.html deleted file mode 100644 index 8161af7d..00000000 --- a/docs/html/namespacemembers_vars_l.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - l -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_m.html b/docs/html/namespacemembers_vars_m.html deleted file mode 100644 index 901dc72e..00000000 --- a/docs/html/namespacemembers_vars_m.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - m -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_n.html b/docs/html/namespacemembers_vars_n.html deleted file mode 100644 index 376daf26..00000000 --- a/docs/html/namespacemembers_vars_n.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - n -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_o.html b/docs/html/namespacemembers_vars_o.html deleted file mode 100644 index 40de8b73..00000000 --- a/docs/html/namespacemembers_vars_o.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - o -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_p.html b/docs/html/namespacemembers_vars_p.html deleted file mode 100644 index d8d6ca6f..00000000 --- a/docs/html/namespacemembers_vars_p.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - p -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_q.html b/docs/html/namespacemembers_vars_q.html deleted file mode 100644 index 53632707..00000000 --- a/docs/html/namespacemembers_vars_q.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - q -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_r.html b/docs/html/namespacemembers_vars_r.html deleted file mode 100644 index e9374c92..00000000 --- a/docs/html/namespacemembers_vars_r.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - r -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_s.html b/docs/html/namespacemembers_vars_s.html deleted file mode 100644 index 8ad6aee4..00000000 --- a/docs/html/namespacemembers_vars_s.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - s -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_t.html b/docs/html/namespacemembers_vars_t.html deleted file mode 100644 index bfc2f04e..00000000 --- a/docs/html/namespacemembers_vars_t.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - t -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_u.html b/docs/html/namespacemembers_vars_u.html deleted file mode 100644 index 9979c5a5..00000000 --- a/docs/html/namespacemembers_vars_u.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - u -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_v.html b/docs/html/namespacemembers_vars_v.html deleted file mode 100644 index 642e0dc9..00000000 --- a/docs/html/namespacemembers_vars_v.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - - - - - diff --git a/docs/html/namespacemembers_vars_w.html b/docs/html/namespacemembers_vars_w.html deleted file mode 100644 index 8fed660b..00000000 --- a/docs/html/namespacemembers_vars_w.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - w -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_x.html b/docs/html/namespacemembers_vars_x.html deleted file mode 100644 index 71b5fc0d..00000000 --- a/docs/html/namespacemembers_vars_x.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -  - -

                                                                                                                                                                                                                                                                                                              - x -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_vars_z.html b/docs/html/namespacemembers_vars_z.html deleted file mode 100644 index 379993ab..00000000 --- a/docs/html/namespacemembers_vars_z.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - - - - - diff --git a/docs/html/namespacemembers_w.html b/docs/html/namespacemembers_w.html deleted file mode 100644 index de28d331..00000000 --- a/docs/html/namespacemembers_w.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - w -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_x.html b/docs/html/namespacemembers_x.html deleted file mode 100644 index 291fad7e..00000000 --- a/docs/html/namespacemembers_x.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - x -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacemembers_z.html b/docs/html/namespacemembers_z.html deleted file mode 100644 index a66b2e38..00000000 --- a/docs/html/namespacemembers_z.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -FMS Coupler: Module Members - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all module members with links to the module documentation for each member:
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              - z -

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespaces.html b/docs/html/namespaces.html deleted file mode 100644 index 14c56345..00000000 --- a/docs/html/namespaces.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -FMS Coupler: Modules List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Modules List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Here is a list of all modules with brief descriptions:
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/namespacesurface__flux__mod.html b/docs/html/namespacesurface__flux__mod.html deleted file mode 100644 index f2caa98d..00000000 --- a/docs/html/namespacesurface__flux__mod.html +++ /dev/null @@ -1,2247 +0,0 @@ - - - - - - - -FMS Coupler: surface_flux_mod Module Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              surface_flux_mod Module Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Module for the calculation of fluxes on the exchange grids. -More...

                                                                                                                                                                                                                                                                                                              - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              interface  surface_flux
                                                                                                                                                                                                                                                                                                               For the calculation of fluxes on the exchange grids. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine surface_flux_1d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_0d (t_atm_0, q_atm_0, u_atm_0, v_atm_0, p_atm_0, z_atm_0, p_surf_0, t_surf_0, t_ca_0, q_surf_0, u_surf_0, v_surf_0, rough_mom_0, rough_heat_0, rough_moist_0, rough_scale_0, gust_0, flux_t_0, flux_q_0, flux_r_0, flux_u_0, flux_v_0, cd_m_0, cd_t_0, cd_q_0, w_atm_0, u_star_0, b_star_0, q_star_0, thv_atm_0, thv_surf_0, dhdt_surf_0, dedt_surf_0, dedq_surf_0, drdt_surf_0, dhdt_atm_0, dedq_atm_0, dtaudu_atm_0, dtaudv_atm_0, dt, land_0, seawater_0, avail_0)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public surface_flux_init
                                                                                                                                                                                                                                                                                                               Initialization of the surface flux module–reads the nml. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ncar_ocean_fluxes (u_del, t, ts, q, qs, z, avail, cd, ch, ce, ustar, bstar)
                                                                                                                                                                                                                                                                                                               Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine ncar_ocean_fluxes_multilevel (u_del, t, ts, q, qs, zu, zt, zq, avail, cd, ch, ce, ustar, bstar)
                                                                                                                                                                                                                                                                                                               Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine iter_monin_obukhov_ocean (z_atm, u_atm, v_atm, w_atm, thv_atm, q_atm, u_surf, v_surf, thv_surf, q_surf0, rough_mom, rough_heat, rough_moist, cd_m, cd_t, cd_q, u_star, b_star, avail, seawater)
                                                                                                                                                                                                                                                                                                               Update air-sea flux variables to be consistent with the concurrent atmospheric states. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len= *), parameter version = '$Id$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len= *), parameter tagname = '$Name$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical module_is_initialized = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter d378 = 1.-d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter hlars = hlv/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter gcp = grav/cp_air
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter kappa = rdgas/cp_air
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real d608 = d378/d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=32) rough_scheme_ocean
                                                                                                                                                                                                                                                                                                               ocean roughness length scheme to be read from ocean_rough_nml More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical no_neg_q = .false.
                                                                                                                                                                                                                                                                                                               If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_virtual_temp = .true.
                                                                                                                                                                                                                                                                                                               If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical alt_gustiness = .false.
                                                                                                                                                                                                                                                                                                               An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical old_dtaudv = .false.
                                                                                                                                                                                                                                                                                                               The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_mixing_ratio = .false.
                                                                                                                                                                                                                                                                                                               An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real gust_const = 1.0
                                                                                                                                                                                                                                                                                                               Constant for alternative gustiness calculation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real gust_min = 0.0
                                                                                                                                                                                                                                                                                                               Minimum gustiness used when alt_gustiness is .FALSE. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ncar_ocean_flux = .false.
                                                                                                                                                                                                                                                                                                               Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ncar_ocean_flux_orig = .false.
                                                                                                                                                                                                                                                                                                               Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical ncar_ocean_flux_multilevel = .false.
                                                                                                                                                                                                                                                                                                               Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_iter_monin_obukhov = .false.
                                                                                                                                                                                                                                                                                                               If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical use_u10_neutral = .false.
                                                                                                                                                                                                                                                                                                               If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real bulk_zu = 10.
                                                                                                                                                                                                                                                                                                               Reference height for wind speed (meters) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real bulk_zt = 10.
                                                                                                                                                                                                                                                                                                               Reference height for atm temperature (meters) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real bulk_zq = 10.
                                                                                                                                                                                                                                                                                                               Reference height for atm humidity (meters) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical raoult_sat_vap = .false.
                                                                                                                                                                                                                                                                                                               Reduce saturation vapor pressure to account for seawater. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical do_simple = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer niter_monin_obukhov = 5
                                                                                                                                                                                                                                                                                                               iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Module for the calculation of fluxes on the exchange grids.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ iter_monin_obukhov_ocean()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::iter_monin_obukhov_ocean (real, dimension(:), intent(in) z_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) u_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) v_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) w_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) thv_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) q_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) u_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) v_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) thv_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) q_surf0,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_mom,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_heat,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_moist,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) cd_m,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) cd_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) cd_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) u_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) b_star,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) avail,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) seawater 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Update air-sea flux variables to be consistent with the concurrent atmospheric states.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Note
                                                                                                                                                                                                                                                                                                              Right now, it is only effective when ocean_rough = 'hwrf17', but this can be expanded if necessarily to incorporate other roughness schemies contact: Kun.G.nosp@m.ao@n.nosp@m.oaa.g.nosp@m.ov; Baoqi.nosp@m.ang..nosp@m.Xiang.nosp@m.@noa.nosp@m.a.gov
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              [in]q_surf0Surface air humidity
                                                                                                                                                                                                                                                                                                              [in,out]b_starTurbulent buoyant scale
                                                                                                                                                                                                                                                                                                              [in]seawaterIndicates where liquid ocean water exists (.TRUE. if exchange cell is on liquid ocean water)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              z_atmHeight at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              u_atmZonal wind velocity at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              v_atmMeridional wind velocity at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              w_atmAbsolute wind at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              thv_atmSurface air theta_v
                                                                                                                                                                                                                                                                                                              q_atmMixing ratio at lowest atmospheric level (kg/kg)
                                                                                                                                                                                                                                                                                                              u_surfZonal wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              v_surfMeridional wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              thv_surfSurface theta_v
                                                                                                                                                                                                                                                                                                              rough_momMomentum roughness length
                                                                                                                                                                                                                                                                                                              rough_heatHeat roughness length
                                                                                                                                                                                                                                                                                                              rough_moistMoisture roughness length
                                                                                                                                                                                                                                                                                                              cd_mMomentum exchange coefficient
                                                                                                                                                                                                                                                                                                              cd_tHeat exchange coefficient
                                                                                                                                                                                                                                                                                                              cd_qMoisture exchange coefficient
                                                                                                                                                                                                                                                                                                              u_starTurbulent velocity scale
                                                                                                                                                                                                                                                                                                              avail.TRUE. where the exchange cell is active
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ncar_ocean_fluxes()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::ncar_ocean_fluxes (real, dimension(:), intent(in) u_del,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) t,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) ts,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) q,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) qs,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) z,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) avail,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) cd,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) ch,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) ce,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) ustar,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) bstar 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Over-ocean fluxes following Large and Yeager (used in NCAR models) !

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Original code: GFDL..nosp@m.Clim.nosp@m.ate.M.nosp@m.odel.nosp@m..Info.nosp@m.@noa.nosp@m.a.gov <br > Update Jul2007: GFDL..nosp@m.Clim.nosp@m.ate.M.nosp@m.odel.nosp@m..Info.nosp@m.@noa.nosp@m.a.gov (ch and ce exchange coeff bugfix)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ncar_ocean_fluxes_multilevel()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::ncar_ocean_fluxes_multilevel (real, dimension(:), intent(in) u_del,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) t,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) ts,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) q,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) qs,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) zu,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) zt,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) zq,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) avail,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) cd,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) ch,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) ce,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) ustar,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) bstar 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Over-ocean fluxes following Large and Yeager (used in NCAR models) !

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Original code: Multi-level capable LY2004, R. Dussin 2020 <br >

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ surface_flux_0d()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux_0d (real, intent(in) t_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) q_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) u_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) v_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) p_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) z_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) p_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) t_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) t_ca_0,
                                                                                                                                                                                                                                                                                                              real, intent(inout) q_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) u_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) v_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) rough_mom_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) rough_heat_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) rough_moist_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) rough_scale_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) gust_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) flux_t_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) flux_q_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) flux_r_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) flux_u_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) flux_v_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) cd_m_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) cd_t_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) cd_q_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) w_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) u_star_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) b_star_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) q_star_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) thv_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) thv_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) dhdt_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) dedt_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) dedq_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) drdt_surf_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) dhdt_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) dedq_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) dtaudu_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(out) dtaudv_atm_0,
                                                                                                                                                                                                                                                                                                              real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              logical, intent(in) land_0,
                                                                                                                                                                                                                                                                                                              logical, intent(in) seawater_0,
                                                                                                                                                                                                                                                                                                              logical, intent(in) avail_0 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]avail_0.TRUE. where the exchange cell is active
                                                                                                                                                                                                                                                                                                              [in]gust_0Gustiness factor
                                                                                                                                                                                                                                                                                                              [out]cd_q_0Moisture exchange coefficient
                                                                                                                                                                                                                                                                                                              [in,out]q_surf_0Mixing ratio at the Earth's surface (kg/kg)
                                                                                                                                                                                                                                                                                                              [in]dtTime step (it is not used presently)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              t_atm_0Air temp lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              q_atm_0Mixing ratio at lowest atmospheric level (kg/kg).
                                                                                                                                                                                                                                                                                                              u_atm_0Zonal wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              v_atm_0Meridional wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_atm_0Pressure lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              z_atm_0Height lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_surf_0Pressure at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_surf_0Temp at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_ca_0Air temp at the canopy
                                                                                                                                                                                                                                                                                                              u_surf_0Zonal wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              v_surf_0Meridional wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              rough_mom_0Momentum roughness length
                                                                                                                                                                                                                                                                                                              rough_heat_0Heat roughness length
                                                                                                                                                                                                                                                                                                              rough_moist_0Moisture roughness length
                                                                                                                                                                                                                                                                                                              rough_scale_0Scale factor used to topographic roughness calculation
                                                                                                                                                                                                                                                                                                              flux_t_0Sensible heat flux
                                                                                                                                                                                                                                                                                                              flux_q_0Evaporative water flux
                                                                                                                                                                                                                                                                                                              flux_r_0Radiative energy flux
                                                                                                                                                                                                                                                                                                              flux_u_0Zonal momentum flux
                                                                                                                                                                                                                                                                                                              flux_v_0Meridional momentum flux
                                                                                                                                                                                                                                                                                                              cd_m_0Momentum exchange coefficient
                                                                                                                                                                                                                                                                                                              w_atm_0Absolute wind at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              u_star_0Turbulent velocity scale
                                                                                                                                                                                                                                                                                                              b_star_0Turbulent buoyant scale
                                                                                                                                                                                                                                                                                                              q_star_0Turbulent moisture scale
                                                                                                                                                                                                                                                                                                              dhdt_surf_0Sensible heat flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedt_surf_0Moisture flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedq_surf_0Moisture flux humidity sensitivity
                                                                                                                                                                                                                                                                                                              drdt_surf_0Radiative energy flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dhdt_atm_0Derivative of sensible heat flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dedq_atm_0Derivative of water vapor flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dtaudu_atm_0Derivative of zonal wind stress with respect to the lowest level zonal wind
                                                                                                                                                                                                                                                                                                              dtaudv_atm_0Derivative of meridional wind stress with respect to the lowest level
                                                                                                                                                                                                                                                                                                              land_0Indicates where land exists (.TRUE. if exchange cell is on land
                                                                                                                                                                                                                                                                                                              seawater_0Indicates where liquid ocean water exists
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ surface_flux_1d()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux_1d (real, dimension(:), intent(in) t_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) q_atm_in,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) u_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) v_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) p_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) z_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) p_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) t_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) t_ca,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) q_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) u_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) v_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_mom,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_heat,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(inout) rough_moist,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) rough_scale,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(in) gust,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_r,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_u,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) flux_v,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) cd_m,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) cd_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) cd_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) w_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) u_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) b_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) q_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) thv_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) thv_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dhdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dedt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dedq_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) drdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dhdt_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dedq_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dtaudu_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:), intent(out) dtaudv_atm,
                                                                                                                                                                                                                                                                                                              real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) land,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) seawater,
                                                                                                                                                                                                                                                                                                              logical, dimension(:), intent(in) avail 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]avail.TRUE. where the exchange cell is active
                                                                                                                                                                                                                                                                                                              [in]gustGustiness factor
                                                                                                                                                                                                                                                                                                              [out]cd_qMoisture exchange coefficient
                                                                                                                                                                                                                                                                                                              [in,out]rough_moistMoisture roughness length
                                                                                                                                                                                                                                                                                                              [in]dtTime step (it is not used presently)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              t_atmAir temp lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
                                                                                                                                                                                                                                                                                                              u_atmZonal wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              v_atmMeridional wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_atmPressure lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              z_atmHeight lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_surfPressure at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_surfTemp at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_caAir temp at the canopy
                                                                                                                                                                                                                                                                                                              q_surfMixing ratio at the Earth's surface (kg/kg)
                                                                                                                                                                                                                                                                                                              u_surfZonal wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              v_surfMeridional wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              rough_momMomentum roughness length
                                                                                                                                                                                                                                                                                                              rough_heatHeat roughness length
                                                                                                                                                                                                                                                                                                              rough_scaleScale factor used to topographic roughness calculation
                                                                                                                                                                                                                                                                                                              flux_tSensible heat flux
                                                                                                                                                                                                                                                                                                              flux_qEvaporative water flux
                                                                                                                                                                                                                                                                                                              flux_rRadiative energy flux
                                                                                                                                                                                                                                                                                                              flux_uZonal momentum flux
                                                                                                                                                                                                                                                                                                              flux_vMeridional momentum flux
                                                                                                                                                                                                                                                                                                              cd_mMomentum exchange coefficient
                                                                                                                                                                                                                                                                                                              w_atmAbsolute wind at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              u_starTurbulent velocity scale
                                                                                                                                                                                                                                                                                                              b_starTurbulent buoyant scale
                                                                                                                                                                                                                                                                                                              q_starTurbulent moisture scale
                                                                                                                                                                                                                                                                                                              dhdt_surfSensible heat flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedt_surfMoisture flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedq_surfMoisture flux humidity sensitivity
                                                                                                                                                                                                                                                                                                              drdt_surfRadiative energy flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dhdt_atmDerivative of sensible heat flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
                                                                                                                                                                                                                                                                                                              dtaudv_atmDerivative of meridional wind stress with respect to the lowest
                                                                                                                                                                                                                                                                                                              landIndicates where land exists (.TRUE. if exchange cell is on land
                                                                                                                                                                                                                                                                                                              seawaterIndicates where liquid ocean water exists
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ surface_flux_2d()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux_2d (real, dimension(:,:), intent(in) t_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) q_atm_in,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) u_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) v_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) p_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) z_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) p_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) t_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) t_ca,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) q_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) u_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) v_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_mom,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_heat,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(inout) rough_moist,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) rough_scale,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(in) gust,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_r,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_u,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) flux_v,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_m,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_t,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) cd_q,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) w_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) u_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) b_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) q_star,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) thv_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) thv_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dhdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedq_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) drdt_surf,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dhdt_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dedq_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dtaudu_atm,
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), intent(out) dtaudv_atm,
                                                                                                                                                                                                                                                                                                              real, intent(in) dt,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) land,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) seawater,
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), intent(in) avail 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              [in]avail.TRUE. where the exchange cell is active
                                                                                                                                                                                                                                                                                                              [in]gustGustiness factor
                                                                                                                                                                                                                                                                                                              [out]cd_qMoisture exchange coefficient
                                                                                                                                                                                                                                                                                                              [in,out]rough_moistMoisture roughness length
                                                                                                                                                                                                                                                                                                              [in]dtTime step (it is not used presently)
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Parameters
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              t_atmAir temp lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              q_atm_inMixing ratio at lowest atmospheric level (kg/kg).
                                                                                                                                                                                                                                                                                                              u_atmZonal wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              v_atmMeridional wind velocity at lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_atmPressure lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              z_atmHeight lowest atmospheric level.
                                                                                                                                                                                                                                                                                                              p_surfPressure at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_surfTemp at the Earth's surface
                                                                                                                                                                                                                                                                                                              t_caAir temp at the canopy
                                                                                                                                                                                                                                                                                                              q_surfMixing ratio at the Earth's surface (kg/kg)
                                                                                                                                                                                                                                                                                                              u_surfZonal wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              v_surfMeridional wind velocity at the Earth's surface
                                                                                                                                                                                                                                                                                                              rough_momMomentum roughness length
                                                                                                                                                                                                                                                                                                              rough_heatHeat roughness length
                                                                                                                                                                                                                                                                                                              rough_scaleScale factor used to topographic roughness calculation
                                                                                                                                                                                                                                                                                                              flux_tSensible heat flux
                                                                                                                                                                                                                                                                                                              flux_qEvaporative water flux
                                                                                                                                                                                                                                                                                                              flux_rRadiative energy flux
                                                                                                                                                                                                                                                                                                              flux_uZonal momentum flux
                                                                                                                                                                                                                                                                                                              flux_vMeridional momentum flux
                                                                                                                                                                                                                                                                                                              cd_mMomentum exchange coefficient
                                                                                                                                                                                                                                                                                                              w_atmAbsolute wind at the lowest atmospheric level
                                                                                                                                                                                                                                                                                                              u_starTurbulent velocity scale
                                                                                                                                                                                                                                                                                                              b_starTurbulent buoyant scale
                                                                                                                                                                                                                                                                                                              q_starTurbulent moisture scale
                                                                                                                                                                                                                                                                                                              dhdt_surfSensible heat flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedt_surfMoisture flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dedq_surfMoisture flux humidity sensitivity
                                                                                                                                                                                                                                                                                                              drdt_surfRadiative energy flux temperature sensitivity
                                                                                                                                                                                                                                                                                                              dhdt_atmDerivative of sensible heat flux over temp at the lowest
                                                                                                                                                                                                                                                                                                              dedq_atmDerivative of water vapor flux over temp at the lowest atmos level
                                                                                                                                                                                                                                                                                                              dtaudu_atmDerivative of zonal wind stress with respect to the lowest level
                                                                                                                                                                                                                                                                                                              dtaudv_atmDerivative of meridional wind stress with respect to the lowest
                                                                                                                                                                                                                                                                                                              landIndicates where land exists (.TRUE. if exchange cell is on land
                                                                                                                                                                                                                                                                                                              seawaterIndicates where liquid ocean water exists
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ surface_flux_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine, public surface_flux_mod::surface_flux_init ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Initialization of the surface flux module–reads the nml.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Variable Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ alt_gustiness

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::alt_gustiness = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ bulk_zq

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::bulk_zq = 10.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reference height for atm humidity (meters)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ bulk_zt

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::bulk_zt = 10.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reference height for atm temperature (meters)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ bulk_zu

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::bulk_zu = 10.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reference height for wind speed (meters)

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d378

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::d378 = 1.-d622
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d608

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::d608 = d378/d622
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ d622

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_iter_monin_obukhov

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::do_iter_monin_obukhov = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ do_simple

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::do_simple = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ gcp

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::gcp = grav/cp_air
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ gust_const

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::gust_const = 1.0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Constant for alternative gustiness calculation.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ gust_min

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::gust_min = 0.0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Minimum gustiness used when alt_gustiness is .FALSE.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ hlars

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::hlars = hlv/rvgas
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ kappa

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::kappa = rdgas/cp_air
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ module_is_initialized

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::module_is_initialized = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ncar_ocean_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::ncar_ocean_flux = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ncar_ocean_flux_multilevel

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::ncar_ocean_flux_multilevel = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ncar_ocean_flux_orig

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::ncar_ocean_flux_orig = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ niter_monin_obukhov

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer surface_flux_mod::niter_monin_obukhov = 5
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ no_neg_q

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::no_neg_q = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ old_dtaudv

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::old_dtaudv = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ raoult_sat_vap

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::raoult_sat_vap = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Reduce saturation vapor pressure to account for seawater.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ rough_scheme_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=32) surface_flux_mod::rough_scheme_ocean
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ocean roughness length scheme to be read from ocean_rough_nml

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ tagname

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=*), parameter surface_flux_mod::tagname = '$Name$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_mixing_ratio

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::use_mixing_ratio = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes).

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_u10_neutral

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::use_u10_neutral = .false.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ use_virtual_temp

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::use_virtual_temp = .true.
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ version

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              character(len=*), parameter surface_flux_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/nav_f.png b/docs/html/nav_f.png deleted file mode 100644 index 72a58a529ed3a9ed6aa0c51a79cf207e026deee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U diff --git a/docs/html/nav_g.png b/docs/html/nav_g.png deleted file mode 100644 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM - - - - - - -FMS Coupler: Namelist Configuration - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Namelist Configuration
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Information on namelist options to configure runs
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                               Coupler ConfigurationCoupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables
                                                                                                                                                                                                                                                                                                               Flux Exchange ConfigurationFlux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables
                                                                                                                                                                                                                                                                                                               Surface Flux ConfigurationSurface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/search/all_0.html b/docs/html/search/all_0.html deleted file mode 100644 index 5125b940..00000000 --- a/docs/html/search/all_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js deleted file mode 100644 index 17bede83..00000000 --- a/docs/html/search/all_0.js +++ /dev/null @@ -1,34 +0,0 @@ -var searchData= -[ - ['add_5fdomain_5fdimension_5fdata',['add_domain_dimension_data',['../namespacefull__coupler__mod.html#ad3685f6bd34e431206122bde9f327dc2',1,'full_coupler_mod::add_domain_dimension_data()'],['../namespaceice__model__mod.html#afd16954e39a95d394843584000c022e4',1,'ice_model_mod::add_domain_dimension_data()']]], - ['albedo',['albedo',['../structice__model__mod_1_1ice__data__type.html#a2733a49aafbb2c427d93412ba024c3b6',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fnir_5fdif',['albedo_nir_dif',['../structice__model__mod_1_1ice__data__type.html#a24c89574df66301e6e3b686dcae7229d',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fnir_5fdir',['albedo_nir_dir',['../structice__model__mod_1_1ice__data__type.html#a99a3c37bd29100dbbea9e72ce79f08ec',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fvis_5fdif',['albedo_vis_dif',['../structice__model__mod_1_1ice__data__type.html#ad5e50ac18a25e32ce222fab20797419a',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fvis_5fdir',['albedo_vis_dir',['../structice__model__mod_1_1ice__data__type.html#a7065db4c98d81f247f30545e8202c6ba',1,'ice_model_mod::ice_data_type']]], - ['all_5fland',['all_land',['../namespaceflux__exchange__mod.html#a9f21ac3fea6a38f7959395b34a8ceb8b',1,'flux_exchange_mod']]], - ['all_5focean',['all_ocean',['../namespaceflux__exchange__mod.html#a50c09e88b3fb6646814e283404760a7d',1,'flux_exchange_mod']]], - ['alt_5fgustiness',['alt_gustiness',['../namespacesurface__flux__mod.html#a338fa27e4d5045147ebf3ee908c60e98',1,'surface_flux_mod']]], - ['amip_5fice',['amip_ice',['../namespaceice__model__mod.html#a5663c456270837d94270cb3e853b8d11',1,'ice_model_mod']]], - ['amip_5fsst',['amip_sst',['../namespaceice__model__mod.html#ad482a1238aba8004d9c21616d04163f3',1,'ice_model_mod']]], - ['atm',['atm',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a6958e428760cf729bec6fc2748104d03',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::atm()'],['../structfull__coupler__mod_1_1coupler__clock__type.html#a6c6826c6bd3bb9b6c77f265576eb4921',1,'full_coupler_mod::coupler_clock_type::atm()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a2e38920a1bf3f745decc0b056b489730',1,'full_coupler_mod::coupler_components_type::atm()']]], - ['atm_5fland_5fice_5fflux_5fexchange_2ef90',['atm_land_ice_flux_exchange.F90',['../atm__land__ice__flux__exchange_8_f90.html',1,'']]], - ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ab8675556ecdbebfb8b3093fadbe11cde',1,'atm_land_ice_flux_exchange_mod']]], - ['atm_5fland_5fice_5fflux_5fexchange_5fmod',['atm_land_ice_flux_exchange_mod',['../namespaceatm__land__ice__flux__exchange__mod.html',1,'']]], - ['atm_5fprecip_5fnew',['atm_precip_new',['../namespaceflux__exchange__mod.html#a4133789f8990f2178df334764b71a74d',1,'flux_exchange_mod']]], - ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod']]], - ['atmos_5fice_5fboundary',['atmos_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aaeff62295938d8d1a2b25f225afacf3e',1,'full_coupler_mod::coupler_components_type']]], - ['atmos_5fice_5fboundary_5ftype',['atmos_ice_boundary_type',['../structice__model__mod_1_1atmos__ice__boundary__type.html',1,'ice_model_mod']]], - ['atmos_5fland_5fboundary',['atmos_land_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#abf0d670a022708f880f690bf99514b5f',1,'full_coupler_mod::coupler_components_type']]], - ['atmos_5floop',['atmos_loop',['../structfull__coupler__mod_1_1coupler__clock__type.html#a800fc6631253e7d5ad649145f999264c',1,'full_coupler_mod::coupler_clock_type']]], - ['atmos_5fmodel_5finit',['atmos_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a86349958610dea7035e2e00ec6a297fb',1,'full_coupler_mod::coupler_clock_type']]], - ['atmos_5fnpes',['atmos_npes',['../namespacefull__coupler__mod.html#a85adcfb2f6ef212cc2e6415f23f0a946',1,'full_coupler_mod']]], - ['atmos_5fnthreads',['atmos_nthreads',['../namespacefull__coupler__mod.html#a83263556a358d678e6777ca4765eb767',1,'full_coupler_mod']]], - ['atmos_5focean_5fdep_5ffluxes_5fcalc',['atmos_ocean_dep_fluxes_calc',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a5880644207752e6a4873458a90f04cea',1,'atmos_ocean_dep_fluxes_calc_mod']]], - ['atmos_5focean_5fdep_5ffluxes_5fcalc_2ef90',['atmos_ocean_dep_fluxes_calc.F90',['../atmos__ocean__dep__fluxes__calc_8_f90.html',1,'']]], - ['atmos_5focean_5fdep_5ffluxes_5fcalc_5fmod',['atmos_ocean_dep_fluxes_calc_mod',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html',1,'']]], - ['atmos_5focean_5ffluxes_5fcalc',['atmos_ocean_fluxes_calc',['../namespaceatmos__ocean__fluxes__calc__mod.html#acc10568af1ebdd92581183632c4e1f74',1,'atmos_ocean_fluxes_calc_mod']]], - ['atmos_5focean_5ffluxes_5fcalc_2ef90',['atmos_ocean_fluxes_calc.F90',['../atmos__ocean__fluxes__calc_8_f90.html',1,'']]], - ['atmos_5focean_5ffluxes_5fcalc_5fmod',['atmos_ocean_fluxes_calc_mod',['../namespaceatmos__ocean__fluxes__calc__mod.html',1,'']]], - ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]] -]; diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html deleted file mode 100644 index b8ff8711..00000000 --- a/docs/html/search/all_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js deleted file mode 100644 index 98eb8006..00000000 --- a/docs/html/search/all_1.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['b_5fstar',['b_star',['../namespaceflux__exchange__mod.html#aa9caedcc1bc69b6296dc5fef0c77a891',1,'flux_exchange_mod']]], - ['block_5fend',['block_end',['../namespaceatm__land__ice__flux__exchange__mod.html#af5376c2ef9475b25b0fe09811ec50950',1,'atm_land_ice_flux_exchange_mod']]], - ['block_5fstart',['block_start',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a4d0039fbafb9bcb71fbe0848710532',1,'atm_land_ice_flux_exchange_mod']]], - ['bound_5ftol',['bound_tol',['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod']]], - ['bulk_5fzq',['bulk_zq',['../namespacesurface__flux__mod.html#ab0430982abba672524b5a13c4b730647',1,'surface_flux_mod']]], - ['bulk_5fzt',['bulk_zt',['../namespacesurface__flux__mod.html#ac06e3e9bb1a504104ec21e0b7585e1aa',1,'surface_flux_mod']]], - ['bulk_5fzu',['bulk_zu',['../namespacesurface__flux__mod.html#ae9006d4cf180672ab7b529b22c3dbac8',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/all_10.html b/docs/html/search/all_10.html deleted file mode 100644 index 50bc449e..00000000 --- a/docs/html/search/all_10.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js deleted file mode 100644 index 0669c353..00000000 --- a/docs/html/search/all_10.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['q_5fflux',['q_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd51467d1b4f9198a76130bbc6f91abe',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['q_5fsurf',['q_surf',['../namespaceflux__exchange__mod.html#afc62684e7d473718077c120c5ac6f6c0',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/all_11.html b/docs/html/search/all_11.html deleted file mode 100644 index b35c8bf0..00000000 --- a/docs/html/search/all_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js deleted file mode 100644 index 3969b69d..00000000 --- a/docs/html/search/all_11.js +++ /dev/null @@ -1,18 +0,0 @@ -var searchData= -[ - ['radiation',['radiation',['../structfull__coupler__mod_1_1coupler__clock__type.html#adf8132dede10fbbb9ad678d829422b46',1,'full_coupler_mod::coupler_clock_type']]], - ['radiation_5fnthreads',['radiation_nthreads',['../namespacefull__coupler__mod.html#a3e853db33e426916924f2bb27d2f10a4',1,'full_coupler_mod']]], - ['raoult_5fsat_5fvap',['raoult_sat_vap',['../namespacesurface__flux__mod.html#a20457ec53d55f2819c2109515b92a79f',1,'surface_flux_mod']]], - ['read_5fnamelist',['read_namelist',['../namespaceflux__exchange__mod.html#a52e173ad7fa50e521f75eef8cd9aff95',1,'flux_exchange_mod']]], - ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a056bbf92b7605811c7ff570c45ebafd6',1,'atm_land_ice_flux_exchange_mod']]], - ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a9d21a4be462dd340e9f192cc66627d54',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], - ['regenclock',['regenclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a5ea8ad1958bb201b40dbba386178c8de',1,'atm_land_ice_flux_exchange_mod']]], - ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d21fff836af698eb07aea029290cc4b',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], - ['remap_5fmethod',['remap_method',['../namespaceatm__land__ice__flux__exchange__mod.html#a96ed2d0c9f780f120de2d1c2dd83dd09',1,'atm_land_ice_flux_exchange_mod']]], - ['restart_5finterval',['restart_interval',['../namespacefull__coupler__mod.html#ad7e959a3e2e3da70f34991150fa4711a',1,'full_coupler_mod']]], - ['rough_5fheat',['rough_heat',['../structice__model__mod_1_1ice__data__type.html#a2b0fc3f7a2b99a46539750bf685613cc',1,'ice_model_mod::ice_data_type']]], - ['rough_5fmoist',['rough_moist',['../structice__model__mod_1_1ice__data__type.html#a6dc2c978eee60e0396f5ada2d1740901',1,'ice_model_mod::ice_data_type']]], - ['rough_5fmom',['rough_mom',['../structice__model__mod_1_1ice__data__type.html#aca42b1c10d6f2e5d6f456d4efb33eb86',1,'ice_model_mod::ice_data_type']]], - ['rough_5fscheme_5focean',['rough_scheme_ocean',['../namespacesurface__flux__mod.html#a430407a9f1208154bcfacbd357e883fb',1,'surface_flux_mod']]], - ['roughness_5fice',['roughness_ice',['../namespaceice__model__mod.html#ad08a267cab9b24b3568fd86a3d50cd40',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/all_12.html b/docs/html/search/all_12.html deleted file mode 100644 index fd265245..00000000 --- a/docs/html/search/all_12.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_12.js b/docs/html/search/all_12.js deleted file mode 100644 index bf22e3e3..00000000 --- a/docs/html/search/all_12.js +++ /dev/null @@ -1,27 +0,0 @@ -var searchData= -[ - ['scale_5fprecip_5f2d',['scale_precip_2d',['../namespaceatm__land__ice__flux__exchange__mod.html#aff59028b168f9a123112151e3f9c082b',1,'atm_land_ice_flux_exchange_mod::scale_precip_2d()'],['../namespaceflux__exchange__mod.html#ad4f0bf7fd2d4d737a0c90c919458ed6e',1,'flux_exchange_mod::scale_precip_2d()']]], - ['schmidt_5fg',['schmidt_g',['../namespaceatmos__ocean__fluxes__calc__mod.html#a7a879f540fe903119d5bb324c44f6c45',1,'atmos_ocean_fluxes_calc_mod']]], - ['seconds',['seconds',['../namespacefull__coupler__mod.html#a0d752429e35e05d13912e2d320e94950',1,'full_coupler_mod']]], - ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#af00a10abb94ffaa2f305e00de92362bc',1,'atm_land_ice_flux_exchange_mod']]], - ['set_5fice_5fsurface_5fexchange',['set_ice_surface_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#aa8e8fb7bc677dd49705a5b0ed54bd3c3',1,'full_coupler_mod::coupler_clock_type']]], - ['set_5fice_5fsurface_5ffast',['set_ice_surface_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a11a6b9563d30b684d5ef31a1599f7104',1,'full_coupler_mod::coupler_clock_type']]], - ['set_5fice_5fsurface_5fslow',['set_ice_surface_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab78c1f122e35a9b77e79cb0845b6b717',1,'full_coupler_mod::coupler_clock_type']]], - ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae18b3eb2f36a1ed733b54e1e5a34c552',1,'full_coupler_mod::coupler_clock_type::sfc_boundary_layer()'],['../namespaceatm__land__ice__flux__exchange__mod.html#ae7a53520e8a084f5fa930c5c18c85b54',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], - ['sfcclock',['sfcclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a4afcbc6731e29417a8e91a70224c813c',1,'atm_land_ice_flux_exchange_mod']]], - ['slow_5fice_5focean_5fpelist',['slow_ice_ocean_pelist',['../namespaceice__ocean__flux__exchange__mod.html#a3b7a0952e69375784c15b6436be4c693',1,'ice_ocean_flux_exchange_mod']]], - ['slow_5fice_5fwith_5focean',['slow_ice_with_ocean',['../namespacefull__coupler__mod.html#aef0442d39d4bf3537b9295aee2ea2470',1,'full_coupler_mod']]], - ['specified',['specified',['../namespaceice__model__mod.html#a4cd185be5927217434e4c0f12c7025be',1,'ice_model_mod']]], - ['specified_5fice_5fthickness',['specified_ice_thickness',['../namespaceice__model__mod.html#a37d440034bece975f6373ba9abeb4cbc',1,'ice_model_mod']]], - ['sst_5fanom',['sst_anom',['../namespaceice__model__mod.html#a4051226a26d65f3be30185a85862107e',1,'ice_model_mod']]], - ['sst_5fmethod',['sst_method',['../namespaceice__model__mod.html#ae2b36fb788a968f3caf075c276bee97d',1,'ice_model_mod']]], - ['surface_5fflux',['surface_flux',['../interfacesurface__flux__mod_1_1surface__flux.html',1,'surface_flux_mod']]], - ['surface_5fflux_2ef90',['surface_flux.F90',['../surface__flux_8_f90.html',1,'']]], - ['surface_5fflux_5f0d',['surface_flux_0d',['../namespacesurface__flux__mod.html#a719077c3d9594fb8b63b3681638949eb',1,'surface_flux_mod']]], - ['surface_5fflux_5f1d',['surface_flux_1d',['../interfacesurface__flux__mod_1_1surface__flux.html#aae251f64f9ec074e3eb13cf535503e96',1,'surface_flux_mod::surface_flux::surface_flux_1d()'],['../namespacesurface__flux__mod.html#a9e30e62e73778ab168c1e1e639bc5c5b',1,'surface_flux_mod::surface_flux_1d()']]], - ['surface_5fflux_5f2d',['surface_flux_2d',['../interfacesurface__flux__mod_1_1surface__flux.html#ab3e1a25220436f1a605d89d8cb820294',1,'surface_flux_mod::surface_flux::surface_flux_2d()'],['../namespacesurface__flux__mod.html#a8e1d9d5ab64ad51dd6f60c90616b6648',1,'surface_flux_mod::surface_flux_2d()'],['../namespaceflux__exchange__mod.html#a61d0127746fc39769346765dd050d378',1,'flux_exchange_mod::surface_flux_2d()']]], - ['surface_20flux_20configuration',['Surface Flux Configuration',['../surface_flux_config.html',1,'']]], - ['surface_5fflux_5finit',['surface_flux_init',['../namespacesurface__flux__mod.html#a333b51433623e304046e80987bab0acc',1,'surface_flux_mod']]], - ['surface_5fflux_5fmod',['surface_flux_mod',['../namespacesurface__flux__mod.html',1,'']]], - ['sw_5fflux',['sw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a2bc72919689b165986c3a6d953b19ab2',1,'ice_model_mod::atmos_ice_boundary_type']]] -]; diff --git a/docs/html/search/all_13.html b/docs/html/search/all_13.html deleted file mode 100644 index 04f66e2f..00000000 --- a/docs/html/search/all_13.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js deleted file mode 100644 index 00d2a6bf..00000000 --- a/docs/html/search/all_13.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['t_5fca',['t_ca',['../namespaceflux__exchange__mod.html#a9ca37680c8e8fcbf1c7cb165299cc6d5',1,'flux_exchange_mod']]], - ['t_5fflux',['t_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afa550fbb99363d6eb36e9df5612f7adc',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['t_5fsurf',['t_surf',['../structice__model__mod_1_1ice__data__type.html#a748d96d8afc6ec3efa88fe61b79bb5c5',1,'ice_model_mod::ice_data_type::t_surf()'],['../namespaceflux__exchange__mod.html#aa2ab2f31bbf1dffff5cd5dcb54b3fad3',1,'flux_exchange_mod::t_surf()']]], - ['tag',['tag',['../namespaceatm__land__ice__flux__exchange__mod.html#a4176031acaa85bc64a9ba4a7035b36ac',1,'atm_land_ice_flux_exchange_mod::tag()'],['../namespaceflux__exchange__mod.html#aba5f7ba78279ed6740597236c1930a65',1,'flux_exchange_mod::tag()']]], - ['tagname',['tagname',['../namespacesurface__flux__mod.html#a9a34cdd6148cf5dcdf01aa7020bf1973',1,'surface_flux_mod::tagname()'],['../namespaceice__model__mod.html#af2b3a99405cf45d0566a694b18b0c07b',1,'ice_model_mod::tagname()']]], - ['temp_5fice',['temp_ice',['../namespaceice__model__mod.html#a8916b1478604e2da7ecea14cf4dfdf20',1,'ice_model_mod']]], - ['temp_5fice_5ffreeze',['temp_ice_freeze',['../namespaceice__model__mod.html#a12903831181559c162e825549f139e7f',1,'ice_model_mod']]], - ['temp_5fsst',['temp_sst',['../namespaceice__model__mod.html#a04a20dcacf655c21e5f47206ae06f344',1,'ice_model_mod']]], - ['termination',['termination',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac68d174e845176ed37f58218a2b161d9',1,'full_coupler_mod::coupler_clock_type']]], - ['text',['text',['../namespacefull__coupler__mod.html#a481c6dc3126700e15926453bb0c98096',1,'full_coupler_mod']]], - ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f36d7021f66e3fa87247d3f45450519',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], - ['thickness',['thickness',['../structice__model__mod_1_1ice__data__type.html#a4fc960a59d3520d6acf290a76e0e246b',1,'ice_model_mod::ice_data_type']]], - ['thickness_5fmin',['thickness_min',['../namespaceice__model__mod.html#a753820dd4f1115554e58b0bdc566dd8d',1,'ice_model_mod']]], - ['time',['time',['../structice__model__mod_1_1ice__data__type.html#a4b225d644fe34ad3ccd00add6817f553',1,'ice_model_mod::ice_data_type']]], - ['time_5finit',['time_init',['../structice__model__mod_1_1ice__data__type.html#a911c3e51a65b58872eae6fdf3ca7baa2',1,'ice_model_mod::ice_data_type']]], - ['time_5fstep_5ffast',['time_step_fast',['../structice__model__mod_1_1ice__data__type.html#aaa44e5583639682ac142e6080eb8586a',1,'ice_model_mod::ice_data_type']]], - ['time_5fstep_5fslow',['time_step_slow',['../structice__model__mod_1_1ice__data__type.html#a4d819e4de12b4f25606af4210105ebd4',1,'ice_model_mod::ice_data_type']]], - ['tr_5ftable',['tr_table',['../namespaceatm__land__ice__flux__exchange__mod.html#ae81e1fb85dbf862e4cde596cc8c886f9',1,'atm_land_ice_flux_exchange_mod']]], - ['tr_5ftable_5fmap',['tr_table_map',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a5df9b039a007c0298c8f20581c5a6f',1,'atm_land_ice_flux_exchange_mod']]], - ['tracer_5fexch_5find_5ftype',['tracer_exch_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]], - ['tracer_5find_5ftype',['tracer_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/all_14.html b/docs/html/search/all_14.html deleted file mode 100644 index 285f34bd..00000000 --- a/docs/html/search/all_14.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js deleted file mode 100644 index 1e3ba831..00000000 --- a/docs/html/search/all_14.js +++ /dev/null @@ -1,27 +0,0 @@ -var searchData= -[ - ['u_5fstar',['u_star',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6d9cd348045dcc00c5a4287662d90e54',1,'ice_model_mod::atmos_ice_boundary_type::u_star()'],['../namespaceflux__exchange__mod.html#a5f2703b2d725cae0b81f8a0c74a730fe',1,'flux_exchange_mod::u_star()']]], - ['uniform',['uniform',['../namespaceice__model__mod.html#a3fd7567f14a603db2374f95bd1f3c8ec',1,'ice_model_mod']]], - ['update_5fatmos_5fmodel_5fdown',['update_atmos_model_down',['../structfull__coupler__mod_1_1coupler__clock__type.html#a64f28aa652b93f94fe5724c5c4cdeefd',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fatmos_5fmodel_5fdynamics',['update_atmos_model_dynamics',['../structfull__coupler__mod_1_1coupler__clock__type.html#a8017a9be38d01b068dc4627b70bca1bd',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fatmos_5fmodel_5fstate',['update_atmos_model_state',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45294c1f238443b60c735e41aae82975',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fatmos_5fmodel_5fup',['update_atmos_model_up',['../structfull__coupler__mod_1_1coupler__clock__type.html#a209446238ce492535a508e7a7e2a2818',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fice_5fmodel_5ffast',['update_ice_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a59b5799e854311672c976074ebebba23',1,'full_coupler_mod::coupler_clock_type::update_ice_model_fast()'],['../namespaceice__model__mod.html#a9b939a61c6dd68819c8edecfa60a02c5',1,'ice_model_mod::update_ice_model_fast()']]], - ['update_5fice_5fmodel_5fslow',['update_ice_model_slow',['../namespaceice__model__mod.html#a378288dc3d2683fd5308ed483542fc4f',1,'ice_model_mod']]], - ['update_5fice_5fmodel_5fslow_5fexchange',['update_ice_model_slow_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae44965d709c9eecc19aacbc4cf25879a',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fice_5fmodel_5fslow_5ffast',['update_ice_model_slow_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#addddee033e22c3dc65be4a5561c7919e',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fice_5fmodel_5fslow_5fslow',['update_ice_model_slow_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5c87ab8c6abe1995dce0b6eb5f211855',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fland_5fmodel_5ffast',['update_land_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac2ee1ed8bc0f8b67d84e03f97275ee00',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fland_5fmodel_5fslow',['update_land_model_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac59f01b2ba937daed2124ee679909287',1,'full_coupler_mod::coupler_clock_type']]], - ['use_5fannual_5fice',['use_annual_ice',['../namespaceice__model__mod.html#a782cca47fdcd3876f98bf9733a4db5ab',1,'ice_model_mod']]], - ['use_5fannual_5fsst',['use_annual_sst',['../namespaceice__model__mod.html#aa0b9af1ad302c2a1ee36b791c83959c6',1,'ice_model_mod']]], - ['use_5fclimo_5fice',['use_climo_ice',['../namespaceice__model__mod.html#a49c6719259ca27e72d9237e3fd75ba10',1,'ice_model_mod']]], - ['use_5fclimo_5fsst',['use_climo_sst',['../namespaceice__model__mod.html#a4421462b5feb57f9e869908ff02baa84',1,'ice_model_mod']]], - ['use_5fexisting_5fgrid_5fspec',['use_existing_grid_spec',['../namespaceflux__exchange__mod.html#af340dcdf7b0c5c94fe4320ffda186de0',1,'flux_exchange_mod']]], - ['use_5fhyper_5fthread',['use_hyper_thread',['../namespacefull__coupler__mod.html#a1b451e1fd8ed76ad553334552917841e',1,'full_coupler_mod']]], - ['use_5flag_5ffluxes',['use_lag_fluxes',['../namespacefull__coupler__mod.html#a9a1c54998e22ffba7be908ad06c4695a',1,'full_coupler_mod']]], - ['use_5fmixing_5fratio',['use_mixing_ratio',['../namespacesurface__flux__mod.html#a9dd1f7954c70115612a940a78b0daa61',1,'surface_flux_mod']]], - ['use_5fu10_5fneutral',['use_u10_neutral',['../namespacesurface__flux__mod.html#a0dde12495da696d1c077ac6ecb7c6714',1,'surface_flux_mod']]], - ['use_5fvirtual_5ftemp',['use_virtual_temp',['../namespacesurface__flux__mod.html#a0fdcdb1d11f52c4fbe51fe6def24ea2b',1,'surface_flux_mod']]], - ['used',['used',['../namespaceflux__exchange__mod.html#acb6da04e26caeafaade68eaecd27a070',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/all_15.html b/docs/html/search/all_15.html deleted file mode 100644 index 0ed74e01..00000000 --- a/docs/html/search/all_15.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_15.js b/docs/html/search/all_15.js deleted file mode 100644 index d7376845..00000000 --- a/docs/html/search/all_15.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['v_5fair',['v_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a942762290e4c14fbb89e992f736838d5',1,'atmos_ocean_fluxes_calc_mod']]], - ['version',['version',['../namespaceatm__land__ice__flux__exchange__mod.html#a7fee92e02a103e833b54331d52d76348',1,'atm_land_ice_flux_exchange_mod::version()'],['../namespaceflux__exchange__mod.html#adc32e303ec9e035ac2ba95080dce45be',1,'flux_exchange_mod::version()'],['../namespacesurface__flux__mod.html#a6ed27d1eda3e36cac58ac50b853d4906',1,'surface_flux_mod::version()'],['../namespaceice__model__mod.html#a24f5247c40b6091f3f17719d34b7f6cf',1,'ice_model_mod::version()']]] -]; diff --git a/docs/html/search/all_16.html b/docs/html/search/all_16.html deleted file mode 100644 index 696f0252..00000000 --- a/docs/html/search/all_16.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_16.js b/docs/html/search/all_16.js deleted file mode 100644 index 4c448efe..00000000 --- a/docs/html/search/all_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['wind',['wind',['../namespaceflux__exchange__mod.html#ac52397578086e5b8933fa0d7342191ac',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/all_17.html b/docs/html/search/all_17.html deleted file mode 100644 index f1e14b63..00000000 --- a/docs/html/search/all_17.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_17.js b/docs/html/search/all_17.js deleted file mode 100644 index 6b08c026..00000000 --- a/docs/html/search/all_17.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['x1_5fgrid_5fatm',['x1_grid_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a2cc89e69ab4f4a608b6a285b042d1f5b',1,'atm_land_ice_flux_exchange_mod']]], - ['x1_5fgrid_5fice',['x1_grid_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#af67e13f05b2640af8a6bf87f9c8957a6',1,'atm_land_ice_flux_exchange_mod']]], - ['x1_5fgrid_5flnd',['x1_grid_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a6b7909bb737f98c9541529d5dde197',1,'atm_land_ice_flux_exchange_mod']]], - ['x2_5fgrid_5fice',['x2_grid_ice',['../namespaceland__ice__flux__exchange__mod.html#ab0a6ceeb532eb1e603e101ab2786a97b',1,'land_ice_flux_exchange_mod']]], - ['x2_5fgrid_5flnd',['x2_grid_lnd',['../namespaceland__ice__flux__exchange__mod.html#ac1a5883b766d5e4bcaf49aa6deca63c6',1,'land_ice_flux_exchange_mod']]], - ['xmap_5frunoff',['xmap_runoff',['../namespaceland__ice__flux__exchange__mod.html#ac514720b654b8ab562fe5a30f85b8ad2',1,'land_ice_flux_exchange_mod']]], - ['xmap_5fsfc',['xmap_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#a060404036e66ff995a7bdef403eef326',1,'atm_land_ice_flux_exchange_mod']]], - ['xtype',['xtype',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a31f026572e538b841564b9b84b20a432',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['xyz2latlon',['xyz2latlon',['../namespaceice__model__mod.html#a295831b47bffb23aaad0538f61f2d7a6',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/all_18.html b/docs/html/search/all_18.html deleted file mode 100644 index 2a009025..00000000 --- a/docs/html/search/all_18.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_18.js b/docs/html/search/all_18.js deleted file mode 100644 index 320cac47..00000000 --- a/docs/html/search/all_18.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['z_5fref_5fheat',['z_ref_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a819d92621b4dcb540310588802b8adf9',1,'atm_land_ice_flux_exchange_mod::z_ref_heat()'],['../namespaceflux__exchange__mod.html#a67568d1d617e7c1be6dbe00d7be3f4cc',1,'flux_exchange_mod::z_ref_heat()']]], - ['z_5fref_5fmom',['z_ref_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a102b456a413634905a3287946d8d3789',1,'atm_land_ice_flux_exchange_mod::z_ref_mom()'],['../namespaceflux__exchange__mod.html#a2dea7a4b0778ca1121bda4c7c6be8a9b',1,'flux_exchange_mod::z_ref_mom()']]] -]; diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html deleted file mode 100644 index 2f17735e..00000000 --- a/docs/html/search/all_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js deleted file mode 100644 index 8954c9e5..00000000 --- a/docs/html/search/all_2.js +++ /dev/null @@ -1,64 +0,0 @@ -var searchData= -[ - ['calc_5fka',['calc_ka',['../namespaceatmos__ocean__fluxes__calc__mod.html#ae9cb64893466d91cc87e5502d37afa12',1,'atmos_ocean_fluxes_calc_mod']]], - ['calc_5fkl',['calc_kl',['../namespaceatmos__ocean__fluxes__calc__mod.html#a5f7e073d68f160bec215202c7e1d7abe',1,'atmos_ocean_fluxes_calc_mod']]], - ['calc_5fkw',['calc_kw',['../namespaceatmos__ocean__fluxes__calc__mod.html#abf318a12a94816f9a99ccd779e028e75',1,'atmos_ocean_fluxes_calc_mod']]], - ['calendar',['calendar',['../namespacefull__coupler__mod.html#a18e3d16cb372a5f0f49e36687c7aeee9',1,'full_coupler_mod']]], - ['calendar_5ftype',['calendar_type',['../namespacefull__coupler__mod.html#a5cae24118f6f7671ff74206b3803868b',1,'full_coupler_mod']]], - ['ccc',['ccc',['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod']]], - ['cd_5fm',['cd_m',['../namespaceflux__exchange__mod.html#acecf7a05415537c2ac395e6a68934628',1,'flux_exchange_mod']]], - ['cd_5ft',['cd_t',['../namespaceflux__exchange__mod.html#a53b62119a9798cdfef5cae59286254f5',1,'flux_exchange_mod']]], - ['check_5fatm_5fgrid',['check_atm_grid',['../namespaceflux__exchange__mod.html#a9b9500d8c86af3e964c1558bb7ae464e',1,'flux_exchange_mod']]], - ['check_5fflux_5fconservation',['check_flux_conservation',['../namespaceice__ocean__flux__exchange__mod.html#a82490086151d4ed5045fe1e9073163ba',1,'ice_ocean_flux_exchange_mod']]], - ['check_5fstocks',['check_stocks',['../namespacefull__coupler__mod.html#a87ccc8af0ea38216b76cb914b641fa43',1,'full_coupler_mod']]], - ['cmax',['cmax',['../namespaceice__model__mod.html#afe86741fa7aa070accd891d14ae25b89',1,'ice_model_mod']]], - ['cmin',['cmin',['../namespaceice__model__mod.html#a069d9874b6c63980a473c3a2a93a338b',1,'ice_model_mod']]], - ['combined_5fice_5fand_5focean',['combined_ice_and_ocean',['../namespacefull__coupler__mod.html#aa59cb045fb5f6eaa4ffd5116ad640dc2',1,'full_coupler_mod']]], - ['components',['components',['../structfull__coupler__mod_1_1coupler__chksum__type.html#aea10b2e4867debe7c8c8b280087b6760',1,'full_coupler_mod::coupler_chksum_type']]], - ['concurrent',['concurrent',['../namespacefull__coupler__mod.html#a5ad3045bf25e7c03c1dda87b62216389',1,'full_coupler_mod']]], - ['concurrent_5fatmos',['concurrent_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#abf004a119113d8387dcdc51df916a2d4',1,'full_coupler_mod::coupler_clock_type']]], - ['concurrent_5fice',['concurrent_ice',['../namespacefull__coupler__mod.html#ad028fe6369495ea7e76623b4382d393d',1,'full_coupler_mod']]], - ['coszen',['coszen',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a8cdc94e786674735ea0794c091e25f25',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['coupler_5fatmos_5ftracer_5fdriver_5fgather_5fdata',['coupler_atmos_tracer_driver_gather_data',['../namespacefull__coupler__mod.html#a5a028d46d98bc897bd6896fdb5755e96',1,'full_coupler_mod']]], - ['coupler_5fchksum',['coupler_chksum',['../simple_2coupler__main_8_f90.html#a84967079db4c81f7d8a653d5e37c484d',1,'coupler_main.F90']]], - ['coupler_5fchksum_5ftype',['coupler_chksum_type',['../structfull__coupler__mod_1_1coupler__chksum__type.html',1,'full_coupler_mod']]], - ['coupler_5fclock_5ftype',['coupler_clock_type',['../structfull__coupler__mod_1_1coupler__clock__type.html',1,'full_coupler_mod']]], - ['coupler_5fcomponents_5ftype',['coupler_components_type',['../structfull__coupler__mod_1_1coupler__components__type.html',1,'full_coupler_mod']]], - ['coupler_20configuration',['Coupler Configuration',['../coupler_config.html',1,'']]], - ['coupler_5fend',['coupler_end',['../namespacefull__coupler__mod.html#a2ec9738b6ff3b36e2468bdf6be894dcd',1,'full_coupler_mod::coupler_end()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90']]], - ['coupler_5fexchange_5ffast_5fto_5fslow_5fice',['coupler_exchange_fast_to_slow_ice',['../namespacefull__coupler__mod.html#adfa43bbc4b86cff9ebbf83c303c1536c',1,'full_coupler_mod']]], - ['coupler_5fexchange_5fslow_5fto_5ffast_5fice',['coupler_exchange_slow_to_fast_ice',['../namespacefull__coupler__mod.html#acc373b8c70ab51bcd1abd62a0f2cc458',1,'full_coupler_mod']]], - ['coupler_5fflux_5fatmos_5fto_5focean',['coupler_flux_atmos_to_ocean',['../namespacefull__coupler__mod.html#a5d6ec62cbf5b295aace24abd48724d72',1,'full_coupler_mod']]], - ['coupler_5fflux_5fcheck_5fstocks',['coupler_flux_check_stocks',['../namespacefull__coupler__mod.html#a0c78ac70ae6ce91467b7039912804e05',1,'full_coupler_mod']]], - ['coupler_5fflux_5fdown_5ffrom_5fatmos',['coupler_flux_down_from_atmos',['../namespacefull__coupler__mod.html#a2bbfad8acb27d074dcab777315e83020',1,'full_coupler_mod']]], - ['coupler_5fflux_5fice_5fto_5focean',['coupler_flux_ice_to_ocean',['../namespacefull__coupler__mod.html#a21ac2bd35b5e12e39409de231485fc49',1,'full_coupler_mod']]], - ['coupler_5fflux_5finit_5ffinish_5fstocks',['coupler_flux_init_finish_stocks',['../namespacefull__coupler__mod.html#aacd2b02808f6f249686b8dfda325a476',1,'full_coupler_mod']]], - ['coupler_5fflux_5fland_5fto_5fice',['coupler_flux_land_to_ice',['../namespacefull__coupler__mod.html#abf2778399410a6dc8bd900e06fb32c73',1,'full_coupler_mod']]], - ['coupler_5fflux_5focean_5fto_5fice',['coupler_flux_ocean_to_ice',['../namespacefull__coupler__mod.html#aea669a50f8bf186ab6563fc3a593727d',1,'full_coupler_mod']]], - ['coupler_5fflux_5fup_5fto_5fatmos',['coupler_flux_up_to_atmos',['../namespacefull__coupler__mod.html#a815b7cd5c923bcc6983455275e760562',1,'full_coupler_mod']]], - ['coupler_5fgenerate_5fsfc_5fxgrid',['coupler_generate_sfc_xgrid',['../namespacefull__coupler__mod.html#a5a6aad430601ef6236f0aef37ae7e8d9',1,'full_coupler_mod']]], - ['coupler_5finit',['coupler_init',['../namespacefull__coupler__mod.html#a492d05bed09bd21cfdfd552ad94a41a1',1,'full_coupler_mod::coupler_init()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90']]], - ['coupler_5fintermediate_5frestart',['coupler_intermediate_restart',['../namespacefull__coupler__mod.html#a78e63fea8e51104d42b8165c1aca632f',1,'full_coupler_mod']]], - ['coupler_5fmain',['coupler_main',['../full_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90']]], - ['coupler_5fmain_2ef90',['coupler_main.F90',['../full_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../_s_hi_e_l_d_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../simple_2coupler__main_8_f90.html',1,'(Global Namespace)']]], - ['coupler_5frestart',['coupler_restart',['../namespacefull__coupler__mod.html#acdc143216f549f73b826f2dc16d8785d',1,'full_coupler_mod::coupler_restart()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a1d53997072d4080194ed167495e1dc4e',1,'coupler_restart(): coupler_main.F90']]], - ['coupler_5fset_5fclock_5fids',['coupler_set_clock_ids',['../namespacefull__coupler__mod.html#af8e1c181167e62399ce506efc5d4466d',1,'full_coupler_mod']]], - ['coupler_5fset_5fice_5fsurface_5ffields',['coupler_set_ice_surface_fields',['../namespacefull__coupler__mod.html#abddb0d5b155dcae16de66f20ec7beb6b',1,'full_coupler_mod']]], - ['coupler_5fsfc_5fboundary_5flayer',['coupler_sfc_boundary_layer',['../namespacefull__coupler__mod.html#a229bd773fc74906d301d68606f1fa0ba',1,'full_coupler_mod']]], - ['coupler_5fsummarize_5ftimestep',['coupler_summarize_timestep',['../namespacefull__coupler__mod.html#ad43bd73adc9e5c3d58a36eb181f8ed49',1,'full_coupler_mod']]], - ['coupler_5funpack_5fland_5fice_5fboundary',['coupler_unpack_land_ice_boundary',['../namespacefull__coupler__mod.html#abaf548c80785bc86cdf6905e878beea2',1,'full_coupler_mod']]], - ['coupler_5funpack_5focean_5fice_5fboundary',['coupler_unpack_ocean_ice_boundary',['../namespacefull__coupler__mod.html#a03dfec6ce79bf87d70af81a67036d0d5',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fdown',['coupler_update_atmos_model_down',['../namespacefull__coupler__mod.html#a12b401d180e4ef450900bf99326cf7b1',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fdynamics',['coupler_update_atmos_model_dynamics',['../namespacefull__coupler__mod.html#a9870c4ebd0509e3a451918312aeab9bc',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fradiation',['coupler_update_atmos_model_radiation',['../namespacefull__coupler__mod.html#a53e78be022cbfa2705d38c357862b299',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fstate',['coupler_update_atmos_model_state',['../namespacefull__coupler__mod.html#abcc0129feb720f653d1331b74bdcc83e',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fup',['coupler_update_atmos_model_up',['../namespacefull__coupler__mod.html#a6d261ed1082536075cf038512bfb554c',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fice_5fmodel_5ffast',['coupler_update_ice_model_fast',['../namespacefull__coupler__mod.html#a16ef5e434cc41e25acca7c13c914a7dd',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fice_5fmodel_5fslow_5fand_5fstocks',['coupler_update_ice_model_slow_and_stocks',['../namespacefull__coupler__mod.html#a99772f79049c6478c178ff5936cd96f5',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fland_5fmodel_5ffast',['coupler_update_land_model_fast',['../namespacefull__coupler__mod.html#ac362087e9af50b6210abceca68bc71b4',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fland_5fmodel_5fslow',['coupler_update_land_model_slow',['../namespacefull__coupler__mod.html#a439064bbf2747a318875cd2658ee5687',1,'full_coupler_mod']]], - ['coupler_5fupdate_5focean_5fmodel',['coupler_update_ocean_model',['../namespacefull__coupler__mod.html#a2b178ae2d43ded30a97496633670b93a',1,'full_coupler_mod']]], - ['cplclock',['cplclock',['../namespaceatm__land__ice__flux__exchange__mod.html#afc1f632c6fb9d2aba8f1bb0d3e5ff993',1,'atm_land_ice_flux_exchange_mod::cplclock()'],['../namespaceflux__exchange__mod.html#a55cfce099e27ac30a8a3e3c9f48849d8',1,'flux_exchange_mod::cplclock()'],['../namespaceland__ice__flux__exchange__mod.html#a6e80f85c3ad949322df68bfda49aeb9d',1,'land_ice_flux_exchange_mod::cplclock()']]], - ['cplocnclock',['cplocnclock',['../namespaceice__ocean__flux__exchange__mod.html#a5431df541452ace1e68a6dc62c8efa4a',1,'ice_ocean_flux_exchange_mod']]], - ['current_5fdate',['current_date',['../namespacefull__coupler__mod.html#ac79f6aa8c4ad045ee4a8bc7726853457',1,'full_coupler_mod']]] -]; diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html deleted file mode 100644 index a3e6f7db..00000000 --- a/docs/html/search/all_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js deleted file mode 100644 index 52ef60da..00000000 --- a/docs/html/search/all_3.js +++ /dev/null @@ -1,50 +0,0 @@ -var searchData= -[ - ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#aa77dede0d3c2c5408143f748933f68a2',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], - ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a8cf3f5dece449a034a9e4643d31b8c',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], - ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f6ee7f59b0dcbd45caa8957f2eb5b34',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], - ['d_5fair',['d_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a6a4a1330c1ee1043b30e4b86f462ec24',1,'atmos_ocean_fluxes_calc_mod']]], - ['data',['data',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a0e638d4b8efef050d34bb16bb637e503',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['date_5finit',['date_init',['../namespacefull__coupler__mod.html#a224eb7b4334353b002163b32235c2c37',1,'full_coupler_mod']]], - ['days',['days',['../namespacefull__coupler__mod.html#a0b42e8ed5c43a06e46c947f90f60de2e',1,'full_coupler_mod']]], - ['debug_5fstocks',['debug_stocks',['../namespaceflux__exchange__mod.html#a85a4e48184ac3df1924a4da5b3678836',1,'flux_exchange_mod::debug_stocks()'],['../namespaceice__ocean__flux__exchange__mod.html#a09c87ee132e2cfd87a1ecda83787b5bd',1,'ice_ocean_flux_exchange_mod::debug_stocks()']]], - ['dedq_5fatm',['dedq_atm',['../namespaceflux__exchange__mod.html#a64be41e9f890fd04c831656e04dea02e',1,'flux_exchange_mod']]], - ['dedq_5fsurf',['dedq_surf',['../namespaceflux__exchange__mod.html#a772a31b28741e8b8245dfb15e15077bb',1,'flux_exchange_mod']]], - ['dedt',['dedt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a351c56250820f5e145465d8a684148df',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['dedt_5fsurf',['dedt_surf',['../namespaceflux__exchange__mod.html#a4416573f338299400a7bde3b33ecce6d',1,'flux_exchange_mod']]], - ['dhdt',['dhdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd3cad887715d9239eeb2f09f1121729',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['dhdt_5fatm',['dhdt_atm',['../namespaceflux__exchange__mod.html#ada94f4e7d52c502fd946201f090c5644',1,'flux_exchange_mod']]], - ['dhdt_5fsurf',['dhdt_surf',['../namespaceflux__exchange__mod.html#adda223e3f75af374428581666b973a69',1,'flux_exchange_mod']]], - ['diag_5ffield_5finit',['diag_field_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8a26116481dffeb2f5f2ac6444c64f5',1,'atm_land_ice_flux_exchange_mod::diag_field_init()'],['../namespaceflux__exchange__mod.html#ab9537fe935b63ea2cf7f9c8f895cb8e0',1,'flux_exchange_mod::diag_field_init()']]], - ['diff',['diff',['../namespaceice__model__mod.html#a9930d4b7c4f36ba29c1494007ab9a5c4',1,'ice_model_mod']]], - ['direct',['direct',['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod']]], - ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], - ['divide_5fby_5farea',['divide_by_area',['../namespaceatm__land__ice__flux__exchange__mod.html#a6dbcba7c48b5f085de6b33e9f05d6868',1,'atm_land_ice_flux_exchange_mod::divide_by_area()'],['../namespaceice__ocean__flux__exchange__mod.html#a1da352681654a7c70e1c929092357c76',1,'ice_ocean_flux_exchange_mod::divide_by_area()']]], - ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], - ['do_5fatmos',['do_atmos',['../namespacefull__coupler__mod.html#ac5f115cf3ec7b2b595aee0857cabdf90',1,'full_coupler_mod']]], - ['do_5fchksum',['do_chksum',['../namespacefull__coupler__mod.html#a74ce4e2724ae9e0d2d9721cdbd9e56e2',1,'full_coupler_mod']]], - ['do_5fconcurrent_5fradiation',['do_concurrent_radiation',['../namespacefull__coupler__mod.html#a131c273c9c0e80eb8350cb6809dd4c04',1,'full_coupler_mod']]], - ['do_5fdebug',['do_debug',['../namespacefull__coupler__mod.html#a25b64a33d2e473ed4ea14076052d13d4',1,'full_coupler_mod']]], - ['do_5fendpoint_5fchksum',['do_endpoint_chksum',['../namespacefull__coupler__mod.html#aebb5148e8c1a97317a997848170c7bdc',1,'full_coupler_mod']]], - ['do_5fflux',['do_flux',['../namespacefull__coupler__mod.html#a9e75cc87d8a2a12446415c8e96020256',1,'full_coupler_mod']]], - ['do_5fforecast',['do_forecast',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5ba0610f8d66c3fea1c7f593aa87d2d',1,'atm_land_ice_flux_exchange_mod::do_forecast()'],['../namespaceflux__exchange__mod.html#a64ce07eb820491557e1c3a345afd4c26',1,'flux_exchange_mod::do_forecast()']]], - ['do_5fice',['do_ice',['../namespacefull__coupler__mod.html#a129ad943f269777da974e4b6237aca81',1,'full_coupler_mod']]], - ['do_5finit',['do_init',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d84d05097c722fd05883eee3826ccbe',1,'atm_land_ice_flux_exchange_mod::do_init()'],['../namespaceflux__exchange__mod.html#aadc375ceab862873a6185a4c206bec41',1,'flux_exchange_mod::do_init()']]], - ['do_5fiter_5fmonin_5fobukhov',['do_iter_monin_obukhov',['../namespacesurface__flux__mod.html#a6b3f019016c57aa487b01d3304625f41',1,'surface_flux_mod']]], - ['do_5fland',['do_land',['../namespacefull__coupler__mod.html#ae29c7dedacd07b876ab9a8c88f3fcb0a',1,'full_coupler_mod']]], - ['do_5fnetcdf_5frestart',['do_netcdf_restart',['../namespaceice__model__mod.html#a3b97dc02cd49d8cf87c2a01d893e7580',1,'ice_model_mod']]], - ['do_5focean',['do_ocean',['../namespacefull__coupler__mod.html#aa8de957c43ab106c9b82743daf3f8df6',1,'full_coupler_mod']]], - ['do_5fread_5fnml',['do_read_nml',['../namespaceflux__exchange__mod.html#a1b9cb50c37b77026396b80aa79d606d1',1,'flux_exchange_mod']]], - ['do_5frunoff',['do_runoff',['../namespaceflux__exchange__mod.html#ae37ea2fadd4c406881499469dca2fc3e',1,'flux_exchange_mod::do_runoff()'],['../namespaceland__ice__flux__exchange__mod.html#a22b7d08fbac612f0dc26cea5ca406d42',1,'land_ice_flux_exchange_mod::do_runoff()']]], - ['do_5fsimple',['do_simple',['../namespacesurface__flux__mod.html#a430e1f667917e25d8428390a7b4a3733',1,'surface_flux_mod']]], - ['domain',['domain',['../structice__model__mod_1_1ice__data__type.html#ae05a07368d37ccbc698fc6549fd69754',1,'ice_model_mod::ice_data_type']]], - ['drag_5fq',['drag_q',['../namespaceflux__exchange__mod.html#ada7c251b490f5d63b180b8743604b542',1,'flux_exchange_mod']]], - ['drdt',['drdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a4cf5b6717966554bc5d90949a87f5960',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], - ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], - ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], - ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], - ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], - ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], - ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html deleted file mode 100644 index 6452295d..00000000 --- a/docs/html/search/all_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js deleted file mode 100644 index dfa24001..00000000 --- a/docs/html/search/all_4.js +++ /dev/null @@ -1,56 +0,0 @@ -var searchData= -[ - ['e_5fq_5fn',['e_q_n',['../namespaceflux__exchange__mod.html#af70762b2a29dd3351d264552a69f31fd',1,'flux_exchange_mod']]], - ['e_5ft_5fn',['e_t_n',['../namespaceflux__exchange__mod.html#a99c629c06c3a52e275521209439235fb',1,'flux_exchange_mod']]], - ['epsln',['epsln',['../namespaceatmos__ocean__fluxes__calc__mod.html#a55eb8d12d0b2764e81cecf9dff4dc4d8',1,'atmos_ocean_fluxes_calc_mod']]], - ['ex_5falbedo_5ffix',['ex_albedo_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a6ce3eaf605064a25d5cc1283e0e11276',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fnir_5fdif_5ffix',['ex_albedo_nir_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a328257f3efd36a27514c76d5cf96c379',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fnir_5fdir_5ffix',['ex_albedo_nir_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a104be61b1aa14a50d997b6993b5274c9',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fvis_5fdif_5ffix',['ex_albedo_vis_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aa10f4fb058cec37b5080747c92b38ccc',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fvis_5fdir_5ffix',['ex_albedo_vis_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aad98ee1a168521649429409b391b9762',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5favail',['ex_avail',['../namespaceatm__land__ice__flux__exchange__mod.html#a58563af19b7f161084245415d793cae0',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fb_5fstar',['ex_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a0fd79bc7659c354908e2e6c325985544',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fcd_5fm',['ex_cd_m',['../namespaceatm__land__ice__flux__exchange__mod.html#a26e0b81f6ed8473af88bdec4dda23c4b',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fcd_5ft',['ex_cd_t',['../namespaceatm__land__ice__flux__exchange__mod.html#a1fc83cb6b523c05c9925f67c1bef77eb',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fcon_5fatm',['ex_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a972ea1bb3939a7b1fed1e698b182de88',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdedq_5fsurf_5fforland',['ex_dedq_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a3956b57ce785f108d1f2279f5ebd8e1e',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdedt_5fsurf',['ex_dedt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a50b141a6a27c86e08632eb459f39324b',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdedt_5fsurf_5fforland',['ex_dedt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#abbf844d7950c4153fb035f5b04f95a58',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdfdtr_5fatm',['ex_dfdtr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a358eb5572e71492f7499d25dd3f20f98',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdfdtr_5fsurf',['ex_dfdtr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a166f151a722fa35f69705d680a644cff',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdhdt_5fsurf_5fforland',['ex_dhdt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a10ddd6efbc6230555b114c8a41c93900',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdtaudv_5fatm',['ex_dtaudv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#ae3ae41712484a6829639b4cd4431dab1',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fe_5fq_5fn',['ex_e_q_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a86ed92f16c0fb112e38dd6873ca4cded',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fe_5ft_5fn',['ex_e_t_n',['../namespaceatm__land__ice__flux__exchange__mod.html#af597d6135733a6cb828cfe7a6b4189e2',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fe_5ftr_5fn',['ex_e_tr_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a62a8dccea77d1e67b22326bf6076d19f',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ff_5ft_5fdelt_5fn',['ex_f_t_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a0a94c710110b7899b37036cd305932ad',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ff_5ftr_5fdelt_5fn',['ex_f_tr_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a78022255bd2979bbd2d2ffe3a6217272',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5flw',['ex_flux_lw',['../namespaceatm__land__ice__flux__exchange__mod.html#af36a6c987c16a10e698b500396554130',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5ft',['ex_flux_t',['../namespaceatm__land__ice__flux__exchange__mod.html#ae9b13bb6dda1c9dd7d826fc60e495a7d',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5ftr',['ex_flux_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#a38000d1cf858d832de3570bbac68dc07',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5fu',['ex_flux_u',['../namespaceatm__land__ice__flux__exchange__mod.html#a5419fecfda33b11db1caab9042cf90c2',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5fv',['ex_flux_v',['../namespaceatm__land__ice__flux__exchange__mod.html#ac27b58d41879537c39e4b8bc6eac83f8',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fgas_5ffields_5fatm',['ex_gas_fields_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3266419d5fdecb4817fa06dad56056df',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_atm()'],['../namespaceflux__exchange__mod.html#a4cdfe4f5a23bfa6c4ccaffbd9ad047bb',1,'flux_exchange_mod::ex_gas_fields_atm()']]], - ['ex_5fgas_5ffields_5fice',['ex_gas_fields_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a07e2cfa8c59081b4aea8525879c304ab',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_ice()'],['../namespaceflux__exchange__mod.html#ad3a6680e20e123bfdf15e9690f52a4b8',1,'flux_exchange_mod::ex_gas_fields_ice()']]], - ['ex_5fgas_5ffluxes',['ex_gas_fluxes',['../namespaceatm__land__ice__flux__exchange__mod.html#a6c4da192e1adc05ce9f87b40e4e97b9b',1,'atm_land_ice_flux_exchange_mod::ex_gas_fluxes()'],['../namespaceflux__exchange__mod.html#a24a89015e7d63bf306c3c98bc0ecbd60',1,'flux_exchange_mod::ex_gas_fluxes()']]], - ['ex_5fland',['ex_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a2e2496900cb4751561b8111d9cd73fd3',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fold_5falbedo',['ex_old_albedo',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6f4b7e07f9aca6eb7fe2723915a2d40',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fp_5fsurf',['ex_p_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#af4fdc80a51f0145da4aa80a6317cc156',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fseawater',['ex_seawater',['../namespaceatm__land__ice__flux__exchange__mod.html#a7cc9b8d546d6589e3b2cf8a7ad6dd90c',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fslp',['ex_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#ae70d5c9a1a49eff91b2c14c1657103a6',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ft_5fca',['ex_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a11f41fbfe9ab8aa845f8337fb270f9d9',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ft_5fsurf',['ex_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b2ef838084f4e936de81bcf4acba447',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ft_5fsurf_5fmiz',['ex_t_surf_miz',['../namespaceatm__land__ice__flux__exchange__mod.html#a29071f5ae5e2772b510570b3834fe1b4',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ftr_5fcon_5fatm',['ex_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aa059a6e4b7a9798e0dddbd4d24638e11',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ftr_5fcon_5fref',['ex_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#af867f2e5e4235297c49e0c31889dc8a3',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ftr_5fsurf',['ex_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a81a6ab0bad3a81d6b057c6aa2550148e',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fu_5fstar',['ex_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a3faddc34ad457fdb55533bead75ce7f0',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fwind',['ex_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#ada77a5490b1ad25fa3ca68f3f81b9548',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fz_5fatm',['ex_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a415a43eca092359dca12e46ac24bb0de',1,'atm_land_ice_flux_exchange_mod']]], - ['exch',['exch',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#af49ff646f6c5c341f07f96eb556ca3fb',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type']]] -]; diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html deleted file mode 100644 index e59e1d53..00000000 --- a/docs/html/search/all_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js deleted file mode 100644 index 09d635b9..00000000 --- a/docs/html/search/all_5.js +++ /dev/null @@ -1,48 +0,0 @@ -var searchData= -[ - ['f_5fq_5fdelt_5fn',['f_q_delt_n',['../namespaceflux__exchange__mod.html#ac1835374d54ce5533bf87bd388444d4d',1,'flux_exchange_mod']]], - ['f_5ft_5fdelt_5fn',['f_t_delt_n',['../namespaceflux__exchange__mod.html#afd64fcaa6261af605cf0704e813fe0bb',1,'flux_exchange_mod']]], - ['final_5fflux_5fcheck_5fstocks',['final_flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5042090eb7e46f01440a762fbe55dbf8',1,'full_coupler_mod::coupler_clock_type']]], - ['first_5fstatic',['first_static',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6ec5aeec04dfbc11e9db1d496b0d276',1,'atm_land_ice_flux_exchange_mod::first_static()'],['../namespaceflux__exchange__mod.html#a6a77207b65f30f8fe2db3dd6a3cf15ea',1,'flux_exchange_mod::first_static()']]], - ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b47968fcb9188a68db2b7b8e1ea7a0f',1,'atm_land_ice_flux_exchange_mod']]], - ['flux_5fcheck_5fstocks',['flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6d6bae8bc10923df881c023689bdc5f3',1,'full_coupler_mod::coupler_clock_type::flux_check_stocks()'],['../namespaceflux__exchange__mod.html#a905b179ee9688d2feeef94f3417b25e5',1,'flux_exchange_mod::flux_check_stocks()']]], - ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab01f08cbfcccf5bb51e6ce8fce17c2e5',1,'full_coupler_mod::coupler_clock_type::flux_down_from_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos()'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], - ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8716ce7e07543b081c151bd0b24d7d1',1,'atm_land_ice_flux_exchange_mod']]], - ['flux_5fexchange_2ef90',['flux_exchange.F90',['../full_2flux__exchange_8_f90.html',1,'(Global Namespace)'],['../simple_2flux__exchange_8_f90.html',1,'(Global Namespace)']]], - ['flux_20exchange_20configuration',['Flux Exchange Configuration',['../flux_exchange_conf.html',1,'']]], - ['flux_5fexchange_5fend',['flux_exchange_end',['../namespaceflux__exchange__mod.html#a6485a12c7af1fed26ee7a8dac257a508',1,'flux_exchange_mod']]], - ['flux_5fexchange_5finit',['flux_exchange_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6a246dc59781d37c851e4d1ae1583001',1,'full_coupler_mod::coupler_clock_type::flux_exchange_init()'],['../namespaceflux__exchange__mod.html#aa0a4db6845eb6ba4aa2246e67c9bcc6b',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)'],['../namespaceflux__exchange__mod.html#ab2e7b7db204609a177b55f5725e57976',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)']]], - ['flux_5fexchange_5fmod',['flux_exchange_mod',['../namespaceflux__exchange__mod.html',1,'']]], - ['flux_5fice_5fto_5focean',['flux_ice_to_ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#af5781bd885d87fcde35d90052bf79f18',1,'full_coupler_mod::coupler_clock_type::flux_ice_to_ocean()'],['../namespaceice__ocean__flux__exchange__mod.html#afcc66b7731a985e1916e5ac4a303df37',1,'ice_ocean_flux_exchange_mod::flux_ice_to_ocean()']]], - ['flux_5fice_5fto_5focean_5ffinish',['flux_ice_to_ocean_finish',['../namespaceice__ocean__flux__exchange__mod.html#a1f894795596097d716f953bbfdb9dc80',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fice_5fto_5focean_5fredistribute',['flux_ice_to_ocean_redistribute',['../namespaceice__ocean__flux__exchange__mod.html#a051fd38cfb62a7fa0b9093d39a3d1a94',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fice_5fto_5focean_5fstocks',['flux_ice_to_ocean_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1a1e05fc71dabaaf9ab21d3828a77814',1,'full_coupler_mod::coupler_clock_type::flux_ice_to_ocean_stocks()'],['../namespaceice__ocean__flux__exchange__mod.html#ac7d12dcdb5b25d4a1bb38935360cceab',1,'ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks()']]], - ['flux_5finit_5fstocks',['flux_init_stocks',['../namespaceflux__exchange__mod.html#a8482ebe698f25da2d177b2508fa9d2b8',1,'flux_exchange_mod']]], - ['flux_5fland_5fto_5fice',['flux_land_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45af9e3925664172d82d273acecdb38f',1,'full_coupler_mod::coupler_clock_type::flux_land_to_ice()'],['../namespaceland__ice__flux__exchange__mod.html#a7430ed2b8895cbe33376aaa6315ea0da',1,'land_ice_flux_exchange_mod::flux_land_to_ice()']]], - ['flux_5flw',['flux_lw',['../namespaceflux__exchange__mod.html#ab1ee2d625de074a36d8549bca04772f7',1,'flux_exchange_mod']]], - ['flux_5focean_5ffrom_5fice_5fstocks',['flux_ocean_from_ice_stocks',['../namespaceice__ocean__flux__exchange__mod.html#ac5daa11e6f312156be99d617a705bae8',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5focean_5fto_5fice',['flux_ocean_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae50469d47f9a6f770da3d26660f81f05',1,'full_coupler_mod::coupler_clock_type::flux_ocean_to_ice()'],['../namespaceice__ocean__flux__exchange__mod.html#a5270f15d181575b7559f4664afcd987a',1,'ice_ocean_flux_exchange_mod::flux_ocean_to_ice()']]], - ['flux_5focean_5fto_5fice_5ffinish',['flux_ocean_to_ice_finish',['../namespaceice__ocean__flux__exchange__mod.html#a2af0c159f5b00bd98d7f8339761df29e',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fq',['flux_q',['../namespaceflux__exchange__mod.html#a3c4cfa64058f3cca59b7c804cfab4d83',1,'flux_exchange_mod']]], - ['flux_5ft',['flux_t',['../namespaceflux__exchange__mod.html#ae6259f1b9fad0af0d2744ebfc7a34313',1,'flux_exchange_mod']]], - ['flux_5fu',['flux_u',['../namespaceflux__exchange__mod.html#ae36d80622db4d5f45ecf4da1f00c5b25',1,'flux_exchange_mod']]], - ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3b44642440602473e03691b68b4cdf8f',1,'full_coupler_mod::coupler_clock_type::flux_up_to_atmos()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a9ff1868e71257630777ac2d9c8b6180c',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]], - ['flux_5fv',['flux_v',['../namespaceflux__exchange__mod.html#a9c5e8f07060938dfc699b598621056e1',1,'flux_exchange_mod']]], - ['fluxatmdnclock',['fluxatmdnclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a33f6639238a7502d880f163e1e2b9a7d',1,'atm_land_ice_flux_exchange_mod']]], - ['fluxatmupclock',['fluxatmupclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a17bc1bc0397c5f238246e540932eb068',1,'atm_land_ice_flux_exchange_mod']]], - ['fluxiceoceanclock',['fluxiceoceanclock',['../namespaceice__ocean__flux__exchange__mod.html#a9ba54588c93b81c1cc0264d121bd380a',1,'ice_ocean_flux_exchange_mod']]], - ['fluxlandiceclock',['fluxlandiceclock',['../namespaceland__ice__flux__exchange__mod.html#a1eea545bd73b38025dc9e06351309075',1,'land_ice_flux_exchange_mod']]], - ['fluxoceaniceclock',['fluxoceaniceclock',['../namespaceice__ocean__flux__exchange__mod.html#aee6869bc407ceb33d261653edd09ea11',1,'ice_ocean_flux_exchange_mod']]], - ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'atm_land_ice_flux_exchange.F90']]], - ['fname',['fname',['../namespaceice__model__mod.html#a4c4ab586477d470b99a4a9475810aee5',1,'ice_model_mod']]], - ['force_5fdate_5ffrom_5fnamelist',['force_date_from_namelist',['../namespacefull__coupler__mod.html#aa387f247b7f4014a0479a4c337f6b782',1,'full_coupler_mod']]], - ['fprec',['fprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a3f6cb46f2625a4b5f2c7fb9f94d62749',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['frac_5fprecip',['frac_precip',['../namespaceatm__land__ice__flux__exchange__mod.html#a1910f9c181f13ea0b3a92437a939452b',1,'atm_land_ice_flux_exchange_mod']]], - ['full_5fcoupler_5fmod',['full_coupler_mod',['../namespacefull__coupler__mod.html',1,'']]], - ['full_5fcoupler_5fmod_2ef90',['full_coupler_mod.F90',['../full__coupler__mod_8_f90.html',1,'']]] -]; diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html deleted file mode 100644 index f75a754e..00000000 --- a/docs/html/search/all_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js deleted file mode 100644 index fde1f119..00000000 --- a/docs/html/search/all_6.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['gas_5fexchange_5finit',['gas_exchange_init',['../namespaceflux__exchange__mod.html#a9d5d9cb2721d5b49e6dfbaefa89185f8',1,'flux_exchange_mod']]], - ['gas_5ffluxes_5finitialized',['gas_fluxes_initialized',['../namespaceflux__exchange__mod.html#a5f1a23e53559d3a711cb36e25fd4ace4',1,'flux_exchange_mod']]], - ['gcp',['gcp',['../namespacesurface__flux__mod.html#a5336c38c479c44a9705f79ef59fa2884',1,'surface_flux_mod']]], - ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../structfull__coupler__mod_1_1coupler__clock__type.html#a99db2947c8e7611cc79452797333d3e2',1,'full_coupler_mod::coupler_clock_type::generate_sfc_xgrid()'],['../namespaceatm__land__ice__flux__exchange__mod.html#ae90760b8fd57a82bc54db9ece86486ba',1,'atm_land_ice_flux_exchange_mod::generate_sfc_xgrid()']]], - ['get_5fatmos_5fice_5fland_5fchksums',['get_atmos_ice_land_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#acd9ec31136762085212e2184eb95a896',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums()'],['../namespacefull__coupler__mod.html#ac24e45f64a2c3bd2674b5b0436107eb6',1,'full_coupler_mod::get_atmos_ice_land_chksums()']]], - ['get_5fatmos_5fice_5fland_5focean_5fchksums',['get_atmos_ice_land_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#ae519e712159d78b971a59a5e4311f61e',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums()'],['../namespacefull__coupler__mod.html#a7e2a2f28f1037117dd2e1790d99b8616',1,'full_coupler_mod::get_atmos_ice_land_ocean_chksums()']]], - ['get_5fcell_5fcenter',['get_cell_center',['../namespaceice__model__mod.html#ab2e9be6fcef2df1c9886c80ad3f8e68c',1,'ice_model_mod']]], - ['get_5fcomponent',['get_component',['../structfull__coupler__mod_1_1coupler__components__type.html#a10162a8a029cc88b38ca87161d32666e',1,'full_coupler_mod::coupler_components_type::get_component()'],['../namespacefull__coupler__mod.html#aab400c752e6c3c24deccaaccb9e14824',1,'full_coupler_mod::get_component()']]], - ['get_5fcomponents_5fobj',['get_components_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a4b6a084b36f3620a3d318548051683da',1,'full_coupler_mod::coupler_chksum_type::get_components_obj()'],['../namespacefull__coupler__mod.html#a1783033373f9ce4428522ecf8faf57f1',1,'full_coupler_mod::get_components_obj()']]], - ['get_5fcoupler_5fchksums',['get_coupler_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a3459d6bcb71439fefb2101f9d61ae876',1,'full_coupler_mod::coupler_chksum_type::get_coupler_chksums()'],['../namespacefull__coupler__mod.html#a0f4c20f64b8c9bc86f87b65430177e0f',1,'full_coupler_mod::get_coupler_chksums()']]], - ['get_5focean_5fchksums',['get_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a8d6b7a5128df28f67f94fbf5c9c22b28',1,'full_coupler_mod::coupler_chksum_type::get_ocean_chksums()'],['../namespacefull__coupler__mod.html#a50e8820366ee023111794387c3b5e7f3',1,'full_coupler_mod::get_ocean_chksums()']]], - ['get_5fslow_5fice_5fchksums',['get_slow_ice_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a745b72ab4eb3866614d86950438241f4',1,'full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums()'],['../namespacefull__coupler__mod.html#a6a8725c4efea803a26f6295adf5aa37a',1,'full_coupler_mod::get_slow_ice_chksums()']]], - ['glat',['glat',['../structice__model__mod_1_1ice__data__type.html#ae4c9474f058a55f93e5b105f25d2528b',1,'ice_model_mod::ice_data_type']]], - ['glat_5fbnd',['glat_bnd',['../structice__model__mod_1_1ice__data__type.html#a8260e71b9be3596e7114eaf50230b702',1,'ice_model_mod::ice_data_type']]], - ['glon',['glon',['../structice__model__mod_1_1ice__data__type.html#ac8053e87a05b5f99e3d2cb143a2366eb',1,'ice_model_mod::ice_data_type']]], - ['glon_5fbnd',['glon_bnd',['../structice__model__mod_1_1ice__data__type.html#a58d7dbe251c07a3cedfce9a0c4226b34',1,'ice_model_mod::ice_data_type']]], - ['gmask',['gmask',['../structice__model__mod_1_1ice__data__type.html#a6e1e34811a821de51ac334b32c07b76f',1,'ice_model_mod::ice_data_type']]], - ['gust_5fconst',['gust_const',['../namespacesurface__flux__mod.html#a9853d355943632ed31de22c32d34a196',1,'surface_flux_mod']]], - ['gust_5fmin',['gust_min',['../namespacesurface__flux__mod.html#a8562814e75fa9527bb9b50ba7ace548b',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html deleted file mode 100644 index 88acd946..00000000 --- a/docs/html/search/all_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js deleted file mode 100644 index 0abb8861..00000000 --- a/docs/html/search/all_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['heat_5fcapacity_5focean',['heat_capacity_ocean',['../namespaceice__model__mod.html#a52aca51b46bce56cf693d9e3786a2d0b',1,'ice_model_mod']]], - ['hlars',['hlars',['../namespacesurface__flux__mod.html#a6322863889ffbe01bba7edbe650d6952',1,'surface_flux_mod']]], - ['hours',['hours',['../namespacefull__coupler__mod.html#a0ac62a1ec1db940ecdbe47abdbb3e708',1,'full_coupler_mod']]] -]; diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html deleted file mode 100644 index b74d5fd8..00000000 --- a/docs/html/search/all_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js deleted file mode 100644 index 90595ddc..00000000 --- a/docs/html/search/all_8.js +++ /dev/null @@ -1,128 +0,0 @@ -var searchData= -[ - ['ice',['ice',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#ac1a8724b54f20f3bf0684dba8fadc5d4',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::ice()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a48075137a8491b3de7ac690b21573d3b',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a42c9994f342ece061d297854e712cf09',1,'full_coupler_mod::coupler_components_type::ice()']]], - ['ice_5fdata_5ftype',['ice_data_type',['../structice__model__mod_1_1ice__data__type.html',1,'ice_model_mod']]], - ['ice_5fmask',['ice_mask',['../structice__model__mod_1_1ice__data__type.html#abb15bfd3d7483a4c6b18708e38622a9a',1,'ice_model_mod::ice_data_type']]], - ['ice_5fmethod',['ice_method',['../namespaceice__model__mod.html#a5e327ded7973d12fca26ee88ce90237c',1,'ice_model_mod']]], - ['ice_5fmodel_2ef90',['ice_model.F90',['../ice__model_8_f90.html',1,'']]], - ['ice_5fmodel_5fend',['ice_model_end',['../namespaceice__model__mod.html#a64ce3059a7824d9f2efc7b9f6047adec',1,'ice_model_mod']]], - ['ice_5fmodel_5finit',['ice_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1e316b944a9ba93a642d980ab0961bc8',1,'full_coupler_mod::coupler_clock_type::ice_model_init()'],['../namespaceice__model__mod.html#aa334350190e4d103f2b7c9b5b860ce0b',1,'ice_model_mod::ice_model_init()']]], - ['ice_5fmodel_5fmod',['ice_model_mod',['../namespaceice__model__mod.html',1,'']]], - ['ice_5fnpes',['ice_npes',['../namespacefull__coupler__mod.html#ad05b147d644b53ac6be5c56a85e80105',1,'full_coupler_mod']]], - ['ice_5focean_5fboundary',['ice_ocean_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#afd3de655114a2a4bb651f450d985724a',1,'full_coupler_mod::coupler_components_type']]], - ['ice_5focean_5fflux_5fexchange_2ef90',['ice_ocean_flux_exchange.F90',['../ice__ocean__flux__exchange_8_f90.html',1,'']]], - ['ice_5focean_5fflux_5fexchange_5finit',['ice_ocean_flux_exchange_init',['../namespaceice__ocean__flux__exchange__mod.html#a63be7a22389a38bfd7f7e8aafc2f81d3',1,'ice_ocean_flux_exchange_mod']]], - ['ice_5focean_5fflux_5fexchange_5fmod',['ice_ocean_flux_exchange_mod',['../namespaceice__ocean__flux__exchange__mod.html',1,'']]], - ['ice_5fregister_5frestart',['ice_register_restart',['../namespaceice__model__mod.html#a1c9b13ea971d09e2047d6025b7f112c5',1,'ice_model_mod']]], - ['ico2',['ico2',['../namespaceatm__land__ice__flux__exchange__mod.html#aaa5b59437ded633e8126dce056668b39',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5falbedo',['id_albedo',['../namespaceflux__exchange__mod.html#a15ea2ee065543703a1cea729eaa31f03',1,'flux_exchange_mod']]], - ['id_5falbedo_5fnir_5fdif',['id_albedo_nir_dif',['../namespaceflux__exchange__mod.html#a75e5d42b6aebc4f7dca8f38e3043d371',1,'flux_exchange_mod']]], - ['id_5falbedo_5fnir_5fdir',['id_albedo_nir_dir',['../namespaceflux__exchange__mod.html#a8a49ff3c234a55d9ad1fe7ed39122c35',1,'flux_exchange_mod']]], - ['id_5falbedo_5fvis_5fdif',['id_albedo_vis_dif',['../namespaceflux__exchange__mod.html#ae528350ad734a91157e635d611cc54b7',1,'flux_exchange_mod']]], - ['id_5falbedo_5fvis_5fdir',['id_albedo_vis_dir',['../namespaceflux__exchange__mod.html#a41fa678e5738fb09ebf2bf3707ed8312',1,'flux_exchange_mod']]], - ['id_5fb_5fstar',['id_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#ad67fe3e50cce306c7e0f750cbeb4a8b8',1,'atm_land_ice_flux_exchange_mod::id_b_star()'],['../namespaceflux__exchange__mod.html#a71e9c56b65499310582161139e863074',1,'flux_exchange_mod::id_b_star()']]], - ['id_5fco2_5fatm_5fdvmr',['id_co2_atm_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f117a52b85447649ab2611b915a406a',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fco2_5fbot',['id_co2_bot',['../namespaceatm__land__ice__flux__exchange__mod.html#abe4744b6ee8cc8e236be33b11254b857',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fco2_5fflux_5fpcair_5fatm',['id_co2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a24abe80c13032b56cb0127ef9fdbf801',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fco2_5fsurf_5fdvmr',['id_co2_surf_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a35ba5f517eb5645e5b4cf86d4ba72017',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fdel_5fh',['id_del_h',['../namespaceatm__land__ice__flux__exchange__mod.html#ad10f7e71514a2a732c1caff77cb96223',1,'atm_land_ice_flux_exchange_mod::id_del_h()'],['../namespaceflux__exchange__mod.html#ac70233f1c81d8583a6568077f91ccd52',1,'flux_exchange_mod::id_del_h()']]], - ['id_5fdel_5fm',['id_del_m',['../namespaceatm__land__ice__flux__exchange__mod.html#ade5a7d5ba4a4438a11355b302deff6d7',1,'atm_land_ice_flux_exchange_mod::id_del_m()'],['../namespaceflux__exchange__mod.html#a6901c7cd4e2848395f509a6abb46556a',1,'flux_exchange_mod::id_del_m()']]], - ['id_5fdel_5fq',['id_del_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a1308cfc339de1da97984284e9f9b24d8',1,'atm_land_ice_flux_exchange_mod::id_del_q()'],['../namespaceflux__exchange__mod.html#a8c9ce600b074f59620a578bc5d52c0c0',1,'flux_exchange_mod::id_del_q()']]], - ['id_5fdrag_5fheat',['id_drag_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a31719c7fb16b0dfb1c4d55b3efc31dea',1,'atm_land_ice_flux_exchange_mod::id_drag_heat()'],['../namespaceflux__exchange__mod.html#af5fd6664ced6089e4233d6e06d3e8aef',1,'flux_exchange_mod::id_drag_heat()']]], - ['id_5fdrag_5fmoist',['id_drag_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4c50286c97c254d06a959ba05f8dc54d',1,'atm_land_ice_flux_exchange_mod::id_drag_moist()'],['../namespaceflux__exchange__mod.html#ad6e99e3056f002fd30f99aa6192ebfd9',1,'flux_exchange_mod::id_drag_moist()']]], - ['id_5fdrag_5fmom',['id_drag_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#aecaecec0461747750aa7266f0f696f5d',1,'atm_land_ice_flux_exchange_mod::id_drag_mom()'],['../namespaceflux__exchange__mod.html#a920c704083ca9a0ae4df3f9470f75187',1,'flux_exchange_mod::id_drag_mom()']]], - ['id_5fevspsbl',['id_evspsbl',['../namespaceatm__land__ice__flux__exchange__mod.html#acd81f5188978df7ca167f58a63ce3b82',1,'atm_land_ice_flux_exchange_mod::id_evspsbl()'],['../namespaceflux__exchange__mod.html#aaacf35d1333efd04067972a8e15c5650',1,'flux_exchange_mod::id_evspsbl()']]], - ['id_5fevspsbl_5fg',['id_evspsbl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a315d7887dcb60530fec5af2fd6c232',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fgust',['id_gust',['../namespaceatm__land__ice__flux__exchange__mod.html#acea0f8f56aca9a40ee3d49f0ec71484f',1,'atm_land_ice_flux_exchange_mod::id_gust()'],['../namespaceflux__exchange__mod.html#ab351f867a6e2d370bce6b3a3a83d1e29',1,'flux_exchange_mod::id_gust()']]], - ['id_5fheight10m',['id_height10m',['../namespaceatm__land__ice__flux__exchange__mod.html#a94f9ecdff8925fd4a8d81902274c25f6',1,'atm_land_ice_flux_exchange_mod::id_height10m()'],['../namespaceflux__exchange__mod.html#ac769000a131617036cc85dd9eb61f431',1,'flux_exchange_mod::id_height10m()']]], - ['id_5fheight2m',['id_height2m',['../namespaceatm__land__ice__flux__exchange__mod.html#a725269d3ce9993c47458553c93c87fc8',1,'atm_land_ice_flux_exchange_mod::id_height2m()'],['../namespaceflux__exchange__mod.html#a4ec0c8f5928f2b7d672d8c2b3bad1aeb',1,'flux_exchange_mod::id_height2m()']]], - ['id_5fhfls',['id_hfls',['../namespaceatm__land__ice__flux__exchange__mod.html#a21634392fb749504bb491b63cb709a1b',1,'atm_land_ice_flux_exchange_mod::id_hfls()'],['../namespaceflux__exchange__mod.html#a110df167d79e3e96ebe3e0d5713bed32',1,'flux_exchange_mod::id_hfls()']]], - ['id_5fhfls_5fg',['id_hfls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#aa678b45e9a43a0fd9d834746c792c516',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fhfss',['id_hfss',['../namespaceatm__land__ice__flux__exchange__mod.html#ad953111f0333dad0442a995705b8c46a',1,'atm_land_ice_flux_exchange_mod::id_hfss()'],['../namespaceflux__exchange__mod.html#a600231bdd606fbfa02d1760b981942f1',1,'flux_exchange_mod::id_hfss()']]], - ['id_5fhurs',['id_hurs',['../namespaceatm__land__ice__flux__exchange__mod.html#a68bfd465d951a65d6141047172a92488',1,'atm_land_ice_flux_exchange_mod::id_hurs()'],['../namespaceflux__exchange__mod.html#a7a4ad8765b8c543e740377def47bb6e6',1,'flux_exchange_mod::id_hurs()']]], - ['id_5fhuss',['id_huss',['../namespaceatm__land__ice__flux__exchange__mod.html#a5944abb0dd9dce2ae32c66c1bcd59bff',1,'atm_land_ice_flux_exchange_mod::id_huss()'],['../namespaceflux__exchange__mod.html#ae187f4114a25b952f1430db74c700b2c',1,'flux_exchange_mod::id_huss()']]], - ['id_5fhusslut_5fland',['id_husslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5a13546bf48109d63d08ca6e81a8298',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fice_5fmask',['id_ice_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#a08c7a67df8fbfdeb95f0b6de7da4b7a2',1,'atm_land_ice_flux_exchange_mod::id_ice_mask()'],['../namespaceflux__exchange__mod.html#a7491683ec01c03efff8da897b1a15cbb',1,'flux_exchange_mod::id_ice_mask()']]], - ['id_5fland_5fmask',['id_land_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#aa1777ab543636038ecaefc4656cdc91b',1,'atm_land_ice_flux_exchange_mod::id_land_mask()'],['../namespaceflux__exchange__mod.html#af93947881e267229684f12281ce0b700',1,'flux_exchange_mod::id_land_mask()']]], - ['id_5fo2_5fflux_5fpcair_5fatm',['id_o2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adeb499100d57339308ae4b676aeeaa93',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fp_5fatm',['id_p_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#af8a1447d56d28335055d81152496f7e8',1,'atm_land_ice_flux_exchange_mod::id_p_atm()'],['../namespaceflux__exchange__mod.html#a3c25e7f8bd1fa9d3b650e20671f1eb78',1,'flux_exchange_mod::id_p_atm()']]], - ['id_5fpsl',['id_psl',['../namespaceatm__land__ice__flux__exchange__mod.html#ab940b2bc9ff8b4339233507550d4a856',1,'atm_land_ice_flux_exchange_mod::id_psl()'],['../namespaceflux__exchange__mod.html#afb4061b5677fe090528f0a991abade69',1,'flux_exchange_mod::id_psl()']]], - ['id_5fq_5fatm',['id_q_atm',['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod']]], - ['id_5fq_5fflux',['id_q_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a1ed968c0f36351d58e7a035b37d01492',1,'atm_land_ice_flux_exchange_mod::id_q_flux()'],['../namespaceflux__exchange__mod.html#a8d635e999ae24402dd99af0657d706f9',1,'flux_exchange_mod::id_q_flux()']]], - ['id_5fq_5fflux_5fland',['id_q_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ab7c212b94ae379003d7dfed66892d059',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fq_5fref',['id_q_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a035a0187d04ed47f6b373ba207be09c9',1,'atm_land_ice_flux_exchange_mod::id_q_ref()'],['../namespaceflux__exchange__mod.html#a9b49a9b72bfb917602bf46899bbe3524',1,'flux_exchange_mod::id_q_ref()']]], - ['id_5fq_5fref_5fland',['id_q_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#af43c49c9a0d6969182207632bfc8e3bc',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fq_5fstar',['id_q_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a2b4c714ab247af5b460ed9255669c018',1,'atm_land_ice_flux_exchange_mod::id_q_star()'],['../namespaceflux__exchange__mod.html#ae58f4cc598d0dfc185b8dd9717ee5a2b',1,'flux_exchange_mod::id_q_star()']]], - ['id_5fq_5fsurf',['id_q_surf',['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod']]], - ['id_5fr_5fflux',['id_r_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a082d4699eda42a0277b53b8d3b40b6',1,'atm_land_ice_flux_exchange_mod::id_r_flux()'],['../namespaceflux__exchange__mod.html#ab6d4c349f5231beb4e2f116f2f7a844d',1,'flux_exchange_mod::id_r_flux()']]], - ['id_5frh_5fref',['id_rh_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aa78a8745d3bd1c15c23ea56368a94f2f',1,'atm_land_ice_flux_exchange_mod::id_rh_ref()'],['../namespaceflux__exchange__mod.html#af2b89e05edbf76edca8d8b7056269ef8',1,'flux_exchange_mod::id_rh_ref()']]], - ['id_5frh_5fref_5fcmip',['id_rh_ref_cmip',['../namespaceatm__land__ice__flux__exchange__mod.html#ab3af14f2a483c630a814faa30860c2ea',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frh_5fref_5fland',['id_rh_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a00cbf5e8a16515a56470086456d55c2e',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frhs',['id_rhs',['../namespaceatm__land__ice__flux__exchange__mod.html#a27936d339a3e415b216d6035661892a1',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frls_5fg',['id_rls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#abb05e6ae4581739009fb99a559547aa4',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frough_5fheat',['id_rough_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a53351de906d9937f58c947f0cefbe386',1,'atm_land_ice_flux_exchange_mod::id_rough_heat()'],['../namespaceflux__exchange__mod.html#a55b1524c31defe007752c0f6fdf7e8c7',1,'flux_exchange_mod::id_rough_heat()']]], - ['id_5frough_5fmoist',['id_rough_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4e8b49a2e77ff64c80bb3fad86a01a2d',1,'atm_land_ice_flux_exchange_mod::id_rough_moist()'],['../namespaceflux__exchange__mod.html#a2195dd29178389a35f5c6480e86c2284',1,'flux_exchange_mod::id_rough_moist()']]], - ['id_5frough_5fmom',['id_rough_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a72cf1a3badd620dbad6d518c0557288b',1,'atm_land_ice_flux_exchange_mod::id_rough_mom()'],['../namespaceflux__exchange__mod.html#a7993f2a7fa1177c8fa368a2ef3fb4202',1,'flux_exchange_mod::id_rough_mom()']]], - ['id_5frough_5fscale',['id_rough_scale',['../namespaceatm__land__ice__flux__exchange__mod.html#a574ec1820b8fa73246b4d22a8d8463e8',1,'atm_land_ice_flux_exchange_mod::id_rough_scale()'],['../namespaceflux__exchange__mod.html#a5b6579ddcab9c2d5a2d91f77044d7993',1,'flux_exchange_mod::id_rough_scale()']]], - ['id_5fsfcwind',['id_sfcwind',['../namespaceatm__land__ice__flux__exchange__mod.html#abd9c7a5f313f40f3081861bfaf73920a',1,'atm_land_ice_flux_exchange_mod::id_sfcwind()'],['../namespaceflux__exchange__mod.html#a62351e257923487b8b0b50965bd7bfff',1,'flux_exchange_mod::id_sfcwind()']]], - ['id_5fsftlf',['id_sftlf',['../namespaceatm__land__ice__flux__exchange__mod.html#a18eb844975de5e7b17c3567a618c4bdd',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fsic',['id_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#a5bdaa4cffa5cf0b9610310f2cf5e24c2',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fslp',['id_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#a886c3aaadd68115ac00fbbca174a0330',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ft_5fatm',['id_t_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adf91d25ca4f1262291c52a6952587518',1,'atm_land_ice_flux_exchange_mod::id_t_atm()'],['../namespaceflux__exchange__mod.html#a7114bbe87d459e9b24ce483beae56faa',1,'flux_exchange_mod::id_t_atm()']]], - ['id_5ft_5fca',['id_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a188de7203c962fd3586ef6bd72cec660',1,'atm_land_ice_flux_exchange_mod::id_t_ca()'],['../namespaceflux__exchange__mod.html#a8a6c5aa71e364d4c9c5979431c6378d6',1,'flux_exchange_mod::id_t_ca()']]], - ['id_5ft_5fflux',['id_t_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad3158d6930465374ebb5efc909ed71ae',1,'atm_land_ice_flux_exchange_mod::id_t_flux()'],['../namespaceflux__exchange__mod.html#ae8045e9b24c1c27a4b7db7664ef3fab8',1,'flux_exchange_mod::id_t_flux()']]], - ['id_5ft_5focean',['id_t_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#ae2d24744019fc0a2a62bf54c7bd7eb65',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ft_5fref',['id_t_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aca247d952550b7e796118645c0b33c47',1,'atm_land_ice_flux_exchange_mod::id_t_ref()'],['../namespaceflux__exchange__mod.html#a373b24bf412bc3c5d9a8cd4b6612fc10',1,'flux_exchange_mod::id_t_ref()']]], - ['id_5ft_5fref_5fland',['id_t_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d4c4bebe361cdb91ecea469fe537709',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ft_5fsurf',['id_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1581ecfbe3e1d1c5db56f7d76c3a333c',1,'atm_land_ice_flux_exchange_mod::id_t_surf()'],['../namespaceflux__exchange__mod.html#a534a80a92ec907c62067588d8092673c',1,'flux_exchange_mod::id_t_surf()']]], - ['id_5ftas',['id_tas',['../namespaceatm__land__ice__flux__exchange__mod.html#a1cf5d543f00afb609610ced045795cad',1,'atm_land_ice_flux_exchange_mod::id_tas()'],['../namespaceflux__exchange__mod.html#aff3b37b816a504ea71154f7aba0c815c',1,'flux_exchange_mod::id_tas()']]], - ['id_5ftas_5fg',['id_tas_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ae8beb56ee8877254cc9e82da3afe3e61',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftasl_5fg',['id_tasl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a5034052a9896f89edd3cace96fb1867b',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftaslut_5fland',['id_taslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aa6c2e87381d5a69838a6dc8a5289050e',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftauu',['id_tauu',['../namespaceatm__land__ice__flux__exchange__mod.html#a6fd3108da364faf6334b326a55a58a66',1,'atm_land_ice_flux_exchange_mod::id_tauu()'],['../namespaceflux__exchange__mod.html#a7414d25c7b0fd48301902707a9345394',1,'flux_exchange_mod::id_tauu()']]], - ['id_5ftauv',['id_tauv',['../namespaceatm__land__ice__flux__exchange__mod.html#a07d14896bb047c09cda836282fae11d7',1,'atm_land_ice_flux_exchange_mod::id_tauv()'],['../namespaceflux__exchange__mod.html#ae0c72caf4b2a0d276d0a989c694cb49c',1,'flux_exchange_mod::id_tauv()']]], - ['id_5fthv_5fatm',['id_thv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a9253b6caaa179be8ffdb91d1ba5b47',1,'atm_land_ice_flux_exchange_mod::id_thv_atm()'],['../namespaceflux__exchange__mod.html#a8bea74f845722bd6e52014a3f4e643fd',1,'flux_exchange_mod::id_thv_atm()']]], - ['id_5fthv_5fsurf',['id_thv_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#ad2e7d89158887b68df2311f4b5b130d3',1,'atm_land_ice_flux_exchange_mod::id_thv_surf()'],['../namespaceflux__exchange__mod.html#aa11efd287049dbe74600ca2d2295f2b2',1,'flux_exchange_mod::id_thv_surf()']]], - ['id_5ftos',['id_tos',['../namespaceatm__land__ice__flux__exchange__mod.html#ac86517a5ddecd4e180464b6cb80f3c99',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fatm',['id_tr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a82f48a9a822083769bcd48b427c7a749',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fatm',['id_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3700e57c52d7ba6ff7ce17de7a52f885',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fatm_5fland',['id_tr_con_atm_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aaf13f42049e3c17ce32b99e263ed19ca',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fref',['id_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#ab67aebeab080001bcc0b7df4ba4ce31d',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fref_5fland',['id_tr_con_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b0582183221d7ffb1ba6e814cdd2bd5',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fflux',['id_tr_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ae4d870d3c8b829dfedf2d721c2ee86a9',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fflux_5fland',['id_tr_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a92413e2be778482c1557dc71b7dd6961',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fmol_5fflux',['id_tr_mol_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a66181f27aac0ec30c16ee64425623b57',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fmol_5fflux0',['id_tr_mol_flux0',['../namespaceatm__land__ice__flux__exchange__mod.html#af4c241a58e2d051452ea6ac2165b605c',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fmol_5fflux_5fland',['id_tr_mol_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a75dad27ee32489cb9f2d4075a92dfffd',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fref',['id_tr_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a70c3cec5c1122ca0574f74046683b098',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fref_5fland',['id_tr_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f83a35c04b7da9207d1495bd7146f06',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fsurf',['id_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a46e4ae0a6178db2e207ffcf331988480',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fts',['id_ts',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5e1ae03f135daaf040afa91f98e1e5e',1,'atm_land_ice_flux_exchange_mod::id_ts()'],['../namespaceflux__exchange__mod.html#a134d68c4787236f032c48a961d09092a',1,'flux_exchange_mod::id_ts()']]], - ['id_5fts_5fg',['id_ts_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ac65d88399ec0dfe03b94a8b9a7b86704',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftslsi',['id_tslsi',['../namespaceatm__land__ice__flux__exchange__mod.html#a6443ee7227f5bf53c818286e461ac2a9',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fu_5fatm',['id_u_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aeea07bd389a5d7d5d25b2ddd168470ca',1,'atm_land_ice_flux_exchange_mod::id_u_atm()'],['../namespaceflux__exchange__mod.html#abf03300672880ddaad472eea1faeb236',1,'flux_exchange_mod::id_u_atm()']]], - ['id_5fu_5fflux',['id_u_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a84f055774ddca433d9b90a59f20a50ef',1,'atm_land_ice_flux_exchange_mod::id_u_flux()'],['../namespaceflux__exchange__mod.html#af269baa55b882745d2f984d0f085beb9',1,'flux_exchange_mod::id_u_flux()']]], - ['id_5fu_5fref',['id_u_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a5aa53adef651f4cf2963f55ff5d8d87c',1,'atm_land_ice_flux_exchange_mod::id_u_ref()'],['../namespaceflux__exchange__mod.html#ad12cdd143dace24e7af1c884a46a3bfa',1,'flux_exchange_mod::id_u_ref()']]], - ['id_5fu_5fref_5fland',['id_u_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a68be019ceec5fef03392e9294bd375d7',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fu_5fstar',['id_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a04cb44e014dd62c2986151f5548f7db6',1,'atm_land_ice_flux_exchange_mod::id_u_star()'],['../namespaceflux__exchange__mod.html#adb2fb9af13a61e053c74c52351a0ba02',1,'flux_exchange_mod::id_u_star()']]], - ['id_5fuas',['id_uas',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a0903b6c77849c636e5bcb7a48cc7d8',1,'atm_land_ice_flux_exchange_mod::id_uas()'],['../namespaceflux__exchange__mod.html#a477616cc55f4ee5f3760c10888f3d374',1,'flux_exchange_mod::id_uas()']]], - ['id_5fv_5fatm',['id_v_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aef1643e965ae2f81eadd680b0d5f4131',1,'atm_land_ice_flux_exchange_mod::id_v_atm()'],['../namespaceflux__exchange__mod.html#a68a451013bb15a69769140c127a4f1ff',1,'flux_exchange_mod::id_v_atm()']]], - ['id_5fv_5fflux',['id_v_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9bcab79adb87b32242c758f4151912',1,'atm_land_ice_flux_exchange_mod::id_v_flux()'],['../namespaceflux__exchange__mod.html#a4be95982d13072bb6152ca72009d1acf',1,'flux_exchange_mod::id_v_flux()']]], - ['id_5fv_5fref',['id_v_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a18b22238a6a481b7b2a007db5effdeca',1,'atm_land_ice_flux_exchange_mod::id_v_ref()'],['../namespaceflux__exchange__mod.html#a923c6fcbe668932a0d13b41bf9341b4c',1,'flux_exchange_mod::id_v_ref()']]], - ['id_5fv_5fref_5fland',['id_v_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a457592f5e27b40421f6b8a6106b79a20',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fvas',['id_vas',['../namespaceatm__land__ice__flux__exchange__mod.html#a541cf261997ecd29d2ad0c634fbcb498',1,'atm_land_ice_flux_exchange_mod::id_vas()'],['../namespaceflux__exchange__mod.html#ae0b2e834866fd77ba28b5234cf3bc36d',1,'flux_exchange_mod::id_vas()']]], - ['id_5fwind',['id_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#a043764d83e681c67454ab8f073d5d6c1',1,'atm_land_ice_flux_exchange_mod::id_wind()'],['../namespaceflux__exchange__mod.html#ac6e943ac77ba00189aa554241e759ecc',1,'flux_exchange_mod::id_wind()']]], - ['id_5fwind_5fref',['id_wind_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a8e9f9f5b4c50074a1f6d5d6a31f32193',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fz_5fatm',['id_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aca2058bf928915842f05333644374d7c',1,'atm_land_ice_flux_exchange_mod::id_z_atm()'],['../namespaceflux__exchange__mod.html#abbf375285c9f5e2d5db969ca1fffd9df',1,'flux_exchange_mod::id_z_atm()']]], - ['ie',['ie',['../namespaceflux__exchange__mod.html#ad916086216cea5dd86d0a768e91277e5',1,'flux_exchange_mod::ie()'],['../namespaceice__model__mod.html#a52955f6a81d812155d158a6758b6b2cc',1,'ice_model_mod::ie()']]], - ['inh3',['inh3',['../namespaceatm__land__ice__flux__exchange__mod.html#a4fbbecb55a808875facb743fe7fc9c62',1,'atm_land_ice_flux_exchange_mod']]], - ['initialization',['initialization',['../structfull__coupler__mod_1_1coupler__clock__type.html#a887711f282582220de642e6197afe7d9',1,'full_coupler_mod::coupler_clock_type']]], - ['initialize_5fcoupler_5fchksum_5fobj',['initialize_coupler_chksum_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a789a89bb1c9ed2eabfe7fe263f8b3807',1,'full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj()'],['../namespacefull__coupler__mod.html#a39c2e7bc7b1b6ca828ccd22f231789d9',1,'full_coupler_mod::initialize_coupler_chksum_obj()']]], - ['initialize_5fcoupler_5fcomponents_5fobj',['initialize_coupler_components_obj',['../structfull__coupler__mod_1_1coupler__components__type.html#a7f4e7c72a18c47e395fa3b27b1b11d5a',1,'full_coupler_mod::coupler_components_type::initialize_coupler_components_obj()'],['../namespacefull__coupler__mod.html#a2e71183922fd4c76a5234823f44b1056',1,'full_coupler_mod::initialize_coupler_components_obj()']]], - ['intermediate_5frestart',['intermediate_restart',['../structfull__coupler__mod_1_1coupler__clock__type.html#a69ddb73e9b3290abafbbe86953aba052',1,'full_coupler_mod::coupler_clock_type']]], - ['interp_5fmethod',['interp_method',['../namespaceice__model__mod.html#ab4315c6a6b5b71f50aa993e9dc7fbf1a',1,'ice_model_mod']]], - ['is',['is',['../namespaceflux__exchange__mod.html#a5428375ca50056a30e12ee7dbc0c7dc2',1,'flux_exchange_mod::is()'],['../namespaceice__model__mod.html#a6844bbf75e350f32240178937b96d01a',1,'ice_model_mod::is()']]], - ['is_5flatlon',['is_latlon',['../namespaceice__model__mod.html#a00d134e60955bd3f498d98fa0d2a5941',1,'ice_model_mod']]], - ['isphum',['isphum',['../namespaceatm__land__ice__flux__exchange__mod.html#adfc9bfe512cf81e9cd3e334274123a53',1,'atm_land_ice_flux_exchange_mod::isphum()'],['../namespaceflux__exchange__mod.html#ae978fc7982a42ad1418142e430e2ce77',1,'flux_exchange_mod::isphum()']]], - ['iter_5fmonin_5fobukhov_5focean',['iter_monin_obukhov_ocean',['../namespacesurface__flux__mod.html#ae6fbd060ae720e05102effeb8b044d30',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html deleted file mode 100644 index 95e88dd2..00000000 --- a/docs/html/search/all_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js deleted file mode 100644 index debe5ef6..00000000 --- a/docs/html/search/all_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['je',['je',['../namespaceflux__exchange__mod.html#ae3abc6014e04e4b7f5ab30116aa7ae49',1,'flux_exchange_mod::je()'],['../namespaceice__model__mod.html#a98cf069c605d7abc02cbcb9db7260e4d',1,'ice_model_mod::je()']]], - ['js',['js',['../namespaceflux__exchange__mod.html#a257678c48a666cc865cd3afe1d7629d6',1,'flux_exchange_mod::js()'],['../namespaceice__model__mod.html#abff82cb395c9a49b31e9de0bdb7e9c7c',1,'ice_model_mod::js()']]] -]; diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html deleted file mode 100644 index 3148a8e5..00000000 --- a/docs/html/search/all_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js deleted file mode 100644 index f0469842..00000000 --- a/docs/html/search/all_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['kappa',['kappa',['../namespacesurface__flux__mod.html#a4d5ccaf8614f916474bf664f17c9f4c8',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html deleted file mode 100644 index f2a3c8d0..00000000 --- a/docs/html/search/all_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js deleted file mode 100644 index fa0478aa..00000000 --- a/docs/html/search/all_b.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['land',['land',['../structfull__coupler__mod_1_1coupler__components__type.html#ae4f68fd9975159d0ae93abf919a3d5b5',1,'full_coupler_mod::coupler_components_type']]], - ['land_5fice_5fatmos_5fboundary',['land_ice_atmos_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aca4da881da2617567eda2a8b23ebbada',1,'full_coupler_mod::coupler_components_type']]], - ['land_5fice_5fboundary',['land_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#a53a7034349f0b6b3c1f358be2eb1601d',1,'full_coupler_mod::coupler_components_type']]], - ['land_5fice_5fflux_5fexchange_2ef90',['land_ice_flux_exchange.F90',['../land__ice__flux__exchange_8_f90.html',1,'']]], - ['land_5fice_5fflux_5fexchange_5finit',['land_ice_flux_exchange_init',['../namespaceland__ice__flux__exchange__mod.html#a0a8f20fe83d26714842110feea23aea6',1,'land_ice_flux_exchange_mod']]], - ['land_5fice_5fflux_5fexchange_5fmod',['land_ice_flux_exchange_mod',['../namespaceland__ice__flux__exchange__mod.html',1,'']]], - ['land_5fmodel_5finit',['land_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#ace4fb2da56ef545733a9bfb933290a40',1,'full_coupler_mod::coupler_clock_type']]], - ['land_5fnpes',['land_npes',['../namespacefull__coupler__mod.html#a113f970d00f5a7c71b1398aa9fe4757c',1,'full_coupler_mod']]], - ['lat',['lat',['../structice__model__mod_1_1ice__data__type.html#a9cf4e9c9c1e486a5a799ee5cb1c48d43',1,'ice_model_mod::ice_data_type']]], - ['lat_5fbnd',['lat_bnd',['../structice__model__mod_1_1ice__data__type.html#a36c7325aeae1c7d0004fbc72964d2171',1,'ice_model_mod::ice_data_type']]], - ['latent',['latent',['../namespaceice__model__mod.html#a4a4c3667067f2919a730828c40ad68ea',1,'ice_model_mod']]], - ['latlon2xyz',['latlon2xyz',['../namespaceice__model__mod.html#ad9523243488d1422d212abc12a8c85b8',1,'ice_model_mod']]], - ['lnd',['lnd',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a904628deb2e0ba89bd85850cd843ab79',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a038bbdf0783f9e36ecf0a54c41bf3868',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd()']]], - ['lon',['lon',['../structice__model__mod_1_1ice__data__type.html#a3bdfb5cb70bc4018cfac10de236d3024',1,'ice_model_mod::ice_data_type']]], - ['lon_5fbnd',['lon_bnd',['../structice__model__mod_1_1ice__data__type.html#a0af0e531e34ee53f3a3d9eb8725d6a59',1,'ice_model_mod::ice_data_type']]], - ['lprec',['lprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6c8eb5d3a6acfaa10fd8b5a6d3b6add2',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['lw_5fflux',['lw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6560d3ff7f3d6ace395dab365adcd691',1,'ice_model_mod::atmos_ice_boundary_type']]] -]; diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html deleted file mode 100644 index 63768107..00000000 --- a/docs/html/search/all_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js deleted file mode 100644 index 5faf5ecc..00000000 --- a/docs/html/search/all_c.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['main',['main',['../structfull__coupler__mod_1_1coupler__clock__type.html#a394cd0ee0859684c4a23203039bcda0a',1,'full_coupler_mod::coupler_clock_type']]], - ['mask',['mask',['../structice__model__mod_1_1ice__data__type.html#ad4f7ac297bdae085c0454e08a09af5ea',1,'ice_model_mod::ice_data_type']]], - ['minutes',['minutes',['../namespacefull__coupler__mod.html#a9f5af682aa5da4ec7f798e696047b78b',1,'full_coupler_mod']]], - ['mixed_5flayer',['mixed_layer',['../namespaceice__model__mod.html#abc77bb043b104aeb0309a787d24219a0',1,'ice_model_mod']]], - ['mixed_5flayer_5focean',['mixed_layer_ocean',['../namespaceice__model__mod.html#adcb40b7a9c1a8531077d0f779e7ffebb',1,'ice_model_mod']]], - ['mod_5fname',['mod_name',['../namespaceatm__land__ice__flux__exchange__mod.html#a64ca82dba9df2806db81c86c57bd273d',1,'atm_land_ice_flux_exchange_mod::mod_name()'],['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a797fc4e4d632cba73982897b8b70563b',1,'atmos_ocean_dep_fluxes_calc_mod::mod_name()'],['../namespaceatmos__ocean__fluxes__calc__mod.html#ac9291db41140417d091d7d400d3764eb',1,'atmos_ocean_fluxes_calc_mod::mod_name()'],['../namespacefull__coupler__mod.html#acacf7a2f63b622973d2ea9911ec5b85c',1,'full_coupler_mod::mod_name()'],['../namespaceflux__exchange__mod.html#a303984a1be495e4592969bb87dc8bc64',1,'flux_exchange_mod::mod_name()']]], - ['module_5fis_5finitialized',['module_is_initialized',['../namespacesurface__flux__mod.html#a1c299d53b30a808f13cf0b0c5532041e',1,'surface_flux_mod::module_is_initialized()'],['../namespaceice__model__mod.html#aa482dd87dc4c239130f7b8f8f4e2aafd',1,'ice_model_mod::module_is_initialized()']]], - ['months',['months',['../namespacefull__coupler__mod.html#a37bda909017d0e8fc2b680c83e8b73df',1,'full_coupler_mod']]], - ['my_5fnblocks',['my_nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a22bfbb18d1071d20503054e5a56628c6',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html deleted file mode 100644 index cc52c79f..00000000 --- a/docs/html/search/all_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js deleted file mode 100644 index 089c200b..00000000 --- a/docs/html/search/all_d.js +++ /dev/null @@ -1,28 +0,0 @@ -var searchData= -[ - ['n_5fair',['n_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#acaeb4ccb8ce4e4fa5c470157420075de',1,'atmos_ocean_fluxes_calc_mod']]], - ['n_5fatm_5ftr',['n_atm_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#abe8dd7812b9263217a2cd03e3f6e5986',1,'atm_land_ice_flux_exchange_mod::n_atm_tr()'],['../namespaceflux__exchange__mod.html#afaa78870fb65620312ae0d411f17be2f',1,'flux_exchange_mod::n_atm_tr()']]], - ['n_5fatm_5ftr_5ftot',['n_atm_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#a5af2113231a04ffd8e8378903ad15d64',1,'atm_land_ice_flux_exchange_mod::n_atm_tr_tot()'],['../namespaceflux__exchange__mod.html#a5117150ab7aea4fe891cf9320710bab3',1,'flux_exchange_mod::n_atm_tr_tot()']]], - ['n_5fexch_5ftr',['n_exch_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#ae09127cdff74b500a41ad951257752d4',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5fgex_5fatm2lnd',['n_gex_atm2lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a07eee36a20b3ce665902d55c9ee42b6e',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5fgex_5flnd2atm',['n_gex_lnd2atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a9c8f2e09598dbd8d3180f4b13d05f4fc',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5flnd_5ftr',['n_lnd_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#acbcc6065e05775564c83054c42332e84',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5flnd_5ftr_5ftot',['n_lnd_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#aaefc6b7257ff1938f8fa671e0361579b',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5fxgrid_5frunoff',['n_xgrid_runoff',['../namespaceland__ice__flux__exchange__mod.html#a3faf3bf1354b5359565b04fd6e15812c',1,'land_ice_flux_exchange_mod']]], - ['n_5fxgrid_5fsfc',['n_xgrid_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec976f33bcf263db8ec930400f1b5ba6',1,'atm_land_ice_flux_exchange_mod']]], - ['nblocks',['nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b94aaeafe989d18f0e844a6a58018c7',1,'atm_land_ice_flux_exchange_mod::nblocks()'],['../namespaceflux__exchange__mod.html#a130755a7de1ad93566db2496df4f09a8',1,'flux_exchange_mod::nblocks()']]], - ['ncar_5focean_5fflux',['ncar_ocean_flux',['../namespacesurface__flux__mod.html#aa5809456b7f52a5f0a3cbbfee216d049',1,'surface_flux_mod']]], - ['ncar_5focean_5fflux_5fmultilevel',['ncar_ocean_flux_multilevel',['../namespacesurface__flux__mod.html#a7a001b64a7af7de49f02b3386b29207e',1,'surface_flux_mod']]], - ['ncar_5focean_5fflux_5forig',['ncar_ocean_flux_orig',['../namespacesurface__flux__mod.html#ab3f2c5dea16751feec4012925d936b42',1,'surface_flux_mod']]], - ['ncar_5focean_5ffluxes',['ncar_ocean_fluxes',['../namespacesurface__flux__mod.html#a4e53abf6229db4a6b3025f5333fe764d',1,'surface_flux_mod']]], - ['ncar_5focean_5ffluxes_5fmultilevel',['ncar_ocean_fluxes_multilevel',['../namespacesurface__flux__mod.html#a43e1175ff9bf4096208baf7053b2669c',1,'surface_flux_mod']]], - ['ni_5fatm',['ni_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3eca478a281245b2a1217b66917936b0',1,'atm_land_ice_flux_exchange_mod::ni_atm()'],['../namespaceflux__exchange__mod.html#a19ced8a2d78de1df319982dc8c9b2236',1,'flux_exchange_mod::ni_atm()']]], - ['niter_5fmonin_5fobukhov',['niter_monin_obukhov',['../namespacesurface__flux__mod.html#aedbfeff1dd91e58e9795a6c9d16d936a',1,'surface_flux_mod']]], - ['nj_5fatm',['nj_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f93e3452d718c2449d09cfee5174987',1,'atm_land_ice_flux_exchange_mod::nj_atm()'],['../namespaceflux__exchange__mod.html#af0530282de56c7247536aa084919fecc',1,'flux_exchange_mod::nj_atm()']]], - ['nk_5fice',['nk_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a4382a4653bce90fa50988dbf415ba7d9',1,'atm_land_ice_flux_exchange_mod']]], - ['no_5fneg_5fq',['no_neg_q',['../namespacesurface__flux__mod.html#a20a47247f850d8adec96fd50382ff353',1,'surface_flux_mod']]], - ['nxc_5fice',['nxc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a1a93322c5bc5013dead0189eb44cb92e',1,'atm_land_ice_flux_exchange_mod']]], - ['nxc_5flnd',['nxc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ab90bd2d918553aa753e88bc71217d1aa',1,'atm_land_ice_flux_exchange_mod']]], - ['nyc_5fice',['nyc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9d3bc11f1a73d8a019470b1769a156',1,'atm_land_ice_flux_exchange_mod']]], - ['nyc_5flnd',['nyc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ac39eb3c6c82add4a1d0d7e2857c5b431',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html deleted file mode 100644 index 85b39bd4..00000000 --- a/docs/html/search/all_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js deleted file mode 100644 index ed212d3a..00000000 --- a/docs/html/search/all_e.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['ocean',['ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3a95715c24b8e5542888fe9a81aca7d1',1,'full_coupler_mod::coupler_clock_type::ocean()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a74f9b44545af10ad7ad03a348898904a',1,'full_coupler_mod::coupler_components_type::ocean()']]], - ['ocean_5fice_5fboundary',['ocean_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#ad4d3a8c1b24f4086f2bfb520c0c0318c',1,'full_coupler_mod::coupler_components_type']]], - ['ocean_5fmodel_5finit',['ocean_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a32806294f0cd7e55f1e6d43af344d256',1,'full_coupler_mod::coupler_clock_type']]], - ['ocean_5fnpes',['ocean_npes',['../namespacefull__coupler__mod.html#accc0041353ee69933a1c006634b73942',1,'full_coupler_mod']]], - ['ocean_5fnthreads',['ocean_nthreads',['../namespacefull__coupler__mod.html#ae25bda27d23bc9ebe366a56d7e78c333',1,'full_coupler_mod']]], - ['old_5fdtaudv',['old_dtaudv',['../namespacesurface__flux__mod.html#a4004ece732cedb0fd110aacdb208ff87',1,'surface_flux_mod']]], - ['or',['or',['../namespaceice__model__mod.html#a98e632790d8e25d7f46222f6387ec42e',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/all_f.html b/docs/html/search/all_f.html deleted file mode 100644 index 89fa15a6..00000000 --- a/docs/html/search/all_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js deleted file mode 100644 index 70e56eae..00000000 --- a/docs/html/search/all_f.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['p_5fair',['p_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a9c7ab4de0daccbdd49f8851ea12c1c5c',1,'atmos_ocean_fluxes_calc_mod']]], - ['p_5fsurf',['p_surf',['../namespaceflux__exchange__mod.html#af050af83a95afbfc896f4861ba4cdd1d',1,'flux_exchange_mod']]], - ['partition_5ffprec_5ffrom_5flprec',['partition_fprec_from_lprec',['../namespaceatm__land__ice__flux__exchange__mod.html#a514ebadfb8dcb7ae7bf696f6e3eae11a',1,'atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec()'],['../namespaceflux__exchange__mod.html#a2a3ce00fb63574459609d6b3ad334acb',1,'flux_exchange_mod::partition_fprec_from_lprec()']]], - ['prognostic_5fice',['prognostic_ice',['../namespaceice__model__mod.html#ac0071f9ca4cdf3279ccdc918bd77d07e',1,'ice_model_mod']]], - ['prognostic_5fsst',['prognostic_sst',['../namespaceice__model__mod.html#ad5c9ca5a5a2d863e59ab02d49a12e8e1',1,'ice_model_mod']]], - ['put_5flogical_5fto_5freal',['put_logical_to_real',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html',1,'atm_land_ice_flux_exchange_mod']]], - ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg()']]], - ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug()']]] -]; diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html deleted file mode 100644 index e935fdf7..00000000 --- a/docs/html/search/classes_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js deleted file mode 100644 index 02bcb053..00000000 --- a/docs/html/search/classes_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['atmos_5fice_5fboundary_5ftype',['atmos_ice_boundary_type',['../structice__model__mod_1_1atmos__ice__boundary__type.html',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/classes_1.html b/docs/html/search/classes_1.html deleted file mode 100644 index 3df6e80a..00000000 --- a/docs/html/search/classes_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js deleted file mode 100644 index 6496d25c..00000000 --- a/docs/html/search/classes_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['coupler_5fchksum_5ftype',['coupler_chksum_type',['../structfull__coupler__mod_1_1coupler__chksum__type.html',1,'full_coupler_mod']]], - ['coupler_5fclock_5ftype',['coupler_clock_type',['../structfull__coupler__mod_1_1coupler__clock__type.html',1,'full_coupler_mod']]], - ['coupler_5fcomponents_5ftype',['coupler_components_type',['../structfull__coupler__mod_1_1coupler__components__type.html',1,'full_coupler_mod']]] -]; diff --git a/docs/html/search/classes_2.html b/docs/html/search/classes_2.html deleted file mode 100644 index 028694ff..00000000 --- a/docs/html/search/classes_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js deleted file mode 100644 index f6cdbd11..00000000 --- a/docs/html/search/classes_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['ice_5fdata_5ftype',['ice_data_type',['../structice__model__mod_1_1ice__data__type.html',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/classes_3.html b/docs/html/search/classes_3.html deleted file mode 100644 index 2b1abe38..00000000 --- a/docs/html/search/classes_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js deleted file mode 100644 index 7ccbfca6..00000000 --- a/docs/html/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['put_5flogical_5fto_5freal',['put_logical_to_real',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/classes_4.html b/docs/html/search/classes_4.html deleted file mode 100644 index 87352149..00000000 --- a/docs/html/search/classes_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js deleted file mode 100644 index 7b8e527d..00000000 --- a/docs/html/search/classes_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['surface_5fflux',['surface_flux',['../interfacesurface__flux__mod_1_1surface__flux.html',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/classes_5.html b/docs/html/search/classes_5.html deleted file mode 100644 index ba8b1c69..00000000 --- a/docs/html/search/classes_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/classes_5.js b/docs/html/search/classes_5.js deleted file mode 100644 index 74d48702..00000000 --- a/docs/html/search/classes_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['tracer_5fexch_5find_5ftype',['tracer_exch_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]], - ['tracer_5find_5ftype',['tracer_ind_type',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/close.png b/docs/html/search/close.png deleted file mode 100644 index 9342d3dfeea7b7c4ee610987e717804b5a42ceb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN diff --git a/docs/html/search/defines_0.html b/docs/html/search/defines_0.html deleted file mode 100644 index 3bffafa9..00000000 --- a/docs/html/search/defines_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/defines_0.js b/docs/html/search/defines_0.js deleted file mode 100644 index 29b57d83..00000000 --- a/docs/html/search/defines_0.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['fms_5fdata_5foverride_5f',['FMS_DATA_OVERRIDE_',['../atm__land__ice__flux__exchange_8_f90.html#aef6ab106d6887299b126582343d93183',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fdiag_5fregister_5ffield_5f',['FMS_DIAG_REGISTER_FIELD_',['../atm__land__ice__flux__exchange_8_f90.html#a9751bd6d519ab8e938ed064498813ba0',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fget_5ffrom_5fxgrid_5f',['FMS_XGRID_GET_FROM_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a0f01948491438713a940bf9e3f6b29ad',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fput_5fto_5fxgrid_5f',['FMS_XGRID_PUT_TO_XGRID_',['../atm__land__ice__flux__exchange_8_f90.html#a98ddae76989225533f851aeab5cd88d0',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fset_5ffrac_5farea_5f',['FMS_XGRID_SET_FRAC_AREA_',['../atm__land__ice__flux__exchange_8_f90.html#a858c0b8673fd468a8b145032eec57bc8',1,'atm_land_ice_flux_exchange.F90']]], - ['fms_5fxgrid_5fstock_5fmove_5f',['FMS_XGRID_STOCK_MOVE_',['../atm__land__ice__flux__exchange_8_f90.html#a32a373f98074071708e69eae63f0c01e',1,'atm_land_ice_flux_exchange.F90']]] -]; diff --git a/docs/html/search/files_0.html b/docs/html/search/files_0.html deleted file mode 100644 index 49606c82..00000000 --- a/docs/html/search/files_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js deleted file mode 100644 index b1dd76f7..00000000 --- a/docs/html/search/files_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['atm_5fland_5fice_5fflux_5fexchange_2ef90',['atm_land_ice_flux_exchange.F90',['../atm__land__ice__flux__exchange_8_f90.html',1,'']]], - ['atmos_5focean_5fdep_5ffluxes_5fcalc_2ef90',['atmos_ocean_dep_fluxes_calc.F90',['../atmos__ocean__dep__fluxes__calc_8_f90.html',1,'']]], - ['atmos_5focean_5ffluxes_5fcalc_2ef90',['atmos_ocean_fluxes_calc.F90',['../atmos__ocean__fluxes__calc_8_f90.html',1,'']]] -]; diff --git a/docs/html/search/files_1.html b/docs/html/search/files_1.html deleted file mode 100644 index c8871748..00000000 --- a/docs/html/search/files_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js deleted file mode 100644 index ee8a073d..00000000 --- a/docs/html/search/files_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['coupler_5fmain_2ef90',['coupler_main.F90',['../full_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../_s_hi_e_l_d_2coupler__main_8_f90.html',1,'(Global Namespace)'],['../simple_2coupler__main_8_f90.html',1,'(Global Namespace)']]] -]; diff --git a/docs/html/search/files_2.html b/docs/html/search/files_2.html deleted file mode 100644 index 99bdf21c..00000000 --- a/docs/html/search/files_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js deleted file mode 100644 index 0355a604..00000000 --- a/docs/html/search/files_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['flux_5fexchange_2ef90',['flux_exchange.F90',['../full_2flux__exchange_8_f90.html',1,'(Global Namespace)'],['../simple_2flux__exchange_8_f90.html',1,'(Global Namespace)']]], - ['full_5fcoupler_5fmod_2ef90',['full_coupler_mod.F90',['../full__coupler__mod_8_f90.html',1,'']]] -]; diff --git a/docs/html/search/files_3.html b/docs/html/search/files_3.html deleted file mode 100644 index f8e543a8..00000000 --- a/docs/html/search/files_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/files_3.js b/docs/html/search/files_3.js deleted file mode 100644 index cf8cda09..00000000 --- a/docs/html/search/files_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['ice_5fmodel_2ef90',['ice_model.F90',['../ice__model_8_f90.html',1,'']]], - ['ice_5focean_5fflux_5fexchange_2ef90',['ice_ocean_flux_exchange.F90',['../ice__ocean__flux__exchange_8_f90.html',1,'']]] -]; diff --git a/docs/html/search/files_4.html b/docs/html/search/files_4.html deleted file mode 100644 index 2ebb46c7..00000000 --- a/docs/html/search/files_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/files_4.js b/docs/html/search/files_4.js deleted file mode 100644 index f21c4a77..00000000 --- a/docs/html/search/files_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['land_5fice_5fflux_5fexchange_2ef90',['land_ice_flux_exchange.F90',['../land__ice__flux__exchange_8_f90.html',1,'']]] -]; diff --git a/docs/html/search/files_5.html b/docs/html/search/files_5.html deleted file mode 100644 index 268b7eb5..00000000 --- a/docs/html/search/files_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/files_5.js b/docs/html/search/files_5.js deleted file mode 100644 index 631e7482..00000000 --- a/docs/html/search/files_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['surface_5fflux_2ef90',['surface_flux.F90',['../surface__flux_8_f90.html',1,'']]] -]; diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html deleted file mode 100644 index 0539c8ce..00000000 --- a/docs/html/search/functions_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js deleted file mode 100644 index 328d85c2..00000000 --- a/docs/html/search/functions_0.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['add_5fdomain_5fdimension_5fdata',['add_domain_dimension_data',['../namespacefull__coupler__mod.html#ad3685f6bd34e431206122bde9f327dc2',1,'full_coupler_mod::add_domain_dimension_data()'],['../namespaceice__model__mod.html#afd16954e39a95d394843584000c022e4',1,'ice_model_mod::add_domain_dimension_data()']]], - ['atm_5fland_5fice_5fflux_5fexchange_5finit',['atm_land_ice_flux_exchange_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ab8675556ecdbebfb8b3093fadbe11cde',1,'atm_land_ice_flux_exchange_mod']]], - ['atm_5fstock_5fintegrate',['atm_stock_integrate',['../namespaceatm__land__ice__flux__exchange__mod.html#ad11a70fa9758ae36a312504e589b3c1a',1,'atm_land_ice_flux_exchange_mod']]], - ['atmos_5focean_5fdep_5ffluxes_5fcalc',['atmos_ocean_dep_fluxes_calc',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a5880644207752e6a4873458a90f04cea',1,'atmos_ocean_dep_fluxes_calc_mod']]], - ['atmos_5focean_5ffluxes_5fcalc',['atmos_ocean_fluxes_calc',['../namespaceatmos__ocean__fluxes__calc__mod.html#acc10568af1ebdd92581183632c4e1f74',1,'atmos_ocean_fluxes_calc_mod']]] -]; diff --git a/docs/html/search/functions_1.html b/docs/html/search/functions_1.html deleted file mode 100644 index 4878b3d1..00000000 --- a/docs/html/search/functions_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js deleted file mode 100644 index 1ce39187..00000000 --- a/docs/html/search/functions_1.js +++ /dev/null @@ -1,42 +0,0 @@ -var searchData= -[ - ['calc_5fka',['calc_ka',['../namespaceatmos__ocean__fluxes__calc__mod.html#ae9cb64893466d91cc87e5502d37afa12',1,'atmos_ocean_fluxes_calc_mod']]], - ['calc_5fkl',['calc_kl',['../namespaceatmos__ocean__fluxes__calc__mod.html#a5f7e073d68f160bec215202c7e1d7abe',1,'atmos_ocean_fluxes_calc_mod']]], - ['calc_5fkw',['calc_kw',['../namespaceatmos__ocean__fluxes__calc__mod.html#abf318a12a94816f9a99ccd779e028e75',1,'atmos_ocean_fluxes_calc_mod']]], - ['check_5fatm_5fgrid',['check_atm_grid',['../namespaceflux__exchange__mod.html#a9b9500d8c86af3e964c1558bb7ae464e',1,'flux_exchange_mod']]], - ['check_5fflux_5fconservation',['check_flux_conservation',['../namespaceice__ocean__flux__exchange__mod.html#a82490086151d4ed5045fe1e9073163ba',1,'ice_ocean_flux_exchange_mod']]], - ['coupler_5fatmos_5ftracer_5fdriver_5fgather_5fdata',['coupler_atmos_tracer_driver_gather_data',['../namespacefull__coupler__mod.html#a5a028d46d98bc897bd6896fdb5755e96',1,'full_coupler_mod']]], - ['coupler_5fchksum',['coupler_chksum',['../simple_2coupler__main_8_f90.html#a84967079db4c81f7d8a653d5e37c484d',1,'coupler_main.F90']]], - ['coupler_5fend',['coupler_end',['../namespacefull__coupler__mod.html#a2ec9738b6ff3b36e2468bdf6be894dcd',1,'full_coupler_mod::coupler_end()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a9c12cf6c31eac7da0e73ab89e6cb57a7',1,'coupler_end: coupler_main.F90']]], - ['coupler_5fexchange_5ffast_5fto_5fslow_5fice',['coupler_exchange_fast_to_slow_ice',['../namespacefull__coupler__mod.html#adfa43bbc4b86cff9ebbf83c303c1536c',1,'full_coupler_mod']]], - ['coupler_5fexchange_5fslow_5fto_5ffast_5fice',['coupler_exchange_slow_to_fast_ice',['../namespacefull__coupler__mod.html#acc373b8c70ab51bcd1abd62a0f2cc458',1,'full_coupler_mod']]], - ['coupler_5fflux_5fatmos_5fto_5focean',['coupler_flux_atmos_to_ocean',['../namespacefull__coupler__mod.html#a5d6ec62cbf5b295aace24abd48724d72',1,'full_coupler_mod']]], - ['coupler_5fflux_5fcheck_5fstocks',['coupler_flux_check_stocks',['../namespacefull__coupler__mod.html#a0c78ac70ae6ce91467b7039912804e05',1,'full_coupler_mod']]], - ['coupler_5fflux_5fdown_5ffrom_5fatmos',['coupler_flux_down_from_atmos',['../namespacefull__coupler__mod.html#a2bbfad8acb27d074dcab777315e83020',1,'full_coupler_mod']]], - ['coupler_5fflux_5fice_5fto_5focean',['coupler_flux_ice_to_ocean',['../namespacefull__coupler__mod.html#a21ac2bd35b5e12e39409de231485fc49',1,'full_coupler_mod']]], - ['coupler_5fflux_5finit_5ffinish_5fstocks',['coupler_flux_init_finish_stocks',['../namespacefull__coupler__mod.html#aacd2b02808f6f249686b8dfda325a476',1,'full_coupler_mod']]], - ['coupler_5fflux_5fland_5fto_5fice',['coupler_flux_land_to_ice',['../namespacefull__coupler__mod.html#abf2778399410a6dc8bd900e06fb32c73',1,'full_coupler_mod']]], - ['coupler_5fflux_5focean_5fto_5fice',['coupler_flux_ocean_to_ice',['../namespacefull__coupler__mod.html#aea669a50f8bf186ab6563fc3a593727d',1,'full_coupler_mod']]], - ['coupler_5fflux_5fup_5fto_5fatmos',['coupler_flux_up_to_atmos',['../namespacefull__coupler__mod.html#a815b7cd5c923bcc6983455275e760562',1,'full_coupler_mod']]], - ['coupler_5fgenerate_5fsfc_5fxgrid',['coupler_generate_sfc_xgrid',['../namespacefull__coupler__mod.html#a5a6aad430601ef6236f0aef37ae7e8d9',1,'full_coupler_mod']]], - ['coupler_5finit',['coupler_init',['../namespacefull__coupler__mod.html#a492d05bed09bd21cfdfd552ad94a41a1',1,'full_coupler_mod::coupler_init()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#a99cb0cc3a4aa76c030ae442aea14a1ef',1,'coupler_init: coupler_main.F90']]], - ['coupler_5fintermediate_5frestart',['coupler_intermediate_restart',['../namespacefull__coupler__mod.html#a78e63fea8e51104d42b8165c1aca632f',1,'full_coupler_mod']]], - ['coupler_5fmain',['coupler_main',['../full_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90'],['../simple_2coupler__main_8_f90.html#ae6938ccf85d88f9b7127a81ce195bad2',1,'coupler_main: coupler_main.F90']]], - ['coupler_5frestart',['coupler_restart',['../namespacefull__coupler__mod.html#acdc143216f549f73b826f2dc16d8785d',1,'full_coupler_mod::coupler_restart()'],['../_s_hi_e_l_d_2coupler__main_8_f90.html#a1d53997072d4080194ed167495e1dc4e',1,'coupler_restart(): coupler_main.F90']]], - ['coupler_5fset_5fclock_5fids',['coupler_set_clock_ids',['../namespacefull__coupler__mod.html#af8e1c181167e62399ce506efc5d4466d',1,'full_coupler_mod']]], - ['coupler_5fset_5fice_5fsurface_5ffields',['coupler_set_ice_surface_fields',['../namespacefull__coupler__mod.html#abddb0d5b155dcae16de66f20ec7beb6b',1,'full_coupler_mod']]], - ['coupler_5fsfc_5fboundary_5flayer',['coupler_sfc_boundary_layer',['../namespacefull__coupler__mod.html#a229bd773fc74906d301d68606f1fa0ba',1,'full_coupler_mod']]], - ['coupler_5fsummarize_5ftimestep',['coupler_summarize_timestep',['../namespacefull__coupler__mod.html#ad43bd73adc9e5c3d58a36eb181f8ed49',1,'full_coupler_mod']]], - ['coupler_5funpack_5fland_5fice_5fboundary',['coupler_unpack_land_ice_boundary',['../namespacefull__coupler__mod.html#abaf548c80785bc86cdf6905e878beea2',1,'full_coupler_mod']]], - ['coupler_5funpack_5focean_5fice_5fboundary',['coupler_unpack_ocean_ice_boundary',['../namespacefull__coupler__mod.html#a03dfec6ce79bf87d70af81a67036d0d5',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fdown',['coupler_update_atmos_model_down',['../namespacefull__coupler__mod.html#a12b401d180e4ef450900bf99326cf7b1',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fdynamics',['coupler_update_atmos_model_dynamics',['../namespacefull__coupler__mod.html#a9870c4ebd0509e3a451918312aeab9bc',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fradiation',['coupler_update_atmos_model_radiation',['../namespacefull__coupler__mod.html#a53e78be022cbfa2705d38c357862b299',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fstate',['coupler_update_atmos_model_state',['../namespacefull__coupler__mod.html#abcc0129feb720f653d1331b74bdcc83e',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fatmos_5fmodel_5fup',['coupler_update_atmos_model_up',['../namespacefull__coupler__mod.html#a6d261ed1082536075cf038512bfb554c',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fice_5fmodel_5ffast',['coupler_update_ice_model_fast',['../namespacefull__coupler__mod.html#a16ef5e434cc41e25acca7c13c914a7dd',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fice_5fmodel_5fslow_5fand_5fstocks',['coupler_update_ice_model_slow_and_stocks',['../namespacefull__coupler__mod.html#a99772f79049c6478c178ff5936cd96f5',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fland_5fmodel_5ffast',['coupler_update_land_model_fast',['../namespacefull__coupler__mod.html#ac362087e9af50b6210abceca68bc71b4',1,'full_coupler_mod']]], - ['coupler_5fupdate_5fland_5fmodel_5fslow',['coupler_update_land_model_slow',['../namespacefull__coupler__mod.html#a439064bbf2747a318875cd2658ee5687',1,'full_coupler_mod']]], - ['coupler_5fupdate_5focean_5fmodel',['coupler_update_ocean_model',['../namespacefull__coupler__mod.html#a2b178ae2d43ded30a97496633670b93a',1,'full_coupler_mod']]] -]; diff --git a/docs/html/search/functions_2.html b/docs/html/search/functions_2.html deleted file mode 100644 index 67d2a392..00000000 --- a/docs/html/search/functions_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js deleted file mode 100644 index 74c88b8e..00000000 --- a/docs/html/search/functions_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['d_5fair',['d_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a6a4a1330c1ee1043b30e4b86f462ec24',1,'atmos_ocean_fluxes_calc_mod']]], - ['diag_5ffield_5finit',['diag_field_init',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8a26116481dffeb2f5f2ac6444c64f5',1,'atm_land_ice_flux_exchange_mod::diag_field_init()'],['../namespaceflux__exchange__mod.html#ab9537fe935b63ea2cf7f9c8f895cb8e0',1,'flux_exchange_mod::diag_field_init()']]], - ['divide_5fby_5farea',['divide_by_area',['../namespaceatm__land__ice__flux__exchange__mod.html#a6dbcba7c48b5f085de6b33e9f05d6868',1,'atm_land_ice_flux_exchange_mod::divide_by_area()'],['../namespaceice__ocean__flux__exchange__mod.html#a1da352681654a7c70e1c929092357c76',1,'ice_ocean_flux_exchange_mod::divide_by_area()']]] -]; diff --git a/docs/html/search/functions_3.html b/docs/html/search/functions_3.html deleted file mode 100644 index 1f0eedb3..00000000 --- a/docs/html/search/functions_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js deleted file mode 100644 index 1779f9b2..00000000 --- a/docs/html/search/functions_3.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['flux_5fatmos_5fto_5focean',['flux_atmos_to_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b47968fcb9188a68db2b7b8e1ea7a0f',1,'atm_land_ice_flux_exchange_mod']]], - ['flux_5fcheck_5fstocks',['flux_check_stocks',['../namespaceflux__exchange__mod.html#a905b179ee9688d2feeef94f3417b25e5',1,'flux_exchange_mod']]], - ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#a377e367901950e4541859f65655b6f38',1,'atm_land_ice_flux_exchange_mod::flux_down_from_atmos()'],['../namespaceflux__exchange__mod.html#afe03028b95b28b886955e918dbdac585',1,'flux_exchange_mod::flux_down_from_atmos()']]], - ['flux_5fex_5farrays_5fdealloc',['flux_ex_arrays_dealloc',['../namespaceatm__land__ice__flux__exchange__mod.html#ac8716ce7e07543b081c151bd0b24d7d1',1,'atm_land_ice_flux_exchange_mod']]], - ['flux_5fexchange_5fend',['flux_exchange_end',['../namespaceflux__exchange__mod.html#a6485a12c7af1fed26ee7a8dac257a508',1,'flux_exchange_mod']]], - ['flux_5fexchange_5finit',['flux_exchange_init',['../namespaceflux__exchange__mod.html#aa0a4db6845eb6ba4aa2246e67c9bcc6b',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld)'],['../namespaceflux__exchange__mod.html#ab2e7b7db204609a177b55f5725e57976',1,'flux_exchange_mod::flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)']]], - ['flux_5fice_5fto_5focean',['flux_ice_to_ocean',['../namespaceice__ocean__flux__exchange__mod.html#afcc66b7731a985e1916e5ac4a303df37',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fice_5fto_5focean_5ffinish',['flux_ice_to_ocean_finish',['../namespaceice__ocean__flux__exchange__mod.html#a1f894795596097d716f953bbfdb9dc80',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fice_5fto_5focean_5fredistribute',['flux_ice_to_ocean_redistribute',['../namespaceice__ocean__flux__exchange__mod.html#a051fd38cfb62a7fa0b9093d39a3d1a94',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fice_5fto_5focean_5fstocks',['flux_ice_to_ocean_stocks',['../namespaceice__ocean__flux__exchange__mod.html#ac7d12dcdb5b25d4a1bb38935360cceab',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5finit_5fstocks',['flux_init_stocks',['../namespaceflux__exchange__mod.html#a8482ebe698f25da2d177b2508fa9d2b8',1,'flux_exchange_mod']]], - ['flux_5fland_5fto_5fice',['flux_land_to_ice',['../namespaceland__ice__flux__exchange__mod.html#a7430ed2b8895cbe33376aaa6315ea0da',1,'land_ice_flux_exchange_mod']]], - ['flux_5focean_5ffrom_5fice_5fstocks',['flux_ocean_from_ice_stocks',['../namespaceice__ocean__flux__exchange__mod.html#ac5daa11e6f312156be99d617a705bae8',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5focean_5fto_5fice',['flux_ocean_to_ice',['../namespaceice__ocean__flux__exchange__mod.html#a5270f15d181575b7559f4664afcd987a',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5focean_5fto_5fice_5ffinish',['flux_ocean_to_ice_finish',['../namespaceice__ocean__flux__exchange__mod.html#a2af0c159f5b00bd98d7f8339761df29e',1,'ice_ocean_flux_exchange_mod']]], - ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../namespaceatm__land__ice__flux__exchange__mod.html#a9ff1868e71257630777ac2d9c8b6180c',1,'atm_land_ice_flux_exchange_mod::flux_up_to_atmos()'],['../namespaceflux__exchange__mod.html#a1d11e5795efdb294286c17959719dbe9',1,'flux_exchange_mod::flux_up_to_atmos()']]] -]; diff --git a/docs/html/search/functions_4.html b/docs/html/search/functions_4.html deleted file mode 100644 index c5bf87a4..00000000 --- a/docs/html/search/functions_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js deleted file mode 100644 index 34c8ca8a..00000000 --- a/docs/html/search/functions_4.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['gas_5fexchange_5finit',['gas_exchange_init',['../namespaceflux__exchange__mod.html#a9d5d9cb2721d5b49e6dfbaefa89185f8',1,'flux_exchange_mod']]], - ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../namespaceatm__land__ice__flux__exchange__mod.html#ae90760b8fd57a82bc54db9ece86486ba',1,'atm_land_ice_flux_exchange_mod']]], - ['get_5fatmos_5fice_5fland_5fchksums',['get_atmos_ice_land_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#acd9ec31136762085212e2184eb95a896',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums()'],['../namespacefull__coupler__mod.html#ac24e45f64a2c3bd2674b5b0436107eb6',1,'full_coupler_mod::get_atmos_ice_land_chksums()']]], - ['get_5fatmos_5fice_5fland_5focean_5fchksums',['get_atmos_ice_land_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#ae519e712159d78b971a59a5e4311f61e',1,'full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums()'],['../namespacefull__coupler__mod.html#a7e2a2f28f1037117dd2e1790d99b8616',1,'full_coupler_mod::get_atmos_ice_land_ocean_chksums()']]], - ['get_5fcell_5fcenter',['get_cell_center',['../namespaceice__model__mod.html#ab2e9be6fcef2df1c9886c80ad3f8e68c',1,'ice_model_mod']]], - ['get_5fcomponent',['get_component',['../structfull__coupler__mod_1_1coupler__components__type.html#a10162a8a029cc88b38ca87161d32666e',1,'full_coupler_mod::coupler_components_type::get_component()'],['../namespacefull__coupler__mod.html#aab400c752e6c3c24deccaaccb9e14824',1,'full_coupler_mod::get_component()']]], - ['get_5fcomponents_5fobj',['get_components_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a4b6a084b36f3620a3d318548051683da',1,'full_coupler_mod::coupler_chksum_type::get_components_obj()'],['../namespacefull__coupler__mod.html#a1783033373f9ce4428522ecf8faf57f1',1,'full_coupler_mod::get_components_obj()']]], - ['get_5fcoupler_5fchksums',['get_coupler_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a3459d6bcb71439fefb2101f9d61ae876',1,'full_coupler_mod::coupler_chksum_type::get_coupler_chksums()'],['../namespacefull__coupler__mod.html#a0f4c20f64b8c9bc86f87b65430177e0f',1,'full_coupler_mod::get_coupler_chksums()']]], - ['get_5focean_5fchksums',['get_ocean_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a8d6b7a5128df28f67f94fbf5c9c22b28',1,'full_coupler_mod::coupler_chksum_type::get_ocean_chksums()'],['../namespacefull__coupler__mod.html#a50e8820366ee023111794387c3b5e7f3',1,'full_coupler_mod::get_ocean_chksums()']]], - ['get_5fslow_5fice_5fchksums',['get_slow_ice_chksums',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a745b72ab4eb3866614d86950438241f4',1,'full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums()'],['../namespacefull__coupler__mod.html#a6a8725c4efea803a26f6295adf5aa37a',1,'full_coupler_mod::get_slow_ice_chksums()']]] -]; diff --git a/docs/html/search/functions_5.html b/docs/html/search/functions_5.html deleted file mode 100644 index a34446ce..00000000 --- a/docs/html/search/functions_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js deleted file mode 100644 index 914acf0b..00000000 --- a/docs/html/search/functions_5.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['ice_5fmodel_5fend',['ice_model_end',['../namespaceice__model__mod.html#a64ce3059a7824d9f2efc7b9f6047adec',1,'ice_model_mod']]], - ['ice_5fmodel_5finit',['ice_model_init',['../namespaceice__model__mod.html#aa334350190e4d103f2b7c9b5b860ce0b',1,'ice_model_mod']]], - ['ice_5focean_5fflux_5fexchange_5finit',['ice_ocean_flux_exchange_init',['../namespaceice__ocean__flux__exchange__mod.html#a63be7a22389a38bfd7f7e8aafc2f81d3',1,'ice_ocean_flux_exchange_mod']]], - ['ice_5fregister_5frestart',['ice_register_restart',['../namespaceice__model__mod.html#a1c9b13ea971d09e2047d6025b7f112c5',1,'ice_model_mod']]], - ['initialize_5fcoupler_5fchksum_5fobj',['initialize_coupler_chksum_obj',['../structfull__coupler__mod_1_1coupler__chksum__type.html#a789a89bb1c9ed2eabfe7fe263f8b3807',1,'full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj()'],['../namespacefull__coupler__mod.html#a39c2e7bc7b1b6ca828ccd22f231789d9',1,'full_coupler_mod::initialize_coupler_chksum_obj()']]], - ['initialize_5fcoupler_5fcomponents_5fobj',['initialize_coupler_components_obj',['../structfull__coupler__mod_1_1coupler__components__type.html#a7f4e7c72a18c47e395fa3b27b1b11d5a',1,'full_coupler_mod::coupler_components_type::initialize_coupler_components_obj()'],['../namespacefull__coupler__mod.html#a2e71183922fd4c76a5234823f44b1056',1,'full_coupler_mod::initialize_coupler_components_obj()']]], - ['is_5flatlon',['is_latlon',['../namespaceice__model__mod.html#a00d134e60955bd3f498d98fa0d2a5941',1,'ice_model_mod']]], - ['iter_5fmonin_5fobukhov_5focean',['iter_monin_obukhov_ocean',['../namespacesurface__flux__mod.html#ae6fbd060ae720e05102effeb8b044d30',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/functions_6.html b/docs/html/search/functions_6.html deleted file mode 100644 index 6fd4b1f3..00000000 --- a/docs/html/search/functions_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js deleted file mode 100644 index b72cd36e..00000000 --- a/docs/html/search/functions_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['land_5fice_5fflux_5fexchange_5finit',['land_ice_flux_exchange_init',['../namespaceland__ice__flux__exchange__mod.html#a0a8f20fe83d26714842110feea23aea6',1,'land_ice_flux_exchange_mod']]], - ['latlon2xyz',['latlon2xyz',['../namespaceice__model__mod.html#ad9523243488d1422d212abc12a8c85b8',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/functions_7.html b/docs/html/search/functions_7.html deleted file mode 100644 index 6e09abf1..00000000 --- a/docs/html/search/functions_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_7.js b/docs/html/search/functions_7.js deleted file mode 100644 index bc46b223..00000000 --- a/docs/html/search/functions_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['n_5fair',['n_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#acaeb4ccb8ce4e4fa5c470157420075de',1,'atmos_ocean_fluxes_calc_mod']]], - ['ncar_5focean_5ffluxes',['ncar_ocean_fluxes',['../namespacesurface__flux__mod.html#a4e53abf6229db4a6b3025f5333fe764d',1,'surface_flux_mod']]], - ['ncar_5focean_5ffluxes_5fmultilevel',['ncar_ocean_fluxes_multilevel',['../namespacesurface__flux__mod.html#a43e1175ff9bf4096208baf7053b2669c',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/functions_8.html b/docs/html/search/functions_8.html deleted file mode 100644 index d59ea971..00000000 --- a/docs/html/search/functions_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js deleted file mode 100644 index d611949d..00000000 --- a/docs/html/search/functions_8.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['p_5fair',['p_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a9c7ab4de0daccbdd49f8851ea12c1c5c',1,'atmos_ocean_fluxes_calc_mod']]], - ['prognostic_5fice',['prognostic_ice',['../namespaceice__model__mod.html#ac0071f9ca4cdf3279ccdc918bd77d07e',1,'ice_model_mod']]], - ['prognostic_5fsst',['prognostic_sst',['../namespaceice__model__mod.html#ad5c9ca5a5a2d863e59ab02d49a12e8e1',1,'ice_model_mod']]], - ['put_5flogical_5fto_5freal_5fsg',['put_logical_to_real_sg',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa6e49e4a24da987ca8fb809138523f5f',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a50837c09366fc3aee78c7d5909783559',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_sg()']]], - ['put_5flogical_5fto_5freal_5fug',['put_logical_to_real_ug',['../interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.html#aa8e82ead60dde77f18cedd7b2b7d3202',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug()'],['../namespaceatm__land__ice__flux__exchange__mod.html#a996a4e123202df434c2b7a3e370dd854',1,'atm_land_ice_flux_exchange_mod::put_logical_to_real_ug()']]] -]; diff --git a/docs/html/search/functions_9.html b/docs/html/search/functions_9.html deleted file mode 100644 index 5ccec429..00000000 --- a/docs/html/search/functions_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js deleted file mode 100644 index 684e4b06..00000000 --- a/docs/html/search/functions_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['read_5fnamelist',['read_namelist',['../namespaceflux__exchange__mod.html#a52e173ad7fa50e521f75eef8cd9aff95',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/functions_a.html b/docs/html/search/functions_a.html deleted file mode 100644 index 3958eb7b..00000000 --- a/docs/html/search/functions_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_a.js b/docs/html/search/functions_a.js deleted file mode 100644 index f32f86b3..00000000 --- a/docs/html/search/functions_a.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['schmidt_5fg',['schmidt_g',['../namespaceatmos__ocean__fluxes__calc__mod.html#a7a879f540fe903119d5bb324c44f6c45',1,'atmos_ocean_fluxes_calc_mod']]], - ['send_5fice_5fmask_5fsic',['send_ice_mask_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#af00a10abb94ffaa2f305e00de92362bc',1,'atm_land_ice_flux_exchange_mod']]], - ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../namespaceatm__land__ice__flux__exchange__mod.html#ae7a53520e8a084f5fa930c5c18c85b54',1,'atm_land_ice_flux_exchange_mod::sfc_boundary_layer()'],['../namespaceflux__exchange__mod.html#ac23f45f5b115ee4104491181339b0afd',1,'flux_exchange_mod::sfc_boundary_layer()']]], - ['surface_5fflux_5f0d',['surface_flux_0d',['../namespacesurface__flux__mod.html#a719077c3d9594fb8b63b3681638949eb',1,'surface_flux_mod']]], - ['surface_5fflux_5f1d',['surface_flux_1d',['../interfacesurface__flux__mod_1_1surface__flux.html#aae251f64f9ec074e3eb13cf535503e96',1,'surface_flux_mod::surface_flux::surface_flux_1d()'],['../namespacesurface__flux__mod.html#a9e30e62e73778ab168c1e1e639bc5c5b',1,'surface_flux_mod::surface_flux_1d()']]], - ['surface_5fflux_5f2d',['surface_flux_2d',['../interfacesurface__flux__mod_1_1surface__flux.html#ab3e1a25220436f1a605d89d8cb820294',1,'surface_flux_mod::surface_flux::surface_flux_2d()'],['../namespacesurface__flux__mod.html#a8e1d9d5ab64ad51dd6f60c90616b6648',1,'surface_flux_mod::surface_flux_2d()'],['../namespaceflux__exchange__mod.html#a61d0127746fc39769346765dd050d378',1,'flux_exchange_mod::surface_flux_2d()']]], - ['surface_5fflux_5finit',['surface_flux_init',['../namespacesurface__flux__mod.html#a333b51433623e304046e80987bab0acc',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/functions_b.html b/docs/html/search/functions_b.html deleted file mode 100644 index b99b702d..00000000 --- a/docs/html/search/functions_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_b.js b/docs/html/search/functions_b.js deleted file mode 100644 index 68ff0203..00000000 --- a/docs/html/search/functions_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['update_5fice_5fmodel_5ffast',['update_ice_model_fast',['../namespaceice__model__mod.html#a9b939a61c6dd68819c8edecfa60a02c5',1,'ice_model_mod']]], - ['update_5fice_5fmodel_5fslow',['update_ice_model_slow',['../namespaceice__model__mod.html#a378288dc3d2683fd5308ed483542fc4f',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/functions_c.html b/docs/html/search/functions_c.html deleted file mode 100644 index 3a33d874..00000000 --- a/docs/html/search/functions_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_c.js b/docs/html/search/functions_c.js deleted file mode 100644 index 59a7af66..00000000 --- a/docs/html/search/functions_c.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['v_5fair',['v_air',['../namespaceatmos__ocean__fluxes__calc__mod.html#a942762290e4c14fbb89e992f736838d5',1,'atmos_ocean_fluxes_calc_mod']]] -]; diff --git a/docs/html/search/functions_d.html b/docs/html/search/functions_d.html deleted file mode 100644 index 31b75b88..00000000 --- a/docs/html/search/functions_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/functions_d.js b/docs/html/search/functions_d.js deleted file mode 100644 index 3e829bc4..00000000 --- a/docs/html/search/functions_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['xyz2latlon',['xyz2latlon',['../namespaceice__model__mod.html#a295831b47bffb23aaad0538f61f2d7a6',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/mag_sel.png b/docs/html/search/mag_sel.png deleted file mode 100644 index 81f6040a2092402b4d98f9ffa8855d12a0d4ca17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn diff --git a/docs/html/search/namespaces_0.html b/docs/html/search/namespaces_0.html deleted file mode 100644 index f55ca63a..00000000 --- a/docs/html/search/namespaces_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/namespaces_0.js b/docs/html/search/namespaces_0.js deleted file mode 100644 index 051f69cd..00000000 --- a/docs/html/search/namespaces_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['atm_5fland_5fice_5fflux_5fexchange_5fmod',['atm_land_ice_flux_exchange_mod',['../namespaceatm__land__ice__flux__exchange__mod.html',1,'']]], - ['atmos_5focean_5fdep_5ffluxes_5fcalc_5fmod',['atmos_ocean_dep_fluxes_calc_mod',['../namespaceatmos__ocean__dep__fluxes__calc__mod.html',1,'']]], - ['atmos_5focean_5ffluxes_5fcalc_5fmod',['atmos_ocean_fluxes_calc_mod',['../namespaceatmos__ocean__fluxes__calc__mod.html',1,'']]] -]; diff --git a/docs/html/search/namespaces_1.html b/docs/html/search/namespaces_1.html deleted file mode 100644 index 37c816cc..00000000 --- a/docs/html/search/namespaces_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/namespaces_1.js b/docs/html/search/namespaces_1.js deleted file mode 100644 index 5b9694ab..00000000 --- a/docs/html/search/namespaces_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['flux_5fexchange_5fmod',['flux_exchange_mod',['../namespaceflux__exchange__mod.html',1,'']]], - ['full_5fcoupler_5fmod',['full_coupler_mod',['../namespacefull__coupler__mod.html',1,'']]] -]; diff --git a/docs/html/search/namespaces_2.html b/docs/html/search/namespaces_2.html deleted file mode 100644 index 0a916746..00000000 --- a/docs/html/search/namespaces_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/namespaces_2.js b/docs/html/search/namespaces_2.js deleted file mode 100644 index 91f9dedb..00000000 --- a/docs/html/search/namespaces_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['ice_5fmodel_5fmod',['ice_model_mod',['../namespaceice__model__mod.html',1,'']]], - ['ice_5focean_5fflux_5fexchange_5fmod',['ice_ocean_flux_exchange_mod',['../namespaceice__ocean__flux__exchange__mod.html',1,'']]] -]; diff --git a/docs/html/search/namespaces_3.html b/docs/html/search/namespaces_3.html deleted file mode 100644 index 9c35eb2f..00000000 --- a/docs/html/search/namespaces_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/namespaces_3.js b/docs/html/search/namespaces_3.js deleted file mode 100644 index 120a648c..00000000 --- a/docs/html/search/namespaces_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['land_5fice_5fflux_5fexchange_5fmod',['land_ice_flux_exchange_mod',['../namespaceland__ice__flux__exchange__mod.html',1,'']]] -]; diff --git a/docs/html/search/namespaces_4.html b/docs/html/search/namespaces_4.html deleted file mode 100644 index 38123320..00000000 --- a/docs/html/search/namespaces_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/namespaces_4.js b/docs/html/search/namespaces_4.js deleted file mode 100644 index e3b92e3a..00000000 --- a/docs/html/search/namespaces_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['surface_5fflux_5fmod',['surface_flux_mod',['../namespacesurface__flux__mod.html',1,'']]] -]; diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html deleted file mode 100644 index b1ded27e..00000000 --- a/docs/html/search/nomatches.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/pages_0.html b/docs/html/search/pages_0.html deleted file mode 100644 index d7528582..00000000 --- a/docs/html/search/pages_0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/pages_0.js b/docs/html/search/pages_0.js deleted file mode 100644 index 0fd0fcc3..00000000 --- a/docs/html/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['coupler_20configuration',['Coupler Configuration',['../coupler_config.html',1,'']]] -]; diff --git a/docs/html/search/pages_1.html b/docs/html/search/pages_1.html deleted file mode 100644 index 924fb482..00000000 --- a/docs/html/search/pages_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/pages_1.js b/docs/html/search/pages_1.js deleted file mode 100644 index 46fa05c9..00000000 --- a/docs/html/search/pages_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['flux_20exchange_20configuration',['Flux Exchange Configuration',['../flux_exchange_conf.html',1,'']]] -]; diff --git a/docs/html/search/pages_2.html b/docs/html/search/pages_2.html deleted file mode 100644 index ffc6d929..00000000 --- a/docs/html/search/pages_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/pages_2.js b/docs/html/search/pages_2.js deleted file mode 100644 index 58c99d41..00000000 --- a/docs/html/search/pages_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['surface_20flux_20configuration',['Surface Flux Configuration',['../surface_flux_config.html',1,'']]] -]; diff --git a/docs/html/search/search.css b/docs/html/search/search.css deleted file mode 100644 index 9074198f..00000000 --- a/docs/html/search/search.css +++ /dev/null @@ -1,257 +0,0 @@ -/*---------------- Search Box */ - -#MSearchBox { - white-space : nowrap; - background: white; - border-radius: 0.65em; - box-shadow: inset 0.5px 0.5px 3px 0px #555; - z-index: 102; -} - -#MSearchBox .left { - display: inline-block; - vertical-align: middle; - height: 1.4em; -} - -#MSearchSelect { - display: inline-block; - vertical-align: middle; - height: 1.4em; - padding: 0 0 0 0.3em; - margin: 0; -} - -#MSearchField { - display: inline-block; - vertical-align: middle; - width: 7.5em; - height: 1.1em; - margin: 0 0.15em; - padding: 0; - line-height: 1em; - border:none; - color: #909090; - outline: none; - font-family: Arial, Verdana, sans-serif; - -webkit-border-radius: 0px; - border-radius: 0px; - background: none; -} - - -#MSearchBox .right { - display: inline-block; - vertical-align: middle; - width: 1.4em; - height: 1.4em; -} - -#MSearchClose { - display: none; - font-size: inherit; - background : none; - border: none; - margin: 0; - padding: 0; - outline: none; - -} - -#MSearchCloseImg { - height: 1.4em; - padding: 0.3em; - margin: 0; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -#main-menu > li:last-child { - /* This
                                                                                                                                                                                                                                                                                                            • object is the parent of the search bar */ - display: flex; - justify-content: center; - align-items: center; - height: 36px; - margin-right: 1em; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; - z-index:10000; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; - font-family: Arial, Verdana, sans-serif; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - font-family: Arial, Verdana, sans-serif; -} - -.SRResult { - display: none; -} - -div.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/docs/html/search/search.js b/docs/html/search/search.js deleted file mode 100644 index fb226f73..00000000 --- a/docs/html/search/search.js +++ /dev/null @@ -1,816 +0,0 @@ -/* - @licstart The following is the entire license notice for the JavaScript code in this file. - - The MIT License (MIT) - - Copyright (C) 1997-2020 by Dimitri van Heesch - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, - sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or - substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - @licend The above is the entire license notice for the JavaScript code in this file - */ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches' + this.extension; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline-block'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W diff --git a/docs/html/search/search_r.png b/docs/html/search/search_r.png deleted file mode 100644 index 97ee8b439687084201b79c6f776a41f495c6392a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000 - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js deleted file mode 100644 index 0e955ea6..00000000 --- a/docs/html/search/variables_0.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['albedo',['albedo',['../structice__model__mod_1_1ice__data__type.html#a2733a49aafbb2c427d93412ba024c3b6',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fnir_5fdif',['albedo_nir_dif',['../structice__model__mod_1_1ice__data__type.html#a24c89574df66301e6e3b686dcae7229d',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fnir_5fdir',['albedo_nir_dir',['../structice__model__mod_1_1ice__data__type.html#a99a3c37bd29100dbbea9e72ce79f08ec',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fvis_5fdif',['albedo_vis_dif',['../structice__model__mod_1_1ice__data__type.html#ad5e50ac18a25e32ce222fab20797419a',1,'ice_model_mod::ice_data_type']]], - ['albedo_5fvis_5fdir',['albedo_vis_dir',['../structice__model__mod_1_1ice__data__type.html#a7065db4c98d81f247f30545e8202c6ba',1,'ice_model_mod::ice_data_type']]], - ['all_5fland',['all_land',['../namespaceflux__exchange__mod.html#a9f21ac3fea6a38f7959395b34a8ceb8b',1,'flux_exchange_mod']]], - ['all_5focean',['all_ocean',['../namespaceflux__exchange__mod.html#a50c09e88b3fb6646814e283404760a7d',1,'flux_exchange_mod']]], - ['alt_5fgustiness',['alt_gustiness',['../namespacesurface__flux__mod.html#a338fa27e4d5045147ebf3ee908c60e98',1,'surface_flux_mod']]], - ['amip_5fice',['amip_ice',['../namespaceice__model__mod.html#a5663c456270837d94270cb3e853b8d11',1,'ice_model_mod']]], - ['amip_5fsst',['amip_sst',['../namespaceice__model__mod.html#ad482a1238aba8004d9c21616d04163f3',1,'ice_model_mod']]], - ['atm',['atm',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a6958e428760cf729bec6fc2748104d03',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::atm()'],['../structfull__coupler__mod_1_1coupler__clock__type.html#a6c6826c6bd3bb9b6c77f265576eb4921',1,'full_coupler_mod::coupler_clock_type::atm()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a2e38920a1bf3f745decc0b056b489730',1,'full_coupler_mod::coupler_components_type::atm()']]], - ['atm_5fprecip_5fnew',['atm_precip_new',['../namespaceflux__exchange__mod.html#a4133789f8990f2178df334764b71a74d',1,'flux_exchange_mod']]], - ['atmos_5fice_5fboundary',['atmos_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aaeff62295938d8d1a2b25f225afacf3e',1,'full_coupler_mod::coupler_components_type']]], - ['atmos_5fland_5fboundary',['atmos_land_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#abf0d670a022708f880f690bf99514b5f',1,'full_coupler_mod::coupler_components_type']]], - ['atmos_5floop',['atmos_loop',['../structfull__coupler__mod_1_1coupler__clock__type.html#a800fc6631253e7d5ad649145f999264c',1,'full_coupler_mod::coupler_clock_type']]], - ['atmos_5fmodel_5finit',['atmos_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a86349958610dea7035e2e00ec6a297fb',1,'full_coupler_mod::coupler_clock_type']]], - ['atmos_5fnpes',['atmos_npes',['../namespacefull__coupler__mod.html#a85adcfb2f6ef212cc2e6415f23f0a946',1,'full_coupler_mod']]], - ['atmos_5fnthreads',['atmos_nthreads',['../namespacefull__coupler__mod.html#a83263556a358d678e6777ca4765eb767',1,'full_coupler_mod']]], - ['atmos_5ftracer_5fdriver_5fgather_5fdata',['atmos_tracer_driver_gather_data',['../structfull__coupler__mod_1_1coupler__clock__type.html#aafdcdcd1978bbd01701037af6141f88d',1,'full_coupler_mod::coupler_clock_type']]] -]; diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html deleted file mode 100644 index f46154d8..00000000 --- a/docs/html/search/variables_1.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js deleted file mode 100644 index 98eb8006..00000000 --- a/docs/html/search/variables_1.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['b_5fstar',['b_star',['../namespaceflux__exchange__mod.html#aa9caedcc1bc69b6296dc5fef0c77a891',1,'flux_exchange_mod']]], - ['block_5fend',['block_end',['../namespaceatm__land__ice__flux__exchange__mod.html#af5376c2ef9475b25b0fe09811ec50950',1,'atm_land_ice_flux_exchange_mod']]], - ['block_5fstart',['block_start',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a4d0039fbafb9bcb71fbe0848710532',1,'atm_land_ice_flux_exchange_mod']]], - ['bound_5ftol',['bound_tol',['../namespaceflux__exchange__mod.html#a5c281a982d5759280020c8accfa544bb',1,'flux_exchange_mod']]], - ['bulk_5fzq',['bulk_zq',['../namespacesurface__flux__mod.html#ab0430982abba672524b5a13c4b730647',1,'surface_flux_mod']]], - ['bulk_5fzt',['bulk_zt',['../namespacesurface__flux__mod.html#ac06e3e9bb1a504104ec21e0b7585e1aa',1,'surface_flux_mod']]], - ['bulk_5fzu',['bulk_zu',['../namespacesurface__flux__mod.html#ae9006d4cf180672ab7b529b22c3dbac8',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/variables_10.html b/docs/html/search/variables_10.html deleted file mode 100644 index b62b717e..00000000 --- a/docs/html/search/variables_10.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_10.js b/docs/html/search/variables_10.js deleted file mode 100644 index 0669c353..00000000 --- a/docs/html/search/variables_10.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['q_5fflux',['q_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd51467d1b4f9198a76130bbc6f91abe',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['q_5fsurf',['q_surf',['../namespaceflux__exchange__mod.html#afc62684e7d473718077c120c5ac6f6c0',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_11.html b/docs/html/search/variables_11.html deleted file mode 100644 index 2ce8561a..00000000 --- a/docs/html/search/variables_11.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_11.js b/docs/html/search/variables_11.js deleted file mode 100644 index d8443b3e..00000000 --- a/docs/html/search/variables_11.js +++ /dev/null @@ -1,17 +0,0 @@ -var searchData= -[ - ['radiation',['radiation',['../structfull__coupler__mod_1_1coupler__clock__type.html#adf8132dede10fbbb9ad678d829422b46',1,'full_coupler_mod::coupler_clock_type']]], - ['radiation_5fnthreads',['radiation_nthreads',['../namespacefull__coupler__mod.html#a3e853db33e426916924f2bb27d2f10a4',1,'full_coupler_mod']]], - ['raoult_5fsat_5fvap',['raoult_sat_vap',['../namespacesurface__flux__mod.html#a20457ec53d55f2819c2109515b92a79f',1,'surface_flux_mod']]], - ['redirect',['redirect',['../namespaceatm__land__ice__flux__exchange__mod.html#a056bbf92b7605811c7ff570c45ebafd6',1,'atm_land_ice_flux_exchange_mod']]], - ['redist',['redist',['../namespaceatm__land__ice__flux__exchange__mod.html#a9d21a4be462dd340e9f192cc66627d54',1,'atm_land_ice_flux_exchange_mod::redist()'],['../namespaceice__ocean__flux__exchange__mod.html#a88b8a5285095c340dca8950527c4ef22',1,'ice_ocean_flux_exchange_mod::redist()']]], - ['regenclock',['regenclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a5ea8ad1958bb201b40dbba386178c8de',1,'atm_land_ice_flux_exchange_mod']]], - ['regrid',['regrid',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d21fff836af698eb07aea029290cc4b',1,'atm_land_ice_flux_exchange_mod::regrid()'],['../namespaceice__ocean__flux__exchange__mod.html#aef153e9e45815d4477bf87520c57a1ba',1,'ice_ocean_flux_exchange_mod::regrid()']]], - ['remap_5fmethod',['remap_method',['../namespaceatm__land__ice__flux__exchange__mod.html#a96ed2d0c9f780f120de2d1c2dd83dd09',1,'atm_land_ice_flux_exchange_mod']]], - ['restart_5finterval',['restart_interval',['../namespacefull__coupler__mod.html#ad7e959a3e2e3da70f34991150fa4711a',1,'full_coupler_mod']]], - ['rough_5fheat',['rough_heat',['../structice__model__mod_1_1ice__data__type.html#a2b0fc3f7a2b99a46539750bf685613cc',1,'ice_model_mod::ice_data_type']]], - ['rough_5fmoist',['rough_moist',['../structice__model__mod_1_1ice__data__type.html#a6dc2c978eee60e0396f5ada2d1740901',1,'ice_model_mod::ice_data_type']]], - ['rough_5fmom',['rough_mom',['../structice__model__mod_1_1ice__data__type.html#aca42b1c10d6f2e5d6f456d4efb33eb86',1,'ice_model_mod::ice_data_type']]], - ['rough_5fscheme_5focean',['rough_scheme_ocean',['../namespacesurface__flux__mod.html#a430407a9f1208154bcfacbd357e883fb',1,'surface_flux_mod']]], - ['roughness_5fice',['roughness_ice',['../namespaceice__model__mod.html#ad08a267cab9b24b3568fd86a3d50cd40',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/variables_12.html b/docs/html/search/variables_12.html deleted file mode 100644 index bba5857f..00000000 --- a/docs/html/search/variables_12.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_12.js b/docs/html/search/variables_12.js deleted file mode 100644 index 0ce3279c..00000000 --- a/docs/html/search/variables_12.js +++ /dev/null @@ -1,17 +0,0 @@ -var searchData= -[ - ['scale_5fprecip_5f2d',['scale_precip_2d',['../namespaceatm__land__ice__flux__exchange__mod.html#aff59028b168f9a123112151e3f9c082b',1,'atm_land_ice_flux_exchange_mod::scale_precip_2d()'],['../namespaceflux__exchange__mod.html#ad4f0bf7fd2d4d737a0c90c919458ed6e',1,'flux_exchange_mod::scale_precip_2d()']]], - ['seconds',['seconds',['../namespacefull__coupler__mod.html#a0d752429e35e05d13912e2d320e94950',1,'full_coupler_mod']]], - ['set_5fice_5fsurface_5fexchange',['set_ice_surface_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#aa8e8fb7bc677dd49705a5b0ed54bd3c3',1,'full_coupler_mod::coupler_clock_type']]], - ['set_5fice_5fsurface_5ffast',['set_ice_surface_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a11a6b9563d30b684d5ef31a1599f7104',1,'full_coupler_mod::coupler_clock_type']]], - ['set_5fice_5fsurface_5fslow',['set_ice_surface_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab78c1f122e35a9b77e79cb0845b6b717',1,'full_coupler_mod::coupler_clock_type']]], - ['sfc_5fboundary_5flayer',['sfc_boundary_layer',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae18b3eb2f36a1ed733b54e1e5a34c552',1,'full_coupler_mod::coupler_clock_type']]], - ['sfcclock',['sfcclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a4afcbc6731e29417a8e91a70224c813c',1,'atm_land_ice_flux_exchange_mod']]], - ['slow_5fice_5focean_5fpelist',['slow_ice_ocean_pelist',['../namespaceice__ocean__flux__exchange__mod.html#a3b7a0952e69375784c15b6436be4c693',1,'ice_ocean_flux_exchange_mod']]], - ['slow_5fice_5fwith_5focean',['slow_ice_with_ocean',['../namespacefull__coupler__mod.html#aef0442d39d4bf3537b9295aee2ea2470',1,'full_coupler_mod']]], - ['specified',['specified',['../namespaceice__model__mod.html#a4cd185be5927217434e4c0f12c7025be',1,'ice_model_mod']]], - ['specified_5fice_5fthickness',['specified_ice_thickness',['../namespaceice__model__mod.html#a37d440034bece975f6373ba9abeb4cbc',1,'ice_model_mod']]], - ['sst_5fanom',['sst_anom',['../namespaceice__model__mod.html#a4051226a26d65f3be30185a85862107e',1,'ice_model_mod']]], - ['sst_5fmethod',['sst_method',['../namespaceice__model__mod.html#ae2b36fb788a968f3caf075c276bee97d',1,'ice_model_mod']]], - ['sw_5fflux',['sw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a2bc72919689b165986c3a6d953b19ab2',1,'ice_model_mod::atmos_ice_boundary_type']]] -]; diff --git a/docs/html/search/variables_13.html b/docs/html/search/variables_13.html deleted file mode 100644 index c92cbcc3..00000000 --- a/docs/html/search/variables_13.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_13.js b/docs/html/search/variables_13.js deleted file mode 100644 index b6c03dbb..00000000 --- a/docs/html/search/variables_13.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['t_5fca',['t_ca',['../namespaceflux__exchange__mod.html#a9ca37680c8e8fcbf1c7cb165299cc6d5',1,'flux_exchange_mod']]], - ['t_5fflux',['t_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afa550fbb99363d6eb36e9df5612f7adc',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['t_5fsurf',['t_surf',['../structice__model__mod_1_1ice__data__type.html#a748d96d8afc6ec3efa88fe61b79bb5c5',1,'ice_model_mod::ice_data_type::t_surf()'],['../namespaceflux__exchange__mod.html#aa2ab2f31bbf1dffff5cd5dcb54b3fad3',1,'flux_exchange_mod::t_surf()']]], - ['tag',['tag',['../namespaceatm__land__ice__flux__exchange__mod.html#a4176031acaa85bc64a9ba4a7035b36ac',1,'atm_land_ice_flux_exchange_mod::tag()'],['../namespaceflux__exchange__mod.html#aba5f7ba78279ed6740597236c1930a65',1,'flux_exchange_mod::tag()']]], - ['tagname',['tagname',['../namespacesurface__flux__mod.html#a9a34cdd6148cf5dcdf01aa7020bf1973',1,'surface_flux_mod::tagname()'],['../namespaceice__model__mod.html#af2b3a99405cf45d0566a694b18b0c07b',1,'ice_model_mod::tagname()']]], - ['temp_5fice',['temp_ice',['../namespaceice__model__mod.html#a8916b1478604e2da7ecea14cf4dfdf20',1,'ice_model_mod']]], - ['temp_5fice_5ffreeze',['temp_ice_freeze',['../namespaceice__model__mod.html#a12903831181559c162e825549f139e7f',1,'ice_model_mod']]], - ['temp_5fsst',['temp_sst',['../namespaceice__model__mod.html#a04a20dcacf655c21e5f47206ae06f344',1,'ice_model_mod']]], - ['termination',['termination',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac68d174e845176ed37f58218a2b161d9',1,'full_coupler_mod::coupler_clock_type']]], - ['text',['text',['../namespacefull__coupler__mod.html#a481c6dc3126700e15926453bb0c98096',1,'full_coupler_mod']]], - ['tfreeze',['tfreeze',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f36d7021f66e3fa87247d3f45450519',1,'atm_land_ice_flux_exchange_mod::tfreeze()'],['../namespaceflux__exchange__mod.html#a7ddeb5da1f6b84553155a11fc11131c4',1,'flux_exchange_mod::tfreeze()']]], - ['thickness',['thickness',['../structice__model__mod_1_1ice__data__type.html#a4fc960a59d3520d6acf290a76e0e246b',1,'ice_model_mod::ice_data_type']]], - ['thickness_5fmin',['thickness_min',['../namespaceice__model__mod.html#a753820dd4f1115554e58b0bdc566dd8d',1,'ice_model_mod']]], - ['time',['time',['../structice__model__mod_1_1ice__data__type.html#a4b225d644fe34ad3ccd00add6817f553',1,'ice_model_mod::ice_data_type']]], - ['time_5finit',['time_init',['../structice__model__mod_1_1ice__data__type.html#a911c3e51a65b58872eae6fdf3ca7baa2',1,'ice_model_mod::ice_data_type']]], - ['time_5fstep_5ffast',['time_step_fast',['../structice__model__mod_1_1ice__data__type.html#aaa44e5583639682ac142e6080eb8586a',1,'ice_model_mod::ice_data_type']]], - ['time_5fstep_5fslow',['time_step_slow',['../structice__model__mod_1_1ice__data__type.html#a4d819e4de12b4f25606af4210105ebd4',1,'ice_model_mod::ice_data_type']]], - ['tr_5ftable',['tr_table',['../namespaceatm__land__ice__flux__exchange__mod.html#ae81e1fb85dbf862e4cde596cc8c886f9',1,'atm_land_ice_flux_exchange_mod']]], - ['tr_5ftable_5fmap',['tr_table_map',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a5df9b039a007c0298c8f20581c5a6f',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_14.html b/docs/html/search/variables_14.html deleted file mode 100644 index 2c462043..00000000 --- a/docs/html/search/variables_14.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_14.js b/docs/html/search/variables_14.js deleted file mode 100644 index 82c2674c..00000000 --- a/docs/html/search/variables_14.js +++ /dev/null @@ -1,26 +0,0 @@ -var searchData= -[ - ['u_5fstar',['u_star',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6d9cd348045dcc00c5a4287662d90e54',1,'ice_model_mod::atmos_ice_boundary_type::u_star()'],['../namespaceflux__exchange__mod.html#a5f2703b2d725cae0b81f8a0c74a730fe',1,'flux_exchange_mod::u_star()']]], - ['uniform',['uniform',['../namespaceice__model__mod.html#a3fd7567f14a603db2374f95bd1f3c8ec',1,'ice_model_mod']]], - ['update_5fatmos_5fmodel_5fdown',['update_atmos_model_down',['../structfull__coupler__mod_1_1coupler__clock__type.html#a64f28aa652b93f94fe5724c5c4cdeefd',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fatmos_5fmodel_5fdynamics',['update_atmos_model_dynamics',['../structfull__coupler__mod_1_1coupler__clock__type.html#a8017a9be38d01b068dc4627b70bca1bd',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fatmos_5fmodel_5fstate',['update_atmos_model_state',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45294c1f238443b60c735e41aae82975',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fatmos_5fmodel_5fup',['update_atmos_model_up',['../structfull__coupler__mod_1_1coupler__clock__type.html#a209446238ce492535a508e7a7e2a2818',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fice_5fmodel_5ffast',['update_ice_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#a59b5799e854311672c976074ebebba23',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fice_5fmodel_5fslow_5fexchange',['update_ice_model_slow_exchange',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae44965d709c9eecc19aacbc4cf25879a',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fice_5fmodel_5fslow_5ffast',['update_ice_model_slow_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#addddee033e22c3dc65be4a5561c7919e',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fice_5fmodel_5fslow_5fslow',['update_ice_model_slow_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5c87ab8c6abe1995dce0b6eb5f211855',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fland_5fmodel_5ffast',['update_land_model_fast',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac2ee1ed8bc0f8b67d84e03f97275ee00',1,'full_coupler_mod::coupler_clock_type']]], - ['update_5fland_5fmodel_5fslow',['update_land_model_slow',['../structfull__coupler__mod_1_1coupler__clock__type.html#ac59f01b2ba937daed2124ee679909287',1,'full_coupler_mod::coupler_clock_type']]], - ['use_5fannual_5fice',['use_annual_ice',['../namespaceice__model__mod.html#a782cca47fdcd3876f98bf9733a4db5ab',1,'ice_model_mod']]], - ['use_5fannual_5fsst',['use_annual_sst',['../namespaceice__model__mod.html#aa0b9af1ad302c2a1ee36b791c83959c6',1,'ice_model_mod']]], - ['use_5fclimo_5fice',['use_climo_ice',['../namespaceice__model__mod.html#a49c6719259ca27e72d9237e3fd75ba10',1,'ice_model_mod']]], - ['use_5fclimo_5fsst',['use_climo_sst',['../namespaceice__model__mod.html#a4421462b5feb57f9e869908ff02baa84',1,'ice_model_mod']]], - ['use_5fexisting_5fgrid_5fspec',['use_existing_grid_spec',['../namespaceflux__exchange__mod.html#af340dcdf7b0c5c94fe4320ffda186de0',1,'flux_exchange_mod']]], - ['use_5fhyper_5fthread',['use_hyper_thread',['../namespacefull__coupler__mod.html#a1b451e1fd8ed76ad553334552917841e',1,'full_coupler_mod']]], - ['use_5flag_5ffluxes',['use_lag_fluxes',['../namespacefull__coupler__mod.html#a9a1c54998e22ffba7be908ad06c4695a',1,'full_coupler_mod']]], - ['use_5fmixing_5fratio',['use_mixing_ratio',['../namespacesurface__flux__mod.html#a9dd1f7954c70115612a940a78b0daa61',1,'surface_flux_mod']]], - ['use_5fu10_5fneutral',['use_u10_neutral',['../namespacesurface__flux__mod.html#a0dde12495da696d1c077ac6ecb7c6714',1,'surface_flux_mod']]], - ['use_5fvirtual_5ftemp',['use_virtual_temp',['../namespacesurface__flux__mod.html#a0fdcdb1d11f52c4fbe51fe6def24ea2b',1,'surface_flux_mod']]], - ['used',['used',['../namespaceflux__exchange__mod.html#acb6da04e26caeafaade68eaecd27a070',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_15.html b/docs/html/search/variables_15.html deleted file mode 100644 index c86a5fd6..00000000 --- a/docs/html/search/variables_15.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_15.js b/docs/html/search/variables_15.js deleted file mode 100644 index 32ed7f21..00000000 --- a/docs/html/search/variables_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['version',['version',['../namespaceatm__land__ice__flux__exchange__mod.html#a7fee92e02a103e833b54331d52d76348',1,'atm_land_ice_flux_exchange_mod::version()'],['../namespaceflux__exchange__mod.html#adc32e303ec9e035ac2ba95080dce45be',1,'flux_exchange_mod::version()'],['../namespacesurface__flux__mod.html#a6ed27d1eda3e36cac58ac50b853d4906',1,'surface_flux_mod::version()'],['../namespaceice__model__mod.html#a24f5247c40b6091f3f17719d34b7f6cf',1,'ice_model_mod::version()']]] -]; diff --git a/docs/html/search/variables_16.html b/docs/html/search/variables_16.html deleted file mode 100644 index f6bc6a05..00000000 --- a/docs/html/search/variables_16.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_16.js b/docs/html/search/variables_16.js deleted file mode 100644 index 4c448efe..00000000 --- a/docs/html/search/variables_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['wind',['wind',['../namespaceflux__exchange__mod.html#ac52397578086e5b8933fa0d7342191ac',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_17.html b/docs/html/search/variables_17.html deleted file mode 100644 index 6a71407b..00000000 --- a/docs/html/search/variables_17.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_17.js b/docs/html/search/variables_17.js deleted file mode 100644 index bf2bff44..00000000 --- a/docs/html/search/variables_17.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['x1_5fgrid_5fatm',['x1_grid_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a2cc89e69ab4f4a608b6a285b042d1f5b',1,'atm_land_ice_flux_exchange_mod']]], - ['x1_5fgrid_5fice',['x1_grid_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#af67e13f05b2640af8a6bf87f9c8957a6',1,'atm_land_ice_flux_exchange_mod']]], - ['x1_5fgrid_5flnd',['x1_grid_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a6b7909bb737f98c9541529d5dde197',1,'atm_land_ice_flux_exchange_mod']]], - ['x2_5fgrid_5fice',['x2_grid_ice',['../namespaceland__ice__flux__exchange__mod.html#ab0a6ceeb532eb1e603e101ab2786a97b',1,'land_ice_flux_exchange_mod']]], - ['x2_5fgrid_5flnd',['x2_grid_lnd',['../namespaceland__ice__flux__exchange__mod.html#ac1a5883b766d5e4bcaf49aa6deca63c6',1,'land_ice_flux_exchange_mod']]], - ['xmap_5frunoff',['xmap_runoff',['../namespaceland__ice__flux__exchange__mod.html#ac514720b654b8ab562fe5a30f85b8ad2',1,'land_ice_flux_exchange_mod']]], - ['xmap_5fsfc',['xmap_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#a060404036e66ff995a7bdef403eef326',1,'atm_land_ice_flux_exchange_mod']]], - ['xtype',['xtype',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a31f026572e538b841564b9b84b20a432',1,'ice_model_mod::atmos_ice_boundary_type']]] -]; diff --git a/docs/html/search/variables_18.html b/docs/html/search/variables_18.html deleted file mode 100644 index 9f6ccdde..00000000 --- a/docs/html/search/variables_18.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_18.js b/docs/html/search/variables_18.js deleted file mode 100644 index 320cac47..00000000 --- a/docs/html/search/variables_18.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['z_5fref_5fheat',['z_ref_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a819d92621b4dcb540310588802b8adf9',1,'atm_land_ice_flux_exchange_mod::z_ref_heat()'],['../namespaceflux__exchange__mod.html#a67568d1d617e7c1be6dbe00d7be3f4cc',1,'flux_exchange_mod::z_ref_heat()']]], - ['z_5fref_5fmom',['z_ref_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a102b456a413634905a3287946d8d3789',1,'atm_land_ice_flux_exchange_mod::z_ref_mom()'],['../namespaceflux__exchange__mod.html#a2dea7a4b0778ca1121bda4c7c6be8a9b',1,'flux_exchange_mod::z_ref_mom()']]] -]; diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html deleted file mode 100644 index 15275b7a..00000000 --- a/docs/html/search/variables_2.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js deleted file mode 100644 index fc55518a..00000000 --- a/docs/html/search/variables_2.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['calendar',['calendar',['../namespacefull__coupler__mod.html#a18e3d16cb372a5f0f49e36687c7aeee9',1,'full_coupler_mod']]], - ['calendar_5ftype',['calendar_type',['../namespacefull__coupler__mod.html#a5cae24118f6f7671ff74206b3803868b',1,'full_coupler_mod']]], - ['ccc',['ccc',['../namespaceflux__exchange__mod.html#a9242eeec587851fa81280412c8b4f7a5',1,'flux_exchange_mod']]], - ['cd_5fm',['cd_m',['../namespaceflux__exchange__mod.html#acecf7a05415537c2ac395e6a68934628',1,'flux_exchange_mod']]], - ['cd_5ft',['cd_t',['../namespaceflux__exchange__mod.html#a53b62119a9798cdfef5cae59286254f5',1,'flux_exchange_mod']]], - ['check_5fstocks',['check_stocks',['../namespacefull__coupler__mod.html#a87ccc8af0ea38216b76cb914b641fa43',1,'full_coupler_mod']]], - ['cmax',['cmax',['../namespaceice__model__mod.html#afe86741fa7aa070accd891d14ae25b89',1,'ice_model_mod']]], - ['cmin',['cmin',['../namespaceice__model__mod.html#a069d9874b6c63980a473c3a2a93a338b',1,'ice_model_mod']]], - ['combined_5fice_5fand_5focean',['combined_ice_and_ocean',['../namespacefull__coupler__mod.html#aa59cb045fb5f6eaa4ffd5116ad640dc2',1,'full_coupler_mod']]], - ['components',['components',['../structfull__coupler__mod_1_1coupler__chksum__type.html#aea10b2e4867debe7c8c8b280087b6760',1,'full_coupler_mod::coupler_chksum_type']]], - ['concurrent',['concurrent',['../namespacefull__coupler__mod.html#a5ad3045bf25e7c03c1dda87b62216389',1,'full_coupler_mod']]], - ['concurrent_5fatmos',['concurrent_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#abf004a119113d8387dcdc51df916a2d4',1,'full_coupler_mod::coupler_clock_type']]], - ['concurrent_5fice',['concurrent_ice',['../namespacefull__coupler__mod.html#ad028fe6369495ea7e76623b4382d393d',1,'full_coupler_mod']]], - ['coszen',['coszen',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a8cdc94e786674735ea0794c091e25f25',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['cplclock',['cplclock',['../namespaceatm__land__ice__flux__exchange__mod.html#afc1f632c6fb9d2aba8f1bb0d3e5ff993',1,'atm_land_ice_flux_exchange_mod::cplclock()'],['../namespaceflux__exchange__mod.html#a55cfce099e27ac30a8a3e3c9f48849d8',1,'flux_exchange_mod::cplclock()'],['../namespaceland__ice__flux__exchange__mod.html#a6e80f85c3ad949322df68bfda49aeb9d',1,'land_ice_flux_exchange_mod::cplclock()']]], - ['cplocnclock',['cplocnclock',['../namespaceice__ocean__flux__exchange__mod.html#a5431df541452ace1e68a6dc62c8efa4a',1,'ice_ocean_flux_exchange_mod']]], - ['current_5fdate',['current_date',['../namespacefull__coupler__mod.html#ac79f6aa8c4ad045ee4a8bc7726853457',1,'full_coupler_mod']]] -]; diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html deleted file mode 100644 index fbc36712..00000000 --- a/docs/html/search/variables_3.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js deleted file mode 100644 index 0037d153..00000000 --- a/docs/html/search/variables_3.js +++ /dev/null @@ -1,47 +0,0 @@ -var searchData= -[ - ['d378',['d378',['../namespaceatm__land__ice__flux__exchange__mod.html#aa77dede0d3c2c5408143f748933f68a2',1,'atm_land_ice_flux_exchange_mod::d378()'],['../namespaceflux__exchange__mod.html#ada557dace4f17fc5ceb45e4075f4d2f6',1,'flux_exchange_mod::d378()'],['../namespacesurface__flux__mod.html#a081d7ae26d8ea3d5d1dc439c4a3be90c',1,'surface_flux_mod::d378()']]], - ['d608',['d608',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a8cf3f5dece449a034a9e4643d31b8c',1,'atm_land_ice_flux_exchange_mod::d608()'],['../namespacesurface__flux__mod.html#a8d4afc63f10ef27e817f2af153991783',1,'surface_flux_mod::d608()']]], - ['d622',['d622',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f6ee7f59b0dcbd45caa8957f2eb5b34',1,'atm_land_ice_flux_exchange_mod::d622()'],['../namespaceflux__exchange__mod.html#a8770c4bcde6c8a65e71388d68afe02cb',1,'flux_exchange_mod::d622()'],['../namespacesurface__flux__mod.html#a0e3ae511121a67f2b3ac5da1f97c379a',1,'surface_flux_mod::d622()']]], - ['data',['data',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a0e638d4b8efef050d34bb16bb637e503',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['date_5finit',['date_init',['../namespacefull__coupler__mod.html#a224eb7b4334353b002163b32235c2c37',1,'full_coupler_mod']]], - ['days',['days',['../namespacefull__coupler__mod.html#a0b42e8ed5c43a06e46c947f90f60de2e',1,'full_coupler_mod']]], - ['debug_5fstocks',['debug_stocks',['../namespaceflux__exchange__mod.html#a85a4e48184ac3df1924a4da5b3678836',1,'flux_exchange_mod::debug_stocks()'],['../namespaceice__ocean__flux__exchange__mod.html#a09c87ee132e2cfd87a1ecda83787b5bd',1,'ice_ocean_flux_exchange_mod::debug_stocks()']]], - ['dedq_5fatm',['dedq_atm',['../namespaceflux__exchange__mod.html#a64be41e9f890fd04c831656e04dea02e',1,'flux_exchange_mod']]], - ['dedq_5fsurf',['dedq_surf',['../namespaceflux__exchange__mod.html#a772a31b28741e8b8245dfb15e15077bb',1,'flux_exchange_mod']]], - ['dedt',['dedt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a351c56250820f5e145465d8a684148df',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['dedt_5fsurf',['dedt_surf',['../namespaceflux__exchange__mod.html#a4416573f338299400a7bde3b33ecce6d',1,'flux_exchange_mod']]], - ['dhdt',['dhdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#afd3cad887715d9239eeb2f09f1121729',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['dhdt_5fatm',['dhdt_atm',['../namespaceflux__exchange__mod.html#ada94f4e7d52c502fd946201f090c5644',1,'flux_exchange_mod']]], - ['dhdt_5fsurf',['dhdt_surf',['../namespaceflux__exchange__mod.html#adda223e3f75af374428581666b973a69',1,'flux_exchange_mod']]], - ['diff',['diff',['../namespaceice__model__mod.html#a9930d4b7c4f36ba29c1494007ab9a5c4',1,'ice_model_mod']]], - ['direct',['direct',['../namespaceice__ocean__flux__exchange__mod.html#acb3ce03bec276bc3121f63ea43cca7ea',1,'ice_ocean_flux_exchange_mod']]], - ['divert_5fstocks_5freport',['divert_stocks_report',['../namespaceflux__exchange__mod.html#a3bae6933b8309aa4e8677ae828c294b9',1,'flux_exchange_mod']]], - ['do_5farea_5fweighted_5fflux',['do_area_weighted_flux',['../namespaceflux__exchange__mod.html#afb7b20d6cf50c73ac40939c022fddb32',1,'flux_exchange_mod::do_area_weighted_flux()'],['../namespaceice__ocean__flux__exchange__mod.html#a14e7f4b057e393ad0b805968737590bb',1,'ice_ocean_flux_exchange_mod::do_area_weighted_flux()']]], - ['do_5fatmos',['do_atmos',['../namespacefull__coupler__mod.html#ac5f115cf3ec7b2b595aee0857cabdf90',1,'full_coupler_mod']]], - ['do_5fchksum',['do_chksum',['../namespacefull__coupler__mod.html#a74ce4e2724ae9e0d2d9721cdbd9e56e2',1,'full_coupler_mod']]], - ['do_5fconcurrent_5fradiation',['do_concurrent_radiation',['../namespacefull__coupler__mod.html#a131c273c9c0e80eb8350cb6809dd4c04',1,'full_coupler_mod']]], - ['do_5fdebug',['do_debug',['../namespacefull__coupler__mod.html#a25b64a33d2e473ed4ea14076052d13d4',1,'full_coupler_mod']]], - ['do_5fendpoint_5fchksum',['do_endpoint_chksum',['../namespacefull__coupler__mod.html#aebb5148e8c1a97317a997848170c7bdc',1,'full_coupler_mod']]], - ['do_5fflux',['do_flux',['../namespacefull__coupler__mod.html#a9e75cc87d8a2a12446415c8e96020256',1,'full_coupler_mod']]], - ['do_5fforecast',['do_forecast',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5ba0610f8d66c3fea1c7f593aa87d2d',1,'atm_land_ice_flux_exchange_mod::do_forecast()'],['../namespaceflux__exchange__mod.html#a64ce07eb820491557e1c3a345afd4c26',1,'flux_exchange_mod::do_forecast()']]], - ['do_5fice',['do_ice',['../namespacefull__coupler__mod.html#a129ad943f269777da974e4b6237aca81',1,'full_coupler_mod']]], - ['do_5finit',['do_init',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d84d05097c722fd05883eee3826ccbe',1,'atm_land_ice_flux_exchange_mod::do_init()'],['../namespaceflux__exchange__mod.html#aadc375ceab862873a6185a4c206bec41',1,'flux_exchange_mod::do_init()']]], - ['do_5fiter_5fmonin_5fobukhov',['do_iter_monin_obukhov',['../namespacesurface__flux__mod.html#a6b3f019016c57aa487b01d3304625f41',1,'surface_flux_mod']]], - ['do_5fland',['do_land',['../namespacefull__coupler__mod.html#ae29c7dedacd07b876ab9a8c88f3fcb0a',1,'full_coupler_mod']]], - ['do_5fnetcdf_5frestart',['do_netcdf_restart',['../namespaceice__model__mod.html#a3b97dc02cd49d8cf87c2a01d893e7580',1,'ice_model_mod']]], - ['do_5focean',['do_ocean',['../namespacefull__coupler__mod.html#aa8de957c43ab106c9b82743daf3f8df6',1,'full_coupler_mod']]], - ['do_5fread_5fnml',['do_read_nml',['../namespaceflux__exchange__mod.html#a1b9cb50c37b77026396b80aa79d606d1',1,'flux_exchange_mod']]], - ['do_5frunoff',['do_runoff',['../namespaceflux__exchange__mod.html#ae37ea2fadd4c406881499469dca2fc3e',1,'flux_exchange_mod::do_runoff()'],['../namespaceland__ice__flux__exchange__mod.html#a22b7d08fbac612f0dc26cea5ca406d42',1,'land_ice_flux_exchange_mod::do_runoff()']]], - ['do_5fsimple',['do_simple',['../namespacesurface__flux__mod.html#a430e1f667917e25d8428390a7b4a3733',1,'surface_flux_mod']]], - ['domain',['domain',['../structice__model__mod_1_1ice__data__type.html#ae05a07368d37ccbc698fc6549fd69754',1,'ice_model_mod::ice_data_type']]], - ['drag_5fq',['drag_q',['../namespaceflux__exchange__mod.html#ada7c251b490f5d63b180b8743604b542',1,'flux_exchange_mod']]], - ['drdt',['drdt',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a4cf5b6717966554bc5d90949a87f5960',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['drdt_5fsurf',['drdt_surf',['../namespaceflux__exchange__mod.html#a0859551ba70604215444be6812882a94',1,'flux_exchange_mod']]], - ['dt_5fatm',['dt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a5fb5220bf72b4400535dc05349315a51',1,'atm_land_ice_flux_exchange_mod::dt_atm()'],['../namespaceflux__exchange__mod.html#a0c9c7bedc436dc8cb4a1e04e7f1a8383',1,'flux_exchange_mod::dt_atm()']]], - ['dt_5fatmos',['dt_atmos',['../namespacefull__coupler__mod.html#a41615cc0aca5a18ba4063f706e9c6411',1,'full_coupler_mod']]], - ['dt_5fcpl',['dt_cpl',['../namespaceatm__land__ice__flux__exchange__mod.html#a81b43e09e9d4cebba884745f33d83136',1,'atm_land_ice_flux_exchange_mod::dt_cpl()'],['../namespaceflux__exchange__mod.html#a9dc660f54fcdc281c1d485e648d61560',1,'flux_exchange_mod::dt_cpl()'],['../namespaceice__ocean__flux__exchange__mod.html#adcfc1fa47976b72f3dc87ca755564ef5',1,'ice_ocean_flux_exchange_mod::dt_cpl()'],['../namespaceland__ice__flux__exchange__mod.html#ab4526d344c3c7cc0ced653cbec2bfd41',1,'land_ice_flux_exchange_mod::dt_cpl()']]], - ['dt_5fcpld',['dt_cpld',['../namespacefull__coupler__mod.html#a30dca8790f45f415d867bbe2db8347e0',1,'full_coupler_mod']]], - ['dtaudu_5fatm',['dtaudu_atm',['../namespaceflux__exchange__mod.html#a5cd211c381fed72389efb72189444d6a',1,'flux_exchange_mod']]], - ['dtaudv_5fatm',['dtaudv_atm',['../namespaceflux__exchange__mod.html#a4dddbf7be36c8f1d95106cb36834c256',1,'flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html deleted file mode 100644 index 8067e67f..00000000 --- a/docs/html/search/variables_4.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js deleted file mode 100644 index dfa24001..00000000 --- a/docs/html/search/variables_4.js +++ /dev/null @@ -1,56 +0,0 @@ -var searchData= -[ - ['e_5fq_5fn',['e_q_n',['../namespaceflux__exchange__mod.html#af70762b2a29dd3351d264552a69f31fd',1,'flux_exchange_mod']]], - ['e_5ft_5fn',['e_t_n',['../namespaceflux__exchange__mod.html#a99c629c06c3a52e275521209439235fb',1,'flux_exchange_mod']]], - ['epsln',['epsln',['../namespaceatmos__ocean__fluxes__calc__mod.html#a55eb8d12d0b2764e81cecf9dff4dc4d8',1,'atmos_ocean_fluxes_calc_mod']]], - ['ex_5falbedo_5ffix',['ex_albedo_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a6ce3eaf605064a25d5cc1283e0e11276',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fnir_5fdif_5ffix',['ex_albedo_nir_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a328257f3efd36a27514c76d5cf96c379',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fnir_5fdir_5ffix',['ex_albedo_nir_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#a104be61b1aa14a50d997b6993b5274c9',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fvis_5fdif_5ffix',['ex_albedo_vis_dif_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aa10f4fb058cec37b5080747c92b38ccc',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5falbedo_5fvis_5fdir_5ffix',['ex_albedo_vis_dir_fix',['../namespaceatm__land__ice__flux__exchange__mod.html#aad98ee1a168521649429409b391b9762',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5favail',['ex_avail',['../namespaceatm__land__ice__flux__exchange__mod.html#a58563af19b7f161084245415d793cae0',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fb_5fstar',['ex_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a0fd79bc7659c354908e2e6c325985544',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fcd_5fm',['ex_cd_m',['../namespaceatm__land__ice__flux__exchange__mod.html#a26e0b81f6ed8473af88bdec4dda23c4b',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fcd_5ft',['ex_cd_t',['../namespaceatm__land__ice__flux__exchange__mod.html#a1fc83cb6b523c05c9925f67c1bef77eb',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fcon_5fatm',['ex_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a972ea1bb3939a7b1fed1e698b182de88',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdedq_5fsurf_5fforland',['ex_dedq_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a3956b57ce785f108d1f2279f5ebd8e1e',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdedt_5fsurf',['ex_dedt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a50b141a6a27c86e08632eb459f39324b',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdedt_5fsurf_5fforland',['ex_dedt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#abbf844d7950c4153fb035f5b04f95a58',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdfdtr_5fatm',['ex_dfdtr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a358eb5572e71492f7499d25dd3f20f98',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdfdtr_5fsurf',['ex_dfdtr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a166f151a722fa35f69705d680a644cff',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdhdt_5fatm',['ex_dhdt_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a04986e4dfe0871fb9b662597e47772bb',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdhdt_5fsurf',['ex_dhdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a723109680791b32db1371f623f679d',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdhdt_5fsurf_5fforland',['ex_dhdt_surf_forland',['../namespaceatm__land__ice__flux__exchange__mod.html#a10ddd6efbc6230555b114c8a41c93900',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdqsatdt_5fsurf',['ex_dqsatdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1dcdd143924c77ba06ef91b15bfae469',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdrdt_5fsurf',['ex_drdt_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#aeba37d2c046170e4112311711809f620',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdtaudu_5fatm',['ex_dtaudu_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a4916ecd33588bcfbce81a5393f436671',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fdtaudv_5fatm',['ex_dtaudv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#ae3ae41712484a6829639b4cd4431dab1',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fe_5fq_5fn',['ex_e_q_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a86ed92f16c0fb112e38dd6873ca4cded',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fe_5ft_5fn',['ex_e_t_n',['../namespaceatm__land__ice__flux__exchange__mod.html#af597d6135733a6cb828cfe7a6b4189e2',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fe_5ftr_5fn',['ex_e_tr_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a62a8dccea77d1e67b22326bf6076d19f',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ff_5ft_5fdelt_5fn',['ex_f_t_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a0a94c710110b7899b37036cd305932ad',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ff_5ftr_5fdelt_5fn',['ex_f_tr_delt_n',['../namespaceatm__land__ice__flux__exchange__mod.html#a78022255bd2979bbd2d2ffe3a6217272',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5flw',['ex_flux_lw',['../namespaceatm__land__ice__flux__exchange__mod.html#af36a6c987c16a10e698b500396554130',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5ft',['ex_flux_t',['../namespaceatm__land__ice__flux__exchange__mod.html#ae9b13bb6dda1c9dd7d826fc60e495a7d',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5ftr',['ex_flux_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#a38000d1cf858d832de3570bbac68dc07',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5fu',['ex_flux_u',['../namespaceatm__land__ice__flux__exchange__mod.html#a5419fecfda33b11db1caab9042cf90c2',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fflux_5fv',['ex_flux_v',['../namespaceatm__land__ice__flux__exchange__mod.html#ac27b58d41879537c39e4b8bc6eac83f8',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fgas_5ffields_5fatm',['ex_gas_fields_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3266419d5fdecb4817fa06dad56056df',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_atm()'],['../namespaceflux__exchange__mod.html#a4cdfe4f5a23bfa6c4ccaffbd9ad047bb',1,'flux_exchange_mod::ex_gas_fields_atm()']]], - ['ex_5fgas_5ffields_5fice',['ex_gas_fields_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a07e2cfa8c59081b4aea8525879c304ab',1,'atm_land_ice_flux_exchange_mod::ex_gas_fields_ice()'],['../namespaceflux__exchange__mod.html#ad3a6680e20e123bfdf15e9690f52a4b8',1,'flux_exchange_mod::ex_gas_fields_ice()']]], - ['ex_5fgas_5ffluxes',['ex_gas_fluxes',['../namespaceatm__land__ice__flux__exchange__mod.html#a6c4da192e1adc05ce9f87b40e4e97b9b',1,'atm_land_ice_flux_exchange_mod::ex_gas_fluxes()'],['../namespaceflux__exchange__mod.html#a24a89015e7d63bf306c3c98bc0ecbd60',1,'flux_exchange_mod::ex_gas_fluxes()']]], - ['ex_5fland',['ex_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a2e2496900cb4751561b8111d9cd73fd3',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fold_5falbedo',['ex_old_albedo',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6f4b7e07f9aca6eb7fe2723915a2d40',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fp_5fsurf',['ex_p_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#af4fdc80a51f0145da4aa80a6317cc156',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fseawater',['ex_seawater',['../namespaceatm__land__ice__flux__exchange__mod.html#a7cc9b8d546d6589e3b2cf8a7ad6dd90c',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fslp',['ex_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#ae70d5c9a1a49eff91b2c14c1657103a6',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ft_5fca',['ex_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a11f41fbfe9ab8aa845f8337fb270f9d9',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ft_5fsurf',['ex_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a6b2ef838084f4e936de81bcf4acba447',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ft_5fsurf_5fmiz',['ex_t_surf_miz',['../namespaceatm__land__ice__flux__exchange__mod.html#a29071f5ae5e2772b510570b3834fe1b4',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ftr_5fcon_5fatm',['ex_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aa059a6e4b7a9798e0dddbd4d24638e11',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ftr_5fcon_5fref',['ex_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#af867f2e5e4235297c49e0c31889dc8a3',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5ftr_5fsurf',['ex_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a81a6ab0bad3a81d6b057c6aa2550148e',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fu_5fstar',['ex_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a3faddc34ad457fdb55533bead75ce7f0',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fwind',['ex_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#ada77a5490b1ad25fa3ca68f3f81b9548',1,'atm_land_ice_flux_exchange_mod']]], - ['ex_5fz_5fatm',['ex_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a415a43eca092359dca12e46ac24bb0de',1,'atm_land_ice_flux_exchange_mod']]], - ['exch',['exch',['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#af49ff646f6c5c341f07f96eb556ca3fb',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type']]] -]; diff --git a/docs/html/search/variables_5.html b/docs/html/search/variables_5.html deleted file mode 100644 index 7e95e946..00000000 --- a/docs/html/search/variables_5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js deleted file mode 100644 index b25aa50c..00000000 --- a/docs/html/search/variables_5.js +++ /dev/null @@ -1,29 +0,0 @@ -var searchData= -[ - ['f_5fq_5fdelt_5fn',['f_q_delt_n',['../namespaceflux__exchange__mod.html#ac1835374d54ce5533bf87bd388444d4d',1,'flux_exchange_mod']]], - ['f_5ft_5fdelt_5fn',['f_t_delt_n',['../namespaceflux__exchange__mod.html#afd64fcaa6261af605cf0704e813fe0bb',1,'flux_exchange_mod']]], - ['final_5fflux_5fcheck_5fstocks',['final_flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a5042090eb7e46f01440a762fbe55dbf8',1,'full_coupler_mod::coupler_clock_type']]], - ['first_5fstatic',['first_static',['../namespaceatm__land__ice__flux__exchange__mod.html#ab6ec5aeec04dfbc11e9db1d496b0d276',1,'atm_land_ice_flux_exchange_mod::first_static()'],['../namespaceflux__exchange__mod.html#a6a77207b65f30f8fe2db3dd6a3cf15ea',1,'flux_exchange_mod::first_static()']]], - ['flux_5fcheck_5fstocks',['flux_check_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6d6bae8bc10923df881c023689bdc5f3',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5fdown_5ffrom_5fatmos',['flux_down_from_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#ab01f08cbfcccf5bb51e6ce8fce17c2e5',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5fexchange_5finit',['flux_exchange_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a6a246dc59781d37c851e4d1ae1583001',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5fice_5fto_5focean',['flux_ice_to_ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#af5781bd885d87fcde35d90052bf79f18',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5fice_5fto_5focean_5fstocks',['flux_ice_to_ocean_stocks',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1a1e05fc71dabaaf9ab21d3828a77814',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5fland_5fto_5fice',['flux_land_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#a45af9e3925664172d82d273acecdb38f',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5flw',['flux_lw',['../namespaceflux__exchange__mod.html#ab1ee2d625de074a36d8549bca04772f7',1,'flux_exchange_mod']]], - ['flux_5focean_5fto_5fice',['flux_ocean_to_ice',['../structfull__coupler__mod_1_1coupler__clock__type.html#ae50469d47f9a6f770da3d26660f81f05',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5fq',['flux_q',['../namespaceflux__exchange__mod.html#a3c4cfa64058f3cca59b7c804cfab4d83',1,'flux_exchange_mod']]], - ['flux_5ft',['flux_t',['../namespaceflux__exchange__mod.html#ae6259f1b9fad0af0d2744ebfc7a34313',1,'flux_exchange_mod']]], - ['flux_5fu',['flux_u',['../namespaceflux__exchange__mod.html#ae36d80622db4d5f45ecf4da1f00c5b25',1,'flux_exchange_mod']]], - ['flux_5fup_5fto_5fatmos',['flux_up_to_atmos',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3b44642440602473e03691b68b4cdf8f',1,'full_coupler_mod::coupler_clock_type']]], - ['flux_5fv',['flux_v',['../namespaceflux__exchange__mod.html#a9c5e8f07060938dfc699b598621056e1',1,'flux_exchange_mod']]], - ['fluxatmdnclock',['fluxatmdnclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a33f6639238a7502d880f163e1e2b9a7d',1,'atm_land_ice_flux_exchange_mod']]], - ['fluxatmupclock',['fluxatmupclock',['../namespaceatm__land__ice__flux__exchange__mod.html#a17bc1bc0397c5f238246e540932eb068',1,'atm_land_ice_flux_exchange_mod']]], - ['fluxiceoceanclock',['fluxiceoceanclock',['../namespaceice__ocean__flux__exchange__mod.html#a9ba54588c93b81c1cc0264d121bd380a',1,'ice_ocean_flux_exchange_mod']]], - ['fluxlandiceclock',['fluxlandiceclock',['../namespaceland__ice__flux__exchange__mod.html#a1eea545bd73b38025dc9e06351309075',1,'land_ice_flux_exchange_mod']]], - ['fluxoceaniceclock',['fluxoceaniceclock',['../namespaceice__ocean__flux__exchange__mod.html#aee6869bc407ceb33d261653edd09ea11',1,'ice_ocean_flux_exchange_mod']]], - ['fname',['fname',['../namespaceice__model__mod.html#a4c4ab586477d470b99a4a9475810aee5',1,'ice_model_mod']]], - ['force_5fdate_5ffrom_5fnamelist',['force_date_from_namelist',['../namespacefull__coupler__mod.html#aa387f247b7f4014a0479a4c337f6b782',1,'full_coupler_mod']]], - ['fprec',['fprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a3f6cb46f2625a4b5f2c7fb9f94d62749',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['frac_5fprecip',['frac_precip',['../namespaceatm__land__ice__flux__exchange__mod.html#a1910f9c181f13ea0b3a92437a939452b',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_6.html b/docs/html/search/variables_6.html deleted file mode 100644 index 3d398e62..00000000 --- a/docs/html/search/variables_6.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js deleted file mode 100644 index f80e258a..00000000 --- a/docs/html/search/variables_6.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['gas_5ffluxes_5finitialized',['gas_fluxes_initialized',['../namespaceflux__exchange__mod.html#a5f1a23e53559d3a711cb36e25fd4ace4',1,'flux_exchange_mod']]], - ['gcp',['gcp',['../namespacesurface__flux__mod.html#a5336c38c479c44a9705f79ef59fa2884',1,'surface_flux_mod']]], - ['generate_5fsfc_5fxgrid',['generate_sfc_xgrid',['../structfull__coupler__mod_1_1coupler__clock__type.html#a99db2947c8e7611cc79452797333d3e2',1,'full_coupler_mod::coupler_clock_type']]], - ['glat',['glat',['../structice__model__mod_1_1ice__data__type.html#ae4c9474f058a55f93e5b105f25d2528b',1,'ice_model_mod::ice_data_type']]], - ['glat_5fbnd',['glat_bnd',['../structice__model__mod_1_1ice__data__type.html#a8260e71b9be3596e7114eaf50230b702',1,'ice_model_mod::ice_data_type']]], - ['glon',['glon',['../structice__model__mod_1_1ice__data__type.html#ac8053e87a05b5f99e3d2cb143a2366eb',1,'ice_model_mod::ice_data_type']]], - ['glon_5fbnd',['glon_bnd',['../structice__model__mod_1_1ice__data__type.html#a58d7dbe251c07a3cedfce9a0c4226b34',1,'ice_model_mod::ice_data_type']]], - ['gmask',['gmask',['../structice__model__mod_1_1ice__data__type.html#a6e1e34811a821de51ac334b32c07b76f',1,'ice_model_mod::ice_data_type']]], - ['gust_5fconst',['gust_const',['../namespacesurface__flux__mod.html#a9853d355943632ed31de22c32d34a196',1,'surface_flux_mod']]], - ['gust_5fmin',['gust_min',['../namespacesurface__flux__mod.html#a8562814e75fa9527bb9b50ba7ace548b',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/variables_7.html b/docs/html/search/variables_7.html deleted file mode 100644 index 7b791460..00000000 --- a/docs/html/search/variables_7.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_7.js b/docs/html/search/variables_7.js deleted file mode 100644 index 0abb8861..00000000 --- a/docs/html/search/variables_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['heat_5fcapacity_5focean',['heat_capacity_ocean',['../namespaceice__model__mod.html#a52aca51b46bce56cf693d9e3786a2d0b',1,'ice_model_mod']]], - ['hlars',['hlars',['../namespacesurface__flux__mod.html#a6322863889ffbe01bba7edbe650d6952',1,'surface_flux_mod']]], - ['hours',['hours',['../namespacefull__coupler__mod.html#a0ac62a1ec1db940ecdbe47abdbb3e708',1,'full_coupler_mod']]] -]; diff --git a/docs/html/search/variables_8.html b/docs/html/search/variables_8.html deleted file mode 100644 index 8ebc5f6b..00000000 --- a/docs/html/search/variables_8.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_8.js b/docs/html/search/variables_8.js deleted file mode 100644 index 41ed995d..00000000 --- a/docs/html/search/variables_8.js +++ /dev/null @@ -1,116 +0,0 @@ -var searchData= -[ - ['ice',['ice',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#ac1a8724b54f20f3bf0684dba8fadc5d4',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::ice()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a48075137a8491b3de7ac690b21573d3b',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a42c9994f342ece061d297854e712cf09',1,'full_coupler_mod::coupler_components_type::ice()']]], - ['ice_5fmask',['ice_mask',['../structice__model__mod_1_1ice__data__type.html#abb15bfd3d7483a4c6b18708e38622a9a',1,'ice_model_mod::ice_data_type']]], - ['ice_5fmethod',['ice_method',['../namespaceice__model__mod.html#a5e327ded7973d12fca26ee88ce90237c',1,'ice_model_mod']]], - ['ice_5fmodel_5finit',['ice_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a1e316b944a9ba93a642d980ab0961bc8',1,'full_coupler_mod::coupler_clock_type']]], - ['ice_5fnpes',['ice_npes',['../namespacefull__coupler__mod.html#ad05b147d644b53ac6be5c56a85e80105',1,'full_coupler_mod']]], - ['ice_5focean_5fboundary',['ice_ocean_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#afd3de655114a2a4bb651f450d985724a',1,'full_coupler_mod::coupler_components_type']]], - ['ico2',['ico2',['../namespaceatm__land__ice__flux__exchange__mod.html#aaa5b59437ded633e8126dce056668b39',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5falbedo',['id_albedo',['../namespaceflux__exchange__mod.html#a15ea2ee065543703a1cea729eaa31f03',1,'flux_exchange_mod']]], - ['id_5falbedo_5fnir_5fdif',['id_albedo_nir_dif',['../namespaceflux__exchange__mod.html#a75e5d42b6aebc4f7dca8f38e3043d371',1,'flux_exchange_mod']]], - ['id_5falbedo_5fnir_5fdir',['id_albedo_nir_dir',['../namespaceflux__exchange__mod.html#a8a49ff3c234a55d9ad1fe7ed39122c35',1,'flux_exchange_mod']]], - ['id_5falbedo_5fvis_5fdif',['id_albedo_vis_dif',['../namespaceflux__exchange__mod.html#ae528350ad734a91157e635d611cc54b7',1,'flux_exchange_mod']]], - ['id_5falbedo_5fvis_5fdir',['id_albedo_vis_dir',['../namespaceflux__exchange__mod.html#a41fa678e5738fb09ebf2bf3707ed8312',1,'flux_exchange_mod']]], - ['id_5fb_5fstar',['id_b_star',['../namespaceatm__land__ice__flux__exchange__mod.html#ad67fe3e50cce306c7e0f750cbeb4a8b8',1,'atm_land_ice_flux_exchange_mod::id_b_star()'],['../namespaceflux__exchange__mod.html#a71e9c56b65499310582161139e863074',1,'flux_exchange_mod::id_b_star()']]], - ['id_5fco2_5fatm_5fdvmr',['id_co2_atm_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f117a52b85447649ab2611b915a406a',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fco2_5fbot',['id_co2_bot',['../namespaceatm__land__ice__flux__exchange__mod.html#abe4744b6ee8cc8e236be33b11254b857',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fco2_5fflux_5fpcair_5fatm',['id_co2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a24abe80c13032b56cb0127ef9fdbf801',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fco2_5fsurf_5fdvmr',['id_co2_surf_dvmr',['../namespaceatm__land__ice__flux__exchange__mod.html#a35ba5f517eb5645e5b4cf86d4ba72017',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fdel_5fh',['id_del_h',['../namespaceatm__land__ice__flux__exchange__mod.html#ad10f7e71514a2a732c1caff77cb96223',1,'atm_land_ice_flux_exchange_mod::id_del_h()'],['../namespaceflux__exchange__mod.html#ac70233f1c81d8583a6568077f91ccd52',1,'flux_exchange_mod::id_del_h()']]], - ['id_5fdel_5fm',['id_del_m',['../namespaceatm__land__ice__flux__exchange__mod.html#ade5a7d5ba4a4438a11355b302deff6d7',1,'atm_land_ice_flux_exchange_mod::id_del_m()'],['../namespaceflux__exchange__mod.html#a6901c7cd4e2848395f509a6abb46556a',1,'flux_exchange_mod::id_del_m()']]], - ['id_5fdel_5fq',['id_del_q',['../namespaceatm__land__ice__flux__exchange__mod.html#a1308cfc339de1da97984284e9f9b24d8',1,'atm_land_ice_flux_exchange_mod::id_del_q()'],['../namespaceflux__exchange__mod.html#a8c9ce600b074f59620a578bc5d52c0c0',1,'flux_exchange_mod::id_del_q()']]], - ['id_5fdrag_5fheat',['id_drag_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a31719c7fb16b0dfb1c4d55b3efc31dea',1,'atm_land_ice_flux_exchange_mod::id_drag_heat()'],['../namespaceflux__exchange__mod.html#af5fd6664ced6089e4233d6e06d3e8aef',1,'flux_exchange_mod::id_drag_heat()']]], - ['id_5fdrag_5fmoist',['id_drag_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4c50286c97c254d06a959ba05f8dc54d',1,'atm_land_ice_flux_exchange_mod::id_drag_moist()'],['../namespaceflux__exchange__mod.html#ad6e99e3056f002fd30f99aa6192ebfd9',1,'flux_exchange_mod::id_drag_moist()']]], - ['id_5fdrag_5fmom',['id_drag_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#aecaecec0461747750aa7266f0f696f5d',1,'atm_land_ice_flux_exchange_mod::id_drag_mom()'],['../namespaceflux__exchange__mod.html#a920c704083ca9a0ae4df3f9470f75187',1,'flux_exchange_mod::id_drag_mom()']]], - ['id_5fevspsbl',['id_evspsbl',['../namespaceatm__land__ice__flux__exchange__mod.html#acd81f5188978df7ca167f58a63ce3b82',1,'atm_land_ice_flux_exchange_mod::id_evspsbl()'],['../namespaceflux__exchange__mod.html#aaacf35d1333efd04067972a8e15c5650',1,'flux_exchange_mod::id_evspsbl()']]], - ['id_5fevspsbl_5fg',['id_evspsbl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a315d7887dcb60530fec5af2fd6c232',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fgust',['id_gust',['../namespaceatm__land__ice__flux__exchange__mod.html#acea0f8f56aca9a40ee3d49f0ec71484f',1,'atm_land_ice_flux_exchange_mod::id_gust()'],['../namespaceflux__exchange__mod.html#ab351f867a6e2d370bce6b3a3a83d1e29',1,'flux_exchange_mod::id_gust()']]], - ['id_5fheight10m',['id_height10m',['../namespaceatm__land__ice__flux__exchange__mod.html#a94f9ecdff8925fd4a8d81902274c25f6',1,'atm_land_ice_flux_exchange_mod::id_height10m()'],['../namespaceflux__exchange__mod.html#ac769000a131617036cc85dd9eb61f431',1,'flux_exchange_mod::id_height10m()']]], - ['id_5fheight2m',['id_height2m',['../namespaceatm__land__ice__flux__exchange__mod.html#a725269d3ce9993c47458553c93c87fc8',1,'atm_land_ice_flux_exchange_mod::id_height2m()'],['../namespaceflux__exchange__mod.html#a4ec0c8f5928f2b7d672d8c2b3bad1aeb',1,'flux_exchange_mod::id_height2m()']]], - ['id_5fhfls',['id_hfls',['../namespaceatm__land__ice__flux__exchange__mod.html#a21634392fb749504bb491b63cb709a1b',1,'atm_land_ice_flux_exchange_mod::id_hfls()'],['../namespaceflux__exchange__mod.html#a110df167d79e3e96ebe3e0d5713bed32',1,'flux_exchange_mod::id_hfls()']]], - ['id_5fhfls_5fg',['id_hfls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#aa678b45e9a43a0fd9d834746c792c516',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fhfss',['id_hfss',['../namespaceatm__land__ice__flux__exchange__mod.html#ad953111f0333dad0442a995705b8c46a',1,'atm_land_ice_flux_exchange_mod::id_hfss()'],['../namespaceflux__exchange__mod.html#a600231bdd606fbfa02d1760b981942f1',1,'flux_exchange_mod::id_hfss()']]], - ['id_5fhurs',['id_hurs',['../namespaceatm__land__ice__flux__exchange__mod.html#a68bfd465d951a65d6141047172a92488',1,'atm_land_ice_flux_exchange_mod::id_hurs()'],['../namespaceflux__exchange__mod.html#a7a4ad8765b8c543e740377def47bb6e6',1,'flux_exchange_mod::id_hurs()']]], - ['id_5fhuss',['id_huss',['../namespaceatm__land__ice__flux__exchange__mod.html#a5944abb0dd9dce2ae32c66c1bcd59bff',1,'atm_land_ice_flux_exchange_mod::id_huss()'],['../namespaceflux__exchange__mod.html#ae187f4114a25b952f1430db74c700b2c',1,'flux_exchange_mod::id_huss()']]], - ['id_5fhusslut_5fland',['id_husslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5a13546bf48109d63d08ca6e81a8298',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fice_5fmask',['id_ice_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#a08c7a67df8fbfdeb95f0b6de7da4b7a2',1,'atm_land_ice_flux_exchange_mod::id_ice_mask()'],['../namespaceflux__exchange__mod.html#a7491683ec01c03efff8da897b1a15cbb',1,'flux_exchange_mod::id_ice_mask()']]], - ['id_5fland_5fmask',['id_land_mask',['../namespaceatm__land__ice__flux__exchange__mod.html#aa1777ab543636038ecaefc4656cdc91b',1,'atm_land_ice_flux_exchange_mod::id_land_mask()'],['../namespaceflux__exchange__mod.html#af93947881e267229684f12281ce0b700',1,'flux_exchange_mod::id_land_mask()']]], - ['id_5fo2_5fflux_5fpcair_5fatm',['id_o2_flux_pcair_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adeb499100d57339308ae4b676aeeaa93',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fp_5fatm',['id_p_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#af8a1447d56d28335055d81152496f7e8',1,'atm_land_ice_flux_exchange_mod::id_p_atm()'],['../namespaceflux__exchange__mod.html#a3c25e7f8bd1fa9d3b650e20671f1eb78',1,'flux_exchange_mod::id_p_atm()']]], - ['id_5fpsl',['id_psl',['../namespaceatm__land__ice__flux__exchange__mod.html#ab940b2bc9ff8b4339233507550d4a856',1,'atm_land_ice_flux_exchange_mod::id_psl()'],['../namespaceflux__exchange__mod.html#afb4061b5677fe090528f0a991abade69',1,'flux_exchange_mod::id_psl()']]], - ['id_5fq_5fatm',['id_q_atm',['../namespaceflux__exchange__mod.html#abe05690d87b38a57c33a158e773f1ee6',1,'flux_exchange_mod']]], - ['id_5fq_5fflux',['id_q_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a1ed968c0f36351d58e7a035b37d01492',1,'atm_land_ice_flux_exchange_mod::id_q_flux()'],['../namespaceflux__exchange__mod.html#a8d635e999ae24402dd99af0657d706f9',1,'flux_exchange_mod::id_q_flux()']]], - ['id_5fq_5fflux_5fland',['id_q_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#ab7c212b94ae379003d7dfed66892d059',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fq_5fref',['id_q_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a035a0187d04ed47f6b373ba207be09c9',1,'atm_land_ice_flux_exchange_mod::id_q_ref()'],['../namespaceflux__exchange__mod.html#a9b49a9b72bfb917602bf46899bbe3524',1,'flux_exchange_mod::id_q_ref()']]], - ['id_5fq_5fref_5fland',['id_q_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#af43c49c9a0d6969182207632bfc8e3bc',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fq_5fstar',['id_q_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a2b4c714ab247af5b460ed9255669c018',1,'atm_land_ice_flux_exchange_mod::id_q_star()'],['../namespaceflux__exchange__mod.html#ae58f4cc598d0dfc185b8dd9717ee5a2b',1,'flux_exchange_mod::id_q_star()']]], - ['id_5fq_5fsurf',['id_q_surf',['../namespaceflux__exchange__mod.html#abb0e808fbc0b29d5dd5e923b79805439',1,'flux_exchange_mod']]], - ['id_5fr_5fflux',['id_r_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a4a082d4699eda42a0277b53b8d3b40b6',1,'atm_land_ice_flux_exchange_mod::id_r_flux()'],['../namespaceflux__exchange__mod.html#ab6d4c349f5231beb4e2f116f2f7a844d',1,'flux_exchange_mod::id_r_flux()']]], - ['id_5frh_5fref',['id_rh_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aa78a8745d3bd1c15c23ea56368a94f2f',1,'atm_land_ice_flux_exchange_mod::id_rh_ref()'],['../namespaceflux__exchange__mod.html#af2b89e05edbf76edca8d8b7056269ef8',1,'flux_exchange_mod::id_rh_ref()']]], - ['id_5frh_5fref_5fcmip',['id_rh_ref_cmip',['../namespaceatm__land__ice__flux__exchange__mod.html#ab3af14f2a483c630a814faa30860c2ea',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frh_5fref_5fland',['id_rh_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a00cbf5e8a16515a56470086456d55c2e',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frhs',['id_rhs',['../namespaceatm__land__ice__flux__exchange__mod.html#a27936d339a3e415b216d6035661892a1',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frls_5fg',['id_rls_g',['../namespaceatm__land__ice__flux__exchange__mod.html#abb05e6ae4581739009fb99a559547aa4',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5frough_5fheat',['id_rough_heat',['../namespaceatm__land__ice__flux__exchange__mod.html#a53351de906d9937f58c947f0cefbe386',1,'atm_land_ice_flux_exchange_mod::id_rough_heat()'],['../namespaceflux__exchange__mod.html#a55b1524c31defe007752c0f6fdf7e8c7',1,'flux_exchange_mod::id_rough_heat()']]], - ['id_5frough_5fmoist',['id_rough_moist',['../namespaceatm__land__ice__flux__exchange__mod.html#a4e8b49a2e77ff64c80bb3fad86a01a2d',1,'atm_land_ice_flux_exchange_mod::id_rough_moist()'],['../namespaceflux__exchange__mod.html#a2195dd29178389a35f5c6480e86c2284',1,'flux_exchange_mod::id_rough_moist()']]], - ['id_5frough_5fmom',['id_rough_mom',['../namespaceatm__land__ice__flux__exchange__mod.html#a72cf1a3badd620dbad6d518c0557288b',1,'atm_land_ice_flux_exchange_mod::id_rough_mom()'],['../namespaceflux__exchange__mod.html#a7993f2a7fa1177c8fa368a2ef3fb4202',1,'flux_exchange_mod::id_rough_mom()']]], - ['id_5frough_5fscale',['id_rough_scale',['../namespaceatm__land__ice__flux__exchange__mod.html#a574ec1820b8fa73246b4d22a8d8463e8',1,'atm_land_ice_flux_exchange_mod::id_rough_scale()'],['../namespaceflux__exchange__mod.html#a5b6579ddcab9c2d5a2d91f77044d7993',1,'flux_exchange_mod::id_rough_scale()']]], - ['id_5fsfcwind',['id_sfcwind',['../namespaceatm__land__ice__flux__exchange__mod.html#abd9c7a5f313f40f3081861bfaf73920a',1,'atm_land_ice_flux_exchange_mod::id_sfcwind()'],['../namespaceflux__exchange__mod.html#a62351e257923487b8b0b50965bd7bfff',1,'flux_exchange_mod::id_sfcwind()']]], - ['id_5fsftlf',['id_sftlf',['../namespaceatm__land__ice__flux__exchange__mod.html#a18eb844975de5e7b17c3567a618c4bdd',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fsic',['id_sic',['../namespaceatm__land__ice__flux__exchange__mod.html#a5bdaa4cffa5cf0b9610310f2cf5e24c2',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fslp',['id_slp',['../namespaceatm__land__ice__flux__exchange__mod.html#a886c3aaadd68115ac00fbbca174a0330',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ft_5fatm',['id_t_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#adf91d25ca4f1262291c52a6952587518',1,'atm_land_ice_flux_exchange_mod::id_t_atm()'],['../namespaceflux__exchange__mod.html#a7114bbe87d459e9b24ce483beae56faa',1,'flux_exchange_mod::id_t_atm()']]], - ['id_5ft_5fca',['id_t_ca',['../namespaceatm__land__ice__flux__exchange__mod.html#a188de7203c962fd3586ef6bd72cec660',1,'atm_land_ice_flux_exchange_mod::id_t_ca()'],['../namespaceflux__exchange__mod.html#a8a6c5aa71e364d4c9c5979431c6378d6',1,'flux_exchange_mod::id_t_ca()']]], - ['id_5ft_5fflux',['id_t_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ad3158d6930465374ebb5efc909ed71ae',1,'atm_land_ice_flux_exchange_mod::id_t_flux()'],['../namespaceflux__exchange__mod.html#ae8045e9b24c1c27a4b7db7664ef3fab8',1,'flux_exchange_mod::id_t_flux()']]], - ['id_5ft_5focean',['id_t_ocean',['../namespaceatm__land__ice__flux__exchange__mod.html#ae2d24744019fc0a2a62bf54c7bd7eb65',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ft_5fref',['id_t_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#aca247d952550b7e796118645c0b33c47',1,'atm_land_ice_flux_exchange_mod::id_t_ref()'],['../namespaceflux__exchange__mod.html#a373b24bf412bc3c5d9a8cd4b6612fc10',1,'flux_exchange_mod::id_t_ref()']]], - ['id_5ft_5fref_5fland',['id_t_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a6d4c4bebe361cdb91ecea469fe537709',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ft_5fsurf',['id_t_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a1581ecfbe3e1d1c5db56f7d76c3a333c',1,'atm_land_ice_flux_exchange_mod::id_t_surf()'],['../namespaceflux__exchange__mod.html#a534a80a92ec907c62067588d8092673c',1,'flux_exchange_mod::id_t_surf()']]], - ['id_5ftas',['id_tas',['../namespaceatm__land__ice__flux__exchange__mod.html#a1cf5d543f00afb609610ced045795cad',1,'atm_land_ice_flux_exchange_mod::id_tas()'],['../namespaceflux__exchange__mod.html#aff3b37b816a504ea71154f7aba0c815c',1,'flux_exchange_mod::id_tas()']]], - ['id_5ftas_5fg',['id_tas_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ae8beb56ee8877254cc9e82da3afe3e61',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftasl_5fg',['id_tasl_g',['../namespaceatm__land__ice__flux__exchange__mod.html#a5034052a9896f89edd3cace96fb1867b',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftaslut_5fland',['id_taslut_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aa6c2e87381d5a69838a6dc8a5289050e',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftauu',['id_tauu',['../namespaceatm__land__ice__flux__exchange__mod.html#a6fd3108da364faf6334b326a55a58a66',1,'atm_land_ice_flux_exchange_mod::id_tauu()'],['../namespaceflux__exchange__mod.html#a7414d25c7b0fd48301902707a9345394',1,'flux_exchange_mod::id_tauu()']]], - ['id_5ftauv',['id_tauv',['../namespaceatm__land__ice__flux__exchange__mod.html#a07d14896bb047c09cda836282fae11d7',1,'atm_land_ice_flux_exchange_mod::id_tauv()'],['../namespaceflux__exchange__mod.html#ae0c72caf4b2a0d276d0a989c694cb49c',1,'flux_exchange_mod::id_tauv()']]], - ['id_5fthv_5fatm',['id_thv_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7a9253b6caaa179be8ffdb91d1ba5b47',1,'atm_land_ice_flux_exchange_mod::id_thv_atm()'],['../namespaceflux__exchange__mod.html#a8bea74f845722bd6e52014a3f4e643fd',1,'flux_exchange_mod::id_thv_atm()']]], - ['id_5fthv_5fsurf',['id_thv_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#ad2e7d89158887b68df2311f4b5b130d3',1,'atm_land_ice_flux_exchange_mod::id_thv_surf()'],['../namespaceflux__exchange__mod.html#aa11efd287049dbe74600ca2d2295f2b2',1,'flux_exchange_mod::id_thv_surf()']]], - ['id_5ftos',['id_tos',['../namespaceatm__land__ice__flux__exchange__mod.html#ac86517a5ddecd4e180464b6cb80f3c99',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fatm',['id_tr_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a82f48a9a822083769bcd48b427c7a749',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fatm',['id_tr_con_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3700e57c52d7ba6ff7ce17de7a52f885',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fatm_5fland',['id_tr_con_atm_land',['../namespaceatm__land__ice__flux__exchange__mod.html#aaf13f42049e3c17ce32b99e263ed19ca',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fref',['id_tr_con_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#ab67aebeab080001bcc0b7df4ba4ce31d',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fcon_5fref_5fland',['id_tr_con_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b0582183221d7ffb1ba6e814cdd2bd5',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fflux',['id_tr_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#ae4d870d3c8b829dfedf2d721c2ee86a9',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fflux_5fland',['id_tr_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a92413e2be778482c1557dc71b7dd6961',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fmol_5fflux',['id_tr_mol_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a66181f27aac0ec30c16ee64425623b57',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fmol_5fflux0',['id_tr_mol_flux0',['../namespaceatm__land__ice__flux__exchange__mod.html#af4c241a58e2d051452ea6ac2165b605c',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fmol_5fflux_5fland',['id_tr_mol_flux_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a75dad27ee32489cb9f2d4075a92dfffd',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fref',['id_tr_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a70c3cec5c1122ca0574f74046683b098',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fref_5fland',['id_tr_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a8f83a35c04b7da9207d1495bd7146f06',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftr_5fsurf',['id_tr_surf',['../namespaceatm__land__ice__flux__exchange__mod.html#a46e4ae0a6178db2e207ffcf331988480',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fts',['id_ts',['../namespaceatm__land__ice__flux__exchange__mod.html#ae5e1ae03f135daaf040afa91f98e1e5e',1,'atm_land_ice_flux_exchange_mod::id_ts()'],['../namespaceflux__exchange__mod.html#a134d68c4787236f032c48a961d09092a',1,'flux_exchange_mod::id_ts()']]], - ['id_5fts_5fg',['id_ts_g',['../namespaceatm__land__ice__flux__exchange__mod.html#ac65d88399ec0dfe03b94a8b9a7b86704',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5ftslsi',['id_tslsi',['../namespaceatm__land__ice__flux__exchange__mod.html#a6443ee7227f5bf53c818286e461ac2a9',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fu_5fatm',['id_u_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aeea07bd389a5d7d5d25b2ddd168470ca',1,'atm_land_ice_flux_exchange_mod::id_u_atm()'],['../namespaceflux__exchange__mod.html#abf03300672880ddaad472eea1faeb236',1,'flux_exchange_mod::id_u_atm()']]], - ['id_5fu_5fflux',['id_u_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a84f055774ddca433d9b90a59f20a50ef',1,'atm_land_ice_flux_exchange_mod::id_u_flux()'],['../namespaceflux__exchange__mod.html#af269baa55b882745d2f984d0f085beb9',1,'flux_exchange_mod::id_u_flux()']]], - ['id_5fu_5fref',['id_u_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a5aa53adef651f4cf2963f55ff5d8d87c',1,'atm_land_ice_flux_exchange_mod::id_u_ref()'],['../namespaceflux__exchange__mod.html#ad12cdd143dace24e7af1c884a46a3bfa',1,'flux_exchange_mod::id_u_ref()']]], - ['id_5fu_5fref_5fland',['id_u_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a68be019ceec5fef03392e9294bd375d7',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fu_5fstar',['id_u_star',['../namespaceatm__land__ice__flux__exchange__mod.html#a04cb44e014dd62c2986151f5548f7db6',1,'atm_land_ice_flux_exchange_mod::id_u_star()'],['../namespaceflux__exchange__mod.html#adb2fb9af13a61e053c74c52351a0ba02',1,'flux_exchange_mod::id_u_star()']]], - ['id_5fuas',['id_uas',['../namespaceatm__land__ice__flux__exchange__mod.html#a2a0903b6c77849c636e5bcb7a48cc7d8',1,'atm_land_ice_flux_exchange_mod::id_uas()'],['../namespaceflux__exchange__mod.html#a477616cc55f4ee5f3760c10888f3d374',1,'flux_exchange_mod::id_uas()']]], - ['id_5fv_5fatm',['id_v_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aef1643e965ae2f81eadd680b0d5f4131',1,'atm_land_ice_flux_exchange_mod::id_v_atm()'],['../namespaceflux__exchange__mod.html#a68a451013bb15a69769140c127a4f1ff',1,'flux_exchange_mod::id_v_atm()']]], - ['id_5fv_5fflux',['id_v_flux',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9bcab79adb87b32242c758f4151912',1,'atm_land_ice_flux_exchange_mod::id_v_flux()'],['../namespaceflux__exchange__mod.html#a4be95982d13072bb6152ca72009d1acf',1,'flux_exchange_mod::id_v_flux()']]], - ['id_5fv_5fref',['id_v_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a18b22238a6a481b7b2a007db5effdeca',1,'atm_land_ice_flux_exchange_mod::id_v_ref()'],['../namespaceflux__exchange__mod.html#a923c6fcbe668932a0d13b41bf9341b4c',1,'flux_exchange_mod::id_v_ref()']]], - ['id_5fv_5fref_5fland',['id_v_ref_land',['../namespaceatm__land__ice__flux__exchange__mod.html#a457592f5e27b40421f6b8a6106b79a20',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fvas',['id_vas',['../namespaceatm__land__ice__flux__exchange__mod.html#a541cf261997ecd29d2ad0c634fbcb498',1,'atm_land_ice_flux_exchange_mod::id_vas()'],['../namespaceflux__exchange__mod.html#ae0b2e834866fd77ba28b5234cf3bc36d',1,'flux_exchange_mod::id_vas()']]], - ['id_5fwind',['id_wind',['../namespaceatm__land__ice__flux__exchange__mod.html#a043764d83e681c67454ab8f073d5d6c1',1,'atm_land_ice_flux_exchange_mod::id_wind()'],['../namespaceflux__exchange__mod.html#ac6e943ac77ba00189aa554241e759ecc',1,'flux_exchange_mod::id_wind()']]], - ['id_5fwind_5fref',['id_wind_ref',['../namespaceatm__land__ice__flux__exchange__mod.html#a8e9f9f5b4c50074a1f6d5d6a31f32193',1,'atm_land_ice_flux_exchange_mod']]], - ['id_5fz_5fatm',['id_z_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#aca2058bf928915842f05333644374d7c',1,'atm_land_ice_flux_exchange_mod::id_z_atm()'],['../namespaceflux__exchange__mod.html#abbf375285c9f5e2d5db969ca1fffd9df',1,'flux_exchange_mod::id_z_atm()']]], - ['ie',['ie',['../namespaceflux__exchange__mod.html#ad916086216cea5dd86d0a768e91277e5',1,'flux_exchange_mod::ie()'],['../namespaceice__model__mod.html#a52955f6a81d812155d158a6758b6b2cc',1,'ice_model_mod::ie()']]], - ['inh3',['inh3',['../namespaceatm__land__ice__flux__exchange__mod.html#a4fbbecb55a808875facb743fe7fc9c62',1,'atm_land_ice_flux_exchange_mod']]], - ['initialization',['initialization',['../structfull__coupler__mod_1_1coupler__clock__type.html#a887711f282582220de642e6197afe7d9',1,'full_coupler_mod::coupler_clock_type']]], - ['intermediate_5frestart',['intermediate_restart',['../structfull__coupler__mod_1_1coupler__clock__type.html#a69ddb73e9b3290abafbbe86953aba052',1,'full_coupler_mod::coupler_clock_type']]], - ['interp_5fmethod',['interp_method',['../namespaceice__model__mod.html#ab4315c6a6b5b71f50aa993e9dc7fbf1a',1,'ice_model_mod']]], - ['is',['is',['../namespaceflux__exchange__mod.html#a5428375ca50056a30e12ee7dbc0c7dc2',1,'flux_exchange_mod::is()'],['../namespaceice__model__mod.html#a6844bbf75e350f32240178937b96d01a',1,'ice_model_mod::is()']]], - ['isphum',['isphum',['../namespaceatm__land__ice__flux__exchange__mod.html#adfc9bfe512cf81e9cd3e334274123a53',1,'atm_land_ice_flux_exchange_mod::isphum()'],['../namespaceflux__exchange__mod.html#ae978fc7982a42ad1418142e430e2ce77',1,'flux_exchange_mod::isphum()']]] -]; diff --git a/docs/html/search/variables_9.html b/docs/html/search/variables_9.html deleted file mode 100644 index 12136613..00000000 --- a/docs/html/search/variables_9.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_9.js b/docs/html/search/variables_9.js deleted file mode 100644 index debe5ef6..00000000 --- a/docs/html/search/variables_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['je',['je',['../namespaceflux__exchange__mod.html#ae3abc6014e04e4b7f5ab30116aa7ae49',1,'flux_exchange_mod::je()'],['../namespaceice__model__mod.html#a98cf069c605d7abc02cbcb9db7260e4d',1,'ice_model_mod::je()']]], - ['js',['js',['../namespaceflux__exchange__mod.html#a257678c48a666cc865cd3afe1d7629d6',1,'flux_exchange_mod::js()'],['../namespaceice__model__mod.html#abff82cb395c9a49b31e9de0bdb7e9c7c',1,'ice_model_mod::js()']]] -]; diff --git a/docs/html/search/variables_a.html b/docs/html/search/variables_a.html deleted file mode 100644 index 24819a37..00000000 --- a/docs/html/search/variables_a.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_a.js b/docs/html/search/variables_a.js deleted file mode 100644 index f0469842..00000000 --- a/docs/html/search/variables_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['kappa',['kappa',['../namespacesurface__flux__mod.html#a4d5ccaf8614f916474bf664f17c9f4c8',1,'surface_flux_mod']]] -]; diff --git a/docs/html/search/variables_b.html b/docs/html/search/variables_b.html deleted file mode 100644 index b306931e..00000000 --- a/docs/html/search/variables_b.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_b.js b/docs/html/search/variables_b.js deleted file mode 100644 index d9e92a19..00000000 --- a/docs/html/search/variables_b.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['land',['land',['../structfull__coupler__mod_1_1coupler__components__type.html#ae4f68fd9975159d0ae93abf919a3d5b5',1,'full_coupler_mod::coupler_components_type']]], - ['land_5fice_5fatmos_5fboundary',['land_ice_atmos_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#aca4da881da2617567eda2a8b23ebbada',1,'full_coupler_mod::coupler_components_type']]], - ['land_5fice_5fboundary',['land_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#a53a7034349f0b6b3c1f358be2eb1601d',1,'full_coupler_mod::coupler_components_type']]], - ['land_5fmodel_5finit',['land_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#ace4fb2da56ef545733a9bfb933290a40',1,'full_coupler_mod::coupler_clock_type']]], - ['land_5fnpes',['land_npes',['../namespacefull__coupler__mod.html#a113f970d00f5a7c71b1398aa9fe4757c',1,'full_coupler_mod']]], - ['lat',['lat',['../structice__model__mod_1_1ice__data__type.html#a9cf4e9c9c1e486a5a799ee5cb1c48d43',1,'ice_model_mod::ice_data_type']]], - ['lat_5fbnd',['lat_bnd',['../structice__model__mod_1_1ice__data__type.html#a36c7325aeae1c7d0004fbc72964d2171',1,'ice_model_mod::ice_data_type']]], - ['latent',['latent',['../namespaceice__model__mod.html#a4a4c3667067f2919a730828c40ad68ea',1,'ice_model_mod']]], - ['lnd',['lnd',['../structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html#a904628deb2e0ba89bd85850cd843ab79',1,'atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd()'],['../structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html#a038bbdf0783f9e36ecf0a54c41bf3868',1,'atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd()']]], - ['lon',['lon',['../structice__model__mod_1_1ice__data__type.html#a3bdfb5cb70bc4018cfac10de236d3024',1,'ice_model_mod::ice_data_type']]], - ['lon_5fbnd',['lon_bnd',['../structice__model__mod_1_1ice__data__type.html#a0af0e531e34ee53f3a3d9eb8725d6a59',1,'ice_model_mod::ice_data_type']]], - ['lprec',['lprec',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6c8eb5d3a6acfaa10fd8b5a6d3b6add2',1,'ice_model_mod::atmos_ice_boundary_type']]], - ['lw_5fflux',['lw_flux',['../structice__model__mod_1_1atmos__ice__boundary__type.html#a6560d3ff7f3d6ace395dab365adcd691',1,'ice_model_mod::atmos_ice_boundary_type']]] -]; diff --git a/docs/html/search/variables_c.html b/docs/html/search/variables_c.html deleted file mode 100644 index 75709df8..00000000 --- a/docs/html/search/variables_c.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_c.js b/docs/html/search/variables_c.js deleted file mode 100644 index 5faf5ecc..00000000 --- a/docs/html/search/variables_c.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['main',['main',['../structfull__coupler__mod_1_1coupler__clock__type.html#a394cd0ee0859684c4a23203039bcda0a',1,'full_coupler_mod::coupler_clock_type']]], - ['mask',['mask',['../structice__model__mod_1_1ice__data__type.html#ad4f7ac297bdae085c0454e08a09af5ea',1,'ice_model_mod::ice_data_type']]], - ['minutes',['minutes',['../namespacefull__coupler__mod.html#a9f5af682aa5da4ec7f798e696047b78b',1,'full_coupler_mod']]], - ['mixed_5flayer',['mixed_layer',['../namespaceice__model__mod.html#abc77bb043b104aeb0309a787d24219a0',1,'ice_model_mod']]], - ['mixed_5flayer_5focean',['mixed_layer_ocean',['../namespaceice__model__mod.html#adcb40b7a9c1a8531077d0f779e7ffebb',1,'ice_model_mod']]], - ['mod_5fname',['mod_name',['../namespaceatm__land__ice__flux__exchange__mod.html#a64ca82dba9df2806db81c86c57bd273d',1,'atm_land_ice_flux_exchange_mod::mod_name()'],['../namespaceatmos__ocean__dep__fluxes__calc__mod.html#a797fc4e4d632cba73982897b8b70563b',1,'atmos_ocean_dep_fluxes_calc_mod::mod_name()'],['../namespaceatmos__ocean__fluxes__calc__mod.html#ac9291db41140417d091d7d400d3764eb',1,'atmos_ocean_fluxes_calc_mod::mod_name()'],['../namespacefull__coupler__mod.html#acacf7a2f63b622973d2ea9911ec5b85c',1,'full_coupler_mod::mod_name()'],['../namespaceflux__exchange__mod.html#a303984a1be495e4592969bb87dc8bc64',1,'flux_exchange_mod::mod_name()']]], - ['module_5fis_5finitialized',['module_is_initialized',['../namespacesurface__flux__mod.html#a1c299d53b30a808f13cf0b0c5532041e',1,'surface_flux_mod::module_is_initialized()'],['../namespaceice__model__mod.html#aa482dd87dc4c239130f7b8f8f4e2aafd',1,'ice_model_mod::module_is_initialized()']]], - ['months',['months',['../namespacefull__coupler__mod.html#a37bda909017d0e8fc2b680c83e8b73df',1,'full_coupler_mod']]], - ['my_5fnblocks',['my_nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a22bfbb18d1071d20503054e5a56628c6',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_d.html b/docs/html/search/variables_d.html deleted file mode 100644 index 34c80a48..00000000 --- a/docs/html/search/variables_d.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_d.js b/docs/html/search/variables_d.js deleted file mode 100644 index c6b74e0a..00000000 --- a/docs/html/search/variables_d.js +++ /dev/null @@ -1,25 +0,0 @@ -var searchData= -[ - ['n_5fatm_5ftr',['n_atm_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#abe8dd7812b9263217a2cd03e3f6e5986',1,'atm_land_ice_flux_exchange_mod::n_atm_tr()'],['../namespaceflux__exchange__mod.html#afaa78870fb65620312ae0d411f17be2f',1,'flux_exchange_mod::n_atm_tr()']]], - ['n_5fatm_5ftr_5ftot',['n_atm_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#a5af2113231a04ffd8e8378903ad15d64',1,'atm_land_ice_flux_exchange_mod::n_atm_tr_tot()'],['../namespaceflux__exchange__mod.html#a5117150ab7aea4fe891cf9320710bab3',1,'flux_exchange_mod::n_atm_tr_tot()']]], - ['n_5fexch_5ftr',['n_exch_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#ae09127cdff74b500a41ad951257752d4',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5fgex_5fatm2lnd',['n_gex_atm2lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#a07eee36a20b3ce665902d55c9ee42b6e',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5fgex_5flnd2atm',['n_gex_lnd2atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a9c8f2e09598dbd8d3180f4b13d05f4fc',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5flnd_5ftr',['n_lnd_tr',['../namespaceatm__land__ice__flux__exchange__mod.html#acbcc6065e05775564c83054c42332e84',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5flnd_5ftr_5ftot',['n_lnd_tr_tot',['../namespaceatm__land__ice__flux__exchange__mod.html#aaefc6b7257ff1938f8fa671e0361579b',1,'atm_land_ice_flux_exchange_mod']]], - ['n_5fxgrid_5frunoff',['n_xgrid_runoff',['../namespaceland__ice__flux__exchange__mod.html#a3faf3bf1354b5359565b04fd6e15812c',1,'land_ice_flux_exchange_mod']]], - ['n_5fxgrid_5fsfc',['n_xgrid_sfc',['../namespaceatm__land__ice__flux__exchange__mod.html#aec976f33bcf263db8ec930400f1b5ba6',1,'atm_land_ice_flux_exchange_mod']]], - ['nblocks',['nblocks',['../namespaceatm__land__ice__flux__exchange__mod.html#a3b94aaeafe989d18f0e844a6a58018c7',1,'atm_land_ice_flux_exchange_mod::nblocks()'],['../namespaceflux__exchange__mod.html#a130755a7de1ad93566db2496df4f09a8',1,'flux_exchange_mod::nblocks()']]], - ['ncar_5focean_5fflux',['ncar_ocean_flux',['../namespacesurface__flux__mod.html#aa5809456b7f52a5f0a3cbbfee216d049',1,'surface_flux_mod']]], - ['ncar_5focean_5fflux_5fmultilevel',['ncar_ocean_flux_multilevel',['../namespacesurface__flux__mod.html#a7a001b64a7af7de49f02b3386b29207e',1,'surface_flux_mod']]], - ['ncar_5focean_5fflux_5forig',['ncar_ocean_flux_orig',['../namespacesurface__flux__mod.html#ab3f2c5dea16751feec4012925d936b42',1,'surface_flux_mod']]], - ['ni_5fatm',['ni_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a3eca478a281245b2a1217b66917936b0',1,'atm_land_ice_flux_exchange_mod::ni_atm()'],['../namespaceflux__exchange__mod.html#a19ced8a2d78de1df319982dc8c9b2236',1,'flux_exchange_mod::ni_atm()']]], - ['niter_5fmonin_5fobukhov',['niter_monin_obukhov',['../namespacesurface__flux__mod.html#aedbfeff1dd91e58e9795a6c9d16d936a',1,'surface_flux_mod']]], - ['nj_5fatm',['nj_atm',['../namespaceatm__land__ice__flux__exchange__mod.html#a7f93e3452d718c2449d09cfee5174987',1,'atm_land_ice_flux_exchange_mod::nj_atm()'],['../namespaceflux__exchange__mod.html#af0530282de56c7247536aa084919fecc',1,'flux_exchange_mod::nj_atm()']]], - ['nk_5fice',['nk_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a4382a4653bce90fa50988dbf415ba7d9',1,'atm_land_ice_flux_exchange_mod']]], - ['no_5fneg_5fq',['no_neg_q',['../namespacesurface__flux__mod.html#a20a47247f850d8adec96fd50382ff353',1,'surface_flux_mod']]], - ['nxc_5fice',['nxc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a1a93322c5bc5013dead0189eb44cb92e',1,'atm_land_ice_flux_exchange_mod']]], - ['nxc_5flnd',['nxc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ab90bd2d918553aa753e88bc71217d1aa',1,'atm_land_ice_flux_exchange_mod']]], - ['nyc_5fice',['nyc_ice',['../namespaceatm__land__ice__flux__exchange__mod.html#a8d9d3bc11f1a73d8a019470b1769a156',1,'atm_land_ice_flux_exchange_mod']]], - ['nyc_5flnd',['nyc_lnd',['../namespaceatm__land__ice__flux__exchange__mod.html#ac39eb3c6c82add4a1d0d7e2857c5b431',1,'atm_land_ice_flux_exchange_mod']]] -]; diff --git a/docs/html/search/variables_e.html b/docs/html/search/variables_e.html deleted file mode 100644 index 4a1c8a61..00000000 --- a/docs/html/search/variables_e.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_e.js b/docs/html/search/variables_e.js deleted file mode 100644 index ed212d3a..00000000 --- a/docs/html/search/variables_e.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['ocean',['ocean',['../structfull__coupler__mod_1_1coupler__clock__type.html#a3a95715c24b8e5542888fe9a81aca7d1',1,'full_coupler_mod::coupler_clock_type::ocean()'],['../structfull__coupler__mod_1_1coupler__components__type.html#a74f9b44545af10ad7ad03a348898904a',1,'full_coupler_mod::coupler_components_type::ocean()']]], - ['ocean_5fice_5fboundary',['ocean_ice_boundary',['../structfull__coupler__mod_1_1coupler__components__type.html#ad4d3a8c1b24f4086f2bfb520c0c0318c',1,'full_coupler_mod::coupler_components_type']]], - ['ocean_5fmodel_5finit',['ocean_model_init',['../structfull__coupler__mod_1_1coupler__clock__type.html#a32806294f0cd7e55f1e6d43af344d256',1,'full_coupler_mod::coupler_clock_type']]], - ['ocean_5fnpes',['ocean_npes',['../namespacefull__coupler__mod.html#accc0041353ee69933a1c006634b73942',1,'full_coupler_mod']]], - ['ocean_5fnthreads',['ocean_nthreads',['../namespacefull__coupler__mod.html#ae25bda27d23bc9ebe366a56d7e78c333',1,'full_coupler_mod']]], - ['old_5fdtaudv',['old_dtaudv',['../namespacesurface__flux__mod.html#a4004ece732cedb0fd110aacdb208ff87',1,'surface_flux_mod']]], - ['or',['or',['../namespaceice__model__mod.html#a98e632790d8e25d7f46222f6387ec42e',1,'ice_model_mod']]] -]; diff --git a/docs/html/search/variables_f.html b/docs/html/search/variables_f.html deleted file mode 100644 index cc86fb59..00000000 --- a/docs/html/search/variables_f.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Loading...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              Searching...
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              No Matches
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - diff --git a/docs/html/search/variables_f.js b/docs/html/search/variables_f.js deleted file mode 100644 index 51de6c41..00000000 --- a/docs/html/search/variables_f.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['p_5fsurf',['p_surf',['../namespaceflux__exchange__mod.html#af050af83a95afbfc896f4861ba4cdd1d',1,'flux_exchange_mod']]], - ['partition_5ffprec_5ffrom_5flprec',['partition_fprec_from_lprec',['../namespaceatm__land__ice__flux__exchange__mod.html#a514ebadfb8dcb7ae7bf696f6e3eae11a',1,'atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec()'],['../namespaceflux__exchange__mod.html#a2a3ce00fb63574459609d6b3ad334acb',1,'flux_exchange_mod::partition_fprec_from_lprec()']]] -]; diff --git a/docs/html/simple_2coupler__main_8_f90.html b/docs/html/simple_2coupler__main_8_f90.html deleted file mode 100644 index dd0b31e4..00000000 --- a/docs/html/simple_2coupler__main_8_f90.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - -FMS Coupler: simple/coupler_main.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              coupler_main.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90 -More...

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              program coupler_main
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine coupler_init
                                                                                                                                                                                                                                                                                                               reads namelist and restart files, initializes all defined exchange grids and all boundary maps More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine coupler_end
                                                                                                                                                                                                                                                                                                               Finalizes a run and writes restart files. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine coupler_chksum (id, timestep)
                                                                                                                                                                                                                                                                                                               Print out checksums for several atm, land and ice variables. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_chksum()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine coupler_main::coupler_chksum (character(len=*), intent(in) id,
                                                                                                                                                                                                                                                                                                              integer, intent(in) timestep 
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Print out checksums for several atm, land and ice variables.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_end()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine coupler_main::coupler_end ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              Finalizes a run and writes restart files.

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_init()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              subroutine coupler_main::coupler_init ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              reads namelist and restart files, initializes all defined exchange grids and all boundary maps

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coupler_main()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              program coupler_main ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/simple_2flux__exchange_8_f90.html b/docs/html/simple_2flux__exchange_8_f90.html deleted file mode 100644 index 54ac288b..00000000 --- a/docs/html/simple_2flux__exchange_8_f90.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - -FMS Coupler: simple/flux_exchange.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              flux_exchange.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Routines to handle flux exchanges through exchange grids for the simple coupler. -More...

                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  flux_exchange_mod
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::sfc_boundary_layer (dt, Time, Atm, Land, Ice, Boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_up_to_atmos (Time, Land, Ice, Boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::read_namelist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::diag_field_init (Time, atmos_axes)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public flux_exchange_mod::flux_exchange_end (Atm)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine flux_exchange_mod::surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len=14), parameter flux_exchange_mod::mod_name = 'flux'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_drag_moist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_drag_heat
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_drag_mom
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_moist
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_heat
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_mom
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_b_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_v_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_r_flux
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_v_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_wind
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_thv_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_thv_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rh_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_u_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_v_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_ref
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_del_h
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_del_m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_del_q
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_gust
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_t_ca
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_q_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_z_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_p_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_land_mask
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_ice_mask
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_rough_scale
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_vis_dir
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_nir_dir
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_vis_dif
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_albedo_nir_dif
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_tas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_uas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_vas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_ts
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_psl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_sfcwind
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_tauu
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_tauv
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_hurs
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_huss
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_evspsbl
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_hfls
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_hfss
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_height2m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::id_height10m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::first_static = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::do_read_nml = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::isphum
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::n_atm_tr_tot
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::n_atm_tr
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::use_existing_grid_spec = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::all_ocean = .true.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::all_land = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::is
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::ie
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::js
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_mod::je
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::t_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::t_ca
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::q_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::p_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::e_t_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::f_t_delt_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::e_q_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::f_q_delt_n
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dhdt_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dedt_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dedq_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::drdt_surf
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dhdt_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dedq_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_t
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_q
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_lw
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_u
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::flux_v
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::drag_q
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dtaudu_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::dtaudv_atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::cd_t
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::cd_m
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::b_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::u_star
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), allocatable flux_exchange_mod::wind
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical flux_exchange_mod::used
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Routines to handle flux exchanges through exchange grids for the simple coupler.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/splitbar.png b/docs/html/splitbar.png deleted file mode 100644 index fe895f2c58179b471a22d8320b39a4bd7312ec8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html deleted file mode 100644 index 232dfc76..00000000 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange_mod::tracer_exch_ind_type Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html deleted file mode 100644 index 8b2eb1f7..00000000 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -FMS Coupler: atm_land_ice_flux_exchange_mod::tracer_exch_ind_type Type Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange_mod::tracer_exch_ind_type Type Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Attributes

                                                                                                                                                                                                                                                                                                              integer exch = 0
                                                                                                                                                                                                                                                                                                               exchange grid index More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice = 0
                                                                                                                                                                                                                                                                                                               ice model index More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer lnd = 0
                                                                                                                                                                                                                                                                                                               land model index More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ exch

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::exch = 0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              exchange grid index

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice = 0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ice model index

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd = 0
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              land model index

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this type was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html deleted file mode 100644 index 202ae071..00000000 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange_mod::tracer_ind_type Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - diff --git a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html b/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html deleted file mode 100644 index 12b54646..00000000 --- a/docs/html/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -FMS Coupler: atm_land_ice_flux_exchange_mod::tracer_ind_type Type Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              atm_land_ice_flux_exchange_mod::tracer_ind_type Type Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Attributes

                                                                                                                                                                                                                                                                                                              integer atm
                                                                                                                                                                                                                                                                                                               tracer index in atm model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice
                                                                                                                                                                                                                                                                                                               tracer index in ice model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer lnd
                                                                                                                                                                                                                                                                                                               tracer index in lnd model More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::tracer_ind_type::atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              tracer index in atm model

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::tracer_ind_type::ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              tracer index in ice model

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              tracer index in lnd model

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this type was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html deleted file mode 100644 index a924bebf..00000000 --- a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod::coupler_chksum_type Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - diff --git a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html b/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html deleted file mode 100644 index bd8a39bc..00000000 --- a/docs/html/structfull__coupler__mod_1_1coupler__chksum__type.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - - -FMS Coupler: full_coupler_mod::coupler_chksum_type Type Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod::coupler_chksum_type Type Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. - More...

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Public Member Functions

                                                                                                                                                                                                                                                                                                              procedure, public initialize_coupler_chksum_obj
                                                                                                                                                                                                                                                                                                               associates the pointers above to model components More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              procedure, public get_components_obj
                                                                                                                                                                                                                                                                                                               subroutine to retrieve the requested component of an object of this type More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              procedure, public get_atmos_ice_land_ocean_chksums
                                                                                                                                                                                                                                                                                                               subroutine to compute chksums for atmos - ocean More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              procedure, public get_atmos_ice_land_chksums
                                                                                                                                                                                                                                                                                                               subroutine to compute chksums for atmos_ice_land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              procedure, public get_slow_ice_chksums
                                                                                                                                                                                                                                                                                                               subroutine to compute chskums for slow_ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              procedure, public get_ocean_chksums
                                                                                                                                                                                                                                                                                                               subroutine to compute chksums for ocean More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              procedure, public get_coupler_chksums
                                                                                                                                                                                                                                                                                                               subroutine to compute chksums for select fields More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - -

                                                                                                                                                                                                                                                                                                              -Private Attributes

                                                                                                                                                                                                                                                                                                              type(coupler_components_type), pointer components
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_atmos_ice_land_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              subroutine to compute chksums for atmos_ice_land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_atmos_ice_land_ocean_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              subroutine to compute chksums for atmos - ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_components_obj()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_chksum_type::get_components_obj ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              subroutine to retrieve the requested component of an object of this type

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_coupler_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_chksum_type::get_coupler_chksums ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              subroutine to compute chksums for select fields

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_ocean_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_chksum_type::get_ocean_chksums ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              subroutine to compute chksums for ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_slow_ice_chksums()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              subroutine to compute chskums for slow_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ initialize_coupler_chksum_obj()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              associates the pointers above to model components

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ components

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(coupler_components_type), pointer full_coupler_mod::coupler_chksum_type::components
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this type was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html deleted file mode 100644 index 553eac5a..00000000 --- a/docs/html/structfull__coupler__mod_1_1coupler__clock__type-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod::coupler_clock_type Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              This is the complete list of members for full_coupler_mod::coupler_clock_type, including all inherited members.

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              atmfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              atmos_loopfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              atmos_model_initfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              atmos_tracer_driver_gather_datafull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              concurrent_atmosfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              final_flux_check_stocksfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_check_stocksfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_down_from_atmosfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_exchange_initfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_ice_to_oceanfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_ice_to_ocean_stocksfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_land_to_icefull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_ocean_to_icefull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              flux_up_to_atmosfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              generate_sfc_xgridfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              ice_model_initfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              initializationfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              intermediate_restartfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              land_model_initfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              mainfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              oceanfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              ocean_model_initfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              radiationfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              set_ice_surface_exchangefull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              set_ice_surface_fastfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              set_ice_surface_slowfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              sfc_boundary_layerfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              terminationfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_atmos_model_downfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_atmos_model_dynamicsfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_atmos_model_statefull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_atmos_model_upfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_ice_model_fastfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_ice_model_slow_exchangefull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_ice_model_slow_fastfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_ice_model_slow_slowfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_land_model_fastfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              update_land_model_slowfull_coupler_mod::coupler_clock_typeprivate
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html b/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html deleted file mode 100644 index 825edea5..00000000 --- a/docs/html/structfull__coupler__mod_1_1coupler__clock__type.html +++ /dev/null @@ -1,1009 +0,0 @@ - - - - - - - -FMS Coupler: full_coupler_mod::coupler_clock_type Type Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod::coupler_clock_type Type Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. - More...

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Attributes

                                                                                                                                                                                                                                                                                                              integer initialization
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer main
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer generate_sfc_xgrid
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_ocean_to_ice
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_ice_to_ocean
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atm
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atmos_loop
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atmos_tracer_driver_gather_data
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer sfc_boundary_layer
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_atmos_model_dynamics
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_atmos_model_down
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_down_from_atmos
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_land_model_fast
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_ice_model_fast
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_up_to_atmos
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_atmos_model_up
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer radiation
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer concurrent_atmos
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_atmos_model_state
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_land_model_slow
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_land_to_ice
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer set_ice_surface_fast
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_ice_model_slow_fast
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer set_ice_surface_slow
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_ice_model_slow_slow
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_ice_to_ocean_stocks
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer set_ice_surface_exchange
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer update_ice_model_slow_exchange
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ocean
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_check_stocks
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer intermediate_restart
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer final_flux_check_stocks
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer termination
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer atmos_model_init
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer land_model_init
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ice_model_init
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer ocean_model_init
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer flux_exchange_init
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main.

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_loop

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::atmos_loop
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_model_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::atmos_model_init
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_tracer_driver_gather_data

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::atmos_tracer_driver_gather_data
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ concurrent_atmos

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::concurrent_atmos
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ final_flux_check_stocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::final_flux_check_stocks
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_check_stocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_check_stocks
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_down_from_atmos

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_down_from_atmos
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_exchange_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_exchange_init
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ice_to_ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ice_to_ocean_stocks

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean_stocks
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_land_to_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_land_to_ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_ocean_to_ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_ocean_to_ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ flux_up_to_atmos

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::flux_up_to_atmos
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ generate_sfc_xgrid

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::generate_sfc_xgrid
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_model_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::ice_model_init
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ initialization

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::initialization
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ intermediate_restart

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::intermediate_restart
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ land_model_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::land_model_init
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ main

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::main
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::ocean
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ocean_model_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::ocean_model_init
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ radiation

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::radiation
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ set_ice_surface_exchange

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::set_ice_surface_exchange
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ set_ice_surface_fast

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::set_ice_surface_fast
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ set_ice_surface_slow

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::set_ice_surface_slow
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ sfc_boundary_layer

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::sfc_boundary_layer
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ termination

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::termination
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_atmos_model_down

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_atmos_model_down
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_atmos_model_dynamics

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_atmos_model_dynamics
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_atmos_model_state

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_atmos_model_state
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_atmos_model_up

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_atmos_model_up
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_ice_model_fast

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_ice_model_fast
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_ice_model_slow_exchange

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_exchange
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_ice_model_slow_fast

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_fast
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_ice_model_slow_slow

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_slow
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_land_model_fast

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_land_model_fast
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ update_land_model_slow

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer full_coupler_mod::coupler_clock_type::update_land_model_slow
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this type was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html deleted file mode 100644 index 8d0a484a..00000000 --- a/docs/html/structfull__coupler__mod_1_1coupler__components__type-members.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod::coupler_components_type Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - diff --git a/docs/html/structfull__coupler__mod_1_1coupler__components__type.html b/docs/html/structfull__coupler__mod_1_1coupler__components__type.html deleted file mode 100644 index 7e639cc7..00000000 --- a/docs/html/structfull__coupler__mod_1_1coupler__components__type.html +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - -FMS Coupler: full_coupler_mod::coupler_components_type Type Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              full_coupler_mod::coupler_components_type Type Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Public Member Functions

                                                                                                                                                                                                                                                                                                              procedure, public initialize_coupler_components_obj
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              procedure, public get_component
                                                                                                                                                                                                                                                                                                               subroutine to retrieve the requested component of an object of this type More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Attributes

                                                                                                                                                                                                                                                                                                              type(atmos_data_type), pointer atm
                                                                                                                                                                                                                                                                                                               pointer to Atm More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(land_data_type), pointer land
                                                                                                                                                                                                                                                                                                               pointer to Land More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(ice_data_type), pointer ice
                                                                                                                                                                                                                                                                                                               pointer to Ice More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), pointer ocean
                                                                                                                                                                                                                                                                                                               pointer to Ocean More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), pointer land_ice_atmos_boundary
                                                                                                                                                                                                                                                                                                               pointer to Land_ice_atmos_boundary More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), pointer atmos_land_boundary
                                                                                                                                                                                                                                                                                                               pointer to Atmos_land_boundary More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), pointer atmos_ice_boundary
                                                                                                                                                                                                                                                                                                               pointer to Atmos_ice_boundary More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), pointer land_ice_boundary
                                                                                                                                                                                                                                                                                                               pointer to Land_ice_boundary More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), pointer ice_ocean_boundary
                                                                                                                                                                                                                                                                                                               pointer to Ice_ocean_boundary More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), pointer ocean_ice_boundary
                                                                                                                                                                                                                                                                                                               pointer to Ocean_ice_boundary More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Function/Subroutine Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ get_component()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_components_type::get_component ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              subroutine to retrieve the requested component of an object of this type

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ initialize_coupler_components_obj()

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - -
                                                                                                                                                                                                                                                                                                              procedure, public full_coupler_mod::coupler_components_type::initialize_coupler_components_obj ()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(atmos_data_type), pointer full_coupler_mod::coupler_components_type::atm
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Atm

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_ice_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(atmos_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_ice_boundary
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Atmos_ice_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ atmos_land_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(atmos_land_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_land_boundary
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Atmos_land_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(ice_data_type), pointer full_coupler_mod::coupler_components_type::ice
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Ice

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_ocean_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(ice_ocean_boundary_type), pointer full_coupler_mod::coupler_components_type::ice_ocean_boundary
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Ice_ocean_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(land_data_type), pointer full_coupler_mod::coupler_components_type::land
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Land

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ land_ice_atmos_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(land_ice_atmos_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_atmos_boundary
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Land_ice_atmos_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ land_ice_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(land_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_boundary
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Land_ice_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(ocean_public_type), pointer full_coupler_mod::coupler_components_type::ocean
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Ocean

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ocean_ice_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(ocean_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::ocean_ice_boundary
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              pointer to Ocean_ice_boundary

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this type was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html deleted file mode 100644 index a57f689d..00000000 --- a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type-members.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_model_mod::atmos_ice_boundary_type Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - diff --git a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html b/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html deleted file mode 100644 index 51c4e790..00000000 --- a/docs/html/structice__model__mod_1_1atmos__ice__boundary__type.html +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - -FMS Coupler: ice_model_mod::atmos_ice_boundary_type Type Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_model_mod::atmos_ice_boundary_type Type Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Attributes

                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer u_star =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer t_flux =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer q_flux =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer lw_flux =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer sw_flux =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer lprec =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer fprec =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer dhdt =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer dedt =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer drdt =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer coszen =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer data =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer xtype
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ coszen

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::coszen =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ data

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::data =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dedt

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dedt =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ dhdt

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dhdt =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ drdt

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::drdt =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ fprec

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::fprec =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lprec

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lprec =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lw_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lw_flux =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ q_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::q_flux =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ sw_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::sw_flux =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ t_flux

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::t_flux =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ u_star

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::u_star =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ xtype

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              integer ice_model_mod::atmos_ice_boundary_type::xtype
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this type was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/structice__model__mod_1_1ice__data__type-members.html b/docs/html/structice__model__mod_1_1ice__data__type-members.html deleted file mode 100644 index 85a87a27..00000000 --- a/docs/html/structice__model__mod_1_1ice__data__type-members.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -FMS Coupler: Member List - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_model_mod::ice_data_type Member List
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - diff --git a/docs/html/structice__model__mod_1_1ice__data__type.html b/docs/html/structice__model__mod_1_1ice__data__type.html deleted file mode 100644 index afbab326..00000000 --- a/docs/html/structice__model__mod_1_1ice__data__type.html +++ /dev/null @@ -1,716 +0,0 @@ - - - - - - - -FMS Coupler: ice_model_mod::ice_data_type Type Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              ice_model_mod::ice_data_type Type Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Private Attributes

                                                                                                                                                                                                                                                                                                              type(fmsmppdomain2d), pointer domain
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer glon_bnd =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer glat_bnd =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer lon_bnd =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer lat_bnd =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer glon =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer glat =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer lon =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer lat =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), pointer gmask =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), pointer mask =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), pointer ice_mask =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer t_surf =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer albedo =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer albedo_vis_dir =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer albedo_nir_dir =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer albedo_vis_dif =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer albedo_nir_dif =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer rough_mom =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer rough_heat =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer rough_moist =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer thickness =>NULL()
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmstime_type) time_init
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmstime_type) time
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmstime_type) time_step_fast
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              type(fmstime_type) time_step_slow
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Member Data Documentation

                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ albedo

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ albedo_nir_dif

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dif =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ albedo_nir_dir

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dir =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ albedo_vis_dif

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dif =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ albedo_vis_dir

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dir =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ domain

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type(fmsmppdomain2d), pointer ice_model_mod::ice_data_type::domain
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ glat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ glat_bnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat_bnd =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ glon

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ glon_bnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon_bnd =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ gmask

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), pointer ice_model_mod::ice_data_type::gmask =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ ice_mask

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), pointer ice_model_mod::ice_data_type::ice_mask =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lat_bnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat_bnd =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lon

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ lon_bnd

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon_bnd =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ mask

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              logical, dimension(:,:), pointer ice_model_mod::ice_data_type::mask =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ rough_heat

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_heat =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ rough_moist

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_moist =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ rough_mom

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_mom =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ t_surf

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::t_surf =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ thickness

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              real, dimension(:,:), pointer ice_model_mod::ice_data_type::thickness =>NULL()
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ time

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type (fmstime_type) ice_model_mod::ice_data_type::time
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ time_init

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type (fmstime_type) ice_model_mod::ice_data_type::time_init
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ time_step_fast

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type (fmstime_type) ice_model_mod::ice_data_type::time_step_fast
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -

                                                                                                                                                                                                                                                                                                              ◆ time_step_slow

                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - -
                                                                                                                                                                                                                                                                                                              - - - - -
                                                                                                                                                                                                                                                                                                              type (fmstime_type) ice_model_mod::ice_data_type::time_step_slow
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -private
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              The documentation for this type was generated from the following file: -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/surface__flux_8_f90.html b/docs/html/surface__flux_8_f90.html deleted file mode 100644 index 93bc35a0..00000000 --- a/docs/html/surface__flux_8_f90.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - -FMS Coupler: shared/surface_flux.F90 File Reference - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              surface_flux.F90 File Reference
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              (ca85e563d8755ef83c2c1874519b2a111d431347)

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles calculation of fluxes on the exchange grids, see module page for more information. -More...

                                                                                                                                                                                                                                                                                                              - - - - - -

                                                                                                                                                                                                                                                                                                              -Data Types

                                                                                                                                                                                                                                                                                                              interface  surface_flux_mod::surface_flux
                                                                                                                                                                                                                                                                                                               For the calculation of fluxes on the exchange grids. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - -

                                                                                                                                                                                                                                                                                                              -Modules

                                                                                                                                                                                                                                                                                                              module  surface_flux_mod
                                                                                                                                                                                                                                                                                                               Module for the calculation of fluxes on the exchange grids.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Functions/Subroutines

                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux_1d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux_0d (t_atm_0, q_atm_0, u_atm_0, v_atm_0, p_atm_0, z_atm_0, p_surf_0, t_surf_0, t_ca_0, q_surf_0, u_surf_0, v_surf_0, rough_mom_0, rough_heat_0, rough_moist_0, rough_scale_0, gust_0, flux_t_0, flux_q_0, flux_r_0, flux_u_0, flux_v_0, cd_m_0, cd_t_0, cd_q_0, w_atm_0, u_star_0, b_star_0, q_star_0, thv_atm_0, thv_surf_0, dhdt_surf_0, dedt_surf_0, dedq_surf_0, drdt_surf_0, dhdt_atm_0, dedq_atm_0, dtaudu_atm_0, dtaudv_atm_0, dt, land_0, seawater_0, avail_0)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail)
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine, public surface_flux_mod::surface_flux_init
                                                                                                                                                                                                                                                                                                               Initialization of the surface flux module–reads the nml. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::ncar_ocean_fluxes (u_del, t, ts, q, qs, z, avail, cd, ch, ce, ustar, bstar)
                                                                                                                                                                                                                                                                                                               Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::ncar_ocean_fluxes_multilevel (u_del, t, ts, q, qs, zu, zt, zq, avail, cd, ch, ce, ustar, bstar)
                                                                                                                                                                                                                                                                                                               Over-ocean fluxes following Large and Yeager (used in NCAR models) ! More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              subroutine surface_flux_mod::iter_monin_obukhov_ocean (z_atm, u_atm, v_atm, w_atm, thv_atm, q_atm, u_surf, v_surf, thv_surf, q_surf0, rough_mom, rough_heat, rough_moist, cd_m, cd_t, cd_q, u_star, b_star, avail, seawater)
                                                                                                                                                                                                                                                                                                               Update air-sea flux variables to be consistent with the concurrent atmospheric states. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                              -Variables

                                                                                                                                                                                                                                                                                                              character(len= *), parameter surface_flux_mod::version = '$Id$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len= *), parameter surface_flux_mod::tagname = '$Name$'
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::module_is_initialized = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::d622 = rdgas/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::d378 = 1.-d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::hlars = hlv/rvgas
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::gcp = grav/cp_air
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real, parameter surface_flux_mod::kappa = rdgas/cp_air
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::d608 = d378/d622
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              character(len=32) surface_flux_mod::rough_scheme_ocean
                                                                                                                                                                                                                                                                                                               ocean roughness length scheme to be read from ocean_rough_nml More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::no_neg_q = .false.
                                                                                                                                                                                                                                                                                                               If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::use_virtual_temp = .true.
                                                                                                                                                                                                                                                                                                               If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::alt_gustiness = .false.
                                                                                                                                                                                                                                                                                                               An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::old_dtaudv = .false.
                                                                                                                                                                                                                                                                                                               The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::use_mixing_ratio = .false.
                                                                                                                                                                                                                                                                                                               An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::gust_const = 1.0
                                                                                                                                                                                                                                                                                                               Constant for alternative gustiness calculation. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::gust_min = 0.0
                                                                                                                                                                                                                                                                                                               Minimum gustiness used when alt_gustiness is .FALSE. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::ncar_ocean_flux = .false.
                                                                                                                                                                                                                                                                                                               Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::ncar_ocean_flux_orig = .false.
                                                                                                                                                                                                                                                                                                               Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::ncar_ocean_flux_multilevel = .false.
                                                                                                                                                                                                                                                                                                               Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::do_iter_monin_obukhov = .false.
                                                                                                                                                                                                                                                                                                               If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::use_u10_neutral = .false.
                                                                                                                                                                                                                                                                                                               If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::bulk_zu = 10.
                                                                                                                                                                                                                                                                                                               Reference height for wind speed (meters) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::bulk_zt = 10.
                                                                                                                                                                                                                                                                                                               Reference height for atm temperature (meters) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              real surface_flux_mod::bulk_zq = 10.
                                                                                                                                                                                                                                                                                                               Reference height for atm humidity (meters) More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::raoult_sat_vap = .false.
                                                                                                                                                                                                                                                                                                               Reduce saturation vapor pressure to account for seawater. More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              logical surface_flux_mod::do_simple = .false.
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              integer surface_flux_mod::niter_monin_obukhov = 5
                                                                                                                                                                                                                                                                                                               iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge More...
                                                                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Detailed Description

                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              Handles calculation of fluxes on the exchange grids, see module page for more information.

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/surface_flux_config.html b/docs/html/surface_flux_config.html deleted file mode 100644 index 7f1eaacc..00000000 --- a/docs/html/surface_flux_config.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -FMS Coupler: Surface Flux Configuration - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              FMS Coupler -  2022.03 -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - - - - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              Surface Flux Configuration
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                                                              surface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables.

                                                                                                                                                                                                                                                                                                              - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                                                              Variable Name Type Default Value Description
                                                                                                                                                                                                                                                                                                              no_neg_q logical .FALSE. If q_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.
                                                                                                                                                                                                                                                                                                              use_virtual_temp logical .TRUE. If true, use virtual potential temp to calculate the stability of the surface layer. if false, use potential temp.
                                                                                                                                                                                                                                                                                                              alt_gustiness logical .FALSE. An alternative formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations, with the bound equal to gust_const.
                                                                                                                                                                                                                                                                                                              old_dtaudv logical .FALSE. The derivative of surface wind stress w.r.t. the zonal wind and meridional wind are approximated by the same tendency.
                                                                                                                                                                                                                                                                                                              use_mixing_ratio logical .FALSE. An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes).
                                                                                                                                                                                                                                                                                                              gust_const real 1.0 Constant for alternative gustiness calculation.
                                                                                                                                                                                                                                                                                                              gust_min real 0.0 Minimum gustiness used when alt_gustiness = false.
                                                                                                                                                                                                                                                                                                              ncar_ocean_flux logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004.
                                                                                                                                                                                                                                                                                                              ncar_ocean_flux_orig logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments.
                                                                                                                                                                                                                                                                                                              raoult_sat_vap logical .FALSE. Reduce saturation vapor pressures to account for seawater salinity.
                                                                                                                                                                                                                                                                                                              do_simple logical .FALSE. </table
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - - - - diff --git a/docs/html/sync_off.png b/docs/html/sync_off.png deleted file mode 100644 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/docs/html/sync_on.png b/docs/html/sync_on.png deleted file mode 100644 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/docs/html/tab_a.png b/docs/html/tab_a.png deleted file mode 100644 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/docs/html/tab_b.png b/docs/html/tab_b.png deleted file mode 100644 index e2b4a8638cb3496a016eaed9e16ffc12846dea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/docs/html/tabs.css b/docs/html/tabs.css deleted file mode 100644 index 8c46f341..00000000 --- a/docs/html/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml b/docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml deleted file mode 100644 index a416e3d9..00000000 --- a/docs/xml/_s_hi_e_l_d_2coupler__main_8_f90.xml +++ /dev/null @@ -1,547 +0,0 @@ - - - - coupler_main.F90 - - - program - program coupler_main - - coupler_main - - - - - - - - - - subroutine - subroutine coupler_main::coupler_init - - coupler_init - -Read namelists and restart file, initializes all defined exchange grids and all boundary maps. - - - - - - - - subroutine - subroutine coupler_main::coupler_restart - (time_stamp) - coupler_restart - - time_stamp - time_stamp - - -Writes a restart file for the current date. - - - -time_stamp - - -Optional timestamp for file name - - - - - - - - - subroutine - subroutine coupler_main::coupler_end - - coupler_end - -Finalizes run, outputs restart files and diagnostic fields. - - - - - - - - -Main driver program for the SHiELD model. - -Sequences the dynamics, radiation/physics, and updates the prognostic state. - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -programcoupler_main - - -usefms -usefmsconstants,only:fmsconstants_init -useatmos_model_mod,only:atmos_model_init,atmos_model_end,& -update_atmos_model_dynamics,& -update_atmos_radiation_physics,& -update_atmos_model_state,& -atmos_data_type,atmos_model_restart -useplatform_mod,only:r4_kind,r8_kind -!---FMSoldio -#ifdefuse_deprecated_io -usefms_io_mod,only:fms_io_exit!<thiscan'tberemoveduntilfms_ioisnotusedatall -#endif -implicitnone - -!----------------------------------------------------------------------- -character(len=128)::version='unknown' -character(len=128)::tag='fmscoupler_shield' - -!----------------------------------------------------------------------- -!----modeldefined-types---- - -type(atmos_data_type)::Atm - -!----------------------------------------------------------------------- -!-----coupledmodeltime----- - -type(FmsTime_type)::Time_atmos,Time_init,Time_end,& -Time_step_atmos,Time_step_ocean,& -Time_restart,Time_step_restart,& -Time_start_restart,Time_restart_aux,& -Time_step_restart_aux,Time_start_restart_aux,& -Time_duration_restart_aux,Time_restart_end_aux - -integer::num_cpld_calls,num_atmos_calls,nc,na,ret - -!-----coupledmodelinitialdate----- - -integer::date_init(6) -integer::calendar_type=-99 - -!-----timingflags----- - -integer::initClock,mainClock,termClock -integer,parameter::timing_level=1 - -!-----namelist----- -integer,dimension(6)::current_date=(/0,0,0,0,0,0/)!<Thedatethatthecurrentintegrationstartswith -character(len=17)::calendar=''!<Thecalendartypeusedbythecurrentintegration. -!!Validvaluesareconsistentwiththetime_managermodule: -!!'gregorian','julian','noleap',or'thirty_day'.Thevalue -!!'no_calendar'cannotbeused -!!becausethetime_manager'sdatefunctionsareused. -!!Allvaluesmustbelowercase. -logical::force_date_from_namelist=.false. -integer::years=0 -integer::months=0 -integer::days=0 -integer::hours=0 -integer::minutes=0 -integer::seconds=0 -integer::dt_atmos=0 -integer::dt_ocean=0 -integer::restart_days=0 -integer::restart_secs=0 -integer::restart_start_days=0 -integer::restart_start_secs=0 -integer::restart_days_aux=0 -integer::restart_secs_aux=0 -integer::restart_start_days_aux=0 -integer::restart_start_secs_aux=0 -integer::restart_duration_days_aux=0 -integer::restart_duration_secs_aux=0 -integer::atmos_nthreads=1 -logical::use_hyper_thread=.false. -integer::iau_offset=0 - - -namelist/coupler_nml/current_date,calendar,force_date_from_namelist,& -years,months,days,hours,minutes,seconds,& -iau_offset,dt_atmos,dt_ocean,atmos_nthreads,& -use_hyper_thread,restart_secs,restart_days,& -restart_start_secs,restart_start_days,& -restart_secs_aux,restart_days_aux,& -restart_start_secs_aux,restart_start_days_aux,& -restart_duration_secs_aux,restart_duration_days_aux - -!-----localvariables----- -character(len=32)::timestamp -logical::intrm_rst,intrm_rst_1step - -!####################################################################### - -callfms_init() - -initclock=fms_mpp_clock_id('-Initialization') -callfms_mpp_clock_begin(initclock)!nestingproblem - -callfms_sat_vapor_pres_init() -callfmsconstants_init() - -callcoupler_init -callfms_memutils_print_memuse_stats('aftercouplerinit') - -callfms_mpp_set_current_pelist() -callfms_mpp_clock_end(initclock)!endinitialization - -mainclock=fms_mpp_clock_id('-MainLoop') -callfms_mpp_clock_begin(mainclock)!beginmainloop - -donc=1,num_cpld_calls - -time_atmos=time_atmos+time_step_atmos - -callupdate_atmos_model_dynamics(atm) - -callupdate_atmos_radiation_physics(atm) - -callupdate_atmos_model_state(atm) - -!---intermediaterestart -if(intrm_rst)then -if(nc/=num_cpld_calls)then -if(intrm_rst_1step.and.nc==1)then -timestamp=fms_time_manager_date_to_string(time_atmos) -callatmos_model_restart(atm,timestamp) -callcoupler_restart(timestamp) -endif -if(time_atmos==time_restart.or.time_atmos==time_restart_aux)then -if(time_atmos==time_restart)then -timestamp=fms_time_manager_date_to_string(time_restart) -else -timestamp=fms_time_manager_date_to_string(time_restart_aux) -endif -callatmos_model_restart(atm,timestamp) -callcoupler_restart(timestamp) -if(time_atmos==time_restart)& -time_restart=time_restart+time_step_restart -if((restart_secs_aux>0.or.restart_days_aux>0).and.& -time_atmos==time_restart_aux.and.& -time_restart_aux<time_restart_end_aux)then -time_restart_aux=time_restart_aux+time_step_restart_aux -endif -endif -endif -endif - -callfms_memutils_print_memuse_stats('afterfullstep') - -enddo - -!----------------------------------------------------------------------- - -callfms_mpp_set_current_pelist() -callfms_mpp_clock_end(mainclock) - -termclock=fms_mpp_clock_id('-Termination') -callfms_mpp_clock_begin(termclock) - -callcoupler_end - -callfms_mpp_set_current_pelist() -callfms_mpp_clock_end(termclock) - -callfms_end - -!----------------------------------------------------------------------- - -contains - -!####################################################################### - -subroutinecoupler_init - -!----------------------------------------------------------------------- -integer::total_days,total_seconds,unit,ierr,io -integer::n -integer::date(6),flags -type(fmstime_type)::run_length -character(len=9)::month - -character(len=:),dimension(:),allocatable::restart_file -integer::time_stamp_unit -integer::ascii_unit - -!----------------------------------------------------------------------- -!-----initializationtimingidentifiers---- - -!-----readnamelist------- -!-----forbackwardscompatibiltyreadfromfilecoupler.nml----- -read(fms_mpp_input_nml_file,nml=coupler_nml,iostat=io) -ierr=fms_check_nml_error(io,'coupler_nml') - -!-----writenamelisttologfile----- -callfms_write_version_number(version,tag) -if(fms_mpp_pe()==fms_mpp_root_pe())write(fms_mpp_stdlog(),nml=coupler_nml) - -!-----allocateandsetthepelist(totheglobalpelist)----- -allocate(atm%pelist(fms_mpp_npes())) -callfms_mpp_get_current_pelist(atm%pelist) - -!-----readrestartfile----- -if(fms2_io_file_exists('INPUT/coupler.res'))then -callfms2_io_ascii_read('INPUT/coupler.res',restart_file) -read(restart_file(1),*)calendar_type -read(restart_file(2),*)date_init -read(restart_file(3),*)date -deallocate(restart_file) -else -force_date_from_namelist=.true. -endif - -!-----usenamelistvalue(eithernorestartoroverrideflagon)--- -if(force_date_from_namelist)then -if(sum(current_date)<=0)then -callfms_error_mesg('programcoupler',& -'nonamelistvalueforcurrent_date',fatal) -else -date=current_date -endif - -!-----overridecalendartypewithnamelistvalue----- -selectcase(fms_mpp_uppercase(trim(calendar))) -case('GREGORIAN') -calendar_type=gregorian -case('JULIAN') -calendar_type=julian -case('NOLEAP') -calendar_type=noleap -case('THIRTY_DAY') -calendar_type=thirty_day_months -case('NO_CALENDAR') -calendar_type=no_calendar -casedefault -callfms_mpp_error(fatal,'COUPLER_MAIN:coupler_nmlentrycalendarmust'//& -'beoneofGREGORIAN|JULIAN|NOLEAP|THIRTY_DAY|NO_CALENDAR.') -endselect - -endif - -callfms_time_manager_set_calendar_type(calendar_type) - -!-----writecurrent/initialdateactuallyusedtologfilefile----- -if(fms_mpp_pe()==fms_mpp_root_pe())then -write(fms_mpp_stdlog(),16)date(1),trim(fms_time_manager_month_name(date(2))),date(3:6) -endif -16format('currentdateused=',i4,1x,a,2i3,2(':',i2.2),'gmt') - -!------settingaffinity------ -!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads) -!$callomp_set_num_threads(atmos_nthreads) - -!----------------------------------------------------------------------- -!------initializediagnosticsmanager------ -callfms_diag_init(time_init=date) - -!-----alwaysoverrideinitial/basedatewithdiag_managervalue----- -callfms_diag_get_base_date(date_init(1),date_init(2),date_init(3),& -date_init(4),date_init(5),date_init(6)) - -!-----usecurrentdateifnobasedate------ -if(date_init(1)==0)date_init=date - -!-----setinitialandcurrenttimetypes------ -time_init=fms_time_manager_set_date(date_init(1),date_init(2),date_init(3),& -date_init(4),date_init(5),date_init(6)) - -time_atmos=fms_time_manager_set_date(date(1),date(2),date(3),& -date(4),date(5),date(6)) - -!----------------------------------------------------------------------- -!-----computetheendingtime(computedaysineachmonthfirst)----- -! -!(NOTE:ifrunlengthinmonthsthenstartingdaymustbe<=28) -if(months>0.and.date(3)>28)& -callfms_error_mesg('programcoupler',& -'ifrunlengthinmonthsthenstartingdaymustbe<=28',fatal) - -time_end=time_atmos -total_days=0 -don=1,months -total_days=total_days+fms_time_manager_days_in_month(time_end) -time_end=time_atmos+fms_time_manager_set_time(0,total_days) -enddo - -total_days=total_days+days -total_seconds=hours*3600+minutes*60+seconds -run_length=fms_time_manager_set_time(total_seconds,total_days) -time_end=time_atmos+run_length - -!NeedtopassTime_endintodiag_managerformultiplethreadcase. -callfms_diag_set_time_end(time_end) - - -!----------------------------------------------------------------------- -!-----writetimestamps(forstarttimeandendtime)------ -if(fms_mpp_pe().EQ.fms_mpp_root_pe())& -open(newunit=time_stamp_unit,file='time_stamp.out',status='replace',form='formatted') - -month=fms_time_manager_month_name(date(2)) -if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) - -callfms_time_manager_get_date(time_end,date(1),date(2),date(3),& -date(4),date(5),date(6)) -month=fms_time_manager_month_name(date(2)) -if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())close(time_stamp_unit) - -20format(6i4,2x,a3) - -!----------------------------------------------------------------------- -!-----computethetimesteps------ -time_step_atmos=fms_time_manager_set_time(dt_atmos,0) -time_step_ocean=fms_time_manager_set_time(dt_ocean,0) -num_cpld_calls=run_length/time_step_ocean -num_atmos_calls=time_step_ocean/time_step_atmos - -time_step_restart=fms_time_manager_set_time(restart_secs,restart_days) -if(restart_start_secs>0.or.restart_start_days>0)then -time_start_restart=fms_time_manager_set_time(restart_start_secs,restart_start_days) -time_restart=time_atmos+time_start_restart -else -time_restart=time_atmos+time_step_restart -endif -time_step_restart_aux=fms_time_manager_set_time(restart_secs_aux,restart_days_aux) -time_duration_restart_aux=fms_time_manager_set_time(restart_duration_secs_aux,restart_duration_days_aux) -time_start_restart_aux=fms_time_manager_set_time(restart_start_secs_aux,restart_start_days_aux) -time_restart_aux=time_atmos+time_start_restart_aux -time_restart_end_aux=time_restart_aux+time_duration_restart_aux - -intrm_rst=.false. -intrm_rst_1step=.false. -if(restart_days>0.or.restart_secs>0)intrm_rst=.true. -if(intrm_rst.and.restart_start_secs==0.and.& -restart_start_days==0)intrm_rst_1step=.true. - -!----------------------------------------------------------------------- -!-------------------someerrorchecks--------------------------------- - -!-----initialtimecannotbegreaterthancurrenttime------- - -if(time_init>time_atmos)callfms_error_mesg('programcoupler',& -'initialtimeisgreaterthancurrenttime',fatal) - -!-----makesurerunlengthisamultipleofoceantimestep------ - -if(num_cpld_calls*time_step_ocean/=run_length)& -callfms_error_mesg('programcoupler',& -'runlengthmustbemultipleofoceantimestep',fatal) - -!----makesurecpldtimestepisamultipleofatmostimestep---- - -if(num_atmos_calls*time_step_atmos/=time_step_ocean)& -callfms_error_mesg('programcoupler',& -'atmostimestepisnotamultipleoftheoceantimestep',fatal) - -!------initializecomponentmodels------ -callatmos_model_init(atm,time_init,time_atmos,time_step_atmos,& -iau_offset) - -callfms_memutils_print_memuse_stats('afteratmosmodelinit') - -!------initializedata_override----- -callfms_data_override_init(atm_domain_in=atm%domain,mode=r4_kind) -callfms_data_override_init(atm_domain_in=atm%domain,mode=r8_kind) - -!----------------------------------------------------------------------- -!----openandclosedummyfileinrestartdirtocheckifdirexists-- -if(fms_mpp_pe()==0)then -open(newunit=ascii_unit,file='RESTART/file',status='replace',form='formatted') -close(ascii_unit,status="delete") -endif -!----------------------------------------------------------------------- - -endsubroutinecoupler_init - -!####################################################################### -subroutinecoupler_restart(time_stamp) -character(len=32),intent(in),optional::time_stamp - -integer::restart_unit,date(6) -character(len=128)::file_res - -!-----computecurrentdate------ - -callfms_time_manager_get_date(time_atmos,date(1),date(2),date(3),& -date(4),date(5),date(6)) - -!-----writerestartfile------ - -!writerestartfile_name -file_res='RESTART/coupler.res' -if(present(time_stamp))then -file_res='RESTART/'//trim(time_stamp)//'.coupler.res' -endif - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -open(newunit=restart_unit,file=file_res,status='replace',form='formatted') -write(restart_unit,'(i6,8x,a)')calendar_type,& -'(Calendar:no_calendar=0,thirty_day_months=1,julian=2,gregorian=3,noleap=4)' - -write(restart_unit,'(6i6,8x,a)')date_init,& -'Modelstarttime:year,month,day,hour,minute,second' -write(restart_unit,'(6i6,8x,a)')date,& -'Currentmodeltime:year,month,day,hour,minute,second' -close(restart_unit) -endif - -endsubroutinecoupler_restart - -!####################################################################### -subroutinecoupler_end - -integer::unit,date(6) -!----------------------------------------------------------------------- - -callatmos_model_end(atm) - - -callfms_time_manager_get_date(time_atmos,date(1),date(2),date(3),& -date(4),date(5),date(6)) - -!-----checktimeversusexpectedendingtime---- - -if(time_atmos/=time_end)callfms_error_mesg('programcoupler',& -'finaltimedoesnotmatchexpectedendingtime',warning) - -!-----writerestartfile------ -callcoupler_restart() - -!-----finaloutputofdiagnosticfields----0 -callfms_diag_end(time_atmos) - -!-----toberemovedoncefms_ioisfullydeprecated----- -#ifdefuse_deprecated_io -callfms_io_exit() -#endif - -!----------------------------------------------------------------------- - -endsubroutinecoupler_end - -!####################################################################### - -endprogramcoupler_main - - - - - diff --git a/docs/xml/atm__land__ice__flux__exchange_8_f90.xml b/docs/xml/atm__land__ice__flux__exchange_8_f90.xml deleted file mode 100644 index 58bda0ce..00000000 --- a/docs/xml/atm__land__ice__flux__exchange_8_f90.xml +++ /dev/null @@ -1,4113 +0,0 @@ - - - - atm_land_ice_flux_exchange.F90 - atm_land_ice_flux_exchange_mod::put_logical_to_real - atm_land_ice_flux_exchange_mod::tracer_ind_type - atm_land_ice_flux_exchange_mod::tracer_exch_ind_type - atm_land_ice_flux_exchange_mod - FMS - - - FMS_DATA_OVERRIDE_ - fms_data_override_ug - - - - - - - - - - FMS_XGRID_PUT_TO_XGRID_ - fms_xgrid_put_to_xgrid_ug - - - - - - - - - - FMS_XGRID_STOCK_MOVE_ - fms_xgrid_stock_move_ug - - - - - - - - - - FMS_XGRID_SET_FRAC_AREA_ - fms_xgrid_set_frac_area_ug - - - - - - - - - - FMS_XGRID_GET_FROM_XGRID_ - fms_xgrid_get_from_xgrid_ug - - - - - - - - - - FMS_DIAG_REGISTER_FIELD_ - register_tiled_diag_field - - - - - - - - - - -Performs flux calculations and exchange grid operations for atmosphere, land and ice. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** - -#undefFMS_DATA_OVERRIDE_ -#undefFMS_XGRID_PUT_TO_XGRID_ -#undefFMS_XGRID_STOCK_MOVE_ -#undefFMS_XGRID_SET_FRAC_AREA_ -#undefFMS_XGRID_GET_FROM_XGRID_ -#undefFMS_DIAG_REGISTER_FIELD_ - -#ifndef_USE_LEGACY_LAND_ -#defineFMS_DATA_OVERRIDE_fms_data_override_ug -#defineFMS_XGRID_PUT_TO_XGRID_fms_xgrid_put_to_xgrid_ug -#defineFMS_XGRID_STOCK_MOVE_fms_xgrid_stock_move_ug -#defineFMS_XGRID_SET_FRAC_AREA_fms_xgrid_set_frac_area_ug -#defineFMS_XGRID_GET_FROM_XGRID_fms_xgrid_get_from_xgrid_ug -#defineFMS_DIAG_REGISTER_FIELD_register_tiled_diag_field -#else -#defineFMS_DATA_OVERRIDE_fms_data_override -#defineFMS_XGRID_PUT_TO_XGRID_fms_xgrid_put_to_xgrid -#defineFMS_XGRID_STOCK_MOVE_fms_xgrid_stock_move -#defineFMS_XGRID_SET_FRAC_AREA_fms_xgrid_set_frac_area -#defineFMS_XGRID_GET_FROM_XGRID_fms_xgrid_get_from_xgrid -#defineFMS_DIAG_REGISTER_FIELD_fms_diag_register_diag_field -#endif - -moduleatm_land_ice_flux_exchange_mod - -!atmos_drivers -useatmos_model_mod,only:& -atm_stock_pe,&!subroutinetocomputethetotalstockintheatmosphericmodel -atmos_data_type,&!derivedtypecontainingfieldsneededforfluxexchangebetweencomponents -land_ice_atmos_boundary_type!derivedtypecontainingquantitiesgoingfromlandandicetoatmos - -!FMSCoupler/full -useatmos_ocean_dep_fluxes_calc_mod,only:& -atmos_ocean_dep_fluxes_calc!subroutinetocomputeoceanandatmospheredepositiongasfluxes - -!FMSCoupler/full -useatmos_ocean_fluxes_calc_mod,only:& -atmos_ocean_fluxes_calc!subroutinetocomputesgasfluxesforatmosphereandocean - -!FMS/coupler -useatmos_ocean_fluxes_mod,only:& -atmos_ocean_fluxes_init!subroutineinitializesgasfluxesincouplerderivedtypes - -!am5_phys -useatmos_tracer_driver_mod,only:& -atmos_tracer_flux_init!subroutinetoinitializeatmos_tracer_driver_mod - -!MOM6/SIS2 -useice_model_mod,only:& -atmos_ice_boundary_type,&!derivedtypeforfluxexchangebetweenatmosphereandseaice -ice_data_type,&!derivedtypeholdingicemodeldata -ice_stock_pe,&!subroutinetocomputestocksofheat,water,etcforconservationchecks -land_ice_boundary_type,&!derivedtypeforfluxexchangebetweenlandandseaice -ocean_ice_boundary_type,&!derivedtypeforfluxexchangebetweenoceanandseaice -update_ice_atm_deposition_flux!updatesfluxesoftype"air_sea_deposition" - -!Land_lad2 -useland_model_mod,only:& -atmos_land_boundary_type,&!derivedtypetopassinformationfromatmospheretoland -land_data_type,&!derivedtypetopassinformationfromlandtoatmosphere -lnd_stock_pe!subroutinetocomputestocksofconservativelandquantities - -!Ifnot_USE_LEGACY_LAND_,useland_lad2/land_tile_diag_modinsteadofFMS/diag_manager -#ifndef_USE_LEGACY_LAND_ -useland_model_mod,only:& -dump_tile_diag_fields,&!subroutineforworkaroundwithIntelcompilersandOpenMP -register_tiled_diag_field,&!subroutinetoregisterdiagfieldwithinthelandmodel -send_tile_data,&!subroutinetosavedatainbufferwithinthelandmodelfortheregisteredfield -set_default_diag_filter!subroutinetosetdefaulttilediagnosticselector -#endif - -!MOM6 -useocean_model_mod,only:& -ice_ocean_boundary_type,&!derivedtypecontainingtheforcings -ocean_model_init_sfc,&!subroutinetoextractssurfacepropertiesfromtheocean'sinternalstate -ocean_model_data_get,&!interfaceproceduretoextractscalarfieldsfromoceansurfaceorocean_publictype -ocean_model_flux_init,&!subroutinetoinitializesthepropertiesfromair-seafluxes -ocean_public_type,&!derivedtypeusedinFMScouplertocommunicatewithothermodelcomponents -ocean_state_type,&!derivedtypecontainingthestateoftheocean -ocean_stock_pe!subroutinetocomputesintegratedstocksofheat,water,etc.forconservationchecks - -!FMSCoupler/shared -usesurface_flux_mod,only:& -surface_flux,&!subroutinetocomputefluxesonexchangegrids -surface_flux_init!subroutinetoinitializesurface_flux_mod - -!am5_phys -#ifndefuse_AM3_physics -useatmos_cmip_diag_mod,only:& -register_cmip_diag_field_2d!functiontoregisterCMIPdiagnosticdata -useatmos_global_diag_mod,only:& -get_global_diag_field_id,&!functiontoretrieveinternally-trackedidoftheglobaldiagfield -register_global_diag_field,&!functionthatcallsFMS/register_diag_fieldforgloballyaverageddata -send_global_diag!functionthatcallsFMS/diag_manager/send_dataforglobalfields -useatmos_tracer_driver_mod,only& -atmos_tracer_has_surf_setl_flux,& -!functionreturnsTrueoftracersedimentationflux>0atbottomoftheatmosphere -get_atmos_tracer_surf_setl_flux,& -!subroutinetoretrievetracersedimentationfluxatbottomoftheatmosphere -atmos_tracer_driver_gather_data_down -#ifndef_USE_LEGACY_LAND_ -useland_model_mod,only:& -send_global_land_diag!functiontosavelandmodelfieldonunstructuredgridforglobalintegral -#endif -#endif - -!optiontooverridevarioussurfaceboundaryconditionsforSCM -#ifdefSCM -usescm_forc_mod,only:& -albedo_obs,& -do_specified_albedo,& -do_specified_land,& -do_specified_rough_leng,& -do_specified_tskin,& -do_specified_flux,& -rough_mom,& -rough_heat,& -scm_surface_flux,& -tskin -#endif - -usefms!mainlyforcallstodiag_manager,data_override,andexchange -usefmsconstants,only:& -cp_air,&!RDGAS/KAPPA,specificheatcapacityofdryairatconstantpressure[J/kg/deg] -cp_ocean,&!3989.24495292815,specificheatcapacity[J/kg/deg] -epsln,&!1.0e-40,asmallnumbertopreventdividebyzeroexceptions -grav,&!9.80,accelerationduetogravity[m/s^2] -hlf,&!3.34e5,latentheatoffusion[J/kg] -hlv,&!2.500e6,latentheatofevaporation[J/kg] -pi,&!3.14159265358979323846 -radius,&!6371.0e+3,radiusoftheEarth[m] -rdgas,&!287.04,gasconstantfordryair[J/kg/deg] -rvgas,&!461.50,gasconstantforwatervapor -stefan,&!5.6734e-8,Stefan-Boltzmannconstant[W/m^2/deg^4] -wtmc,&!12.00000,molecularweightofcarbon[amu] -wtmco2,&!44.00995,molecularweightofcarbondioxide[amu] -wtmair,&!2.896440e+01,molecularweightofair[amu] -wtmh2o!WTMAIR*(RDGAS/RVGAS)molecularweightofwater[amu] - -implicitnone -include'netcdf.inc' -private - -public::& -atm_land_ice_flux_exchange_init,& -sfc_boundary_layer,& -generate_sfc_xgrid,& -flux_down_from_atmos,& -flux_up_to_atmos,& -flux_atmos_to_ocean,& -flux_ex_arrays_dealloc,& -atm_stock_integrate,& -send_ice_mask_sic - -interfaceput_logical_to_real -moduleprocedureput_logical_to_real_sg -moduleprocedureput_logical_to_real_ug -endinterface - -character(len=128)::version='$Id$' -character(len=128)::tag='$Name$' - -type(FmsXgridXmap_type),save::xmap_sfc - -integer::n_xgrid_sfc=0 - -character(len=4),parameter::mod_name='flux' - -integer::& -id_b_star,&!<diag_managerregisteredfieldidforbouyancyscale -id_del_h,&!<diag_managerregisteredfieldidrefheightinterpfactorforheat -id_del_m,&!<diag_managerregisteredfieldidrefheightforinterpfactorformomentum -id_del_q,&!<diag_managerregisteredfieldidrefheightinterpfactorformoisture -id_drag_heat,&!<diag_managerregisteredfieldiddragcoefficientforheat -id_drag_moist,&!<diag_managerregisteredfieldiddragcoefficientformoisture -id_drag_mom,&!<diag_managerregisteredfieldiddragcoefficientformomentum -id_gust,&!<diag_managerregisteredfieldidgustscale -id_hussLut_land,&!<diag_managerregisteredfieldidnear-surfacespecifichumidityonlandusetile -id_ice_mask,&!<diag_managerregisteredfieldidfractionalamountofland -id_land_mask,&!<diag_managerregisteredfieldidfractionalamountofseaice -id_p_atm,&!<diag_managerregisteredfieldidpressureatlowestatmosphericlevel -id_q_flux,&!<diag_managerregisteredfieldidevaporationrate -id_q_flux_land,&!<diag_managerregisteredfieldidevaporationrateoverland -id_q_ref,&!<diag_managerregisteredfieldidspecifichumidityatz_ref_heat -id_q_ref_land,&!<diag_managerregisteredfieldidspecifichumidityatz_ref_heatoverland -id_q_star,&!<diag_managerregisteredfieldidmoisturescale -id_r_flux,&!<diag_managerregisteredfieldidnet(down-up)longwaveflux -id_rh_ref,&!<diag_managerregisteredfieldidrelativehumidityatz_ref_heat -id_rh_ref_cmip,&!<diag_managerregisteredfieldidrelativehumidityatz_ref_heat -id_rh_ref_land,&!<diag_managerregisteredfieldidrelativehumidityatz_ref_heatoverland -id_rough_heat,&!<diag_managerregisteredfieldidsurfaceroughnessforheat -id_rough_moist,&!<diag_managerregisteredfieldidsurfaceroughnessformoisture -id_rough_mom,&!<diag_managerregisteredfieldidsurfaceroughnessformomentum -id_rough_scale,&!<diag_managerregisteredfieldidtopographicscalingfractorformomentumdrag -id_slp,&!<diag_managerregisteredfieldidsealevelpressure -id_t_atm,&!<diag_managerregisteredfieldidtemperatureatlowestatmosphericlevel -id_t_ca,&!<diag_managerregisteredfieldidcanopyairtemperature -id_t_flux,&!<diag_managerregisteredfieldidsensibleheatflux -id_t_ocean,&!<diag_managerregisteredfieldidsurfacetemperaturefromoceanoutput -id_t_ref,&!<diag_managerregisteredfieldidtemperatureatz_ref_heat -id_t_ref_land,&!<diag_managerregisteredfieldidtemperatureatz_ref_heatoverland -id_t_surf,&!<diag_managerregisteredfieldidsurfacetemperature -id_tasLut_land,&!<diag_managerregisteredfieldidnear-surfaceairtemperaturez_ref_heat -!!abovedisplacementheightonland-usetile -id_thv_atm,& -id_thv_surf,& -id_u_atm,& -id_u_flux,& -id_u_ref,& -id_u_ref_land,& -id_u_star,&!diag_managerregisteredfieldidfrictionvelocity -id_v_atm,& -id_v_flux,& -id_v_ref,& -id_v_ref_land,& -id_wind,& -id_wind_ref,& -id_z_atm,& -id_co2_atm_dvmr,& -id_co2_surf_dvmr& -!2017/08/15jgjadded -id_co2_bot,& -id_co2_flux_pcair_atm,& -id_o2_flux_pcair_atm - -integer,allocatable::& -id_tr_atm(:),&!<diag_managerregisteredfieldidvalueoftraceratlowestatmosphericlevel -id_tr_surf(:),&!<diag_managerregisteredfieldidvalueoftraceratsurface -id_tr_flux(:),&!<diag_managerregisteredfieldidtracerfluxes -id_tr_mol_flux(:),&!<diag_managerregisteredfieldidfluxofco2concentrationin[mol/m2*s] -id_tr_ref(:),&!<diag_managerregisteredfieldidvalueoftraceratz_ref_heat -id_tr_ref_land(:),&!<diag_managerregisteredfieldidtracerfluxatz_ref_heatoverland -!f1p -id_tr_mol_flux0(:),& -id_tr_flux_land(:),& -id_tr_mol_flux_land(:),& -!usedwith_USE_LEGACY_LAND_ -id_tr_con_atm(:),& -id_tr_con_atm_land(:),& -id_tr_con_ref(:),& -id_tr_con_ref_land(:) - -integer::& -id_evspsbl,&!<diag_managerregisteredfieldidwaterevaporationflux(forcmip) -id_height10m,&!<diag_managerregisteredfieldidnearsurfaceheight(forcmip) -id_height2m,&!<diag_managerregisteredfieldidnearsurfaceheight(forcmip) -id_hfls,&!<diag_managerregisteredfieldidsurfaceupwardlatentheatflux(forcmip) -id_hfss,&!<diag_managerregisteredfieldidsurfaceupwardsensibleheatflux(forcmip) -id_hurs,&!<diag_managerregisteredfieldidnear-surfacerelativehumidity(forcmip) -id_huss,&!<diag_managerregisteredfieldidnear-surfacespecifichumidity(forcmip) -id_psl,&!<diag_managerregisteredfieldidairpressureatsealevel(forcmip) -id_rhs,&!<diag_managerregisteredfieldidnear-surfacerelativehumidity(forcmip) -id_sfcWind,&!<diag_managerregisteredfieldidnear-surfacewindspeed(forcmip) -id_sftlf,&!<diag_managerregisteredfieldidfractionofthegridcelloccupiedbyland(forcmip) -id_sic,&!<diag_managerregisteredfieldidseaiceareafraction(forcmip) -id_tas,&!<diag_managerregisteredfieldidnear-surfaceairtemperature(forcmip) -id_tauu,&!<diag_managerregisteredfieldidsurfacedownwardeastwardwindstress(forcmip) -id_tauv,&!<diag_managerregisteredfieldidsurfacedownwardnorthwardwindstress(forcmip) -id_tos,&!<diag_managerregisteredfieldidseasurfacetemperature(forcmip) -id_ts,&!<diag_managerregisteredfieldidsurfacetemperature(forcmip) -id_tslsi,&!<diag_managerregisteredfieldidsurfacetemperatureonlandorseaice(forcmip) -id_uas,&!<diag_managerregisteredfieldideastwardnear-surfacewind(forcmip) -id_vas - -integer::& -id_evspsbl_g,&!<diag_managerregisteredfieldidglobalintegralofwaterevaporationflux -id_hfls_g,&!<diag_managerregisteredfieldidglobalintegralofsurfaceupwardsensibleheatflux -id_rls_g,&!<diag_managerregisteredfieldidglobalintegralofnear-surfacerelativehumidty -id_tas_g,&!<diag_managerregisteredfieldidglobalintegralofnear-surfaceairtemperature -id_tasl_g,&!<diag_managerregisteredfieldidglobalintegralofnear-surfaceairtemperatureonlandonly -id_ts_g - -logical::first_static=.true. - -logical::do_init=.true. -integer::remap_method=1 - -real,parameter::d622=rdgas/rvgas -real,parameter::d378=1.0-d622 -real,parameter::d608=d378/d622 -real,parameter::tfreeze=273.15 -real,allocatable,dimension(:,:)::frac_precip - -real::z_ref_heat=2. - -real::z_ref_mom=10. - - - -logical::do_forecast=.false. -integer::nblocks=1 -logical::partition_fprec_from_lprec=.false. -logical::scale_precip_2d=.false. - -integer::my_nblocks=1 -integer,allocatable::& -block_start(:),&!<startingdoloopindicesforOpenMPthread -block_end(:) - -real,allocatable,dimension(:)::& -!NOTE:Tcanopyisonlydifferetfromt_surfovervegetatedland -ex_albedo_fix,& -ex_albedo_nir_dif_fix,& -ex_albedo_nir_dir_fix,& -ex_albedo_vis_dif_fix,& -ex_albedo_vis_dir_fix,& -ex_b_star,& -ex_cd_m,& -ex_cd_t,& -ex_con_atm,& -ex_dedt_surf,& -ex_dhdt_atm,& -ex_dhdt_surf,& -ex_dqsatdt_surf,& -ex_drdt_surf,& -ex_dtaudu_atm,& -ex_dtaudv_atm,& -ex_e_q_n,& -ex_flux_lw,& -ex_flux_t,& -ex_flux_u,& -ex_flux_v,& -ex_old_albedo,& -ex_p_surf,& -ex_seawater,& -ex_slp,& -ex_t_ca,& -ex_t_surf,& -ex_t_surf_miz,& -ex_u_star,& -ex_wind,& -ex_z_atm - -#ifdefSCM -real,allocatable,dimension(:)::& -ex_dhdt_surf_forland,& -ex_dedt_surf_forland,& -ex_dedq_surf_forland -#endif - -real,allocatable,dimension(:,:)::& -ex_dfdtr_atm,&!<d(tracerflux)/d(atmtracer)onexchangegrid -ex_dfdtr_surf,&!<d(tracerflux)/d(surftracer)onexchangegrid -ex_e_tr_n,&!<coefficientinimplicitschemeonexchangegrid -ex_f_tr_delt_n,&!<coefficientinimplicitschemeonexchangegrid -ex_flux_tr,&!<tracerfluxesonexchangegrid -ex_tr_con_ref,&!<depositionvelocityatreferenceheightonexchangegrid -ex_tr_con_atm,&!<depositionvelocityatatmosphericheightonexchangegrid -ex_tr_surf - -logical,allocatable,dimension(:)::& -ex_avail,&!<maskwheretrueifdataonexchangegridareavailable -ex_land -real,allocatable,dimension(:)::& -ex_e_t_n,& -ex_f_t_delt_n - -integer::n_atm_tr -integer::n_atm_tr_tot -integer::n_lnd_tr -integer::n_lnd_tr_tot -integer::n_exch_tr -integer::n_gex_atm2lnd -integer::n_gex_lnd2atm - -type::tracer_ind_type -integer::atm -integer::ice -integer::lnd -endtypetracer_ind_type -type(tracer_ind_type),allocatable::tr_table(:) - -type::tracer_exch_ind_type -integer::exch=0 -integer::ice=0 -integer::lnd=0 -endtypetracer_exch_ind_type - -type(tracer_exch_ind_type),allocatable::tr_table_map(:) - -integer::isphum=no_tracer -integer::ico2=no_tracer -integer::inh3=no_tracer - -type(fmscoupler1dbc_type),pointer::ex_gas_fields_atm=>null() - -type(fmscoupler1dbc_type),pointer::ex_gas_fields_ice=>null() - -type(fmscoupler1dbc_type),pointer::ex_gas_fluxes=>null() - - -!real,dimension(3)::ccc!<forconservationchecks - -!balaji,setsboundary_type%xtype -integer,parameter::& -regrid=1,&!<flagtoindicatecomponentgridsforfluxexchangearedifferent, -!!exchangedataviatheexchangegrid -redist=2,& -redirect=3 - -integer::& -cplClock,&!<FMSclocktoprofilegeneralprocesses -sfcClock,&!<FMSclockidtoprofilesfc_boundary_layer -fluxAtmDnClock,&!<FMSclockidtoprofilefluxdownfromatmosphere -regenClock,&!<FMSclocktoprofileexchangegridgeneration -fluxAtmUpClock - -integer::& -X1_GRID_ATM,&!<=1,exchangegridindexforxgrid_stock_move -X1_GRID_ICE,&!<=2,exchangegridindexforxgrid_stock_move -X1_GRID_LND - -real::& -Dt_atm,&!<atmospherictimestep[s] -Dt_cpl - -integer::& -ni_atm,&!<numberofxgridpointstocomputediagnosticsinsubroutineflux_ocean_to_ice -nj_atm - -integer::& -nxc_ice=0,&!<numberofxpointsinicecomputedomain -nyc_ice=0,& -nk_ice=0 - -integer::& -nxc_lnd=0,&!<numberofxpointsinlandcomputedomain -nyc_lnd=0 - -contains - -!####################################################################### - -subroutineatm_land_ice_flux_exchange_init(Time,Atm,Land,Ice,atmos_ice_boundary,land_ice_atmos_boundary,& -Dt_atm_in,Dt_cpl_in,z_ref_heat_in,z_ref_mom_in,do_area_weighted_flux_in,do_forecast_in,& -partition_fprec_from_lprec_in,scale_precip_2d_in,nblocks_in,cplClock_in,ex_gas_fields_atm_in,& -ex_gas_fields_ice_in,ex_gas_fluxes_in) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(atmos_data_type),intent(inout)::Atm - -type(land_data_type),intent(in)::Land - -type(ice_data_type),intent(inout)::Ice - -type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary - -type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary - -real,intent(in)::Dt_atm_in - -real,intent(in)::Dt_cpl_in - -real,intent(in)::z_ref_heat_in - -real,intent(in)::z_ref_mom_in - -logical,intent(in)::scale_precip_2d_in - -logical,intent(in)::do_area_weighted_flux_in - -logical,intent(in)::do_forecast_in - -logical,intent(in)::partition_fprec_from_lprec_in - -integer,intent(in)::nblocks_in - -integer,intent(in)::cplClock_in - -type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_atm_in - -type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fields_ice_in - -type(FmsCoupler1dBC_type),intent(in),target::ex_gas_fluxes_in - - -character(len=48),parameter::module_name='atm_land_ice_flux_exchange_mod' -character(len=256),parameter::& -note_header='==>Notefrom'//trim(module_name)//'('//trim(sub_name)//'):' - -integer::& -i,&!<temporaryindexdoloop -n -integer::& -outunit,&!<!returnedvaluefromfms_mpp_stdout() -logunit -integer::& -is,&!<startingx-indexoncomputedomain -ie,&!<endingx-indexoncomputedomain -js,&!<startingy-indexoncomputedomain -je,&!<endingy-indexoncomputedomain -kd -character(32)::tr_name -logical::found - -!{ -dt_atm=dt_atm_in -dt_cpl=dt_cpl_in -z_ref_heat=z_ref_heat_in -z_ref_mom=z_ref_mom_in -do_area_weighted_flux=do_area_weighted_flux_in -do_forecast=do_forecast_in -partition_fprec_from_lprec=partition_fprec_from_lprec_in -scale_precip_2d=scale_precip_2d_in -nblocks=nblocks_in -cplclock=cplclock_in -ex_gas_fields_atm=>ex_gas_fields_atm_in -ex_gas_fields_ice=>ex_gas_fields_ice_in -ex_gas_fluxes=>ex_gas_fluxes_in -!} - -!{ -outunit=fms_mpp_stdout() -logunit=fms_mpp_stdlog() -!} - -allocate(block_start(nblocks),block_end(nblocks)) - -!{ -callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,num_prog=n_atm_tr) -callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,num_prog=n_lnd_tr) -!} - -!{ -allocate(tr_table(n_atm_tr),tr_table_map(n_atm_tr)) -n=1 -doi=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) -tr_table(n)%atm=i -tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) -tr_table_map(i)%ice=tr_table(n)%ice -tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) -tr_table_map(i)%lnd=tr_table(n)%lnd -if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)then -tr_table_map(i)%exch=n -n=n+1 -endif -enddo -n_exch_tr=n-1 -!} - -!{ -n_gex_atm2lnd=fms_gex_get_n_ex(model_atmos,model_land) -if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_atm2lnd -n_gex_lnd2atm=fms_gex_get_n_ex(model_land,model_atmos) -if(fms_mpp_root_pe().eq.fms_mpp_pe())write(*,*)'atm_land_ice_flux_exchange_init[gex]',n_gex_lnd2atm -!} - - -!{ -don=1,ex_gas_fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then -found=.false. -doi=1,n_exch_tr -if(ex_gas_fluxes%bc(n)%atm_tr_index.eq.tr_table(i)%atm)then -found=.true. -exit -endif -enddo -if(.not.found)then -n_exch_tr=n_exch_tr+1 -tr_table(n_exch_tr)%atm=ex_gas_fluxes%bc(n)%atm_tr_index -tr_table(n_exch_tr)%ice=no_tracer!becauseocean-atmgasfluxesarenotheldintheicemodelastracers -tr_table(n_exch_tr)%lnd=no_tracer!becausethiswouldhavebeenfoundabove -tr_table_map(n_exch_tr)%exch=n_exch_tr -tr_table_map(n_exch_tr)%ice=tr_table(n_exch_tr)%ice -tr_table_map(n_exch_tr)%lnd=tr_table(n_exch_tr)%lnd -endif -endif -enddo -write(outunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr -write(logunit,*)trim(note_header),'Numberofexchangedtracers=',n_exch_tr -doi=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) -write(outunit,*)'Tracerfieldname:'//trim(tr_name) -write(logunit,*)'Tracerfieldname:'//trim(tr_name) -enddo -!} - -!{ -!+fix-me-slm+specifichumiditymaynotbepresentifwearerunningwith -!dryatmosphere.Besides,modelmayusemixingratio('mix_rat')(?).However, -!someatmoscodealsoassumes'sphum'ispresent,sofornowthefollowing -!codemaybegoodenough. -doi=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(i)%atm,tr_name) -if(fms_mpp_lowercase(tr_name)=='sphum')then -isphum=i -endif -!jgj:findoutwhichexchangetracerisco2 -if(fms_mpp_lowercase(tr_name)=='co2')then -ico2=i -write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',ico2 -endif -if(fms_mpp_lowercase(tr_name)=='nh3')then -inh3=i -write(outunit,*)'Exchangetracerindexfor'//trim(tr_name),':',inh3 -endif -enddo - -if(isphum==no_tracer)then -callfms_error_mesg(module_name,'tracer"sphum"mustbepresentintheatmosphere',fatal) -endif - -if(ico2==no_tracer)then -callfms_error_mesg(module_name,'tracer"co2"notpresentintheatmosphere',note) -endif -!} - -callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) -if(scale_precip_2d)then -allocate(frac_precip(is:ie,js:je)) -frac_precip=0.0 -endif - -!{ -callfms_xgrid_init(remap_method) -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& -"INPUT/grid_spec.nc",atm%grid,lnd_ug_domain=land%ug_domain) -#else -callfms_xgrid_setup_xmap(xmap_sfc,['ATM','OCN','LND'],[atm%Domain,ice%Domain,land%Domain],& -"INPUT/grid_spec.nc",atm%grid) -#endif - -x1_grid_atm=1 -x1_grid_ice=2 -x1_grid_lnd=3; -callgenerate_sfc_xgrid(land,ice) -if(n_xgrid_sfc.eq.1)write(*,'(a,i6,6x,a)')'PE=',fms_mpp_pe(),'Surfaceexchangesizeequalsone.' -!} - -callsurface_flux_init() - -!-----initializequantitiesforglobalintegralpackage----- - -!!calldiag_integral_field_init('prec','f6.3') -callfms_diag_integral_field_init('evap','f6.3') -#ifndefuse_AM3_physics -callfms_diag_integral_field_init('t_surf','f10.3')!miz -callfms_diag_integral_field_init('t_ref','f10.3')!miz -#endif - -!allfieldswillbeoutputontheatmosphericgrid -calldiag_field_init(time,atm%axes(1:2),land%axes,land%pe) - -!{ -ni_atm=size(atm%lon_bnd,1)-1!todimension"diag_atm" -nj_atm=size(atm%lon_bnd,2)-1!influx_ocean_to_ice -!} - -!{ -callfms_mpp_domains_get_compute_domain(ice%domain,is,ie,js,je) -kd=size(ice%part_size,3) -allocate(atmos_ice_boundary%u_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%v_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%u_star(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%t_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%q_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%lw_flux(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%lprec(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%fprec(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%dedt(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%drdt(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%coszen(is:ie,js:je,kd),source=0.0) -allocate(atmos_ice_boundary%p(is:ie,js:je,kd),source=0.0) -!} - -!{ -!Copyinginitializedgasfluxesfromexchangegridtoatmosphere_iceboundary -callfms_coupler_type_copy(ex_gas_fluxes,atmos_ice_boundary%fluxes,is,ie,js,je,kd,& -mod_name,ice%axes,time,suffix='_atm_ice') - -!Ice%ocean_fieldsandIce%ocean_fluxes_topwillnotbepassedtoocean,sothesetwo -!coupler_type_copycallsaremovedfromice_ocean_flux_inittohere. -if(.not.fms_coupler_type_initialized(ice%ocean_fields))& -callfms_coupler_type_spawn(ex_gas_fields_ice,ice%ocean_fields,& -[is,is,ie,ie],[js,js,je,je],[1,kd],suffix='_ice') -callfms_coupler_type_set_diags(ice%ocean_fields,'ice_flux',ice%axes,time) -!} - -!{ -callfms_mpp_domains_get_compute_domain(atm%domain,is,ie,js,je) -allocate(land_ice_atmos_boundary%t(is:ie,js:je),source=273.0) -allocate(land_ice_atmos_boundary%t_ocean(is:ie,js:je),source=200.0)!Joseph:surfoceantemp -allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je),source=0.0)!bqx -allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je),source=0.0)!bqx -allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je),source=273.0)!cjg:PBLdepthmods -allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je),source=0.0)!cjg:PBLdepthmods -allocate(land_ice_atmos_boundary%albedo(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr),source=0.0) -allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%u_star(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%b_star(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%q_star(is:ie,js:je),source=0.0) -#ifndefuse_AM3_physics -allocate(land_ice_atmos_boundary%shflx(is:ie,js:je),source=0.0)!miz -allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je),source=0.0)!miz -#endif -allocate(land_ice_atmos_boundary%wind(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je),source=0.01) -allocate(land_ice_atmos_boundary%rough_heat(is:ie,js:je),source=0.01)!Kun -allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je),source=0.0) -allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm),source=0.0) -!} - -!{ -!Thefirstcallisnolongernecessary,thefluxeswillbepassedbythelandmodule -!The2ndcallisusefulinthecaseofaoceanmodelonlysimulation -! -callfms_coupler_type_copy(ex_gas_fields_atm,atm%fields,is,ie,js,je,& -mod_name,atm%axes(1:2),time,suffix='_atm') -!} - -if(ice%pe)then -callfms_mpp_domains_get_compute_domain(ice%domain,xsize=nxc_ice,ysize=nyc_ice) -nk_ice=size(ice%part_size,3) -endif - -if(land%pe)then -callfms_mpp_domains_get_compute_domain(land%domain,xsize=nxc_lnd,ysize=nyc_lnd) -endif - - -!{ -!Balaji:clocksonatm%peonly -sfcclock=fms_mpp_clock_id('SFCboundarylayer',flags=fms_clock_flag_default,grain=clock_subcomponent) -fluxatmdnclock=fms_mpp_clock_id('FluxDNfromatm',flags=fms_clock_flag_default,grain=clock_routine) -regenclock=fms_mpp_clock_id('XGridgeneration',flags=fms_clock_flag_default,grain=clock_routine) -fluxatmupclock=fms_mpp_clock_id('FluxUPtoatm',flags=fms_clock_flag_default,grain=clock_routine) -!} - -do_init=.false. - -endsubroutineatm_land_ice_flux_exchange_init - -!####################################################################### -subroutinesfc_boundary_layer(dt,Time,Atm,Land,Ice,Land_Ice_Atmos_Boundary) - -implicitnone -real,intent(in)::dt - -type(FmsTime_type),intent(in)::Time - -type(atmos_data_type),intent(inout)::Atm - -type(land_data_type),intent(inout)::Land - -type(ice_data_type),intent(inout)::Ice - -type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary - - -!----localvars---------------------------------------------------------- -real,dimension(n_xgrid_sfc)::& -ex_albedo,&!albedo -ex_albedo_vis_dir,&!albedoforlightwithwavelengthinvisibleregionofthesolarspectrum -ex_albedo_nir_dir,&!albedoforlightwithwavelengthinnear-irregionofthesolarspectrum -ex_albedo_vis_dif,&!differenceinalbedoforlightwithwavelengthinvisibleregionofthesolarspectrum -ex_albedo_nir_dif,&!differenceinalbedoforlightwithwavelengthinnear-irregionofthesolarspectrum -ex_land_frac,&!fractionalareaoflandingridcell -ex_t_atm,&!airtemperatureatthelowestatmosphericlevel -ex_p_atm,&!pressureatthelowestatmosphericlevel -ex_u_atm,&!uwindcomponentatthelowestatmosphericlevel -ex_v_atm,&!vwindcomponentatthelowestatmosphericlevel -ex_gust,&!gustscale -ex_t_surf4,&!(surfacetemperature)**4 -ex_u_surf,&!uwindcomponentatEarth'ssurface -ex_v_surf,&!vwindcomponentatEarth'ssurface -ex_rough_mom,&!momentumroughnesslength -ex_rough_heat,&!heatroughnesslength -ex_rough_moist,&!moistureroughnesslength -ex_rough_scale,&!scalefactorfortopographicroughnesscalculation -ex_q_star,&!turbulentmoisturescale -ex_thv_atm,&!surfaceareatheta_v -ex_thv_surf,&!surfacetheta_v -ex_cd_q,&!moistureexchangecoefficient -ex_ref,&!specifichumidityatz_ref_heat -ex_ref_u,&!zonalwindcomponentatz_ref_mom -ex_ref_v,&!meridionalwindcomponentatz_ref_mom -ex_u10,&!<zonalwindspeedat10mabovethesurface -ex_ref2,&! -ex_t_ref,& -ex_qs_ref,& -ex_qs_ref_cmip,&! -ex_del_m,&!referenceheightforinterpolationfactorformomentum -ex_del_h,&!referenceheightinterpolationfactorforheat -ex_del_q,&!referenceheightinterpationfactorformoisture -ex_frac_open_sea!open-watermask,notused? - -real::rho -real,dimension(n_xgrid_sfc,n_exch_tr)::& -ex_tr_atm,&!<concentrationoftraceratlowestatmosphericlevel -ex_tr_ref - -real,dimension(n_xgrid_sfc)::ex_co2_atm_dvmr!jgj:addedforco2_atmdiagnostic - -real,dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2))::diag_atm - - -#ifndef_USE_LEGACY_LAND_ -real,dimension(size(Land%t_ca,1),size(Land%t_ca,2))::diag_land -real,dimension(size(Land%t_ca,1))::diag_land_ug,tile_size_ug -real,dimension(nxc_lnd,nyc_lnd)::diag_land_sg,tile_size_sg -logical,dimension(size(Land%t_ca,1))::mask_ug -logical,dimension(nxc_lnd,nyc_lnd)::mask_sg -integer::k -#else -real,dimension(size(Land%t_ca,1),size(Land%t_ca,2),size(Land%t_ca,3))::diag_land -#endif -real,dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3))::sea -real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::tmp_open_sea - -real::& -zrefm,&!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory -zrefh!referenceheightforcomputingsurfacefluxesfromMonin-Obukhovsimilaritytheory - -logical::used -character(32)::tr_name,tr_units!tracername - -integer::tr,n,m!tracerindices -integer::is,ie,isc,iec,jsc,jec -integer::i,l,j,n_gex - -real,dimension(n_xgrid_sfc,n_gex_lnd2atm)::ex_gex_lnd2atm - - -![1]checkthatthemodulewasinitialized -if(do_init)callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'mustcallatm_land_ice_flux_exchange_initfirst',fatal) - -!{ -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(sfcclock) -!} - -!{ -allocate(& -ex_t_surf(n_xgrid_sfc),& -ex_t_surf_miz(n_xgrid_sfc),& -ex_p_surf(n_xgrid_sfc),& -ex_slp(n_xgrid_sfc),& -ex_t_ca(n_xgrid_sfc),& -ex_dhdt_surf(n_xgrid_sfc),& -ex_dedt_surf(n_xgrid_sfc),& -ex_dqsatdt_surf(n_xgrid_sfc),& -ex_drdt_surf(n_xgrid_sfc),& -ex_dhdt_atm(n_xgrid_sfc),& -ex_flux_t(n_xgrid_sfc),& -ex_flux_lw(n_xgrid_sfc),& -ex_drag_q(n_xgrid_sfc),& -ex_avail(n_xgrid_sfc),& -ex_f_t_delt_n(n_xgrid_sfc),& -ex_tr_surf(n_xgrid_sfc,n_exch_tr),& -ex_dfdtr_surf(n_xgrid_sfc,n_exch_tr),& -ex_dfdtr_atm(n_xgrid_sfc,n_exch_tr),& -ex_flux_tr(n_xgrid_sfc,n_exch_tr),& -ex_f_tr_delt_n(n_xgrid_sfc,n_exch_tr),& -ex_e_tr_n(n_xgrid_sfc,n_exch_tr),& -ex_con_atm(n_xgrid_sfc),& -ex_tr_con_ref(n_xgrid_sfc,n_exch_tr),& -ex_tr_con_atm(n_xgrid_sfc,n_exch_tr),& -!MODtheseweremovedfromlocal!sotheycanbepassedtofluxdown -ex_flux_u(n_xgrid_sfc),& -ex_flux_v(n_xgrid_sfc),& -ex_dtaudu_atm(n_xgrid_sfc),& -ex_dtaudv_atm(n_xgrid_sfc),& -ex_seawater(n_xgrid_sfc),& -!valuesaddedforLM3 -ex_cd_t(n_xgrid_sfc),& -ex_cd_m(n_xgrid_sfc),& -ex_b_star(n_xgrid_sfc),& -ex_u_star(n_xgrid_sfc),& -ex_wind(n_xgrid_sfc),& -ex_z_atm(n_xgrid_sfc),& -ex_e_t_n(n_xgrid_sfc),& -ex_e_q_n(n_xgrid_sfc),& -ex_land(n_xgrid_sfc)) -#ifdefSCM -allocate(& -ex_dhdt_surf_forland(n_xgrid_sfc),& -ex_dedt_surf_forland(n_xgrid_sfc),& -ex_dedq_surf_forland(n_xgrid_sfc)) -#endif -!}ENDALLOCATIONARRAYSFOREXCHANGEFIELDS - -!{ -ex_p_surf=1.0 -!Actualallocationofexchangefieldsforocean_iceboundary -don=1,ex_gas_fields_ice%num_bcs -dom=1,ex_gas_fields_ice%bc(n)%num_fields -if(associated(ex_gas_fields_ice%bc(n)%field(m)%values))then -callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_icealreadyallocated.') -endif -allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) -enddo -enddo -!} - -!{ -don=1,ex_gas_fields_atm%num_bcs -dom=1,ex_gas_fields_atm%bc(n)%num_fields -if(associated(ex_gas_fields_atm%bc(n)%field(m)%values))then -callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fields_atmalreadyallocated.') -endif -allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) -enddo -enddo -!} - -!{ -don=1,ex_gas_fluxes%num_bcs -dom=1,ex_gas_fluxes%bc(n)%num_fields -if(associated(ex_gas_fluxes%bc(n)%field(m)%values))then -callfms_mpp_error(fatal,'sfc_boundary_layer:ex_gas_fluxesalreadyallocated.') -endif -allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc),source=0.0) -enddo -enddo -!} - -!Calltheatmospheretracerdrivertogatherthedataneededforextragastracers -!Foroceanonlymodel -!callatmos_get_fields_for_flux(Atm) - - -!{ -!thisisactuallyasafeguardagainstusingundefinedvalues -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf,& -!$OMPex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir,ex_albedo_vis_dif,ex_albedo_nir_dif,ex_cd_t,& -!$OMPex_cd_m,ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm)private(is,ie,n_gex) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_t_surf(i)=200. -ex_u_surf(i)=0. -ex_v_surf(i)=0. -ex_albedo(i)=0.!bw -ex_albedo_vis_dir(i)=0. -ex_albedo_nir_dir(i)=0. -ex_albedo_vis_dif(i)=0. -ex_albedo_nir_dif(i)=0. -!----donotuseifrelaxtime/=0---- -ex_cd_t(i)=0.0 -ex_cd_m(i)=0.0 -ex_cd_q(i)=0.0 -ex_frac_open_sea(i)=0. -enddo -don_gex=1,n_gex_lnd2atm -doi=is,ie -ex_gex_lnd2atm(i,n_gex)=0.0 -enddo -enddo -enddo -!} - -!{ -!Balaji:data_overridestuffmovedfromcoupler_main -callfms_data_override('ATM','t_bot',atm%t_bot,time) -callfms_data_override('ATM','z_bot',atm%z_bot,time) -callfms_data_override('ATM','p_bot',atm%p_bot,time) -callfms_data_override('ATM','u_bot',atm%u_bot,time) -callfms_data_override('ATM','v_bot',atm%v_bot,time) -callfms_data_override('ATM','p_surf',atm%p_surf,time) -callfms_data_override('ATM','slp',atm%slp,time) -callfms_data_override('ATM','gust',atm%gust,time) -!} - -!{ -!jgj:2008/07/18 -!FVatmadvectstracersinmoistmassmixingratio:kgco2/(kgair+kgwater) -!cubedsphereadvectsmoistmassmixingratioalso(perSJ) -!datatableco2overridesforocean(co2_flux_pcair_atm) -!andland(co2_bot)shouldbeindryvmr(mol/mol)units. -!ATM:co2_flux_pcair_atm:tooverrideatm_btmlayertosendtoocean -!ATM:co2_bot:tooverrideatm_btmlayertosendtoland - -!dataoverrideforco2tobepassedtoland/photosynthesis(co2_bot) -!landco2dataoverrideisindry_vmrunits,soconverttowet_mmrforlandmodel. -!co2mmr=(wco2/wair)*co2vmr;wet_mmr=dry_mmr*(1-Q) -! -dotr=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) -callfms_data_override('ATM',trim(tr_name)//'_bot',atm%tr_bot(:,:,tr),time,override=used) -!conversionforlandco2dataoverridefromdryvmrtomoistmmr -if(used.and.fms_mpp_lowercase(trim(tr_name)).eq.'co2')then -!2017/08/08jgjaddco2_botdiagnosticindry_vmrunits -if(id_co2_bot>0)used=fms_diag_send_data(id_co2_bot,atm%tr_bot(:,:,tr),time) -isc=lbound(atm%tr_bot,1);iec=ubound(atm%tr_bot,1) -jsc=lbound(atm%tr_bot,2);jec=ubound(atm%tr_bot,2) -!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Atm,tr,isphum) -doj=jsc,jec -doi=isc,iec -atm%tr_bot(i,j,tr)=atm%tr_bot(i,j,tr)*(wtmco2/wtmair)*& -(1.0-atm%tr_bot(i,j,isphum)) -enddo -enddo -endif -enddo -!} - -!{ -!atmos_co2.F90alreadycalled:convertstr_botpassedtooceanviagas_fluxfrommoistmmrtodryvmr. -don=1,atm%fields%num_bcs -dom=1,atm%fields%bc(n)%num_fields -callfms_data_override('ATM',atm%fields%bc(n)%field(m)%name,& -atm%fields%bc(n)%field(m)%values,time,override=atm%fields%bc(n)%field(m)%override) -ex_gas_fields_atm%bc(n)%field(m)%override=atm%fields%bc(n)%field(m)%override -!2017/08/08jgjaddco2_flux_pcair_atmdiagnostic -if(atm%fields%bc(n)%field(m)%override.and.& -fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'co2_flux_pcair_atm')then -if(id_co2_flux_pcair_atm>0)& -used=fms_diag_send_data(id_co2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) -endif -!2017/08/15jgjaddo2_flux_pcair_atmdiagnostic -if(atm%fields%bc(n)%field(m)%override.and.& -fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)).eq.'o2_flux_pcair_atm')then -if(id_o2_flux_pcair_atm>0)& -used=fms_diag_send_data(id_o2_flux_pcair_atm,atm%fields%bc(n)%field(m)%values,time) -endif -enddo -enddo -don=1,atm%fields%num_bcs -if(atm%fields%bc(n)%use_atm_pressure)then -if(.not.atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override)then -atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values=atm%p_surf -endif -endif -enddo -!} - -!{ -callfms_data_override('ICE','t_surf',ice%t_surf,time) -callfms_data_override('ICE','rough_mom',ice%rough_mom,time) -callfms_data_override('ICE','rough_heat',ice%rough_heat,time) -callfms_data_override('ICE','rough_moist',ice%rough_moist,time) -callfms_data_override('ICE','albedo',ice%albedo,time) -callfms_data_override('ICE','albedo_vis_dir',ice%albedo_vis_dir,time) -callfms_data_override('ICE','albedo_nir_dir',ice%albedo_nir_dir,time) -callfms_data_override('ICE','albedo_vis_dif',ice%albedo_vis_dif,time) -callfms_data_override('ICE','albedo_nir_dif',ice%albedo_nir_dif,time) -callfms_data_override('ICE','u_surf',ice%u_surf,time) -callfms_data_override('ICE','v_surf',ice%v_surf,time) -callfms_coupler_type_data_override('ICE',ice%ocean_fields,time) -callfms_coupler_type_send_data(ice%ocean_fields,time) -callfms_data_override_('LND','t_surf',land%t_surf,time) -callfms_data_override_('LND','t_ca',land%t_ca,time) -callfms_data_override_('LND','rough_mom',land%rough_mom,time) -callfms_data_override_('LND','rough_heat',land%rough_heat,time) -callfms_data_override_('LND','albedo',land%albedo,time) - -!tracerdataoverride -dotr=1,n_lnd_tr -callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) -#ifndef_USE_LEGACY_LAND_ -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) -#else -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) -#endif -enddo -callfms_data_override_('LND','albedo_vis_dir',land%albedo_vis_dir,time) -callfms_data_override_('LND','albedo_nir_dir',land%albedo_nir_dir,time) -callfms_data_override_('LND','albedo_vis_dif',land%albedo_vis_dif,time) -callfms_data_override_('LND','albedo_nir_dif',land%albedo_nir_dif,time) -!} - -!{ -#ifdefuse_AM3_physics -if(do_forecast)then -callfms_xgrid_put_to_xgrid(atm%Surf_diff%sst_miz,'ATM',ex_t_surf_miz,& -xmap_sfc,remap_method=remap_method,complete=.false.) -endif -#endif -!putatmospherebottomlayertracerdataontoexchangegrid -dotr=1,n_exch_tr -callfms_xgrid_put_to_xgrid(atm%tr_bot(:,:,tr_table(tr)%atm),'ATM',ex_tr_atm(:,tr),xmap_sfc,& -remap_method=remap_method,complete=.false.) -enddo -don=1,atm%fields%num_bcs -if(ex_gas_fields_atm%bc(n)%flux_type.ne.'air_sea_deposition')then -dom=1,atm%fields%bc(n)%num_fields -callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& -ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method,complete=.false.) -enddo -endif -enddo - -callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_t_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%z_bot,'ATM',ex_z_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%p_bot,'ATM',ex_p_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%u_bot,'ATM',ex_u_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%v_bot,'ATM',ex_v_atm,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%p_surf,'ATM',ex_p_surf,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%slp,'ATM',ex_slp,xmap_sfc,remap_method=remap_method,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%gust,'ATM',ex_gust,xmap_sfc,remap_method=remap_method,complete=.true.) -!} - -!slm,Mar202002:changedorderinwhiththedatatransferredfromiceandland -!grids,tofillt_cafirstwitht_surfoveroceanandthenwitht_cafrom -!land,whereitisdifferentfromt_surf.Itismostlytosimplify -!diagnostic,sincesurface_fluxcalculationsdistinguishbetweenlandand -!not-landanyway. - -!{ -!prefillsurfacevalueswithatmosphericvaluesbeforeputtingtracers -!fromiceorland,sothatgradientis0iftracersarenotfilled -ex_tr_surf=ex_tr_atm -!} - -!{ -!(assumethatoceanquantitesarestoredinnoicepartition) -!(note:ex_availistrueaticeandoceanpoints) -callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%rough_mom,'OCN',ex_rough_mom,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%rough_heat,'OCN',ex_rough_heat,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%rough_moist,'OCN',ex_rough_moist,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo,'OCN',ex_albedo,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_vis_dir,'OCN',ex_albedo_vis_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_nir_dir,'OCN',ex_albedo_nir_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_vis_dif,'OCN',ex_albedo_vis_dif,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%albedo_nir_dif,'OCN',ex_albedo_nir_dif,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%u_surf,'OCN',ex_u_surf,xmap_sfc) -callfms_xgrid_put_to_xgrid(ice%v_surf,'OCN',ex_v_surf,xmap_sfc) - -tmp_open_sea=0. -tmp_open_sea(:,:,1)=1. -callfms_xgrid_put_to_xgrid(tmp_open_sea,'OCN',ex_frac_open_sea,xmap_sfc) - -don=1,ice%ocean_fields%num_bcs -dom=1,ice%ocean_fields%bc(n)%num_fields -callfms_xgrid_put_to_xgrid(ice%ocean_fields%bc(n)%field(m)%values,'OCN',& -ex_gas_fields_ice%bc(n)%field(m)%values,xmap_sfc) -enddo -enddo -!} - -!{ -!Generateawetmaskarrayonthexgridwhichis: -!1:wherethereisanyopenwaterintheOCNgridcell -!0:wherethereisnoopenwaterintheOCNgridcell,i.e.,totallyicecoveredorland -!Thisisadynamicwetmaskandparticularlyisnotthesameasastaticlandmaskbecauseseaicefractionschange -!asthemodelruns. -!Onewaytocreatesuchamaskisif'OCN'putsanarrayonthexgridwhichis -!1oneveryOCNgridcellwiththe3rdindexequalto1(icecategory1correspondstoopenwaterinthegridcell) -!0otherwise -!Thiswetmaskwillbeusedtolimittheair-seafluxexchangetoareasthatarenottotallycoveredbyseaice. -sea=0.0;sea(:,:,1)=1.0; -ex_seawater=0.0 -callfms_xgrid_put_to_xgrid(sea,'OCN',ex_seawater,xmap_sfc) -!} - -!Question:Whyistheaboveex_seawateradynamicmaskarray? -!Fromitsconstructionitlookslikeastaticarrayof1sand0s! -!Answer:Thexmap_sfcisdynamicandchangesasthemodelstepsbecauseitcontainsupdatedinformationabout -!seaicefractions.Theupdatedarray"ex_seawater"aftertheabove"put"callwillbe1wherethere -!isopenwaterevenifthosegridcellswherepreviouslyclosedbyseaice. -!Particularlyifwerestrictxgridcalculationswhereex_seawater==1 -!onlycellswith(partiallyortotally)openwatercontributeandtotallycoveredcellswon'tcontribute. - -!Notrelatedtotheabovecomments,itseemsthattheaboveex_frac_open_seacouldbereplacedbyex_seawater -!forcodecleaning. -!Thefollowingtestdoesnotprintoutanythingforafullycoupledmodel.Thisassertsthat -!1.Thetwoarraysex_frac_open_seaandex_seawaterarethesame -!Theirdifferenceisthatex_frac_open_seaisalocalarray, -!butex_seawaterisamodulearrayusedoutsidethissubroutine -!2.Thexgridarray"ex_seawater"iseither0or1andnothingelse,justlikethe"OCN"gridarray"sea" -!Test: -!dol=1,my_nblocks -!is=block_start(l) -!ie=block_end(l) -!doi=is,ie -!if(ex_frac_open_sea(i)/=ex_seawater(i))& -!print*,'ex_frac_open_sea!=ex_seawater',ex_frac_open_sea(i),ex_seawater(i) -!if(ex_seawater(i)/=0.0.or.ex_seawater(i)/=1.0)& -!print*,'ex_seawater!1or0',ex_seawater(i) -!enddo -!enddo - -ex_t_ca=ex_t_surf!slm,Mar202002todefinevaluesovertheocean - -!{ -callfms_xgrid_some(xmap_sfc,ex_land,'LND') - -#ifdefuse_AM3_physics -if(do_forecast)then -callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_miz,xmap_sfc) -ex_t_ca(:)=ex_t_surf_miz(:) -endif -#endif - -callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%rough_mom,'LND',ex_rough_mom,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_heat,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%rough_heat,'LND',ex_rough_moist,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo,'LND',ex_albedo,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_vis_dir,'LND',ex_albedo_vis_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_nir_dir,'LND',ex_albedo_nir_dir,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_vis_dif,'LND',ex_albedo_vis_dif,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%albedo_nir_dif,'LND',ex_albedo_nir_dif,xmap_sfc) -ex_rough_scale=ex_rough_mom -callfms_xgrid_put_to_xgrid_(land%rough_scale,'LND',ex_rough_scale,xmap_sfc) - -don_gex=1,n_gex_lnd2atm -callfms_xgrid_put_to_xgrid_(land%gex_lnd2atm(:,:,n_gex),'LND',ex_gex_lnd2atm(:,n_gex),xmap_sfc) -enddo - -dotr=1,n_exch_tr -n=tr_table(tr)%lnd -if(n/=no_tracer)then -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) -#else -callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf(:,tr),xmap_sfc) -#endif -else -!donothing,sinceex_tr_surfisprefilledwithex_tr_atm,andtherefore -!fluxeswillbe0 -endif -enddo - -ex_land_frac=0.0 -callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) -!}ENDMAPLANDEXCHANGEFIELDSONTOTHEEXCHANGEGRID - -#ifdefSCM -if(do_specified_land)then -if(do_specified_albedo)then -ex_albedo=albedo_obs -ex_albedo_vis_dir=albedo_obs -ex_albedo_nir_dir=albedo_obs -ex_albedo_vis_dif=albedo_obs -ex_albedo_nir_dif=albedo_obs -endif -if(do_specified_tskin)then -ex_t_surf=tskin -ex_t_ca=tskin -ex_tr_surf(:,isphum)=15.e-3 -endif -if(do_specified_rough_leng)then -ex_rough_mom=rough_mom -ex_rough_heat=rough_heat -ex_rough_moist=rough_heat -endif -endif -#endif - -#ifdefuse_AM3_physics -if(do_forecast)then -ex_t_surf=ex_t_surf_miz -endif -#endif - -!{ -callfms_xgrid_some(xmap_sfc,ex_avail) -!$OMPparalleldodefault(none)shared(my_nblocks,ex_t_atm,ex_tr_atm,ex_u_atm,ex_v_atm,& -!$OMPex_p_atm,ex_z_atm,ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf,ex_u_surf,ex_v_surf,ex_rough_mom,& -!$OMPex_rough_heat,ex_rough_moist,ex_rough_scale,ex_gust,ex_flux_t,ex_flux_tr,ex_flux_lw,& -!$OMPex_flux_u,ex_flux_v,ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& -!$OMPex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf,ex_drdt_surf,& -!$OMPex_dhdt_atm,ex_dfdtr_atm,ex_dtaudu_atm,ex_dtaudv_atm,dt,ex_land,& -!$OMPex_seawater,ex_avail,block_start,block_end,isphum)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -callsurface_flux(& -ex_t_atm(is:ie),ex_tr_atm(is:ie,isphum),ex_u_atm(is:ie),ex_v_atm(is:ie),ex_p_atm(is:ie),ex_z_atm(is:ie),& -ex_p_surf(is:ie),ex_t_surf(is:ie),ex_t_ca(is:ie),ex_tr_surf(is:ie,isphum),ex_u_surf(is:ie),ex_v_surf(is:ie),& -ex_rough_mom(is:ie),ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_rough_scale(is:ie),ex_gust(is:ie),& -ex_flux_t(is:ie),ex_flux_tr(is:ie,isphum),ex_flux_lw(is:ie),ex_flux_u(is:ie),ex_flux_v(is:ie),& -ex_cd_m(is:ie),ex_cd_t(is:ie),ex_cd_q(is:ie),ex_wind(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),& -ex_q_star(is:ie),ex_thv_atm(is:ie),ex_thv_surf(is:ie),ex_dhdt_surf(is:ie),ex_dedt_surf(is:ie),& -ex_dfdtr_surf(is:ie,isphum),ex_drdt_surf(is:ie),ex_dhdt_atm(is:ie),ex_dfdtr_atm(is:ie,isphum),& -ex_dtaudu_atm(is:ie),ex_dtaudv_atm(is:ie),dt,ex_land(is:ie),(ex_seawater(is:ie).gt.0.0),ex_avail(is:ie)) -enddo - -#ifdefSCM -!OptiontooverridesurfacefluxesforSCM -if(do_specified_flux)then - -callscm_surface_flux(& -ex_t_atm,ex_tr_atm(:,isphum),ex_u_atm,ex_v_atm,ex_p_atm,ex_z_atm,& -ex_p_surf,ex_t_surf,ex_t_ca,ex_tr_surf(:,isphum),ex_u_surf,ex_v_surf,& -ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_rough_scale,& -ex_gust,ex_flux_t,ex_flux_tr(:,isphum),ex_flux_lw,ex_flux_u,ex_flux_v,& -ex_cd_m,ex_cd_t,ex_cd_q,ex_wind,ex_u_star,ex_b_star,ex_q_star,& -ex_thv_atm,ex_thv_surf,ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf(:,isphum),ex_drdt_surf,& -ex_dhdt_atm,ex_dfdtr_atm(:,isphum),ex_dtaudu_atm,ex_dtaudv_atm,dt,(ex_land,ex_seawater.gt.0.0),& -ex_avail,ex_dhdt_surf_forland,ex_dedt_surf_forland,ex_dedq_surf_forland) -endif -#endif -!}ENDCALLSURFACE_FLUX - - -!callmpp_clock_end(fluxClock) - -!{ -zrefm=10.0 -zrefh=z_ref_heat -!----optimizecalculation---- -!$OMPparalleldodefault(shared)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& -ex_rough_heat(is:ie),ex_rough_moist(is:ie),ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& -ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) -doi=is,ie -ex_u10(i)=0. -if(ex_avail(i))then -ex_ref_u(i)=ex_u_surf(i)+(ex_u_atm(i)-ex_u_surf(i))*ex_del_m(i) -ex_ref_v(i)=ex_v_surf(i)+(ex_v_atm(i)-ex_v_surf(i))*ex_del_m(i) -ex_u10(i)=sqrt(ex_ref_u(i)**2+ex_ref_v(i)**2) -endif -enddo -don=1,ex_gas_fields_atm%num_bcs -if(atm%fields%bc(n)%use_10m_wind_speed)then -if(.not.ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override)then -doi=is,ie -ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)=ex_u10(i) -enddo -endif -endif -enddo -!}ENDCOMPUTEZONALANDMERIDIONALWINDS - -!{ -!f1p:calculateatmosphericconductancetosendtothelandmodel -doi=is,ie -ex_con_atm(i)=ex_wind(i)*ex_cd_q(i) -enddo -!} - -!{ -!F=C0*u*rho*delta_q,C0*u*rhoisthesameforalltracers,copyfromsphum -dotr=1,n_exch_tr -if(tr==isphum)cycle -doi=is,ie -!slm:ex_dfdtr_surf(:,isphum)ismanipulatedinsurface_flux:itissetto -!zeroovertheocean,soitisnotappropriatetouseforothertracers. -!However,sinceflux=rho*Cd*|v|*(q_surf-q_atm),wecansimplyusenegative -!dfdtr_atmforthedfdtr_surfderivative.Thiswillbreakifevertheflux -!formulationischangedtobenotsymmetricalw.r.t.q_surfandq_atm,but -!thenthiswholesectionwillhavetobechanged. -ex_dfdtr_atm(i,tr)=ex_dfdtr_atm(i,isphum) -ex_dfdtr_surf(i,tr)=-ex_dfdtr_atm(i,isphum) -ex_flux_tr(i,tr)=ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) -enddo -enddo -enddo -!} - -!Combineexplicitoceanfluxandimplicitlandfluxofextrafluxfields. - -!{ -callatmos_ocean_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater,ex_t_surf) - -don=1,ex_gas_fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then -m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch -if(id_tr_mol_flux0(m).gt.0)then -callfms_xgrid_get_from_xgrid(& -diag_atm,'ATM',ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:),xmap_sfc) -used=fms_diag_send_data(id_tr_mol_flux0(m),diag_atm,time) -endif -endif -enddo - - -!Thefollowingstatementisaconciseversionofwhat'sfollowingandworth -!lookingintointhefuture. -!ex_flux_tr(:,itracer)=ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) -!where(ex_seawater.gt.0)ex_flux_tr(:,itracer)=F_ocn -!$OMPparalleldodefault(shared)private(is,ie,m,tr_units,tr_name) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -don=1,ex_gas_fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%atm_tr_index.gt.0)then -m=tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch -callfms_tracer_manager_get_tracer_names(& -model_atmos,ex_gas_fluxes%bc(n)%atm_tr_index,tr_name,units=tr_units) -doi=is,ie -if(ex_land(i))cycle!overland,don'tdoanything -!onoceanoricecells,fluxisexplicitthereforewezeroderivatives. -ex_dfdtr_atm(i,m)=0.0 -ex_dfdtr_surf(i,m)=0.0 -if(ex_seawater(i)>0.0)then -if(fms_mpp_lowercase(trim(tr_units)).eq."vmr")then -!inmol/m2/sbutfromlandmodelitshouldbeinvmr*kg/m2/s -!Thiswasconvertingtodryvmr(asopposedtoambientvmr) -!ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& -!*WTMAIR*1.0e-3& -!/(1.-ex_tr_atm(i,isphum)) -! -!vmr*kg/m2/s=mol(X)/[m2s][1/mol(air)*mol(air)]*WTM(air) -! -ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)& -*1.0e-3*wtmair*wtmh2o/((1.-ex_tr_atm(i,isphum))*wtmh2o+ex_tr_atm(i,isphum)*wtmair) -!endif -else -!jgj:converttokgco2/m2/secforatm -ex_flux_tr(i,m)=ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)*& -ex_gas_fluxes%bc(n)%mol_wt*1.0e-03 -endif -else -ex_flux_tr(i,m)=0.0!pureiceexchangecell -endif -enddo -endif -enddo -enddo -!}ENDCOMPUTEEXPLICITOCEANFLUXES - -!{ -![5.2]overridetracerfluxesandderivatives -dotr=1,n_exch_tr -if(tr_table(tr)%atm==no_tracer)cycle!itshouldneverhappen,though - -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -![5.2.1]overridetracerflux.Notethat"sea"and"diag_land"arerepeatedlyused -!astemporarystorageforthevaluesweareoverridingfluxesandderivativewith, -!overoceanandlandrespectively -callfms_data_override_('LND','ex_flux_'//trim(tr_name),diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) -callfms_data_override('ICE','ex_flux_'//trim(tr_name),sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_tr(:,tr),xmap_sfc) -![5.2.2]overridederivativeoffluxwrtsurfaceconcentration -callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_surf',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_surf(:,tr),xmap_sfc) -callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_surf',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_surf(:,tr),xmap_sfc) -![5.2.3]overridederivativeoffluxwrtatmosphericconcentration -callfms_data_override_('LND','ex_dfd'//trim(tr_name)//'_atm',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dfdtr_atm(:,tr),xmap_sfc) -callfms_data_override('ICE','ex_dfd'//trim(tr_name)//'_atm',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dfdtr_atm(:,tr),xmap_sfc) -enddo - -![5.3]overridefluxandderivativesforsensibleheatflux -![5.3.1]overrideflux -callfms_data_override_('LND','ex_flux_t',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) -callfms_data_override('ICE','ex_flux_t',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_flux_t,xmap_sfc) -![5.3.2]overridederivativeoffluxwrtnear-surfacetemperature -callfms_data_override_('LND','ex_dhdt_surf',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_surf,xmap_sfc) -callfms_data_override('ICE','ex_dhdt_surf',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_surf,xmap_sfc) -![5.3.3]overridederivativeoffluxwrtatmospherictemperature -callfms_data_override_('LND','ex_dhdt_atm',diag_land,time,override=used) -if(used)callfms_xgrid_put_to_xgrid_(diag_land,'LND',ex_dhdt_atm,xmap_sfc) -callfms_data_override('ICE','ex_dhdt_atm',sea,time,override=used) -if(used)callfms_xgrid_put_to_xgrid(sea,'OCN',ex_dhdt_atm,xmap_sfc) -!}ENDDATAOVERRIDE - -!NB:namesoftheoverridefieldsareconstructedusingtracernameandcertain -!prefixes/suffixes.Forexample,forthetracernamed"sphum"(specifichumidity)theywillbe: -!"ex_flux_sphum","ex_dfdsphum_surf",and"ex_dfdsphum_atm". -! -!Forsensibleheatfluxnamesare"ex_flux_t","ex_dhdt_surf",and"ex_dhdt_atm"; -!despitethenamethoseareactuallyinenergyunits,W/m2,W/(m2degK),and -!W/(m2degK)respectively - -!{ -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_avail,& -!$OMPex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -if(ex_avail(i))ex_drag_q(i)=ex_wind(i)*ex_cd_q(i) -![6]getmeanquantitiesonatmospheregrid -![6.1]computetsurfforradiation -ex_t_surf4(i)=ex_t_surf(i)**4 -enddo -enddo -!} - -![6.2]putrelevantquantitiesontoatmosphericboundary -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%t_ocean,'ATM',ex_t_surf,xmap_sfc,complete=.false.)!joseph -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t,'ATM',ex_t_surf4,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%frac_open_sea,'ATM',ex_frac_open_sea,xmap_sfc) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_vis_dir,'ATM',ex_albedo_vis_dir,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_nir_dir,'ATM',ex_albedo_nir_dir,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_vis_dif,'ATM',ex_albedo_vis_dif,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%albedo_nir_dif,'ATM',ex_albedo_nir_dif,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%rough_mom,'ATM',ex_rough_mom,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%rough_heat,'ATM',ex_rough_heat,xmap_sfc,complete=.false.)!kgao -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%land_frac,'ATM',ex_land_frac,xmap_sfc,complete=.false.) - -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_flux,'ATM',ex_flux_u,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_flux,'ATM',ex_flux_v,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudu,'ATM',ex_dtaudu_atm,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dtaudv,'ATM',ex_dtaudv_atm,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_star,'ATM',ex_u_star,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%b_star,'ATM',ex_b_star,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_star,'ATM',ex_q_star,xmap_sfc,complete=.true.) - -don_gex=1,n_gex_lnd2atm -callfms_xgrid_get_from_xgrid(& -land_ice_atmos_boundary%gex_lnd2atm(:,:,n_gex),'ATM',ex_gex_lnd2atm(:,n_gex),xmap_sfc,complete=.false.) -enddo - -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%u_ref,'ATM',ex_ref_u,xmap_sfc,complete=.false.)!bqx -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%v_ref,'ATM',ex_ref_v,xmap_sfc,complete=.true.)!bqx - -!kgao:forshield+mom6coupling;usedbyshieldpblschemes(am5withtke-edmfshoulddothesame) -#ifndefuse_AM3_physics -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc,complete=.false.) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc,complete=.true.) -#endif -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%wind,'ATM',ex_wind,xmap_sfc) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_atm,'ATM',ex_thv_atm,xmap_sfc) -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%thv_surf,'ATM',ex_thv_surf,xmap_sfc) - -#ifdefuse_AM3_physics -if(do_forecast)then -callfms_xgrid_get_from_xgrid(ice%t_surf,'OCN',ex_t_surf,xmap_sfc) -endif -#endif - -callfms_mpp_domains_get_compute_domain(atm%domain,isc,iec,jsc,jec) -!$OMPparalleldodefault(none)shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary)private(is,ie) -doj=jsc,jec -doi=isc,iec -land_ice_atmos_boundary%t(i,j)=land_ice_atmos_boundary%t(i,j)**0.25 -enddo -enddo -!Balaji:fms_data_overridecallsmovedherefromcoupler_main -callfms_data_override('ATM','t',land_ice_atmos_boundary%t,time) -callfms_data_override('ATM','albedo',land_ice_atmos_boundary%albedo,time) - -callfms_data_override('ATM','albedo_vis_dir',land_ice_atmos_boundary%albedo_vis_dir,time) -callfms_data_override('ATM','albedo_nir_dir',land_ice_atmos_boundary%albedo_nir_dir,time) -callfms_data_override('ATM','albedo_vis_dif',land_ice_atmos_boundary%albedo_vis_dif,time) -callfms_data_override('ATM','albedo_nir_dif',land_ice_atmos_boundary%albedo_nir_dif,time) -callfms_data_override('ATM','land_frac',land_ice_atmos_boundary%land_frac,time) -callfms_data_override('ATM','dt_t',land_ice_atmos_boundary%dt_t,time) -dotr=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) -callfms_data_override('ATM','dt_'//trim(tr_name),land_ice_atmos_boundary%dt_tr(:,:,tr),time) -enddo -callfms_data_override('ATM','u_flux',land_ice_atmos_boundary%u_flux,time) -callfms_data_override('ATM','v_flux',land_ice_atmos_boundary%v_flux,time) -callfms_data_override('ATM','dtaudu',land_ice_atmos_boundary%dtaudu,time) -callfms_data_override('ATM','dtaudv',land_ice_atmos_boundary%dtaudv,time) -callfms_data_override('ATM','u_star',land_ice_atmos_boundary%u_star,time) -callfms_data_override('ATM','b_star',land_ice_atmos_boundary%b_star,time) -!callfms_data_override('ATM','q_star',Land_Ice_Atmos_Boundary%q_star,Time) -callfms_data_override('ATM','rough_mom',land_ice_atmos_boundary%rough_mom,time) - -![6.3]saveatmosalbedofixandoldalbedo(fordownwardSWfluxcalculations) -!onexchangegrid -!allocate(ex_old_albedo(n_xgrid_sfc)) -!ex_old_albedo=ex_albedo - -!!STILLNEEDED???? -!!ISTHISCORRECT?? -allocate(ex_albedo_fix(n_xgrid_sfc)) -allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) -allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) -allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc)) -allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc)) - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& -!$OMPex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix,& -!$OMPex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_albedo_fix(i)=0. -ex_albedo_vis_dir_fix(i)=0. -ex_albedo_nir_dir_fix(i)=0. -ex_albedo_vis_dif_fix(i)=0. -ex_albedo_nir_dif_fix(i)=0. -enddo -enddo - - -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo,'ATM',ex_albedo_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dir,'ATM',& -ex_albedo_vis_dir_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dir,'ATM',& -ex_albedo_nir_dir_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_vis_dif,'ATM',& -ex_albedo_vis_dif_fix,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(land_ice_atmos_boundary%albedo_nir_dif,'ATM',& -ex_albedo_nir_dif_fix,xmap_sfc,complete=.true.) -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_albedo_fix,& -!$OMPex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir,& -!$OMPex_albedo_nir_dir,ex_albedo_nir_dir_fix,& -!$OMPex_albedo_vis_dif_fix,ex_albedo_vis_dif,& -!$OMPex_albedo_nir_dif_fix,ex_albedo_nir_dif)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_albedo_fix(i)=(1.0-ex_albedo(i))/(1.0-ex_albedo_fix(i)) -ex_albedo_vis_dir_fix(i)=(1.0-ex_albedo_vis_dir(i))/(1.0-ex_albedo_vis_dir_fix(i)) -ex_albedo_nir_dir_fix(i)=(1.0-ex_albedo_nir_dir(i))/(1.0-ex_albedo_nir_dir_fix(i)) -ex_albedo_vis_dif_fix(i)=(1.0-ex_albedo_vis_dif(i))/(1.0-ex_albedo_vis_dif_fix(i)) -ex_albedo_nir_dif_fix(i)=(1.0-ex_albedo_nir_dif(i))/(1.0-ex_albedo_nir_dif_fix(i)) -enddo -enddo - -#ifdefSCM -if(do_specified_albedo.and.do_specified_land)then -ex_albedo_fix=1. -ex_albedo_vis_dir_fix=1. -ex_albedo_vis_dif_fix=1. -ex_albedo_nir_dir_fix=1. -ex_albedo_nir_dif_fix=1. -endif -#endif - -!======================================================================= -![7]diagnosticssection - -!-------savestaticfieldsfirsttimeonly------ -if(first_static)then - -!-------landfraction------ -if(id_land_mask>0)then -used=fms_diag_send_data(id_land_mask,land_ice_atmos_boundary%land_frac,time) -endif -if(id_sftlf>0)then -used=fms_diag_send_data(id_sftlf,land_ice_atmos_boundary%land_frac,time) -endif -!near-surfaceheights -if(id_height2m>0)used=fms_diag_send_data(id_height2m,z_ref_heat,time) -if(id_height10m>0)used=fms_diag_send_data(id_height10m,z_ref_mom,time) - -first_static=.false. -endif - -!-------Atmfields----------- -don=1,atm%fields%num_bcs!{ -dom=1,atm%fields%bc(n)%num_fields!{ -if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ -if(atm%fields%bc(n)%use_10m_wind_speed.and.m.eq.fms_coupler_ind_u10.and.& -.not.atm%fields%bc(n)%field(m)%override)then!{ -callfms_xgrid_get_from_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& -ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc) -endif!} -if(atm%fields%bc(n)%field(m)%id_diag>0)then!{ -used=fms_diag_send_data(atm%fields%bc(n)%field(m)%id_diag,atm%fields%bc(n)%field(m)%values,time) -endif!} -endif!} -enddo!}m -enddo!}n - -!-------dragcoeffmoisture----------- -if(id_wind>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_wind,xmap_sfc) -used=fms_diag_send_data(id_wind,diag_atm,time) -endif -!-------dragcoeffmoisture----------- -if(id_drag_moist>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_q,xmap_sfc) -used=fms_diag_send_data(id_drag_moist,diag_atm,time) -endif - -!-------dragcoeffheat----------- -if(id_drag_heat>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_t,xmap_sfc) -used=fms_diag_send_data(id_drag_heat,diag_atm,time) -endif - -!-------dragcoeffmomemtum----------- -if(id_drag_mom>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_cd_m,xmap_sfc) -used=fms_diag_send_data(id_drag_mom,diag_atm,time) -endif - -!-------roughnessmoisture----------- -if(id_rough_moist>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_moist,xmap_sfc) -used=fms_diag_send_data(id_rough_moist,diag_atm,time) -endif - -!-------roughnessheat----------- -if(id_rough_heat>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_rough_heat,xmap_sfc) -used=fms_diag_send_data(id_rough_heat,diag_atm,time) -endif - -!-------roughnessmomemtum----------- -used=fms_diag_send_data(id_rough_mom,land_ice_atmos_boundary%rough_mom,time) - -!-------frictionvelocity----------- -used=fms_diag_send_data(id_u_star,land_ice_atmos_boundary%u_star,time) - -!-------bouyancy----------- -used=fms_diag_send_data(id_b_star,land_ice_atmos_boundary%b_star,time) - -!-------moisturescale----------- -used=fms_diag_send_data(id_q_star,land_ice_atmos_boundary%q_star,time) - -!-------surfandatmvirtualpotentialtemperature----------- -used=fms_diag_send_data(id_thv_atm,land_ice_atmos_boundary%thv_atm,time) -used=fms_diag_send_data(id_thv_surf,land_ice_atmos_boundary%thv_surf,time) - -!----------------------------------------------------------------------- -!------diagnosticsforfieldsatbottomatmosphericlevel------ - -if(id_t_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_atm,xmap_sfc) -used=fms_diag_send_data(id_t_atm,diag_atm,time) -endif - -if(id_u_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_u_atm,xmap_sfc) -used=fms_diag_send_data(id_u_atm,diag_atm,time) -endif - -if(id_v_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_v_atm,xmap_sfc) -used=fms_diag_send_data(id_v_atm,diag_atm,time) -endif - -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -if(id_tr_atm(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_atm(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_atm(tr),diag_atm,time) -endif -!!jgj:adddryvmrco2_atm -!-slmMar252010:movedtoresolveinterdependenceofdiagnosticfields -if(id_co2_atm_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then -ex_co2_atm_dvmr=(ex_tr_atm(:,tr)/(1.0-ex_tr_atm(:,isphum)))*wtmair/wtmco2 -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_atm_dvmr,xmap_sfc) -used=fms_diag_send_data(id_co2_atm_dvmr,diag_atm,time) -endif -enddo - -!-slm,Mar25,2002 -if(id_p_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_p_atm,xmap_sfc) -used=fms_diag_send_data(id_p_atm,diag_atm,time) -endif -if(id_z_atm>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_z_atm,xmap_sfc) -used=fms_diag_send_data(id_z_atm,diag_atm,time) -endif -if(id_gust>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_gust,xmap_sfc) -used=fms_diag_send_data(id_gust,diag_atm,time) -endif - -!-bw,Sep17,2007 -if(id_slp>0.or.id_psl>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_slp,xmap_sfc) -if(id_slp>0)used=fms_diag_send_data(id_slp,diag_atm,time) -if(id_psl>0)used=fms_diag_send_data(id_psl,diag_atm,time) -endif - -if(id_t_ocean>0)then -used=fms_diag_send_data(id_t_ocean,land_ice_atmos_boundary%t_ocean,time) -endif -!----------------------------------------------------------------------- -!---------diagnosticsforfieldsatreferencelevel--------- -!cjg -!if(id_t_ref>0.or.id_rh_ref>0.or.& -!id_u_ref>0.or.id_v_ref>0.or.id_wind_ref>0.or.& -!id_q_ref>0.or.id_q_ref_land>0.or.& -!id_t_ref_land>0.or.id_rh_ref_land>0.or.& -!id_rh_ref_cmip>0.or.& -!id_u_ref_land>0.or.id_v_ref_land>0)then - -zrefm=z_ref_mom -zrefh=z_ref_heat -!----optimizecalculation---- -!cjgif(id_t_ref<=0)zrefh=zrefm - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm,& -!$OMPex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star,& -!$OMPex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q,& -!$OMPex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land,& -!$OMPex_tr_con_ref,id_tr_con_ref,id_tr_con_ref_land,& -!$OMPex_tr_con_atm,id_tr_con_atm,id_tr_con_atm_land,& -!$OMPex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum,& -!$OMPex_flux_tr,ex_t_atm,ex_p_surf)& -!$OMPprivate(is,ie,rho) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -callfms_monin_obukhov_mo_profile(zrefm,zrefh,ex_z_atm(is:ie),ex_rough_mom(is:ie),& -ex_rough_heat(is:ie),ex_rough_moist(is:ie),& -ex_u_star(is:ie),ex_b_star(is:ie),ex_q_star(is:ie),& -ex_del_m(is:ie),ex_del_h(is:ie),ex_del_q(is:ie),ex_avail(is:ie)) - -!-------referencerelativehumidity----------- -!cjgif(id_rh_ref>0.or.id_rh_ref_land>0.or.& -!cjgid_rh_ref_cmip>0.or.& -!cjgid_q_ref>0.or.id_q_ref_land>0)then -doi=is,ie -ex_ref(i)=1.0e-06 -ex_tr_ref(i,:)=1.e-20 -if(ex_avail(i).and.ex_rough_moist(i)>0.)then -ex_ref(i)=ex_tr_surf(i,isphum)+(ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum))*ex_del_q(i) -rho=ex_p_surf(i)/(rdgas*ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) -dotr=1,n_exch_tr -if(id_tr_ref(tr).gt.0& -.or.id_tr_ref_land(tr).gt.0& -.or.id_tr_con_ref(tr).gt.0& -.or.id_tr_con_ref_land(tr).gt.0)then -ex_tr_ref(i,tr)=ex_tr_surf(i,tr)+(ex_tr_atm(i,tr)-ex_tr_surf(i,tr))*ex_del_q(i) -ex_tr_con_ref(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_ref(i,tr)*rho,epsln) -endif -if(id_tr_con_atm(tr).gt.0.or.id_tr_con_atm_land(tr).gt.0)then -ex_tr_con_atm(i,tr)=-ex_flux_tr(i,tr)/max(ex_tr_atm(i,tr)*rho,epsln) -endif -enddo -endif -enddo -enddo -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%q_ref,'ATM',ex_ref,xmap_sfc)!cjg -if(id_q_ref>0)then -used=fms_diag_send_data(id_q_ref,land_ice_atmos_boundary%q_ref,time) -endif -if(id_huss>0)then -used=fms_diag_send_data(id_huss,land_ice_atmos_boundary%q_ref,time) -endif -if(id_q_ref_land>0.or.id_husslut_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -!duplicatesend_tile_data.Wemayremoveid_q_ref_landinthefuture. -callsend_tile_data(id_q_ref_land,diag_land) -callsend_tile_data(id_husslut_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_q_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif - -dotr=1,n_exch_tr -if(id_tr_ref(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_ref(:,tr),xmap_sfc)!cjg -if(id_tr_ref(tr)>0)then -used=fms_diag_send_data(id_tr_ref(tr),diag_atm,time) -endif -endif - -if(id_tr_ref_land(tr)>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_ref(:,tr),xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_tr_ref_land(tr),diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_tr_ref_land(tr),diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -enddo - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail,& -!$OMPex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h,& -!$OMPex_ref,ex_qs_ref_cmip,ex_ref2)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_t_ref(i)=200. -if(ex_avail(i).and.ex_rough_heat(i)>0.)& -ex_t_ref(i)=ex_t_ca(i)+(ex_t_atm(i)-ex_t_ca(i))*ex_del_h(i) -enddo -callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref(is:ie),q=ex_ref(is:ie)) -callfms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie),ex_p_surf(is:ie),ex_qs_ref_cmip(is:ie),& -q=ex_ref(is:ie),es_over_liq_and_ice=.true.) -doi=is,ie -if(ex_avail(i))then -!removecaponrelativehumidity--thismodrequestedbycjg,ljd -!RSHex_ref=MIN(100.,100.*ex_ref/ex_qs_ref) -ex_ref2(i)=100.*ex_ref(i)/ex_qs_ref_cmip(i) -ex_ref(i)=100.*ex_ref(i)/ex_qs_ref(i) -endif -enddo -enddo - -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%t_ref,'ATM',ex_t_ref,xmap_sfc)!cjg - -if(id_rh_ref_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_rh_ref_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_rh_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif - -if(id_rh_ref>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -used=fms_diag_send_data(id_rh_ref,diag_atm,time) -endif - -if(id_rh_ref_cmip>0.or.id_hurs>0.or.id_rhs>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref2,xmap_sfc) -if(id_rh_ref_cmip>0)used=fms_diag_send_data(id_rh_ref_cmip,diag_atm,time) -if(id_hurs>0)used=fms_diag_send_data(id_hurs,diag_atm,time) -if(id_rhs>0)used=fms_diag_send_data(id_rhs,diag_atm,time) -endif -!cjgendif - -!-------referencetemp----------- -#ifdefuse_AM3_physics -if(id_t_ref>0.or.id_t_ref_land>0.or.id_taslut_land>0)then -where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h -if(id_t_ref_land>0.or.id_taslut_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) -if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) -#else -if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -if(id_t_ref>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -used=fms_diag_send_data(id_t_ref,diag_atm,time) -endif -endif -#else -if(id_t_ref_land>0.or.id_taslut_land>0.or.id_tasl_g>0)then -where(ex_avail)ex_ref=ex_t_ca+(ex_t_atm-ex_t_ca)*ex_del_h -!t_refdiagnosticatlandpointsonly -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -if(id_t_ref_land>0)callsend_tile_data(id_t_ref_land,diag_land) -if(id_taslut_land>0)callsend_tile_data(id_taslut_land,diag_land) -if(id_tasl_g>0)then -used=send_global_land_diag(get_global_diag_field_id(id_tasl_g),& -diag_land,time,land%tile_size,land%mask,land) -endif -#else -if(id_t_ref_land>0)used=fms_diag_send_tile_averaged_data(id_t_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif - -!t_refdiagnosticatallatmospoints -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_t_ref>0)used=fms_diag_send_data(id_t_ref,diag_atm,time) -if(id_tas>0)used=fms_diag_send_data(id_tas,diag_atm,time) -callfms_sum_diag_integral_field('t_ref',diag_atm) -if(id_tas_g>0)used=send_global_diag(id_tas_g,diag_atm,time) -#endif - -!-------referenceucomp----------- -if(id_u_ref>0.or.id_u_ref_land>0.or.id_uas>0)then -where(ex_avail)& -ex_ref=ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m -if(id_u_ref_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_u_ref_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_u_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -if(id_u_ref>0.or.id_uas>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_u_ref>0)used=fms_diag_send_data(id_u_ref,diag_atm,time) -if(id_uas>0)used=fms_diag_send_data(id_uas,diag_atm,time) -endif -endif - -!-------referencevcomp----------- -if(id_v_ref>0.or.id_v_ref_land>0.or.id_vas>0)then -where(ex_avail)& -ex_ref=ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m -if(id_v_ref_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_ref,xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_v_ref_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_v_ref_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -if(id_v_ref>0.or.id_vas>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_v_ref>0)used=fms_diag_send_data(id_v_ref,diag_atm,time) -if(id_vas>0)used=fms_diag_send_data(id_vas,diag_atm,time) -endif -endif - -!-------reference-levelabsolutewind----------- -if(id_wind_ref>0.or.id_sfcwind>0)then -where(ex_avail)& -ex_ref=sqrt((ex_u_surf+(ex_u_atm-ex_u_surf)*ex_del_m)**2& -+(ex_v_surf+(ex_v_atm-ex_v_surf)*ex_del_m)**2) -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ref,xmap_sfc) -if(id_wind_ref>0)used=fms_diag_send_data(id_wind_ref,diag_atm,time) -if(id_sfcwind>0)used=fms_diag_send_data(id_sfcwind,diag_atm,time) -endif - -!-------interpfactorforheat------ -if(id_del_h>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_h,xmap_sfc) -used=fms_diag_send_data(id_del_h,diag_atm,time) -endif - -!-------interpfactorformomentum------ -if(id_del_m>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_m,xmap_sfc) -used=fms_diag_send_data(id_del_m,diag_atm,time) -endif - -!-------interpfactorformoisture------ -if(id_del_q>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_del_q,xmap_sfc) -used=fms_diag_send_data(id_del_q,diag_atm,time) -endif - -!cjgendif -!topographicroughnessscale -if(id_rough_scale>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& -(log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2,xmap_sfc) -used=fms_diag_send_data(id_rough_scale,diag_atm,time) -endif - -!Balaji -callfms_mpp_clock_end(sfcclock) -callfms_mpp_clock_end(cplclock) - -!======================================================================= - -endsubroutinesfc_boundary_layer - -subroutineflux_down_from_atmos(Time,Atm,Atmos_boundary,Land_boundary,Ice_boundary) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(atmos_data_type),intent(inout)::Atm - -type(land_ice_atmos_boundary_type),intent(in)::Atmos_boundary - -type(atmos_land_boundary_type),intent(inout)::Land_boundary - -type(atmos_ice_boundary_type),intent(inout)::Ice_boundary - - -!thefollowingvariablesareontheexchangegrid -real,dimension(n_xgrid_sfc)::& -ex_flux_sw,&!netsfcshortwaveradiationflux -ex_flux_lwd,&!longwaveradiationdownwardfluxatsurface -ex_flux_sw_dir,&!directshortwaveradiationflux -ex_flux_sw_dif,&!downwarddiffusevisibleshortwaveradiationfluxarthesurface -ex_flux_sw_down_vis_dir,&!downwarddirectvisibleshortwaveradiationfluxatthesurface -ex_flux_sw_down_total_dir,&!downwarddirecttotalshortwaveradiationfluxatthesurface -ex_flux_sw_down_vis_dif,&!downwarddiffusevisibleshortwaveradiationfluxatthesurface -ex_flux_sw_down_total_dif,&!downwarddiffusivetotalshortwaveradiationfluxatthesurface -ex_flux_sw_vis,&!netvisibleshortwaveradiationfluxatthesurface -ex_flux_sw_vis_dir,&!netdirectvisibleshortwaveradiationfluxatthesurface -ex_flux_sw_vis_dif,&!netdiffusevisibleshortwaveradiationfluxatthesurface -ex_lprec,&!liquidprecipitation -ex_fprec,&!frozenprecitipation -ex_tprec,&!temperatureofprecipitation,currentlyequaltoatmtemperature -ex_u_star_smooth,&!frictionvelocitycorrection -#ifdefuse_AM3_physics -ex_coszen!cosineofthezenithangle -#else -ex_coszen,&!cosineofthezenithangle -ex_setl_flux,&!tracersedimentationfluxfromthelowestatmopherelayer(positivedown) -ex_dsetl_dtr!derivativeofsetl_fluxw.r.t.tracerconcentration -#endif - -real::setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!tracerseditationfluxfromthelowestatmospeherelayerontheatmgrid -real::dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2))!derivativeofsetl_dtrfromthelowestatmospherelayerontheatmgrid - -!temporaryarrays -real,dimension(n_xgrid_sfc)::ex_gamma,ex_dtmass,ex_delta_t,ex_delta_u,ex_delta_v,ex_dflux_t - -real,dimension(n_xgrid_sfc,n_gex_atm2lnd)::ex_gex_atm2lnd!genericexchangefieldsbetweenatmandland - -real,dimension(n_xgrid_sfc,n_exch_tr)::& -ex_delta_tr,&!tracertendencies -ex_dflux_tr!tracerfluxchange - -real::cp_inv!inverseheatcapacityatconstantpressure -logical::used,ov,ier!usedincallstofms -integer::is_atm,ie_atm,js_atm,je_atm,j!doloopindices - -character(32)::tr_name!nameofthetracer -integer::tr,n,m!tracerindices -integer::is,ie,l,i,n_gex!doloopindices - -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(fluxatmdnclock) -!} - -ov=.false. - -!Balaji:fms_data_overridecallsmovedherefromcoupler_main -callfms_data_override('ATM','flux_sw',atm%flux_sw,time) -callfms_data_override('ATM','flux_sw_dir',atm%flux_sw_dir,time) -callfms_data_override('ATM','flux_sw_dif',atm%flux_sw_dif,time) -callfms_data_override('ATM','flux_sw_down_vis_dir',atm%flux_sw_down_vis_dir,time) -callfms_data_override('ATM','flux_sw_down_vis_dif',atm%flux_sw_down_vis_dif,time) -callfms_data_override('ATM','flux_sw_down_total_dir',atm%flux_sw_down_total_dir,time) -callfms_data_override('ATM','flux_sw_down_total_dif',atm%flux_sw_down_total_dif,time) -callfms_data_override('ATM','flux_sw_vis',atm%flux_sw_vis,time) -callfms_data_override('ATM','flux_sw_vis_dir',atm%flux_sw_vis_dir,time) -callfms_data_override('ATM','flux_sw_vis_dif',atm%flux_sw_vis_dif,time) -callfms_data_override('ATM','flux_lw',atm%flux_lw,time) -callfms_data_override('ATM','lprec',atm%lprec,time) - -if(scale_precip_2d)then -callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) -callfms_data_override('ATM','precip_scale2d',frac_precip,time) -doj=js_atm,je_atm -doi=is_atm,ie_atm -atm%lprec(i,j)=atm%lprec(i,j)*frac_precip(i,j) -enddo -enddo -endif - -if(partition_fprec_from_lprec.and.atm%pe)then -callfms_mpp_domains_get_compute_domain(atm%Domain,is_atm,ie_atm,js_atm,je_atm) -doj=js_atm,je_atm -doi=is_atm,ie_atm -if(atm%t_bot(i,j)<tfreeze)then -atm%fprec(i,j)=atm%lprec(i,j) -atm%lprec(i,j)=0.0 -endif -enddo -enddo -endif - -!{ -callfms_data_override('ATM','fprec',atm%fprec,time) -callfms_data_override('ATM','coszen',atm%coszen,time) -callfms_data_override('ATM','dtmass',atm%Surf_Diff%dtmass,time) -callfms_data_override('ATM','delta_t',atm%Surf_Diff%delta_t,time) -callfms_data_override('ATM','dflux_t',atm%Surf_Diff%dflux_t,time) -dotr=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr,tr_name) -callfms_data_override('ATM','delta_'//trim(tr_name),atm%Surf_Diff%delta_tr(:,:,tr),time) -callfms_data_override('ATM','dflux_'//trim(tr_name),atm%Surf_Diff%dflux_tr(:,:,tr),time) -enddo -!} - -!{ - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& -!$OMPex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u,ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v,& -!$OMPex_gex_atm2lnd,n_gex_atm2lnd)private(is,ie,n_gex) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_flux_sw_dir(i)=0.0 -ex_flux_sw_vis_dir(i)=0.0 -ex_flux_sw_dif(i)=0.0 -ex_flux_sw_vis_dif(i)=0.0 -ex_flux_lwd(i)=0.0 -ex_delta_u(i)=0.0 -ex_delta_v(i)=0.0 -enddo -don_gex=1,n_gex_atm2lnd -doi=is,ie -ex_gex_atm2lnd(i,n_gex)=0.0 -enddo -enddo -enddo - -callfms_xgrid_put_to_xgrid(atm%flux_sw_dir,'ATM',ex_flux_sw_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dir,'ATM',ex_flux_sw_vis_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_dif,'ATM',ex_flux_sw_dif,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_vis_dif,'ATM',ex_flux_sw_vis_dif,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dir,'ATM',ex_flux_sw_down_vis_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dir,'ATM',ex_flux_sw_down_total_dir,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_vis_dif,'ATM',ex_flux_sw_down_vis_dif,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%flux_sw_down_total_dif,'ATM',ex_flux_sw_down_total_dif,xmap_sfc,complete=.false.) - -!ccc=conservation_check(Atm%lprec,'ATM',xmap_sfc) -!if(fms_mpp_pe()==fms_mpp_root_pe())print*,'LPREC',ccc - -!if(do_area_weighted_flux)then -!callput_to_xgrid(Atm%lprec*AREA_ATM_MODEL,'ATM',ex_lprec,xmap_sfc) -!callput_to_xgrid(Atm%fprec*AREA_ATM_MODEL,'ATM',ex_fprec,xmap_sfc) -!else -callfms_xgrid_put_to_xgrid(atm%lprec,'ATM',ex_lprec,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%fprec,'ATM',ex_fprec,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%t_bot,'ATM',ex_tprec,xmap_sfc,complete=.false.) -!endif - -don_gex=1,n_gex_atm2lnd -callfms_xgrid_put_to_xgrid(atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) -enddo - -callfms_xgrid_put_to_xgrid(atm%coszen,'ATM',ex_coszen,xmap_sfc,complete=.true.) -callfms_xgrid_put_to_xgrid(atm%flux_lw,'ATM',ex_flux_lwd,xmap_sfc,remap_method=remap_method,complete=.false.) - -!MODchangedthefollowingtwolinestoputAtmos%surf_diff%delta_uandv -!onexchangegridinsteadofthestressesthemselvessothatonlythe -!implicitcorrectionsarefilteredthroughtheatmosphericgridnotthe -!stressesthemselves -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_u,'ATM',ex_delta_u,xmap_sfc,remap_method=remap_method,& -complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_v,'ATM',ex_delta_v,xmap_sfc,remap_method=remap_method,& -complete=.true.) - -!}endmapatmosphericquantitiesonexchangegrid - -!{ -!MODupdatestressesusingatmosdelta'sbutderivativesonexchangegrid -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u,& -!$OMPex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_flux_u(i)=ex_flux_u(i)+ex_delta_u(i)*ex_dtaudu_atm(i) -ex_flux_v(i)=ex_flux_v(i)+ex_delta_v(i)*ex_dtaudv_atm(i) -enddo -enddo -!}endupdateuandvstressontheexchangegrid - -!{ -!----adjustswfluxforalbedovariationsonexchgrid---- -!----adjust4categories(vis/nirdir/dif)separately---- -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_sw_dir,& -!$OMPex_flux_sw_vis_dir,ex_albedo_nir_dir_fix,ex_albedo_vis_dir_fix,ex_flux_sw_dif,& -!$OMPex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw,ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix)& -!$OMPprivate(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_flux_sw_dir(i)=ex_flux_sw_dir(i)-ex_flux_sw_vis_dir(i)!temporarilynir/dir -ex_flux_sw_dir(i)=ex_flux_sw_dir(i)*ex_albedo_nir_dir_fix(i)!fixnir/dir -ex_flux_sw_vis_dir(i)=ex_flux_sw_vis_dir(i)*ex_albedo_vis_dir_fix(i)!fixvis/dir -ex_flux_sw_dir(i)=ex_flux_sw_dir(i)+ex_flux_sw_vis_dir(i)!backtototaldir - -ex_flux_sw_dif(i)=ex_flux_sw_dif(i)-ex_flux_sw_vis_dif(i)!temporarilynir/dif -ex_flux_sw_dif(i)=ex_flux_sw_dif(i)*ex_albedo_nir_dif_fix(i)!fixnir/dif -ex_flux_sw_vis_dif(i)=ex_flux_sw_vis_dif(i)*ex_albedo_vis_dif_fix(i)!fixvis/dif -ex_flux_sw_dif(i)=ex_flux_sw_dif(i)+ex_flux_sw_vis_dif(i)!backtototaldif - -ex_flux_sw_vis(i)=ex_flux_sw_vis_dir(i)+ex_flux_sw_vis_dif(i)!legacy,removelater -ex_flux_sw(i)=ex_flux_sw_dir(i)+ex_flux_sw_dif(i)!legacy,removelater -enddo -enddo - -!ex_flux_sw_dir=ex_flux_sw_dir-ex_flux_sw_vis_dir!temporarilynir/dir -!ex_flux_sw_dir=ex_flux_sw_dir*ex_albedo_nir_dir_fix!fixnir/dir -!ex_flux_sw_vis_dir=ex_flux_sw_vis_dir*ex_albedo_vis_dir_fix!fixvis/dir -!ex_flux_sw_dir=ex_flux_sw_dir+ex_flux_sw_vis_dir!backtototaldir -! -!ex_flux_sw_dif=ex_flux_sw_dif-ex_flux_sw_vis_dif!temporarilynir/dif -!ex_flux_sw_dif=ex_flux_sw_dif*ex_albedo_nir_dif_fix!fixnir/dif -!ex_flux_sw_vis_dif=ex_flux_sw_vis_dif*ex_albedo_vis_dif_fix!fixvis/dif -!ex_flux_sw_dif=ex_flux_sw_dif+ex_flux_sw_vis_dif!backtototaldif -! -!ex_flux_sw_vis=ex_flux_sw_vis_dir+ex_flux_sw_vis_dif!legacy,removelater -!ex_flux_sw=ex_flux_sw_dir+ex_flux_sw_dif!legacy,removelater - -deallocate(ex_albedo_fix) -deallocate(ex_albedo_vis_dir_fix) -deallocate(ex_albedo_nir_dir_fix) -deallocate(ex_albedo_vis_dif_fix) -deallocate(ex_albedo_nir_dif_fix) - -!}endfixshortwavelengthradiationfluxontheexchangegrid - - -!{ -dotr=1,n_exch_tr -n=tr_table(tr)%atm -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_tr(:,:,n),'ATM',ex_delta_tr(:,tr),xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_tr(:,:,n),'ATM',ex_dflux_tr(:,tr),xmap_sfc,complete=.false.) -enddo - -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dtmass,'ATM',ex_dtmass,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%delta_t,'ATM',ex_delta_t,xmap_sfc,complete=.false.) -callfms_xgrid_put_to_xgrid(atm%Surf_Diff%dflux_t,'ATM',ex_dflux_t,xmap_sfc,complete=.true.) - -#ifndefuse_AM3_physics -!Getsedimentationflux.Hastobehere(insteadofsfc_boundary_layersub) -!becauseoftimesteppingorder:sedimentationfluxesarecalculatedin -!update_atmos_model_down(inatmos_tracer_driver),butsfc_boundary_layer -!iscalledbeforethat. -dotr=1,n_exch_tr -if(atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm))then -callget_atmos_tracer_surf_setl_flux(tr_table(tr)%atm,setl_flux,dsetl_dtr) -callfms_xgrid_put_to_xgrid(setl_flux,'ATM',ex_setl_flux,xmap_sfc) -callfms_xgrid_put_to_xgrid(dsetl_dtr,'ATM',ex_dsetl_dtr,xmap_sfc) -where(ex_avail) -!minussignisbecausesedimentationispositivedown -ex_flux_tr(:,tr)=ex_flux_tr(:,tr)-ex_setl_flux(:) -ex_dfdtr_atm(:,tr)=ex_dfdtr_atm(:,tr)-ex_dsetl_dtr(:) -endwhere -endif -enddo -#endif - -cp_inv=1.0/cp_air - -!$OMPparalleldodefault(none)shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd,& -!$OMPex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm,cp_inv,ex_e_t_n,& -!$OMPex_dhdt_surf,ex_f_t_delt_n,ex_delta_t,ex_flux_t,ex_dflux_tr,isphum,& -!$OMPex_dfdtr_atm,ex_e_q_n,ex_dedt_surf,n_exch_tr,ex_e_tr_n,ex_dfdtr_surf,& -!$OMPex_f_tr_delt_n,ex_delta_tr,ex_flux_tr)private(is,ie) -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -!-----computenetlongwaveflux(down-up)----- -!(note:lwupalreadyinex_flux_lw) -ex_flux_lw(i)=ex_flux_lwd(i)-ex_flux_lw(i) -if(ex_avail(i))then -!temperature -ex_gamma(i)=1./(1.0-ex_dtmass(i)*(ex_dflux_t(i)+ex_dhdt_atm(i)*cp_inv)) -ex_e_t_n(i)=ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) -ex_f_t_delt_n(i)=(ex_delta_t(i)+ex_dtmass(i)*ex_flux_t(i)*cp_inv)*ex_gamma(i) - -ex_flux_t(i)=ex_flux_t(i)+ex_dhdt_atm(i)*ex_f_t_delt_n(i) -ex_dhdt_surf(i)=ex_dhdt_surf(i)+ex_dhdt_atm(i)*ex_e_t_n(i) - -!moisture -!ex_gamma=1./(1.0-ex_dtmass*(ex_dflux_q+ex_dedq_atm)) -!hereitlooksliketwoderivativeswithdifferentunitsareaddedtogether, -!butinfacttheyarenot:ex_dedt_surfandex_dedq_surfdefinedincomplimentary -!regionsofexchangegrid,sothatifoneofthemisnotzerotheotheris,and -!viceversa. -!ex_e_q_n=ex_dtmass*(ex_dedt_surf+ex_dedq_surf)*ex_gamma -!ex_f_q_delt_n=(ex_delta_q+ex_dtmass*ex_flux_q)*ex_gamma -!ex_flux_q=ex_flux_q+ex_dedq_atm*ex_f_q_delt_n -!ex_dedt_surf=ex_dedt_surf+ex_dedq_atm*ex_e_q_n -!ex_dedq_surf=ex_dedq_surf+ex_dedq_atm*ex_e_q_n -!moisturevs.surfacetemperture,assumingsaturation -ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,isphum)+ex_dfdtr_atm(i,isphum))) -ex_e_q_n(i)=ex_dtmass(i)*ex_dedt_surf(i)*ex_gamma(i) -ex_dedt_surf(i)=ex_dedt_surf(i)+ex_dfdtr_atm(i,isphum)*ex_e_q_n(i) -dotr=1,n_exch_tr -ex_gamma(i)=1.0/(1.0-ex_dtmass(i)*(ex_dflux_tr(i,tr)+ex_dfdtr_atm(i,tr))) -ex_e_tr_n(i,tr)=ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) -ex_f_tr_delt_n(i,tr)=(ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) - -ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) -ex_dfdtr_surf(i,tr)=ex_dfdtr_surf(i,tr)+ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) -enddo -endif -enddo -enddo - -!}endadjustfluxesforimplicitdependence - -callfms_xgrid_get_from_xgrid_(land_boundary%t_flux,'LND',ex_flux_t,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux,'LND',ex_flux_sw,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dir,'LND',ex_flux_sw_down_vis_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dir,'LND',ex_flux_sw_down_total_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_vis_dif,'LND',ex_flux_sw_down_vis_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%sw_flux_down_total_dif,'LND',ex_flux_sw_down_total_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%lw_flux,'LND',ex_flux_lw,xmap_sfc) -#ifdefSCM -if(do_specified_land.and.do_specified_flux)then -callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf_forland,xmap_sfc) -else -callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) -endif -#else -callfms_xgrid_get_from_xgrid_(land_boundary%dhdt,'LND',ex_dhdt_surf,xmap_sfc) -#endif -callfms_xgrid_get_from_xgrid_(land_boundary%drdt,'LND',ex_drdt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%p_surf,'LND',ex_p_surf,xmap_sfc) - -callfms_xgrid_get_from_xgrid_(land_boundary%lprec,'LND',ex_lprec,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%fprec,'LND',ex_fprec,xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%tprec,'LND',ex_tprec,xmap_sfc) -!if(do_area_weighted_flux)then -!!evapgoeshere??? -!dok=1,size(Land_boundary%lprec,dim=3) -!!Note:wedividebyAREA_ATM_MODEL,whichshouldbethesameas -!!AREA_LND_MODEL(butthelattermaynotbedefined) -!calldivide_by_area(data=Land_boundary%lprec(:,:,k),area=AREA_ATM_MODEL) -!calldivide_by_area(data=Land_boundary%fprec(:,:,k),area=AREA_ATM_MODEL) -!enddo -!endif - -if(associated(land_boundary%drag_q))then -callfms_xgrid_get_from_xgrid_(land_boundary%drag_q,'LND',ex_drag_q,xmap_sfc) -callfms_data_override_('LND','drag_q',land_boundary%drag_q,time) -endif -if(associated(land_boundary%lwdn_flux))then -callfms_xgrid_get_from_xgrid_(land_boundary%lwdn_flux,'LND',ex_flux_lwd,xmap_sfc) -callfms_data_override_('LND','lwdn_flux',land_boundary%lwdn_flux,time) -endif -if(associated(land_boundary%cd_m))then -callfms_xgrid_get_from_xgrid_(land_boundary%cd_m,'LND',ex_cd_m,xmap_sfc) -callfms_data_override_('LND','cd_m',land_boundary%cd_m,time) -endif -if(associated(land_boundary%cd_t))then -callfms_xgrid_get_from_xgrid_(land_boundary%cd_t,'LND',ex_cd_t,xmap_sfc) -callfms_data_override_('LND','cd_t',land_boundary%cd_t,time) -endif -if(associated(land_boundary%bstar))then -callfms_xgrid_get_from_xgrid_(land_boundary%bstar,'LND',ex_b_star,xmap_sfc) -callfms_data_override_('LND','bstar',land_boundary%bstar,time) -endif -if(associated(land_boundary%ustar))then -callfms_xgrid_get_from_xgrid_(land_boundary%ustar,'LND',ex_u_star,xmap_sfc) -callfms_data_override_('LND','ustar',land_boundary%ustar,time) -endif -if(associated(land_boundary%wind))then -callfms_xgrid_get_from_xgrid_(land_boundary%wind,'LND',ex_wind,xmap_sfc) -callfms_data_override_('LND','wind',land_boundary%wind,time) -endif -if(associated(land_boundary%z_bot))then -callfms_xgrid_get_from_xgrid_(land_boundary%z_bot,'LND',ex_z_atm,xmap_sfc) -callfms_data_override_('LND','z_bot',land_boundary%z_bot,time) -endif - -if(associated(land_boundary%gex_atm2lnd))then -don_gex=1,n_gex_atm2lnd -callfms_xgrid_get_from_xgrid_(land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) -!adddata_overridehere -enddo -endif - -#ifndef_USE_LEGACY_LAND_ -if(associated(land_boundary%con_atm))then -callfms_xgrid_get_from_xgrid_(land_boundary%con_atm,'LND',ex_con_atm,xmap_sfc) -endif -#endif - -land_boundary%tr_flux=0.0 -land_boundary%dfdtr=0.0 -dotr=1,n_exch_tr -n=tr_table(tr)%lnd -if(n/=no_tracer)then -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) -#else -callfms_xgrid_get_from_xgrid_(land_boundary%tr_flux(:,:,:,n),'LND',ex_flux_tr(:,tr),xmap_sfc) -callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,:,n),'LND',ex_dfdtr_surf(:,tr),xmap_sfc) -#endif -#ifdefSCM -if(do_specified_land.and.do_specified_flux.and.tr.eq.isphum)then -callfms_xgrid_get_from_xgrid_(land_boundary%dfdtr(:,:,n),'LND',ex_dedq_surf_forland(:),xmap_sfc) -endif -#endif -endif -enddo - -!}mapfluxesfromtheexchangegridtothelandgrid - -!{ -!currenttimeisTime:isthatok?notavailableinland_data_type -!Balaji:data_overridecallsmovedherefromcoupler_main -callfms_data_override_('LND','t_flux',land_boundary%t_flux,time) -callfms_data_override_('LND','lw_flux',land_boundary%lw_flux,time) -callfms_data_override_('LND','sw_flux',land_boundary%sw_flux,time) -callfms_data_override_('LND','sw_flux_down_vis_dir',land_boundary%sw_flux_down_vis_dir,time) -callfms_data_override_('LND','sw_flux_down_total_dir',land_boundary%sw_flux_down_total_dir,time) -callfms_data_override_('LND','sw_flux_down_vis_dif',land_boundary%sw_flux_down_vis_dif,time) -callfms_data_override_('LND','sw_flux_down_total_dif',land_boundary%sw_flux_down_total_dif,time) -callfms_data_override_('LND','lprec',land_boundary%lprec,time) -callfms_data_override_('LND','fprec',land_boundary%fprec,time) -callfms_data_override_('LND','dhdt',land_boundary%dhdt,time) -callfms_data_override_('LND','drdt',land_boundary%drdt,time) -callfms_data_override_('LND','p_surf',land_boundary%p_surf,time) -dotr=1,n_lnd_tr -callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) -#ifndef_USE_LEGACY_LAND_ -callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,tr),time) -callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,tr),time) -#else -callfms_data_override_('LND',trim(tr_name)//'_flux',land_boundary%tr_flux(:,:,:,tr),time) -callfms_data_override_('LND','dfd'//trim(tr_name),land_boundary%dfdtr(:,:,:,tr),time) -#endif -enddo -!}endoverridelandfluxes - -!{ -callfms_xgrid_get_from_xgrid(ice_boundary%t_flux,'OCN',ex_flux_t,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%q_flux,'OCN',ex_flux_tr(:,isphum),xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dir,'OCN',ex_flux_sw_vis_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dir,'OCN',ex_flux_sw_dir,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_flux_nir_dir=ice_boundary%sw_flux_nir_dir-ice_boundary%sw_flux_vis_dir -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_vis_dif,'OCN',ex_flux_sw_vis_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_flux_nir_dif,'OCN',ex_flux_sw_dif,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_flux_nir_dif=ice_boundary%sw_flux_nir_dif-ice_boundary%sw_flux_vis_dif - -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dir,'OCN',ex_flux_sw_down_vis_dir,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dir,'OCN',ex_flux_sw_down_total_dir,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_down_nir_dir=ice_boundary%sw_down_nir_dir-ice_boundary%sw_down_vis_dir - -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_vis_dif,'OCN',ex_flux_sw_down_vis_dif,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%sw_down_nir_dif,'OCN',ex_flux_sw_down_total_dif,xmap_sfc) -!ice&oceanusethese4:dir/difnir/vis -ice_boundary%sw_down_nir_dif=ice_boundary%sw_down_nir_dif-ice_boundary%sw_down_vis_dif - -callfms_xgrid_get_from_xgrid(ice_boundary%lw_flux,'OCN',ex_flux_lw,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%dhdt,'OCN',ex_dhdt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%dedt,'OCN',ex_dedt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%drdt,'OCN',ex_drdt_surf,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%u_flux,'OCN',ex_flux_u,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%v_flux,'OCN',ex_flux_v,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%u_star,'OCN',ex_u_star,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%coszen,'OCN',ex_coszen,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%p,'OCN',ex_slp,xmap_sfc)!mwmod - -callfms_xgrid_get_from_xgrid(ice_boundary%lprec,'OCN',ex_lprec,xmap_sfc) -callfms_xgrid_get_from_xgrid(ice_boundary%fprec,'OCN',ex_fprec,xmap_sfc) -!if(do_area_weighted_flux)then -!where(AREA_ATM_SPHERE/=0) -!Ice_boundary%lprec=Ice_boundary%lprec*AREA_ATM_MODEL/AREA_ATM_SPHERE -!Ice_boundary%fprec=Ice_boundary%fprec*AREA_ATM_MODEL/AREA_ATM_SPHERE -!endwhere -!endif -!if(do_area_weighted_flux)then -!dok=1,size(Ice_boundary%lprec,dim=3) -!calldivide_by_area(data=Ice_boundary%lprec(:,:,k),area=AREA_ATM_SPHERE) -!calldivide_by_area(data=Ice_boundary%fprec(:,:,k),area=AREA_ATM_SPHERE) -!enddo -!endif - -!Extrafluxes -don=1,ice_boundary%fluxes%num_bcs -if(ex_gas_fluxes%bc(n)%flux_type.ne.'air_sea_deposition')then -dom=1,ice_boundary%fluxes%bc(n)%num_fields -callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& -ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) -enddo -endif -enddo -!}endmapicefieldsfromtheexchangegridtotheicegrid - -!{ -!Balaji:data_overridecallsmovedherefromcoupler_main -callfms_data_override('ICE','u_flux',ice_boundary%u_flux,time) -callfms_data_override('ICE','v_flux',ice_boundary%v_flux,time) -callfms_data_override('ICE','t_flux',ice_boundary%t_flux,time) -callfms_data_override('ICE','q_flux',ice_boundary%q_flux,time) -callfms_data_override('ICE','lw_flux',ice_boundary%lw_flux,time) -callfms_data_override('ICE','lw_flux_dn',ice_boundary%lw_flux,time,override=ov) -if(ov)ice_boundary%lw_flux=ice_boundary%lw_flux-stefan*ice%t_surf**4 -callfms_data_override('ICE','sw_flux_nir_dir',ice_boundary%sw_flux_nir_dir,time) -callfms_data_override('ICE','sw_flux_vis_dir',ice_boundary%sw_flux_vis_dir,time) -callfms_data_override('ICE','sw_flux_nir_dif',ice_boundary%sw_flux_nir_dif,time,override=ov) -callfms_data_override('ICE','sw_flux_vis_dif',ice_boundary%sw_flux_vis_dif,time) -callfms_data_override('ICE','sw_flux_vis_dir_dn',ice_boundary%sw_down_vis_dir,time,override=ov) -if(ov)ice_boundary%sw_flux_vis_dir=ice_boundary%sw_down_vis_dir*(1.0-ice%albedo_vis_dir) -callfms_data_override('ICE','sw_flux_vis_dif_dn',ice_boundary%sw_down_vis_dif,time,override=ov) -if(ov)ice_boundary%sw_flux_vis_dif=ice_boundary%sw_down_vis_dif*(1.0-ice%albedo_vis_dif) -callfms_data_override('ICE','sw_flux_nir_dir_dn',ice_boundary%sw_down_nir_dir,time,override=ov) -if(ov)ice_boundary%sw_flux_nir_dir=ice_boundary%sw_down_nir_dir*(1.0-ice%albedo_nir_dir) -callfms_data_override('ICE','sw_flux_nir_dif_dn',ice_boundary%sw_down_nir_dif,time,override=ov) -if(ov)ice_boundary%sw_flux_nir_dif=ice_boundary%sw_down_nir_dif*(1.0-ice%albedo_nir_dif) -callfms_data_override('ICE','lprec',ice_boundary%lprec,time) -callfms_data_override('ICE','fprec',ice_boundary%fprec,time) -callfms_data_override('ICE','dhdt',ice_boundary%dhdt,time) -callfms_data_override('ICE','dedt',ice_boundary%dedt,time) -callfms_data_override('ICE','drdt',ice_boundary%drdt,time) -callfms_data_override('ICE','coszen',ice_boundary%coszen,time) -callfms_data_override('ICE','p',ice_boundary%p,time) -callfms_coupler_type_data_override('ICE',ice_boundary%fluxes,time) -callfms_coupler_type_send_data(ice_boundary%fluxes,time) -!}endoverrideIcefields - -!{ -!Atm->Lnd(precip) -callfms_xgrid_stock_move_(& -&from=fms_stock_constants_atm_stock(istock_water),& -&to=fms_stock_constants_lnd_stock(istock_water),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=(land_boundary%lprec+land_boundary%fprec),& -#else -&stock_data3d=(land_boundary%lprec+land_boundary%fprec),& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Lnd)') - -!Atm->Lnd(heat) -callfms_xgrid_stock_move_(& -&from=fms_stock_constants_atm_stock(istock_heat),& -&to=fms_stock_constants_lnd_stock(istock_heat),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=& -(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& -#else -&stock_data3d=& -(-land_boundary%t_flux+land_boundary%lw_flux+land_boundary%sw_flux-land_boundary%fprec*hlf),& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Lnd)') - -!Atm->Ice(precip) -callfms_xgrid_stock_move(& -&from=fms_stock_constants_atm_stock(istock_water),& -&to=fms_stock_constants_ice_stock(istock_water),& -&stock_data3d=(ice_boundary%lprec+ice_boundary%fprec),& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmovePRECIP(Atm->Ice)') - -!Atm->Ice(heat) -callfms_xgrid_stock_move(& -&from=fms_stock_constants_atm_stock(istock_heat),& -&to=fms_stock_constants_ice_stock(istock_heat),& -&stock_data3d=& -(-ice_boundary%t_flux+ice_boundary%lw_flux-ice_boundary%fprec*hlf+ice_boundary%sw_flux_vis_dir+& -ice_boundary%sw_flux_vis_dif+ice_boundary%sw_flux_nir_dir+ice_boundary%sw_flux_nir_dif),& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&from_side=istock_bottom,to_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveHEAT(Atm->Ice)') -!}endcoputestockexchangebetweencomponents - -deallocate(ex_flux_u,ex_flux_v,ex_dtaudu_atm,ex_dtaudv_atm) - - -!{ -!-------zonalwindstress----------- -used=fms_diag_send_data(id_u_flux,atmos_boundary%u_flux,time) -used=fms_diag_send_data(id_tauu,-atmos_boundary%u_flux,time) - -!-------meridionalwindstress----------- -used=fms_diag_send_data(id_v_flux,atmos_boundary%v_flux,time) -used=fms_diag_send_data(id_tauv,-atmos_boundary%v_flux,time) -!}endsenddatatodiag_manager - -!Balaji -callfms_mpp_clock_end(fluxatmdnclock) -callfms_mpp_clock_end(cplclock) - -endsubroutineflux_down_from_atmos - -subroutinegenerate_sfc_xgrid(Land,Ice) - -implicitnone -type(land_data_type),intent(in)::Land -Type(Ice_Data_Type),intent(in)::Ice - -integer::isc,iec,jsc,jec!computedomainindices - -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(regenclock) - -callfms_mpp_domains_get_compute_domain(ice%Domain,isc,iec,jsc,jec) - -!{ -callfms_xgrid_set_frac_area(ice%part_size(isc:iec,jsc:jec,:),'OCN',xmap_sfc) -callfms_xgrid_set_frac_area_(land%tile_size,'LND',xmap_sfc) -!} - -!{ -n_xgrid_sfc=max(fms_xgrid_count(xmap_sfc),1) -if(n_xgrid_sfc.ge.nblocks)then -my_nblocks=nblocks -callfms_mpp_domains_compute_extent(1,n_xgrid_sfc,nblocks,block_start,block_end) -else -my_nblocks=1 -block_start(1)=1 -block_end(1)=n_xgrid_sfc -endif -!} - -!Balaji -callfms_mpp_clock_end(regenclock) -callfms_mpp_clock_end(cplclock) - -endsubroutinegenerate_sfc_xgrid - -!####################################################################### -subroutineflux_up_to_atmos(Time,Land,Ice,Land_Ice_Atmos_Boundary,Land_boundary,Ice_boundary) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(land_data_type),intent(inout)::Land - -type(ice_data_type),intent(inout)::Ice - -type(land_ice_atmos_boundary_type),intent(inout)::Land_Ice_Atmos_Boundary - -type(atmos_land_boundary_type),intent(inout)::Land_boundary - -type(atmos_ice_boundary_type),intent(inout)::Ice_boundary - - -real,dimension(n_xgrid_sfc)::& -ex_t_surf_new,&!newsurfacetemperatureontheexchangegrid -ex_dt_t_surf,&! -ex_delta_t_n,& -ex_t_ca_new,& -ex_dt_t_ca,& -ex_icetemp,& -ex_land_frac,& -ex_temp - -real,dimension(n_xgrid_sfc,n_exch_tr)::& -ex_tr_surf_new,&!updatedtracervaluesatthesurface -ex_dt_tr_surf,&!tendencyoftracersatthesurface -ex_delta_tr_n - -!jgj:addedforco2_surfdiagnostic,whereco2_surf_dvmristheupdatedCO2tracervaluesatthesurface(dryvmr) -real,dimension(n_xgrid_sfc)::ex_co2_surf_dvmr - -real,dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2))::& -diag_atm,& -evap_atm,& -frac_atm - -#ifndef_USE_LEGACY_LAND_ -real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2))::data_lnd,diag_land -#else -real,dimension(size(Land_boundary%lprec,1),size(Land_boundary%lprec,2),size(Land_boundary%lprec,3))::& -data_lnd,diag_land -#endif -real,dimension(size(Ice_boundary%lprec,1),size(Ice_boundary%lprec,2),size(Ice_boundary%lprec,3))::data_ice -real,dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3))::icegrid - -logical::used -integer::tr!tracerindex -character(32)::tr_name,tr_units!tracername -integer::n,i,m,ier -integer::is,ie,l - -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(fluxatmupclock) - -!{ -!Balaji:data_overridecallsmovedherefromcoupler_main -callfms_data_override('ICE','t_surf',ice%t_surf,time) -callfms_data_override_('LND','t_ca',land%t_ca,time) -callfms_data_override_('LND','t_surf',land%t_surf,time) -dotr=1,n_lnd_tr -callfms_tracer_manager_get_tracer_names(model_land,tr,tr_name) -#ifndef_USE_LEGACY_LAND_ -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,tr),time) -#else -callfms_data_override_('LND',trim(tr_name)//'_surf',land%tr(:,:,:,tr),time) -#endif -enddo -!} - -!{ -ex_t_surf_new=200.0 - -callfms_xgrid_put_to_xgrid(ice%t_surf,'OCN',ex_t_surf_new,xmap_sfc) -ex_t_ca_new=ex_t_surf_new!sinceitisthesamethingoveroceans - -callfms_xgrid_put_to_xgrid_(land%t_ca,'LND',ex_t_ca_new,xmap_sfc) -callfms_xgrid_put_to_xgrid_(land%t_surf,'LND',ex_t_surf_new,xmap_sfc) - -!callescomp(ex_t_ca_new,ex_q_surf_new) -!ex_q_surf_new=d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) -!callput_to_xgrid(Land%q_ca,'LND',ex_q_surf_new,xmap_sfc) - -#ifdefSCM -if(do_specified_flux.and.do_specified_land)then -ex_t_surf_new=ex_t_surf -ex_t_ca_new=ex_t_ca -endif -#endif - -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -if(ex_avail(i))then -ex_dt_t_ca(i)=ex_t_ca_new(i)-ex_t_ca(i)!changesinnear-surfaceT -ex_dt_t_surf(i)=ex_t_surf_new(i)-ex_t_surf(i)!changesinradiativeT -endif -enddo - -if(do_forecast)then -doi=is,ie -if(ex_avail(i).and.(.not.ex_land(i)))then -ex_dt_t_ca(i)=0. -ex_dt_t_surf(i)=0. -endif -enddo -endif - -!}ENDCOMPUTECHANGEINSURFACETEMPERATURE - -!{ -dotr=1,n_exch_tr -!setupupdatedsurfacetracerfieldsothatfluxtoatmosforabsent -!tracersiszero -doi=is,ie -if(.not.ex_avail(i))cycle -if(ex_dfdtr_surf(i,tr)/=0.0)then -ex_dt_tr_surf(i,tr)=-ex_flux_tr(i,tr)/ex_dfdtr_surf(i,tr) -else -ex_dt_tr_surf(i,tr)=0.0 -endif -ex_tr_surf_new(i,tr)=ex_tr_surf(i,tr)+ex_dt_tr_surf(i,tr) -enddo -enddo -enddo -!getalltracersavailablefromland,andcalculatechangesinnear-tracerfield -dotr=1,n_exch_tr -n=tr_table(tr)%lnd -if(n/=no_tracer)then -#ifndef_USE_LEGACY_LAND_ -callfms_xgrid_put_to_xgrid_(land%tr(:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) -#else -callfms_xgrid_put_to_xgrid_(land%tr(:,:,:,n),'LND',ex_tr_surf_new(:,tr),xmap_sfc) -#endif -endif -enddo -!}ENDUPDATEFLUXESANDATMOSPHERICINCREMENTSFORIMPLICITDEPENDENCEONSURFACETEMPERATURE - -!getalltracersavailablefromoceanhere - -!{ -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -dotr=1,n_exch_tr -doi=is,ie -if(ex_avail(i))then -ex_dt_tr_surf(i,tr)=ex_tr_surf_new(i,tr)-ex_tr_surf(i,tr) -ex_delta_tr_n(i,tr)=ex_f_tr_delt_n(i,tr)+ex_dt_tr_surf(i,tr)*ex_e_tr_n(i,tr) -ex_flux_tr(i,tr)=ex_flux_tr(i,tr)+ex_dt_tr_surf(i,tr)*ex_dfdtr_surf(i,tr) -endif -enddo -enddo - -!re-calculatefluxesofspecifichumidityoverocean -doi=is,ie -if(ex_avail(i).and.(.not.ex_land(i)))then -!notethatinthisregion(overocean)ex_dt_t_surf==ex_dt_t_ca -ex_delta_tr_n(i,isphum)=ex_f_tr_delt_n(i,isphum)+ex_dt_t_surf(i)*ex_e_q_n(i) -ex_flux_tr(i,isphum)=ex_flux_tr(i,isphum)+ex_dt_t_surf(i)*ex_dedt_surf(i) -endif -enddo -enddo - -dotr=1,n_exch_tr -!getupdatedtracertendencyontheatmospheicgrid -n=tr_table(tr)%atm -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_tr(:,:,n),'ATM',ex_delta_tr_n(:,tr),xmap_sfc) -enddo - -dol=1,my_nblocks -is=block_start(l) -ie=block_end(l) -doi=is,ie -ex_delta_t_n(i)=0.0 -if(ex_avail(i))then -ex_flux_t(i)=ex_flux_t(i)+ex_dt_t_ca(i)*ex_dhdt_surf(i) -ex_flux_lw(i)=ex_flux_lw(i)-ex_dt_t_surf(i)*ex_drdt_surf(i) -ex_delta_t_n(i)=ex_f_t_delt_n(i)+ex_dt_t_ca(i)*ex_e_t_n(i) -endif -enddo -enddo -!}ENDUPDATETRACERTENDENCIESINTHEATMOSPHERE - -!{ -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%dt_t,'ATM',ex_delta_t_n,xmap_sfc) -#ifndefuse_AM3_physics -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%shflx,'ATM',ex_flux_t,xmap_sfc)!miz -callfms_xgrid_get_from_xgrid(land_ice_atmos_boundary%lhflx,'ATM',ex_flux_tr(:,isphum),xmap_sfc)!miz -#endif -!}ENDMAPMEANQUANITTIESFROMTHEEXCHANGEGRIDTOTHEATMOSPHEREGRID - - -!{ -#ifdefuse_AM3_physics -if(id_t_surf>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) -used=fms_diag_send_data(id_t_surf,diag_atm,time) -endif -#else -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_surf_new,xmap_sfc) -if(id_t_surf>0)used=fms_diag_send_data(id_t_surf,diag_atm,time) -if(id_ts>0)used=fms_diag_send_data(id_ts,diag_atm,time) -callfms_sum_diag_integral_field('t_surf',diag_atm) -if(id_ts_g>0)used=send_global_diag(id_ts_g,diag_atm,time) -!-------newsurfacetemperatureonlyoveropenocean----------- -if(id_tos>0)then -ex_icetemp=0.0 -icegrid=0.0;icegrid(:,:,1)=1.0 -callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) -ex_temp=ex_t_surf_new*ex_icetemp -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) -callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) -where(frac_atm>0.0) -diag_atm=(diag_atm/frac_atm)!-tfreezeCMIP6indegK -frac_atm=1.0 -elsewhere -diag_atm=0.0 -frac_atm=0.0 -endwhere -used=fms_diag_send_data(id_tos,diag_atm,time,rmask=frac_atm) -endif - -!-------newsurfacetemperatureonlyoverlandandsea-ice----------- -if(id_tslsi>0)then -ex_land_frac=0.0 -callput_logical_to_real(land%mask,'LND',ex_land_frac,xmap_sfc) -icegrid=1.0;icegrid(:,:,1)=0. -ex_icetemp=0. -callfms_xgrid_put_to_xgrid(icegrid,'OCN',ex_icetemp,xmap_sfc) -ex_icetemp=ex_icetemp+ex_land_frac -ex_temp=ex_t_surf_new*ex_icetemp -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_temp,xmap_sfc) -callfms_xgrid_get_from_xgrid(frac_atm,'ATM',ex_icetemp,xmap_sfc) -where(frac_atm>0.0) -diag_atm=diag_atm/frac_atm -frac_atm=1.0 -elsewhere -diag_atm=0.0 -frac_atm=0.0 -endwhere -used=fms_diag_send_data(id_tslsi,diag_atm,time,rmask=frac_atm) -endif -#endif - -!+slm,Mar272002 -!------newcanopytemperature-------- -!NOTE,thatintheparticularcaseofLM2t_caisidenticaltot_surf, -!butthiswillbechangedinfutureversionofthelandmadel -if(id_t_ca>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_t_ca_new,xmap_sfc) -used=fms_diag_send_data(id_t_ca,diag_atm,time) -endif - -!-------updatedsurfacetracerfields------ -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -if(id_tr_surf(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_surf_new(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_surf(tr),diag_atm,time) -endif -!!jgj:adddryvmrco2_surf -!-slmMar25,2010:movedtoresolveinterdependenceofdiagnosticfields -if(id_co2_surf_dvmr>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then -ex_co2_surf_dvmr=(ex_tr_surf_new(:,tr)/(1.0-ex_tr_surf_new(:,isphum)))*wtmair/wtmco2 -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_co2_surf_dvmr,xmap_sfc) -used=fms_diag_send_data(id_co2_surf_dvmr,diag_atm,time) -endif -enddo - -!-------sensibleheatflux----------- -if(id_t_flux>0.or.id_hfss>0.or.id_hfss_g>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_t,xmap_sfc) -if(id_t_flux>0)used=fms_diag_send_data(id_t_flux,diag_atm,time) -if(id_hfss>0)used=fms_diag_send_data(id_hfss,diag_atm,time) -#ifndefuse_AM3_physics -if(id_hfss_g>0)used=send_global_diag(id_hfss_g,diag_atm,time) -#endif -endif - -!-------netlongwaveflux----------- -if(id_r_flux>0.or.id_rls_g>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_lw,xmap_sfc) -if(id_r_flux>0)used=fms_diag_send_data(id_r_flux,diag_atm,time) -#ifndefuse_AM3_physics -if(id_rls_g>0)used=send_global_diag(id_rls_g,diag_atm,time) -#endif -endif - -!-------tracerfluxes------------ -!tr_mol_fluxdiagnosticwillbecorrectforco2traceronly. -!willneedupdatecodetousecorrectmolarmassfortracersotherthanco2 -dotr=1,n_exch_tr -if(id_tr_flux(tr)>0.or.id_tr_mol_flux(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_flux_tr(:,tr),xmap_sfc) -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) -if(id_tr_flux(tr)>0)used=fms_diag_send_data(id_tr_flux(tr),diag_atm,time) -!if(id_tr_mol_flux(tr)>0)& -!used=fms_diag_end_data(id_tr_mol_flux(tr),diag_atm*1000./WTMCO2,Time) -!2017/08/08jgj-replaced2linesabovebythefollowing -if(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_name))=='co2')then -used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./wtmco2,time) -!sometimesin2018f1pforvmrtracers -elseif(id_tr_mol_flux(tr)>0.and.fms_mpp_lowercase(trim(tr_units)).eq."vmr")then -!if(ocn_atm_flux_vmr_bug)then -!callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& -!ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)),xmap_sfc) -!used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm*1000./WTMAIR,Time) -!else -!fluxisinvmr*kg/m2/s.DividebyMW_air -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',& -ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& -/(1e-3*wtmair*wtmh2o),& -xmap_sfc) -used=fms_diag_send_data(id_tr_mol_flux(tr),diag_atm,time) -endif -endif -if(id_tr_con_atm(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_atm(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_con_atm(tr),diag_atm,time) -endif -if(id_tr_con_ref(tr)>0)then -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_tr_con_ref(:,tr),xmap_sfc) -used=fms_diag_send_data(id_tr_con_ref(tr),diag_atm,time) -endif -enddo - -#ifndef_USE_LEGACY_LAND_ -if(id_t_flux_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_t,xmap_sfc) -callsend_tile_data(id_t_flux_land,diag_land) -endif -!-------tracerfluxesforland -dotr=1,n_exch_tr -if(id_tr_flux_land(tr)>0.or.id_tr_mol_flux_land(tr)>0)then -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name,units=tr_units) -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,tr),xmap_sfc) -if(id_tr_flux_land(tr)>0)callsend_tile_data(id_tr_flux_land(tr),diag_land) -if(id_tr_mol_flux_land(tr)>0)then -if(fms_mpp_lowercase(trim(tr_name))=='co2')then -callsend_tile_data(id_tr_mol_flux_land(tr),diag_land*1000./wtmco2) -elseif(fms_mpp_lowercase(trim(tr_units)).eq.'vmr')then -!fluxisinvmr*kg/m2/s.DividebyMW_air -callfms_xgrid_get_from_xgrid_(diag_land,'LND',& -ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*wtmh2o+ex_tr_surf_new(:,isphum)*wtmair)& -/(1e-3*wtmair*wtmh2o),& -xmap_sfc) -callsend_tile_data(id_tr_mol_flux_land(tr),diag_land) -endif -endif -endif -enddo - -!--------tracerdepositionvelocity -dotr=1,n_exch_tr -if(id_tr_con_atm_land(tr)>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_atm(:,tr),xmap_sfc) -callsend_tile_data(id_tr_con_atm_land(tr),diag_land) -endif -if(id_tr_con_ref_land(tr)>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_tr_con_ref(:,tr),xmap_sfc) -callsend_tile_data(id_tr_con_ref_land(tr),diag_land) -endif -enddo - -#endif - -!----------------------------------------------------------------------- -!----accumulateglobalintegralofevaporation(mm/day)----- -callfms_xgrid_get_from_xgrid(evap_atm,'ATM',ex_flux_tr(:,isphum),xmap_sfc) -if(id_q_flux>0)used=fms_diag_send_data(id_q_flux,evap_atm,time) -if(id_evspsbl>0)used=fms_diag_send_data(id_evspsbl,evap_atm,time) -if(id_hfls>0)used=fms_diag_send_data(id_hfls,hlv*evap_atm,time) -#ifndefuse_AM3_physics -if(id_hfls_g>0)used=send_global_diag(id_hfls_g,hlv*evap_atm,time) -#endif - -if(id_q_flux_land>0)then -callfms_xgrid_get_from_xgrid_(diag_land,'LND',ex_flux_tr(:,isphum),xmap_sfc) -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_q_flux_land,diag_land) -#else -used=fms_diag_send_tile_averaged_data(id_q_flux_land,diag_land,& -land%tile_size,time,mask=land%mask) -#endif -endif -callfms_sum_diag_integral_field('evap',evap_atm*86400.) - -#ifndefuse_AM3_physics -if(id_evspsbl_g>0)used=send_global_diag(id_evspsbl_g,evap_atm,time) -#endif - -#ifndef_USE_LEGACY_LAND_ -callsend_tile_data(id_q_flux_land,diag_land) -!needthistoavoiddiagissueswithtilingchangesinupdate_land_slow -calldump_tile_diag_fields(time) -#endif -!}ENDSENDDATATODIAG_MANAGER_BUFFER - -!{ -callfms_xgrid_get_from_xgrid_(data_lnd,'LND',ex_flux_tr(:,isphum),xmap_sfc) - -!Lnd->Atm(evap) -callfms_xgrid_stock_move_(& -&to=fms_stock_constants_atm_stock(istock_water),& -&from=fms_stock_constants_lnd_stock(istock_water),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=data_lnd,& -#else -&stock_data3d=data_lnd,& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_side,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP(Lnd->ATm)') - -!Lnd->Atm(heatlostthroughevap) -callfms_xgrid_stock_move_(& -&to=fms_stock_constants_atm_stock(istock_heat),& -&from=fms_stock_constants_lnd_stock(istock_heat),& -#ifndef_USE_LEGACY_LAND_ -&stock_ug_data3d=data_lnd*hlv,& -#else -&stock_data3d=data_lnd*hlv,& -#endif -&grid_index=x1_grid_lnd,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_side,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Lnd->ATm)') - -callfms_xgrid_get_from_xgrid(data_ice,'OCN',ex_flux_tr(:,isphum),xmap_sfc) - -!Ice->Atm(evap) -callfms_xgrid_stock_move(& -&to=fms_stock_constants_atm_stock(istock_water),& -&from=fms_stock_constants_ice_stock(istock_water),& -&stock_data3d=data_ice,& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_top,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP(Ice->ATm)') - -!Ice->Atm(heatlostthroughevap) -callfms_xgrid_stock_move(& -&to=fms_stock_constants_atm_stock(istock_heat),& -&from=fms_stock_constants_ice_stock(istock_heat),& -&stock_data3d=data_ice*hlv,& -&grid_index=x1_grid_ice,& -&xmap=xmap_sfc,& -&delta_t=dt_atm,& -&to_side=istock_top,from_side=istock_top,& -&radius=radius,ier=ier,verbose='stockmoveEVAP*HLV(Ice->ATm)') -!}ENDCOMPUTESTOCKEXCHANGE - -!Balaji -callfms_mpp_clock_end(fluxatmupclock) -callfms_mpp_clock_end(cplclock) -endsubroutineflux_up_to_atmos - - - -subroutineflux_ex_arrays_dealloc() - -implicitnone -integer::m,n - -!----deallocatemodulestorage---- -deallocate(& -ex_t_surf,& -ex_t_surf_miz,& -ex_p_surf,& -ex_slp,& -ex_t_ca,& -ex_dhdt_surf,& -ex_dedt_surf,& -ex_dqsatdt_surf,& -ex_drdt_surf,& -ex_dhdt_atm,& -ex_flux_t,& -ex_flux_lw,& -ex_drag_q,& -ex_avail,& -ex_f_t_delt_n,& -ex_tr_surf,& -ex_tr_con_ref,& -ex_tr_con_atm,& -ex_dfdtr_surf,& -ex_dfdtr_atm,& -ex_flux_tr,& -ex_f_tr_delt_n,& -ex_e_tr_n,& -ex_e_t_n,& -ex_e_q_n,& -!valuesaddedforLM3 -ex_cd_t,& -ex_cd_m,& -ex_b_star,& -ex_u_star,& -ex_wind,& -ex_z_atm,& -ex_con_atm,& -ex_seawater,& -ex_land) - -#ifdefSCM -deallocate(& -ex_dhdt_surf_forland,& -ex_dedt_surf_forland,& -ex_dedq_surf_forland) -#endif - -!Extrafluxes -don=1,ex_gas_fields_ice%num_bcs -dom=1,ex_gas_fields_ice%bc(n)%num_fields -deallocate(ex_gas_fields_ice%bc(n)%field(m)%values) -nullify(ex_gas_fields_ice%bc(n)%field(m)%values) -enddo -enddo - -don=1,ex_gas_fields_atm%num_bcs -dom=1,ex_gas_fields_atm%bc(n)%num_fields -deallocate(ex_gas_fields_atm%bc(n)%field(m)%values) -nullify(ex_gas_fields_atm%bc(n)%field(m)%values) -enddo -enddo - -don=1,ex_gas_fluxes%num_bcs -dom=1,ex_gas_fluxes%bc(n)%num_fields -deallocate(ex_gas_fluxes%bc(n)%field(m)%values) -nullify(ex_gas_fluxes%bc(n)%field(m)%values) -enddo -enddo - -endsubroutineflux_ex_arrays_dealloc - -subroutineflux_atmos_to_ocean(Time,Atm,Ice_boundary,Ice) - -implicitnone -type(FmsTime_type),intent(in)::Time - -type(atmos_data_type),intent(inout)::Atm - -type(atmos_ice_boundary_type),intent(inout)::Ice_boundary - -type(ice_data_type),intent(inout)::Ice - -integer::n,m -logical::used - -#ifndefuse_AM3_physics -callatmos_tracer_driver_gather_data_down(atm%fields,atm%tr_bot) -#endif - -!{ -!air-seadepositionfluxes -don=1,atm%fields%num_bcs -!Dothestringcopies. -atm%fields%bc(n)%flux_type=trim(ex_gas_fluxes%bc(n)%flux_type) -atm%fields%bc(n)%implementation=trim(ex_gas_fluxes%bc(n)%implementation) -if(ex_gas_fields_atm%bc(n)%flux_type.eq.'air_sea_deposition')then -dom=1,atm%fields%bc(n)%num_fields -callfms_xgrid_put_to_xgrid(atm%fields%bc(n)%field(m)%values,'ATM',& -ex_gas_fields_atm%bc(n)%field(m)%values,xmap_sfc,remap_method=remap_method) -enddo -endif -enddo -!} - -!{ -callatmos_ocean_dep_fluxes_calc(ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes,ex_seawater) -!} - -!{ -don=1,ice_boundary%fluxes%num_bcs -if(ice_boundary%fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then -dom=1,ice_boundary%fluxes%bc(n)%num_fields -callfms_xgrid_get_from_xgrid(ice_boundary%fluxes%bc(n)%field(m)%values,'OCN',& -ex_gas_fluxes%bc(n)%field(m)%values,xmap_sfc) - -callfms_data_override('ICE',ice_boundary%fluxes%bc(n)%field(m)%name,& -ice_boundary%fluxes%bc(n)%field(m)%values,time) -if(ice_boundary%fluxes%bc(n)%field(m)%id_diag>0)then -used=fms_diag_send_data(ice_boundary%fluxes%bc(n)%field(m)%id_diag,& -ice_boundary%fluxes%bc(n)%field(m)%values,time) -endif -enddo -endif -enddo -!} - -!{ -callupdate_ice_atm_deposition_flux(ice_boundary,ice) -!} - -endsubroutineflux_atmos_to_ocean - -subroutineput_logical_to_real_sg(mask,id,ex_mask,xmap) - -implicitnone -logical,intent(in)::mask(:,:,:) -character(len=3),intent(in)::id -real,intent(inout)::ex_mask(:) -type(FmsXgridXmap_type),intent(inout)::xmap - -real,dimension(size(mask,1),size(mask,2),size(mask,3))::rmask - -where(mask) -rmask=1.0 -elsewhere -rmask=0.0 -endwhere - -callfms_xgrid_put_to_xgrid(rmask,id,ex_mask,xmap) - -endsubroutineput_logical_to_real_sg - - -subroutineput_logical_to_real_ug(mask,id,ex_mask,xmap) - -implicitnone -logical,intent(in)::mask(:,:) -character(len=3),intent(in)::id -real,intent(inout)::ex_mask(:) -type(FmsXgridXmap_type),intent(inout)::xmap - - -real,dimension(size(mask,1),size(mask,2))::rmask - -where(mask) -rmask=1.0 -elsewhere -rmask=0.0 -endwhere - -callfms_xgrid_put_to_xgrid_(rmask,id,ex_mask,xmap) - -endsubroutineput_logical_to_real_ug - - -subroutinediag_field_init(Time,atmos_axes,land_axes,land_pe) - -implicitnone -type(FmsTime_type),intent(in)::Time -integer,intent(in)::atmos_axes(2) -integer,intent(in)::land_axes(:) -logical,intent(in)::land_pe - -integer::iref -character(len=6)::label_zm,label_zh -real,dimension(2)::& -trange=[100.,400.],& -vrange=[-400.,400.],& -frange=[-0.01,1.01] -character(len=32)::name,units!nameofthetracer -character(len=128)::longname!longnameofthetracer -integer::tr!tracerindex -integer::area_id - -!{ -!(z_ref_mom,z_ref_heatarenamelistvariables) -iref=int(z_ref_mom+0.5) -if(real(iref)==z_ref_mom)then -write(label_zm,105)iref -if(iref<10)write(label_zm,100)iref -else -write(label_zm,110)z_ref_mom -endif - -iref=int(z_ref_heat+0.5) -if(real(iref)==z_ref_heat)then -write(label_zh,105)iref -if(iref<10)write(label_zh,100)iref -else -write(label_zh,110)z_ref_heat -endif - -100format(i1,'m',3x) -105format(i2,'m',2x) -110format(f4.1,'m') -!} - - -!---------initializestaticdiagnosticfields-------------------- -id_land_mask=& -fms_diag_register_static_field(mod_name,'land_mask',atmos_axes,& -'fractionalamountofland','none',& -range=frange,interp_method="conserve_order1") - -!---------initializediagnosticfields-------------------- - -id_ice_mask=fms_diag_register_diag_field(& -mod_name,'ice_mask',atmos_axes,time,'fractionalamountofseaice','none',range=frange,& -interp_method="conserve_order1") - -id_wind=fms_diag_register_diag_field(& -mod_name,'wind',atmos_axes,time,'windspeedforfluxcalculations','m/s',range=[0.,vrange(2)]) - -id_drag_moist=fms_diag_register_diag_field(& -mod_name,'drag_moist',atmos_axes,time,'dragcoeffformoisture','none') - -id_drag_heat=fms_diag_register_diag_field(& -mod_name,'drag_heat',atmos_axes,time,'dragcoeffforheat','none') - -id_drag_mom=fms_diag_register_diag_field(& -mod_name,'drag_mom',atmos_axes,time,'dragcoeffformomentum','none') - -id_rough_moist=fms_diag_register_diag_field(& -mod_name,'rough_moist',atmos_axes,time,'surfaceroughnessformoisture','m') - -id_rough_heat=fms_diag_register_diag_field(& -mod_name,'rough_heat',atmos_axes,time,'surfaceroughnessforheat','m') - -id_rough_mom=fms_diag_register_diag_field(& -mod_name,'rough_mom',atmos_axes,time,'surfaceroughnessformomentum','m') - -id_u_star=fms_diag_register_diag_field(& -mod_name,'u_star',atmos_axes,time,'frictionvelocity','m/s') - -id_b_star=fms_diag_register_diag_field(& -mod_name,'b_star',atmos_axes,time,'buoyancyscale','m/s2') - -id_q_star=fms_diag_register_diag_field(& -mod_name,'q_star',atmos_axes,time,'moisturescale','kgwater/kgair') - -id_thv_atm=fms_diag_register_diag_field(& -mod_name,'thv_atm',atmos_axes,time,'surfaceairvirtualpotentialtemperature','K') - -id_thv_surf=fms_diag_register_diag_field(& -mod_name,'thv_surf',atmos_axes,time,'surfacevirtualpotentialtemperature','K') - -id_u_flux=fms_diag_register_diag_field(& -mod_name,'tau_x',atmos_axes,time,'zonalwindstress','pa') - -id_v_flux=fms_diag_register_diag_field(& -mod_name,'tau_y',atmos_axes,time,'meridionalwindstress','pa') - -id_t_ocean=fms_diag_register_diag_field(& -mod_name,'t_ocean',atmos_axes,time,'surfacetemperaturefromoceanoutput','deg_k',range=trange) - -id_t_surf=fms_diag_register_diag_field(& -mod_name,'t_surf',atmos_axes,time,'surfacetemperature','deg_k',range=trange) - -!+slm,Mar25,2002--adddiagnositcsfort_ca,q_ca,andq_atm -id_t_ca=fms_diag_register_diag_field(& -mod_name,'t_ca',atmos_axes,time,'canopyairtemperature','deg_k',range=trange) - -!-slm,Mar25,2002 -id_z_atm=fms_diag_register_diag_field(& -mod_name,'z_atm',atmos_axes,time,'heightofbtmlevel','m') - -id_p_atm=fms_diag_register_diag_field(& -mod_name,'p_atm',atmos_axes,time,'pressureatbtmlevel','pa') - -!-bw,Mar25,2002--addeddiagnosticslp -id_slp=fms_diag_register_diag_field(& -mod_name,'slp',atmos_axes,time,'sealevelpressure','pa') - -id_gust=fms_diag_register_diag_field(& -mod_name,'gust',atmos_axes,time,'gustscale','m/s') - -id_t_flux=fms_diag_register_diag_field(& -mod_name,'shflx',atmos_axes,time,'sensibleheatflux','w/m2') - -id_r_flux=fms_diag_register_diag_field(& -mod_name,'lwflx',atmos_axes,time,'net(down-up)longwaveflux','w/m2') - -id_t_atm=fms_diag_register_diag_field(& -mod_name,'t_atm',atmos_axes,time,'temperatureatbtmlevel','deg_k',range=trange) - -id_u_atm=fms_diag_register_diag_field(& -mod_name,'u_atm',atmos_axes,time,'uwindcomponentatbtmlevel','m/s',range=vrange) - -id_v_atm=fms_diag_register_diag_field(& -mod_name,'v_atm',atmos_axes,time,'vwindcomponentatbtmlevel','m/s',range=vrange) - -id_t_ref=fms_diag_register_diag_field(& -mod_name,'t_ref',atmos_axes,time,'temperatureat'//label_zh,'deg_k',range=trange) - -id_rh_ref=fms_diag_register_diag_field(& -mod_name,'rh_ref',atmos_axes,time,'relativehumidityat'//label_zh,'percent') - -id_rh_ref_cmip=fms_diag_register_diag_field(& -mod_name,'rh_ref_cmip',atmos_axes,time,'relativehumidityat'//label_zh,'percent') - -id_u_ref=fms_diag_register_diag_field(& -mod_name,'u_ref',atmos_axes,time,'zonalwindcomponentat'//label_zm,'m/s',range=vrange) - -id_v_ref=fms_diag_register_diag_field(& -mod_name,'v_ref',atmos_axes,time,'meridionalwindcomponentat'//label_zm,'m/s',range=vrange) - -id_wind_ref=fms_diag_register_diag_field(& -mod_name,'wind_ref',atmos_axes,time,'absolutevalueofwindat'//label_zm,'m/s',range=vrange) - -id_del_h=fms_diag_register_diag_field(& -mod_name,'del_h',atmos_axes,time,'refheightinterpfactorforheat','none') - -id_del_m=fms_diag_register_diag_field(& -mod_name,'del_m',atmos_axes,time,'refheightinterpfactorformomentum','none') - -id_del_q=fms_diag_register_diag_field(& -mod_name,'del_q',atmos_axes,time,'refheightinterpfactorformoisture','none') - -if(land_pe)then -!setthedefaultfilter(forareaandsubsampling)forconsequentcallstoregister_tiled_diag_field -#ifndef_USE_LEGACY_LAND_ -callset_default_diag_filter('land') -#endif -id_t_ref_land=fms_diag_register_field_(& -'flux_land','t_ref',land_axes,time,'temperatureat'//trim(label_zh)//'overland','deg_k',& -range=trange,missing_value=-100.0) - -id_q_ref_land=fms_diag_register_field_(& -'flux_land','q_ref',land_axes,time,'specifichumidityat'//trim(label_zh)//'overland','kg/kg',& -missing_value=-1.0) - -id_rh_ref_land=fms_diag_register_field_(& -'flux_land','rh_ref',land_axes,time,'relativehumidityat'//trim(label_zh)//'overland','percent',& -missing_value=-999.0) - -id_u_ref_land=fms_diag_register_field_(& -'flux_land','u_ref',land_axes,time,'zonalwindcomponentat'//trim(label_zm)//'overland','m/s',& -range=vrange,missing_value=-999.0) - -id_v_ref_land=fms_diag_register_field_(& -'flux_land','v_ref',land_axes,time,'meridionalwindcomponentat'//trim(label_zm)//'overland',& -'m/s',range=vrange,missing_value=-999.0) - -id_q_flux_land=fms_diag_register_field_(& -'flux_land','evap',land_axes,time,'evaporationrateoverland','kg/m2/s',missing_value=-1.0) - -id_t_flux_land=fms_diag_register_field_(& -'flux_land','shflx',land_axes,time,'sensibleheatflux','W/m2',missing_value=-1.0) - -id_taslut_land=fms_diag_register_field_(& -'cmor_land','tasLut',land_axes,time,& -'Near-SurfaceAirTemperature('//trim(label_zh)//'AboveDisplacementHeight)onLandUseTile',& -units='K',standard_name='air_temperature',missing_value=-1.0) - -id_husslut_land=fms_diag_register_field_(& -'cmor_land','hussLut',land_axes,time,'Near-SurfaceSpecificHumidityonLandUseTile','1.0',& -standard_name='specific_humidity',missing_value=-1.0) - -allocate(id_tr_flux_land(n_exch_tr)) -allocate(id_tr_mol_flux_land(n_exch_tr)) -allocate(id_tr_con_atm_land(n_exch_tr)) -allocate(id_tr_con_ref_land(n_exch_tr)) -allocate(id_tr_ref_land(n_exch_tr)) - -#ifdef_USE_LEGACY_LAND_ -id_tr_con_atm_land(:)=-1 -id_tr_con_ref_land(:)=-1 -id_tr_ref_land(:)=-1 -#endif - -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) - -id_tr_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_flux',& -land_axes,time,'fluxof'//trim(longname),trim(units)//'kgair/(m2s)',missing_value=-1.0) - -if(fms_mpp_lowercase(trim(name))=='co2')then -id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& -land_axes,time,'fluxof'//trim(longname),'molCO2/(m2s)',missing_value=-1.0) -else -id_tr_mol_flux_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_mol_flux',& -land_axes,time,'fluxof'//trim(longname),'mol/(m2s)',missing_value=-1.0) -endif - -#ifndef_USE_LEGACY_LAND_ -id_tr_con_atm_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_tot_con_atm',& -land_axes,time,'vdof'//trim(longname),'m/s',missing_value=-1.0) - -id_tr_con_ref_land(tr)=register_diag_field('flux_land',trim(name)//'_tot_con_ref',& -land_axes,time,'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) - -!weskipsphumbecauseitisalreadyavailableasflux_land/q_ref -if(tr.ne.isphum)then -id_tr_ref_land(tr)=fms_diag_register_field_('flux_land',trim(name)//'_ref',& -land_axes,time,trim(longname)//'at'//trim(label_zh)//'overland',trim(units),missing_value=-1.0) -else -id_tr_ref_land(tr)=-1 -endif -#endif -enddo -endif - -id_q_ref=fms_diag_register_diag_field(& -mod_name,'q_ref',atmos_axes,time,'specifichumidityat'//trim(label_zh),'kg/kg',missing_value=-1.0) - -id_rough_scale=fms_diag_register_diag_field(& -mod_name,'rough_scale',atmos_axes,time,'topographicscalingfactorformomentumdrag','1') - -allocate(id_tr_atm(n_exch_tr)) -allocate(id_tr_surf(n_exch_tr)) -allocate(id_tr_flux(n_exch_tr)) -allocate(id_tr_mol_flux(n_exch_tr)) -allocate(id_tr_mol_flux0(n_exch_tr)) -allocate(id_tr_con_atm(n_exch_tr)) -allocate(id_tr_con_ref(n_exch_tr)) -allocate(id_tr_ref(n_exch_tr)) - -dotr=1,n_exch_tr -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,name,longname,units) - -id_tr_con_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_atm',atmos_axes,time,& -'vdof'//trim(longname),'m/s',missing_value=-1.0) -id_tr_con_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_tot_con_ref',atmos_axes,time,& -'vdof'//trim(longname)//'at'//trim(label_zh),'m/s',missing_value=-1.0) - -id_tr_atm(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_atm',atmos_axes,time,& -trim(longname)//'atbtmlevel',trim(units)) - -id_tr_surf(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_surf',atmos_axes,time,& -trim(longname)//'atthesurface',trim(units)) - -id_tr_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_flux',atmos_axes,time,& -'fluxof'//trim(longname),trim(units)//'kgair/(m2s)') - -if(tr.ne.isphum)then -id_tr_ref(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_ref',atmos_axes,time,& -trim(longname)//'at'//trim(label_zh),trim(units),missing_value=-1.0) -else -id_tr_ref(tr)=-1 -endif - -!!adddryvmrco2_surfandco2_atm -if(fms_mpp_lowercase(trim(name))=='co2')then -!-slmMar25,2010:movedregistrationofmol_fluxinside'if'todisable -!savingincorrectresults(molfluxesforothertracerscomputedwithCO2molarmass -id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& -'fluxof'//trim(longname),'molCO2/(m2s)') -id_co2_atm_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_atm_dvmr',atmos_axes,time,& -trim(longname)//'atbtmlevel','molCO2/molair') -id_co2_surf_dvmr=fms_diag_register_diag_field(mod_name,trim(name)//'_surf_dvmr',atmos_axes,time,& -trim(longname)//'atthesurface','molCO2/molair') -else -!f1p -id_tr_mol_flux(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux',atmos_axes,time,& -'fluxof'//trim(longname),'mol/(m2s)') -endif -!f1p -id_tr_mol_flux0(tr)=fms_diag_register_diag_field(mod_name,trim(name)//'_mol_flux_atm0',atmos_axes,time,& -'grossfluxof'//trim(longname),'mol/(m2s)') - -enddo - -!2017/08/08jgjadddiagnosticsforco2dataoverridesevenifco2isnotatracer -!registerdatacallsnotneededhereforco2_flux_pcair_atmando2_flux_pcair_atmasthishappenselsewhere -id_co2_bot=fms_diag_register_diag_field(mod_name,'co2_bot',atmos_axes,time,& -'co2_botfromdata_override','ppmv') - -!id_nh3_flux_atm0=fms_diag_register_diag_field(mod_name,'nh3_flux_atm0',atmos_axes,Time,& -!'nh3fluxoutoftheoceanassumingnotnh3intheatmosphere','mol/m2/s') - - -id_q_flux=fms_diag_register_diag_field(mod_name,'evap',fatmos_axes,time,& -'evaporationrate','kg/m2/s') - -!-------------------------------------------------------------------- -!retrievethediag_manageridfortheareadiagnostic, -!neededforcmorizingvariousdiagnostics. -!-------------------------------------------------------------------- -area_id=fms_diag_get_field_id('dynamics','area') -if(area_id.eq.diag_field_not_found)callfms_error_mesg& -('diag_field_initinatm_land_ice_flux_exchange_mod',& -'diagnosticfield"dynamics","area"isnotinthediag_table',note) - -!----------------------------------------------------------------------- -!registercmipvariablenames -!----------------------------------------------------------------------- -!NOTE:addextradimensionreferencelevelfields?height2m,height10m -!fornowwewillhandlethiswithanattribute - -id_height2m=fms_diag_register_static_field(& -mod_name,'height2m',[null_axis_id],'Height','m',standard_name='height') -if(id_height2m>0)then -callfms_diag_field_add_attribute(id_height2m,'axis','Z') -callfms_diag_field_add_attribute(id_height2m,'positive','up') -endif - -id_height10m=fms_diag_register_static_field(& -mod_name,'height10m',[null_axis_id],'Height','m',standard_name='height') -if(id_height10m>0)then -callfms_diag_field_add_attribute(id_height10m,'axis','Z') -callfms_diag_field_add_attribute(id_height10m,'positive','up') -endif - -#ifdefuse_AM3_physics -id_tas=fms_diag_register_diag_field(& -mod_name,'tas',atmos_axes,time,'Near-SurfaceAirTemperature','K',& -standard_name='air_temperature',area=area_id,missing_value=cmor_missing_value,range=trange) - -if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') - -id_uas=fms_diag_register_diag_field(& -mod_name,'uas',atmos_axes,time,'EastwardNear-SurfaceWind','ms-1',& -standard_name='eastward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) - -if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') - -id_vas=fms_diag_register_diag_field(& -mod_name,'vas',atmos_axes,time,'NorthwardNear-SurfaceWind','ms-1',& -standard_name='northward_wind',area=area_id,missing_value=cmor_missing_value,range=vrange) - -if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') - -id_sfcwind=fms_diag_register_diag_field(mod_name,'sfcWind',atmos_axes,time,& -'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed',area=area_id,& -missing_value=cmor_missing_value,range=vrange) - -if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') - -id_huss=fms_diag_register_diag_field(mod_name,'huss',atmos_axes,time,& -'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity',area=area_id,& -missing_value=cmor_missing_value) - -if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') - -id_hurs=fms_diag_register_diag_field(mod_name,'hurs',atmos_axes,time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& -missing_value=cmor_missing_value) - -if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') - -id_rhs=fms_diag_register_diag_field(mod_name,'rhs',atmos_axes,time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity',area=area_id,& -missing_value=cmor_missing_value) - -if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') - -id_ts=fms_diag_register_diag_field(mod_name,'ts',atmos_axes,time,& -'SurfaceTemperature','K',standard_name='surface_temperature',area=area_id,& -missing_value=cmor_missing_value,range=trange) - -id_psl=fms_diag_register_diag_field(mod_name,'psl',atmos_axes,time,& -'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level',area=area_id,& -missing_value=cmor_missing_value) - -id_tauu=fms_diag_register_diag_field(mod_name,'tauu',atmos_axes,time,& -'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress',& -area=area_id,missing_value=cmor_missing_value) - -id_tauv=fms_diag_register_diag_field(mod_name,'tauv',atmos_axes,time,& -'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress',& -area=area_id,missing_value=cmor_missing_value) - -id_hfss=fms_diag_register_diag_field(mod_name,'hfss',atmos_axes,time,& -'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux',& -area=area_id,missing_value=cmor_missing_value) - -id_hfls=fms_diag_register_diag_field(mod_name,'hfls',atmos_axes,time,& -'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux',& -area=area_id,missing_value=cmor_missing_value) - -if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') - -id_evspsbl=fms_diag_register_diag_field(mod_name,'evspsbl',atmos_axes,time,& -'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux',area=area_id,& -missing_value=cmor_missing_value) - -id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& -'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',area=area_id,& -interp_method="conserve_order1") - -id_tslsi=fms_diag_register_diag_field(mod_name,'tslsi',atmos_axes,time,& -'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',area=area_id,& -mask_variant=.true.,missing_value=cmor_missing_value) - -id_tos=fms_diag_register_diag_field(mod_name,'tos',atmos_axes,time,& -'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',area=area_id,& -mask_variant=.true.,missing_value=cmor_missing_value) - -id_sic=fms_diag_register_diag_field(mod_name,'sic',atmos_axes,time,& -'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction',area=area_id,& -missing_value=cmor_missing_value) - -if(id_sic>0)& -callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') -#else -id_tas=register_cmip_diag_field_2d(mod_name,'tas',time,& -'Near-SurfaceAirTemperature','K',standard_name='air_temperature') - -if(id_tas>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') - -id_uas=register_cmip_diag_field_2d(mod_name,'uas',time,& -'EastwardNear-SurfaceWind','ms-1',standard_name='eastward_wind') - -if(id_uas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') - -id_vas=register_cmip_diag_field_2d(mod_name,'vas',time,& -'NorthwardNear-SurfaceWind','ms-1',standard_name='northward_wind') - -if(id_vas>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') - -id_sfcwind=register_cmip_diag_field_2d(mod_name,'sfcWind',time,& -'Near-SurfaceWindSpeed','ms-1',standard_name='wind_speed') - -if(id_sfcwind>0.and.id_height10m>0)callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') - -id_huss=register_cmip_diag_field_2d(mod_name,'huss',time,& -'Near-SurfaceSpecificHumidity','1.0',standard_name='specific_humidity') - -if(id_huss>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') - -id_hurs=register_cmip_diag_field_2d(mod_name,'hurs',time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') - -if(id_hurs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') - -id_rhs=register_cmip_diag_field_2d(mod_name,'rhs',time,& -'Near-SurfaceRelativeHumidity','%',standard_name='relative_humidity') - -if(id_rhs>0.and.id_height2m>0)callfms_diag_field_add_attribute(id_rhs,'coordinates','height2m') - -id_ts=register_cmip_diag_field_2d(mod_name,'ts',time,& -'SurfaceTemperature','K',standard_name='surface_temperature') - -id_psl=register_cmip_diag_field_2d(mod_name,'psl',time,& -'SeaLevelPressure','Pa',standard_name='air_pressure_at_sea_level') - -id_tauu=register_cmip_diag_field_2d(mod_name,'tauu',time,& -'SurfaceDownwardEastwardWindStress','Pa',standard_name='surface_downward_eastward_stress') - -id_tauv=register_cmip_diag_field_2d(mod_name,'tauv',time,& -'SurfaceDownwardNorthwardWindStress','Pa',standard_name='surface_downward_northward_stress') - -id_hfss=register_cmip_diag_field_2d(mod_name,'hfss',time,& -'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') - -id_hfls=register_cmip_diag_field_2d(mod_name,'hfls',time,& -'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') -if(id_hfls>0)callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') - -id_evspsbl=register_cmip_diag_field_2d(mod_name,'evspsbl',time,& -'Evaporation','kgm-2s-1',standard_name='water_evaporation_flux') - -id_sftlf=fms_diag_register_static_field(mod_name,'sftlf',atmos_axes,& -'FractionoftheGridCellOccupiedbyLand','1.0',standard_name='land_area_fraction',& -area=area_id,interp_method='conserve_order1') - -id_tslsi=register_cmip_diag_field_2d(mod_name,'tslsi',time,& -'SurfaceTemperatureWhereLandorSeaIce','K',standard_name='surface_temperature',mask_variant=.true.) - - -!tos,sicareocean,seaIcefieldsontheatmosgrid -!usefulforamip-typeruns - -id_tos=register_cmip_diag_field_2d(mod_name,'tos',time,& -'SeaSurfaceTemperature','K',standard_name='sea_surface_temperature',mask_variant=.true.) - -id_sic=register_cmip_diag_field_2d(mod_name,'sic',time,& -'SeaIceAreaFraction','1.0',standard_name='sea_ice_area_fraction') - -if(id_sic>0)& -callfms_diag_field_add_attribute(id_sic,'comment','averagedovertheoceanportionofgridbox') - -!-----initializeglobalintegralsfornetCDFoutput----- -id_evspsbl_g=register_global_diag_field(& -'evspsbl',time,'Evaporation','mmd-1',standard_name='water_evaporation_flux') - -id_ts_g=register_global_diag_field(& -'ts',time,'SurfaceTemperature','K',standard_name='surface_temperature') - -id_tas_g=register_global_diag_field(& -'tas',time,'Near-SurfaceAirTemperature','K',standard_name='air_temperature') - -if(id_tas_g>0.and.id_height2m>0)& -callfms_diag_field_add_attribute(get_global_diag_field_id(id_tas_g),'coordinates','height2m') - -id_tasl_g=register_global_diag_field(& -'tasl',time,'Near-SurfaceAirTemperature(LandOnly)','K',standard_name='air_temperature') - -#ifdefined(_USE_LEGACY_LAND_)||defined(use_AM3_physics) -if(id_tasl_g>0)then -callfms_mpp_error(warning,"diag_field_init:fieldtaslisregistered,butmacro"//& -"_USE_LEGACY_LAND_oruse_AM3_physicsisdefined,nodatawillbewrittenout") -endif -#endif -if(id_tasl_g>0.and.id_height2m>0)& -callfms_diag_field_add_attribute(get_global_diag_field_id(id_tasl_g),'coordinates','height2m') - -id_hfss_g=register_global_diag_field('hfss',time,& -'SurfaceUpwardSensibleHeatFlux','Wm-2',standard_name='surface_upward_sensible_heat_flux') - -id_hfls_g=register_global_diag_field('hfls',time,& -'SurfaceUpwardLatentHeatFlux','Wm-2',standard_name='surface_upward_latent_heat_flux') - -if(id_hfls_g>0)& -callfms_diag_field_add_attribute(get_global_diag_field_id(id_hfls_g),'comment','Lv*evap') - -id_rls_g=register_global_diag_field('rls',time,& -'NetLongwaveSurfaceRadiation','Wm-2',standard_name='surface_net_longwave_flux') - -#endif - -endsubroutinediag_field_init - - -subroutinedivide_by_area(data,area) - -implicitnone -real,intent(inout)::data(:,:) -real,intent(in)::area(:,:) - -if(size(data,dim=1)/=size(area,dim=1).or.size(data,dim=2)/=size(area,dim=2))return - -where(area/=0.0) -data=data/area -endwhere - -endsubroutinedivide_by_area - -!Thiswascalledinsideflux_ocean_to_ice.Why? -subroutinesend_ice_mask_sic(Time) - -implicitnone -type(FmsTime_type),intent(in)::Time - -real,dimension(nxc_ice,nyc_ice,nk_ice)::ice_frac -real,dimension(n_xgrid_sfc)::ex_ice_frac -real,dimension(ni_atm,nj_atm)::diag_atm,ocean_frac -logical::used - -if(id_ice_mask>0.or.id_sic>0)then - -ice_frac=1. -ice_frac(:,:,1)=0. -ex_ice_frac=0. - -callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) -callfms_xgrid_get_from_xgrid(diag_atm,'ATM',ex_ice_frac,xmap_sfc) - -if(id_ice_mask>0)used=fms_diag_send_data(id_ice_mask,diag_atm,time) - -if(id_sic>0)then -ice_frac=1. -ex_ice_frac=0. -callfms_xgrid_put_to_xgrid(ice_frac,'OCN',ex_ice_frac,xmap_sfc) -callfms_xgrid_get_from_xgrid(ocean_frac,'ATM',ex_ice_frac,xmap_sfc) -where(ocean_frac>0.0) -diag_atm=min(1.,diag_atm/ocean_frac)!CMIP6asfraction -ocean_frac=1.0 -elsewhere -diag_atm=0.0 -ocean_frac=0.0 -endwhere -used=fms_diag_send_data(id_sic,diag_atm,time,rmask=ocean_frac) -endif -endif - -endsubroutinesend_ice_mask_sic - -!####################################################################### - -subroutineatm_stock_integrate(Atm,res) - -implicitnone -type(atmos_data_type),intent(in)::Atm -real,intent(out)::res - -integer::ier - -callfms_xgrid_stock_integrate_2d(atm%lprec+atm%fprec,xmap=xmap_sfc,delta_t=dt_atm,& -&radius=radius,res=res,ier=ier) - -endsubroutineatm_stock_integrate - -!######################################################################### - -endmoduleatm_land_ice_flux_exchange_mod - -#undefFMS_DATA_OVERRIDE_ -#undefFMS_XGRID_PUT_TO_XGRID_ -#undefFMS_XGRID_STOCK_MOVE_ -#undefFMS_XGRID_SET_FRAC_AREA_ -#undefFMS_XGRID_GET_FROM_XGRID_ -#undefFMS_DIAG_REGISTER_FIELD_ - - - - diff --git a/docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml b/docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml deleted file mode 100644 index c197f4a4..00000000 --- a/docs/xml/atmos__ocean__dep__fluxes__calc_8_f90.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - atmos_ocean_dep_fluxes_calc.F90 - atmos_ocean_dep_fluxes_calc_mod - -Calculates ocean and atmosphere deposition gas fluxes. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -moduleatmos_ocean_dep_fluxes_calc_mod - -usefms - -implicitnone - -character(len=*),parameter::mod_name="aodfc" -contains - -! -!!\throwFATAL,"Numberofgasfluxesnotzero" -!!\throwFATAL,"atmos_ocean_dep_fluxes_calc:Badparameter([gas_fluxes%bc(n)%param(1)])forair_sea_depositionfor -!![gas_fluxes%bc(n)%name]" -!!\throwFATAL,"atmos_ocean_dep_fluxes_calc:Unknownimplementation([gas_fluxes%bc(n)%implementation]for -!![gas_fluxes%bc(n)%name]" -subroutineatmos_ocean_dep_fluxes_calc(gas_fields_atm,gas_fields_ice,gas_fluxes,seawater) -type(FmsCoupler1dBC_type),intent(in)::gas_fields_atm -type(FmsCoupler1dBC_type),intent(in)::gas_fields_ice -type(FmsCoupler1dBC_type),intent(inout)::gas_fluxes -real,dimension(:),intent(in)::seawater - -character(len=64),parameter::sub_name='atmos_ocean_dep_fluxes_calc' -character(len=256),parameter::error_header=& -&'==>Errorfrom'//trim(mod_name)//'('//trim(sub_name)//'):' - -integer::n -integer::i -integer::length -real,dimension(:),allocatable::kw -real,dimension(:),allocatable::cair -character(len=128)::error_string - -real,parameter::permeg=1.0e-6 - -!Returnifnofluxestobecalculated - -if(gas_fluxes%num_bcs.le.0)return - -if(.not.associated(gas_fluxes%bc))then -if(gas_fluxes%num_bcs.ne.0)then -callfms_mpp_error(fatal,trim(error_header)//'Numberofgasfluxesnotzero') -else -return -endif -endif - -don=1,gas_fluxes%num_bcs -!onlydocalculationsifthefluxhasnotbeenoverridden -if(.not.gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%override)then -if(gas_fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then -if(gas_fluxes%bc(n)%param(1).le.0.0)then -write(error_string,'(1pe10.3)')gas_fluxes%bc(n)%param(1) -callfms_mpp_error(fatal,'atmos_ocean_dep_fluxes_calc:Badparameter('//& -&trim(error_string)//')forair_sea_depositionfor'//& -&trim(gas_fluxes%bc(n)%name)) -endif - -length=size(gas_fluxes%bc(n)%field(1)%values(:)) - -if(gas_fluxes%bc(n)%implementation.eq.'dry')then -doi=1,length -if(seawater(i)==1.)then -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& -gas_fields_atm%bc(n)%field(fms_coupler_ind_deposition)%values(i)/gas_fluxes%bc(n)%param(1) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -endif -enddo -elseif(gas_fluxes%bc(n)%implementation.eq.'wet')then -doi=1,length -if(seawater(i)==1.)then -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& -gas_fields_atm%bc(n)%field(fms_coupler_ind_deposition)%values(i)/gas_fluxes%bc(n)%param(1) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -endif -enddo -else -callfms_mpp_error(fatal,'atmos_ocean_dep_fluxes_calc:Unknownimplementation('& -&//trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) -endif -else -cycle -endif -endif -enddo -endsubroutineatmos_ocean_dep_fluxes_calc -endmoduleatmos_ocean_dep_fluxes_calc_mod - - - - diff --git a/docs/xml/atmos__ocean__fluxes__calc_8_f90.xml b/docs/xml/atmos__ocean__fluxes__calc_8_f90.xml deleted file mode 100644 index 3f8f14c3..00000000 --- a/docs/xml/atmos__ocean__fluxes__calc_8_f90.xml +++ /dev/null @@ -1,411 +0,0 @@ - - - - atmos_ocean_fluxes_calc.F90 - atmos_ocean_fluxes_calc_mod - -Calculates gas fluxes for atmosphere and ocean. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -moduleatmos_ocean_fluxes_calc_mod - -usefms -usefmsconstants,only:wtmair,rdgas,vonkarm - -implicitnone -private - -publicatmos_ocean_fluxes_calc - -character(len=*),parameter::mod_name="cdwfe" - -real,parameter::epsln=1.0e-30 -contains -! -!!\throwFATAL,"Numberofgasfluxesnotzero" -!!\throwFATAL,"Lengthsoffluxfieldsdonotmatch" -!!\throwFATAL,"Unknownimplementation([implementation])for[name]" -!!\throwFATAL,"Lengthsoffluxfieldsdonotmatch" -!!\throwFATAL,"Badparameter([gas_fluxes%bc(n)%param(1)])forland_sea_runofffor[name]" -!!\throwFATAL,"Unknownfluxtype([flux_type])for[name]" -subroutineatmos_ocean_fluxes_calc(gas_fields_atm,gas_fields_ice,& -&gas_fluxes,seawater,tsurf,ustar,cd_m) -type(FmsCoupler1dBC_type),intent(in)::gas_fields_atm -type(FmsCoupler1dBC_type),intent(in)::gas_fields_ice -type(FmsCoupler1dBC_type),intent(inout)::gas_fluxes -real,dimension(:),intent(in)::seawater -real,dimension(:),intent(in)::tsurf -real,dimension(:),intent(in),optional::ustar,cd_m - -character(len=*),parameter::sub_name='atmos_ocean_fluxes_calc' -character(len=*),parameter::error_header=& -&'==>Errorfrom'//trim(mod_name)//'('//trim(sub_name)//'):' - -integer::n -integer::i -integer::length -real,dimension(:),allocatable::kw -real,dimension(:),allocatable::cair -character(len=128)::error_string - -real,parameter::permeg=1.0e-6 - -!Returnifnofluxestobecalculated -if(gas_fluxes%num_bcs.le.0)return - -if(.not.associated(gas_fluxes%bc))then -if(gas_fluxes%num_bcs.ne.0)then -callfms_mpp_error(fatal,trim(error_header)//'Numberofgasfluxesnotzero') -else -return -endif -endif - -don=1,gas_fluxes%num_bcs -!onlydocalculationsifthefluxhasnotbeenoverridden -if(.not.gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%override)then -if(gas_fluxes%bc(n)%flux_type.eq.'air_sea_gas_flux_generic')then -length=size(gas_fluxes%bc(n)%field(1)%values(:)) - -if(.not.allocated(kw))then -allocate(kw(length)) -allocate(cair(length)) -elseif(size(kw(:)).ne.length)then -callfms_mpp_error(fatal,trim(error_header)//'Lengthsoffluxfieldsdonotmatch') -endif - -if(gas_fluxes%bc(n)%implementation.eq.'ocmip2')then -doi=1,length -if(seawater(i)==1.)then -gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=& -&gas_fluxes%bc(n)%param(1)*gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)**2 -cair(i)=& -gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& -gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& -gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(2) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& -&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& -&sqrt(660./(gas_fields_ice%bc(n)%field(fms_coupler_ind_sc_no)%values(i)+epsln))*& -&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=& -&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& -&sqrt(660./(gas_fields_ice%bc(n)%field(fms_coupler_ind_sc_no)%values(i)+epsln))*& -&gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i) -gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=& -&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i))/& -(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*permeg+epsln) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=0.0 -cair(i)=0.0 -endif -enddo -elseif(gas_fluxes%bc(n)%implementation.eq.'duce')then -doi=1,length -if(seawater(i)==1.)then -gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)/& -&(770.+45.*gas_fluxes%bc(n)%param(1)**(1./3.))*& -&101325./(rdgas*wtmair*1e-3*tsurf(i)*& -&max(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i),epsln)) -!alpha:mol/m3/atm -cair(i)=& -gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& -gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& -gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*9.86923e-6 -cair(i)=max(cair(i),0.) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& -&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& -&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i)) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=& -&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& -&max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.) -gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=& -&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i))/& -&(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*permeg+epsln) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=0.0 -cair(i)=0.0 -endif -enddo -elseif(gas_fluxes%bc(n)%implementation.eq.'johnson')then -!f1p:notsurehowtopasssalinity.Fornow,justforceat35. -doi=1,length -if(seawater(i)==1.)then -!calc_kw(tk,p,u10,h,vb,mw,sc_w,ustar,cd_m) -gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=& -&calc_kw(tsurf(i),& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i),& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i),& -&101325./(rdgas*wtmair*1e-3*tsurf(i)*& -max(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i),epsln)),& -&gas_fluxes%bc(n)%param(2),& -&gas_fluxes%bc(n)%param(1),& -&gas_fields_ice%bc(n)%field(fms_coupler_ind_sc_no)%values(i)) -cair(i)=& -&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*9.86923e-6 -cair(i)=max(cair(i),0.) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& -&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& -&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i)) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=& -&gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)*& -&max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.) -gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=& -&(max(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i),0.)-cair(i))/& -&(gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*permeg+epsln) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_kw)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(i)=0.0 -gas_fluxes%bc(n)%field(fms_coupler_ind_deltap)%values(i)=0.0 -cair(i)=0.0 -endif -enddo -else -callfms_mpp_error(fatal,'Unknownimplementation('//& -&trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) -endif -elseif(gas_fluxes%bc(n)%flux_type.eq.'air_sea_gas_flux')then -length=size(gas_fluxes%bc(n)%field(1)%values(:)) - -if(.not.allocated(kw))then -allocate(kw(length)) -allocate(cair(length)) -elseif(size(kw(:)).ne.length)then -callfms_mpp_error(fatal,trim(error_header)//'Lengthsoffluxfieldsdonotmatch') -endif - -if(gas_fluxes%bc(n)%implementation.eq.'ocmip2_data')then -doi=1,length -if(seawater(i)==1.)then -kw(i)=gas_fluxes%bc(n)%param(1)*gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i) -cair(i)=& -&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(2) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=kw(i)*& -&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -cair(i)=0.0 -kw(i)=0.0 -endif -enddo -elseif(gas_fluxes%bc(n)%implementation.eq.'ocmip2')then -doi=1,length -if(seawater(i)==1.)then -kw(i)=gas_fluxes%bc(n)%param(1)*gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)**2 -cair(i)=& -&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(2) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=kw(i)*& -&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -cair(i)=0.0 -kw(i)=0.0 -endif -enddo -elseif(gas_fluxes%bc(n)%implementation.eq.'linear')then -doi=1,length -if(seawater(i)==1.)then -kw(i)=gas_fluxes%bc(n)%param(1)*& -&max(0.0,gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i)-gas_fluxes%bc(n)%param(2)) -cair(i)=& -&gas_fields_ice%bc(n)%field(fms_coupler_ind_alpha)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_pcair)%values(i)*& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_psurf)%values(i)*gas_fluxes%bc(n)%param(3) -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=kw(i)*& -&(gas_fields_ice%bc(n)%field(fms_coupler_ind_csurf)%values(i)-cair(i)) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -cair(i)=0.0 -kw(i)=0.0 -endif -enddo -else -callfms_mpp_error(fatal,'Unknownimplementation('//& -&trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) -endif -elseif(gas_fluxes%bc(n)%flux_type.eq.'air_sea_deposition')then -cycle!air_sea_depositionisdoneinanothersubroutine -elseif(gas_fluxes%bc(n)%flux_type.eq.'land_sea_runoff')then -if(gas_fluxes%bc(n)%param(1).le.0.0)then -write(error_string,'(1pe10.3)')gas_fluxes%bc(n)%param(1) -callfms_mpp_error(fatal,'Badparameter('//trim(error_string)//& -&')forland_sea_runofffor'//trim(gas_fluxes%bc(n)%name)) -endif - -length=size(gas_fluxes%bc(n)%field(1)%values(:)) - -if(gas_fluxes%bc(n)%implementation.eq.'river')then -doi=1,length -if(seawater(i)==1.)then -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=& -&gas_fields_atm%bc(n)%field(fms_coupler_ind_deposition)%values(i)/& -&gas_fluxes%bc(n)%param(1) -else -gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i)=0.0 -endif -enddo -else -callfms_mpp_error(fatal,'Unknownimplementation('//& -&trim(gas_fluxes%bc(n)%implementation)//')for'//trim(gas_fluxes%bc(n)%name)) -endif -else -callfms_mpp_error(fatal,'Unknownflux_type('//trim(gas_fluxes%bc(n)%flux_type)//& -&')for'//trim(gas_fluxes%bc(n)%name)) -endif -endif -enddo - -if(allocated(kw))then -deallocate(kw) -deallocate(cair) -endif -endsubroutineatmos_ocean_fluxes_calc - -realfunctioncalc_kw(tk,p,u10,h,vb,mw,sc_w,ustar,cd_m) -real,intent(in)::tk -real,intent(in)::p -real,intent(in)::u10 -real,intent(in)::h -real,intent(in)::vb -real,intent(in)::mw -real,intent(in)::sc_w -real,intent(in),optional::ustar -real,intent(in),optional::cd_m - -real::ra,rl,tc - -tc=tk-273.15 -ra=1./max(h*calc_ka(tc,p,mw,vb,u10,ustar,cd_m),epsln) -rl=1./max(calc_kl(tc,u10,sc_w),epsln) -calc_kw=1./max(ra+rl,epsln) -endfunctioncalc_kw - -realfunctioncalc_ka(t,p,mw,vb,u10,ustar,cd_m) -real,intent(in)::t -real,intent(in)::p -real,intent(in)::mw -real,intent(in)::vb -real,intent(in)::u10 -real,intent(in),optional::ustar -real,intent(in),optional::cd_m - -real::sc -real::ustar_t,cd_m_t - -if(.not.present(ustar))then -!dragcoefficient -cd_m_t=6.1e-4+0.63e-4*u10 -!frictionvelocity -ustar_t=u10*sqrt(cd_m_t) -else -cd_m_t=cd_m -ustar_t=ustar -endif -sc=schmidt_g(t,p,mw,vb) -calc_ka=1e-3+ustar_t/(13.3*sqrt(sc)+1/sqrt(cd_m_t)-5.+log(sc)/(2.*vonkarm)) -endfunctioncalc_ka - -realfunctioncalc_kl(t,v,sc) -real,intent(in)::t -real,intent(in)::v -real,intent(in)::sc - -calc_kl=(((0.222*v**2)+0.333*v)*(max(sc,epsln)/600.)**(-0.5))/(100.*3600.) -endfunctioncalc_kl - -realfunctionschmidt_g(t,p,mw,vb) -real,intent(in)::t -real,intent(in)::p -real,intent(in)::mw -real,intent(in)::vb - -real::d,v - -d=d_air(t,p,mw,vb) -v=v_air(t) -schmidt_g=v/d -endfunctionschmidt_g - -realfunctiond_air(t,p,mw,vb) -real,intent(in)::t -real,intent(in)::p -real,intent(in)::mw -real,intent(in)::vb - -real,parameter::ma=28.97d0 -real,parameter::va=20.1d0 - -real::pa - -!convertptoatm -pa=9.8692d-6*p -d_air=1d-3*& -&(t+273.15d0)**(1.75d0)*sqrt(1d0/ma+1d0/mw)/(pa*(va**(1d0/3d0)+vb**(1d0/3d0))**2d0) -!d_airisincm2/sconverttom2/s -d_air=d_air*1d-4 -endfunctiond_air - -realfunctionp_air(t) -real,intent(in)::t - -real,parameter::sd_0=1.293393662d0,& -&sd_1=-5.538444326d-3,& -&sd_2=3.860201577d-5,& -&sd_3=-5.2536065d-7 -p_air=sd_0+(sd_1*t)+(sd_2*t**2)+(sd_3*t**3) -endfunctionp_air - -realfunctionv_air(t) -real,intent(in)::t -v_air=n_air(t)/p_air(t) -endfunctionv_air - -realfunctionn_air(t) -real,intent(in)::t - -real,parameter::sv_0=1.715747771d-5,& -&sv_1=4.722402075d-8,& -&sv_2=-3.663027156d-10,& -&sv_3=1.873236686d-12,& -&sv_4=-8.050218737d-14 -!inn.s/m^2(pa.s) -n_air=sv_0+(sv_1*t)+(sv_2*t**2)+(sv_3*t**3)+(sv_4*t**4) -endfunctionn_air -endmoduleatmos_ocean_fluxes_calc_mod - - - - diff --git a/docs/xml/combine.xslt b/docs/xml/combine.xslt deleted file mode 100644 index c148ee4f..00000000 --- a/docs/xml/combine.xslt +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/docs/xml/compound.xsd b/docs/xml/compound.xsd deleted file mode 100644 index 81b5e513..00000000 --- a/docs/xml/compound.xsd +++ /dev/null @@ -1,1131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/xml/coupler_config.xml b/docs/xml/coupler_config.xml deleted file mode 100644 index 5951bf13..00000000 --- a/docs/xml/coupler_config.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - coupler_config - Coupler Configuration - -coupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables. - -coupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables. -Variable Name Type Default Value Description - -current_date integer, dimension(6) (/0,0,0,0,0,0/) The date that the current integration starts with. - -force_date_from_namelist logical .FALSE. Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has not effect, the value of current_date will be used. - -calendar character(len=17) '' The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' can not be used because the time_manager's date function are used. All values must be lowercase. - -months integer 0 The number of months that the current integration will be run for. - -days integer 0 The number of days that the current integration will be run for. - -hours integer 0 The number of hours that the current integration will be run for. - -minutes integer 0 The number of minutes that the current integration will be run for. - -seconds integer 0 The number of seconds that the current integration will be run for. - -dt_atmos integer 0 Atmospheric model time step in seconds, including the fast coupling with land and sea ice. - -dt_cpld integer 0 Time step in seconds for coupling between ocean and atmospheric models: must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. - -do_atmos, do_ocean, do_ice, do_land, do_flux logical .TRUE. If true (default), that particular model component (atmos, etc.) is run. If false, the execution of that component is skipped. This is used when ALL the output fields sent by that component to the coupler have been overridden using the data_override feature. For advanced users only: if you're not sure, you should leave these values at TRUE. - -concurrent logical .FALSE. If true, the ocean executes concurrently with the atmosphere-land-ocean on a separate set of PEs. If false (default), the execution is serial: call atmos... followed by call ocean... If using concurrent execution, you must set one of atmos_npes and ocean_npes, see below. - -do_concurrent_radiation logical .FALSE. If true then radiation is done concurrently. - -atmos_npes, ocean_npes integer none If concurrent is set to true, we use these to set the list of PEs on which each component runs. At least one of them must be set to a number between 0 and NPES. If exactly one of these two is set non-zero, the other is set to the remainder from NPES. If both are set non-zero they must add up to NPES. - -atmos_nthreads, ocean_nthreads integer 1 We set here the number of OpenMP threads to use separately for each component. - -radiation_nthreads integer 1 Number of threads to use for the concurrent radiation when do_concurrent_radiation = .true., otherwise is equal to atmos_nthreads - -use_lag_fluxes logical .TRUE. If true, the ocean is forced with SBCs from one coupling timestep ago. If false, the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. - -concurrent_ice logical .FALSE. If true, the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=true, this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. - -slow_ice_with_ocean logical .FALSE. If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. - -restart_interval integer, dimension(6) (/0,0,0,0,0,0/) The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out. - -do_debug logical .FALSE. If .TRUE. print additional debugging messages. - -do_chksum logical .FALSE. Turns on/off checksum of certain variables. - -do_endpoint_chksum logical .TRUE. Report checksums of the start and end states of certain variables. -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.The run length must be an intergal multiple of the coupling timestep dt_cpld. - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              diff --git a/docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml b/docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml deleted file mode 100644 index edeae762..00000000 --- a/docs/xml/dir_9982052f7ce695d12571567315b2fafa.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - shared - surface_flux.F90 - - - - - - - diff --git a/docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml b/docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml deleted file mode 100644 index 40d47506..00000000 --- a/docs/xml/dir_d31ef39e894be3975a1de5d6a46d3717.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - SHiELD - coupler_main.F90 - - - - - - - diff --git a/docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml b/docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml deleted file mode 100644 index 381251c5..00000000 --- a/docs/xml/dir_ec0543676189fadf8843b558a280dd29.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - simple - coupler_main.F90 - flux_exchange.F90 - ice_model.F90 - - - - - - - diff --git a/docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml b/docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml deleted file mode 100644 index b0034b30..00000000 --- a/docs/xml/dir_f6406403be25082e487bde7aa9e18575.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - full - atm_land_ice_flux_exchange.F90 - atmos_ocean_dep_fluxes_calc.F90 - atmos_ocean_fluxes_calc.F90 - coupler_main.F90 - flux_exchange.F90 - full_coupler_mod.F90 - ice_ocean_flux_exchange.F90 - land_ice_flux_exchange.F90 - - - - - - - diff --git a/docs/xml/flux_exchange_conf.xml b/docs/xml/flux_exchange_conf.xml deleted file mode 100644 index 64659a59..00000000 --- a/docs/xml/flux_exchange_conf.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - flux_exchange_conf - Flux Exchange Configuration - -flux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables. - -flux_exchange_mod is configured via the flux_exchange_nml namelist in the input.nml file. The following table are the available namelist variables. -Variable Name Type Default Value Description - -z_ref_heat real 2.0 Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q). - -z_ref_mom real 10.0 Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m). - -do_area_weighted_flux logical .FALSE. - -debug_stocks logical .FALSE. - -divert_stocks_report logical .FALSE. - -do_runoff logical .TRUE. Turns on/off the land runoff interpolation to the ocean. - -do_forecast logical .FALSE. - -nblocks integer 1 Specify number of blocks that n_xgrid_sfc is divided into. The main purpose is for Openmp implementation. Normally you may set nblocks to be coupler_nml atmos_nthreads. - -partition_fprec_from_lprec logical .FALSE. Option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter - -scale_precip_2d logical .false. Option to scale the Atmlprec. If this varible is set to .true. Atmlprec will be rescaled by a field read from the data_table -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              diff --git a/docs/xml/full_2coupler__main_8_f90.xml b/docs/xml/full_2coupler__main_8_f90.xml deleted file mode 100644 index 6eb02263..00000000 --- a/docs/xml/full_2coupler__main_8_f90.xml +++ /dev/null @@ -1,426 +0,0 @@ - - - - coupler_main.F90 - omp_lib - - - program - program coupler_main - - coupler_main - - - - - -FATAL -no namelist value for current_date - - -A namelist value for current_date must be given if no restart file for coupler_main (INPUT/coupler.res) is found. - - - -FATAL -invalid namelist value for calendar - - -The value of calendar must be 'gregorian', 'julian', 'noleap', or 'thirty_day'. See the namelist documentation. - - - -FATAL -no namelist value for calendar - - -If no restart file is present, then a namelist value for calendar must be specified. - - - -FATAL -initial time is greater than current time - - -If a restart file is present, then the namelist value for either current_date or start_date was incorrectly set. - - - -FATAL -run length must be multiple of ocean time step - - -There must be an even number of ocean time steps for the requested run length. - - - -FATAL -final time does not match expected ending time - - -This error should probably not occur because of checks done at initialization time. - - - - - - - - - -Main driver program for full coupler. Provides the capability to couple component models (atmosphere, land, sea ice, and ocean). - -Please see the main page for additional information. - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** - - - -programcoupler_main - -!---F90moduleforOpenMP -useomp_lib -usefms -usefull_coupler_mod - -implicitnone - -type(atmos_data_type),target::atm -type(land_data_type),target::land -type(ice_data_type),target::ice -!allowmembersofoceantypetobealiased(ap) -type(ocean_public_type),target::ocean -type(ocean_state_type),pointer::ocean_state=>null() - -type(atmos_land_boundary_type),target::Atmos_land_boundary -type(atmos_ice_boundary_type),target::Atmos_ice_boundary -type(land_ice_atmos_boundary_type),target::Land_ice_atmos_boundary -type(land_ice_boundary_type),target::Land_ice_boundary -type(ice_ocean_boundary_type),target::Ice_ocean_boundary -type(ocean_ice_boundary_type),target::Ocean_ice_boundary -type(ice_ocean_driver_type),pointer::ice_ocean_driver_CS=>null() - -type(FmsTime_type)::Time -type(FmsTime_type)::Time_step_atmos,Time_step_cpld -type(FmsTime_type)::Time_atmos,Time_ocean -type(FmsTime_type)::Time_flux_ice_to_ocean,Time_flux_ocean_to_ice - -integer::num_atmos_calls,na -integer::num_cpld_calls,nc -integer::current_timestep - -type(FmsNetcdfDomainFile_t),dimension(:),pointer::Ice_bc_restart=>null() -type(FmsNetcdfDomainFile_t),dimension(:),pointer::Ocn_bc_restart=>null() - -type(FmsTime_type)::Time_restart,Time_start,Time_end,Time_restart_current - -type(coupler_clock_type)::coupler_clocks -type(coupler_components_type),target::coupler_components_obj -type(coupler_chksum_type)::coupler_chksum_obj - -integer,allocatable::ensemble_pelist(:,:) -integer,allocatable::slow_ice_ocean_pelist(:) -integer::conc_nthreads=1 -real::dsec,omp_sec(2)=0.0,imb_sec(2)=0.0 - -callfms_mpp_init() - -coupler_clocks%initialization=fms_mpp_clock_id('Initialization') -callfms_mpp_clock_begin(coupler_clocks%initialization) - -callfms_init -callfmsconstants_init -callfms_affinity_init - -callcoupler_init(atm,ocean,land,ice,ocean_state,atmos_land_boundary,atmos_ice_boundary,& -ocean_ice_boundary,ice_ocean_boundary,land_ice_atmos_boundary,land_ice_boundary,& -ice_ocean_driver_cs,ice_bc_restart,ocn_bc_restart,ensemble_pelist,slow_ice_ocean_pelist,& -conc_nthreads,coupler_clocks,coupler_components_obj,coupler_chksum_obj,& -time_step_cpld,time_step_atmos,time_atmos,time_ocean,num_cpld_calls,& -num_atmos_calls,time,time_start,time_end,time_restart,time_restart_current) - -if(do_chksum)callcoupler_chksum_obj%get_coupler_chksums('coupler_init+',0) - -callfms_mpp_set_current_pelist() -callfms_mpp_clock_end(coupler_clocks%initialization)!endinitialization -callfms_mpp_clock_begin(coupler_clocks%main)!beginmainloop - -!----------------------------------------------------------------------- - -if(check_stocks>=0.and.do_flux)callcoupler_flux_init_finish_stocks(time,atm,land,ice,ocean_state,& -coupler_clocks,init_stocks=.true.) - -coupled_timestep_loop:donc=1,num_cpld_calls - -if(do_chksum)then -callcoupler_chksum_obj%get_coupler_chksums('top_of_coupled_loop+',nc) -callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('MAIN_LOOP-',nc) -endif - -if(ice%slow_ice_PE.or.ocean%is_ocean_pe)then -callcoupler_flux_ocean_to_ice(ocean,ice,ocean_ice_boundary,coupler_clocks,slow_ice_ocean_pelist) -time_flux_ocean_to_ice=time -if(use_lag_fluxes)then -callcoupler_flux_ice_to_ocean(ice,ocean,ice_ocean_boundary,coupler_clocks) -time_flux_ice_to_ocean=time -endif -endif - -if(do_chksum)then -callcoupler_chksum_obj%get_coupler_chksums('flux_ocn2ice+',nc) -callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('flux_ocn2ice+',nc) -endif - -!needstosithereratherthanattheendofthecouplerloop. -if(check_stocks>0.and.do_flux)callcoupler_flux_check_stocks(nc,time,atm,land,ice,ocean_state,& -coupler_clocks) - -if(do_ice.and.ice%pe)then -if(ice%slow_ice_pe)callcoupler_unpack_ocean_ice_boundary(nc,time_flux_ocean_to_ice,ice,ocean_ice_boundary,& -coupler_clocks,coupler_chksum_obj) - -!Thiscouldbeapointwherethemodelisserializedifthefastand -!slowiceareondifferentPEs.callfms_mpp_set_current_pelist(Ice%pelist) -!iscalledif(.not.Ice%shared_slow_fast_PEs) -callcoupler_exchange_slow_to_fast_ice(ice,coupler_clocks) -if(concurrent_ice)callcoupler_exchange_fast_to_slow_ice(ice,coupler_clocks) -if(ice%fast_ice_pe)callcoupler_set_ice_surface_fields(ice,coupler_clocks) -endif - -atm_pe_block:if(atm%pe)then - -if(.NOT.(do_ice.and.ice%pe).OR.(ice_npes.NE.atmos_npes))callfms_mpp_set_current_pelist(atm%pelist) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('set_ice_surface+',nc) - -callfms_mpp_clock_begin(coupler_clocks%atm) - -if(do_flux)callcoupler_generate_sfc_xgrid(land,ice,coupler_clocks) -callsend_ice_mask_sic(time) - -!----------------------------------------------------------------------- - -callfms_mpp_clock_begin(coupler_clocks%atmos_loop) -fast_integration_loop:dona=1,num_atmos_calls - -time_atmos=time_atmos+time_step_atmos -current_timestep=(nc-1)*num_atmos_calls+na - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('top_of_atmos_loop-',current_timestep) - -if(do_atmos)callcoupler_atmos_tracer_driver_gather_data(atm,coupler_clocks) - -if(do_flux)callcoupler_sfc_boundary_layer(atm,land,ice,land_ice_atmos_boundary,& -time_atmos,current_timestep,coupler_chksum_obj,coupler_clocks) - - -!$OMPPARALLEL& -!$OMP&NUM_THREADS(conc_nthreads)& -!$OMP&DEFAULT(NONE)& -!$OMP&PRIVATE(conc_nthreads)& -!$OMP&SHARED(atmos_nthreads,radiation_nthreads,nc,na,num_atmos_calls,atmos_npes,land_npes,ice_npes)& -!$OMP&SHARED(Time_atmos,Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,Atmos_ice_boundary)& -!$OMP&SHARED(Ocean_ice_boundary)& -!$OMP&SHARED(do_debug,do_flux,do_chksum,do_atmos,do_land,do_ice,do_concurrent_radiation,omp_sec,imb_sec)& -!$OMP&SHARED(coupler_clocks,current_timestep,coupler_chksum_obj) -!$if(omp_get_thread_num()==0)then -!$OMPPARALLEL& -!$OMP&NUM_THREADS(1)& -!$OMP&DEFAULT(NONE)& -!$OMP&PRIVATE(dsec)& -!$OMP&SHARED(atmos_nthreads,radiation_nthreads,nc,na,num_atmos_calls,atmos_npes,land_npes,ice_npes)& -!$OMP&SHARED(Time_atmos,Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,Atmos_ice_boundary)& -!$OMP&SHARED(Ocean_ice_boundary)& -!$OMP&SHARED(do_debug,do_flux,do_chksum,do_atmos,do_land,do_ice,do_concurrent_radiation,omp_sec,imb_sec)& -!$OMP&SHARED(coupler_clocks,current_timestep,coupler_chksum_obj) -!$callomp_set_num_threads(atmos_nthreads) -!$dsec=omp_get_wtime() - -if(do_concurrent_radiation)callfms_mpp_clock_begin(coupler_clocks%concurrent_atmos) - -if(do_atmos)callcoupler_update_atmos_model_dynamics(atm,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -if(.not.do_concurrent_radiation)callcoupler_update_atmos_model_radiation(atm,land_ice_atmos_boundary,& -coupler_clocks,current_timestep,coupler_chksum_obj) - -if(do_atmos)callcoupler_update_atmos_model_down(atm,land_ice_atmos_boundary,& -current_timestep,coupler_chksum_obj,coupler_clocks) - -if(do_flux)callcoupler_flux_down_from_atmos(atm,land,ice,land_ice_atmos_boundary,atmos_land_boundary,& -atmos_ice_boundary,time_atmos,current_timestep,coupler_clocks,coupler_chksum_obj) - -!-------------------------------------------------------------- - -if(do_land.AND.land%pe)callcoupler_update_land_model_fast(land,atmos_land_boundary,atm%pelist,& -current_timestep,coupler_chksum_obj,coupler_clocks) - -if(do_ice.AND.ice%fast_ice_pe)callcoupler_update_ice_model_fast(ice,atmos_ice_boundary,atm%pelist,& -current_timestep,coupler_chksum_obj,coupler_clocks) - -!-------------------------------------------------------------- -if(do_flux)callcoupler_flux_up_to_atmos(land,ice,land_ice_atmos_boundary,atmos_land_boundary,& -atmos_ice_boundary,time_atmos,current_timestep,coupler_chksum_obj,& -coupler_clocks) - -if(do_atmos)callcoupler_update_atmos_model_up(atm,land_ice_atmos_boundary,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -if(do_flux)callcoupler_flux_atmos_to_ocean(atm,atmos_ice_boundary,ice,time_atmos) - -!-------------- -if(do_concurrent_radiation)callfms_mpp_clock_end(coupler_clocks%concurrent_atmos) -!$omp_sec(1)=omp_sec(1)+(omp_get_wtime()-dsec) -!$OMPENDPARALLEL -!$endif -!$if(omp_get_thread_num()==max(0,omp_get_num_threads()-1))then -!----atmosphereradiation---- -if(do_concurrent_radiation)then -!$OMPPARALLEL& -!$OMP&NUM_THREADS(1)& -!$OMP&DEFAULT(NONE)& -!$OMP&PRIVATE(dsec)& -!$OMP&SHARED(Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_ice_boundary,Ocean_ice_boundary,Atmos_land_boundary)& -!$OMP&SHARED(do_chksum,do_debug,omp_sec,num_atmos_calls,na,radiation_nthreads)& -!$OMP&SHARED(coupler_clocks) -!$callomp_set_num_threads(radiation_nthreads) -!$dsec=omp_get_wtime() -callcoupler_update_atmos_model_radiation(atm,land_ice_atmos_boundary,coupler_clocks) -!$omp_sec(2)=omp_sec(2)+(omp_get_wtime()-dsec) -!$OMPENDPARALLEL -endif -!$endif -!$imb_sec(omp_get_thread_num()+1)=imb_sec(omp_get_thread_num()+1)-omp_get_wtime() -!$OMPENDPARALLEL -!$imb_sec(1)=imb_sec(1)+omp_get_wtime() -!$if(do_concurrent_radiation)imb_sec(2)=imb_sec(2)+omp_get_wtime() -!$callomp_set_num_threads(atmos_nthreads+(conc_nthreads-1)*radiation_nthreads) - -callcoupler_update_atmos_model_state(atm,current_timestep,coupler_chksum_obj,coupler_clocks) - -enddofast_integration_loop!endofna(fastloop) - -callfms_mpp_clock_end(coupler_clocks%atmos_loop) - -if(do_land)callcoupler_update_land_model_slow(land,atmos_land_boundary,& -atm%pelist,current_timestep,coupler_chksum_obj,coupler_clocks) - -callcoupler_flux_land_to_ice(land,ice,land_ice_boundary,time,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -atmos_ice_boundary%p=0.0 - -time=time_atmos - -callfms_mpp_clock_end(coupler_clocks%atm) - -endifatm_pe_block - -start_atm_clock2:if(atm%pe)then -callfms_mpp_clock_begin(coupler_clocks%atm) -endifstart_atm_clock2 - -if(do_ice.and.ice%pe)then -if(ice%fast_ice_PE)callcoupler_unpack_land_ice_boundary(ice,land_ice_boundary,coupler_clocks) -if(.not.concurrent_ice)callcoupler_exchange_fast_to_slow_ice(ice,coupler_clocks,& -set_ice_current_pelist=.true.) -if(ice%slow_ice_PE.and..not.combined_ice_and_ocean)& -callcoupler_update_ice_model_slow_and_stocks(ice,coupler_clocks) -if(do_chksum)callcoupler_chksum_obj%get_slow_ice_chksums('update_ice_slow+',nc) -endif!EndofIce%peblock - -end_atm_clock2:if(Atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -callfms_mpp_clock_end(coupler_clocks%atm) -endifend_atm_clock2 - -!UpdateIce_ocean_boundaryusingthenewlycalculatedfluxes. -if((concurrent_ice.or..not.use_lag_fluxes).and..not.combined_ice_and_ocean)then -!thiscouldserializeunlessslow_ice_with_oceanistrue. -if((.not.do_ice).or.(.not.slow_ice_with_ocean))callfms_mpp_set_current_pelist() -if(ice%slow_ice_PE.or.ocean%is_ocean_pe)& -callcoupler_flux_ice_to_ocean(ice,ocean,ice_ocean_boundary,coupler_clocks,& -slow_ice_ocean_pelist=slow_ice_ocean_pelist,set_current_slow_ice_ocean_pelist=.true.) -time_flux_ice_to_ocean=time -endif - -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) -callfms_mpp_clock_begin(coupler_clocks%ocean) - -!ThismaydodataoverrideordiagnosticsonIce_ocean_boundary. -callflux_ice_to_ocean_finish(time_flux_ice_to_ocean,ice_ocean_boundary) - -if(combined_ice_and_ocean)then -callflux_ice_to_ocean_stocks(ice) -callupdate_slow_ice_and_ocean(ice_ocean_driver_cs,ice,ocean_state,ocean,& -ice_ocean_boundary,time_ocean,time_step_cpld) -else -if(do_chksum)callcoupler_chksum_obj%get_ocean_chksums('update_ocean_model-',nc) -!update_ocean_modelsincefluxesdon'tchangehere -if(do_ocean)callcoupler_update_ocean_model(ocean,ocean_state,ice_ocean_boundary,& -time_ocean,time_step_cpld,nc,coupler_chksum_obj) -endif - -!Getstocksfrom"Ice_ocean_boundary"andaddthemtoOceanstocks. -!Thiscallisjustforrecordkeepingofstockstransferand -!doesnotmodifyeitherOceanorIce_ocean_boundary -callflux_ocean_from_ice_stocks(ocean_state,ocean,ice_ocean_boundary) - -callfms_diag_send_complete(time_step_cpld) -time_ocean=time_ocean+time_step_cpld -time=time_ocean - -callfms_mpp_clock_end(coupler_clocks%ocean) -endif - -if(time>=time_restart)& -callcoupler_intermediate_restart(atm,ice,ocean,ocean_state,ocn_bc_restart,ice_bc_restart,& -time,time_restart,time_restart_current,time_start) - -callcoupler_summarize_timestep(nc,num_cpld_calls,coupler_chksum_obj,atm%pe,omp_sec,imb_sec) - -omp_sec(:)=0. -imb_sec(:)=0. - -enddocoupled_timestep_loop - -!----------------------------------------------------------------------- -if(check_stocks>=0.and.do_flux)callcoupler_flux_init_finish_stocks(time,atm,land,ice,ocean_state,& -coupler_clocks,finish_stocks=.true.) - -callfms_mpp_set_current_pelist() -callfms_mpp_clock_end(coupler_clocks%main) - -callcoupler_end(atm,land,ice,ocean,ocean_state,land_ice_atmos_boundary,atmos_ice_boundary,& -atmos_land_boundary,ice_ocean_boundary,ocean_ice_boundary,ocn_bc_restart,ice_bc_restart,& -nc,time,time_start,time_end,time_restart_current,coupler_chksum_obj,coupler_clocks) - -callfms_memutils_print_memuse_stats('MemoryHiWaterMark',always=.true.) -callfms_end - -!----------------------------------------------------------------------- - -endprogramcoupler_main - - - - diff --git a/docs/xml/full_2flux__exchange_8_f90.xml b/docs/xml/full_2flux__exchange_8_f90.xml deleted file mode 100644 index 7481c2d7..00000000 --- a/docs/xml/full_2flux__exchange_8_f90.xml +++ /dev/null @@ -1,793 +0,0 @@ - - - - flux_exchange.F90 - flux_exchange_mod - -The flux_exchange module provides interfaces to couple the following component models: atmosphere, ocean, land, and ice. All interpolation between physically distinct model grids is handled by the exchange grid (xgrid_mod) with the interpolated quantities being conserved. - -Bruce Wyman Bruce.Wyman@noaa.gov -V. Balaji V.Balaji@noaa.gov -Sergey Malyshev Sergey.Malyshev@noaa.gov - -This version of flux_exchange_mod allows the definition of physically independent grids for atmosphere, land and sea ice. Ice and ocean must share the same physical grid (though the domain decomposition on parallel systems may be different). Grid information is input through the grid_spec file (URL). The masked region of the land grid and ice/ocean grid must "tile" each other. The masked region of the ice grid and ocean grid must be identical. - ATMOSPHERE |----|----|----|----|----|----|----|----| LAND |---|---|---|---|xxx|xxx|xxx|xxx|xxx|xxx| ICE |xxx|xxx|xxx|xxx|---|---|---|---|---|---| OCEAN |xxx|xxx|xxx|xxx|---|---|---|---|---|---| - where |xxx| represents a masked grid pointThe atmosphere, land, and ice grids exchange information using the exchange grid xmap_sfc.The land and ice grids exchange runoff data using the exchange grid xmap_runoff.Transfer of data between the ice bottom and ocean does not require an exchange grid as the grids are physically identical. The flux routines will automatically detect and redistribute data if their domain decompositions are different.To get information from the atmosphere to the ocean it must pass through the ice model, first by interpolating from the atmospheric grid to the ice grid, and then transferring from the ice grid to the ocean grid.Each component model must have a public defined data type containing specific boundary fields. A list of these quantities is located in the NOTES of this document.The surface flux of sensible heat and surface evaporation can be implicit functions of surface temperature. As a consequence, the parts of the land and sea-ice models that update the surface temperature must be called on the atmospheric time stepThe surface fluxes of all other tracers and of momentum are assumed to be explicit functions of all surface parameters.While no explicit reference is made within this module to the implicit treatment of vertical diffusion in the atmosphere and in the land or sea-ice models, the module is designed to allow for simultaneous implicit time integration on both sides of the surface interface.Due to #5, the diffusion part of the land and ice models must be called on the atmospheric time step, although in the case of concurrent-ice coupling, this version of the sea-ice that is called by the atmosphere may later be replaced by a version of the ice that is tightly coupled with the ocean.The fluxes of additional tracers related to biological quantities or the air-sea exchange of gases are accomplished by specifying fields that will be passed between components via the "field_table" and the use of named fields in the coupler_..._bc_types.Any field passed from one component to another may be "faked" to a constant value, or to data acquired from a file, using the data_override feature of FMS. The fields to override are runtime configurable, using the text file data_table for input. See the data_override_mod documentation for more details.We DO NOT RECOMMEND exercising the data override capabilities of the FMS coupler until the user has acquired considerable sophistication in running FMS.Here is a listing of the override capabilities of the flux_exchange module: -FROM the atmosphere boundary TO the exchange grid (in sfc_boundary_layer):t_bot, q_bot, z_bot, p_bot, u_bot, v_bot, p_surf, slp, gustFROM the ice boundary TO the exchange grid (in sfc_boundary_layer):t_surf, rough_mom, rough_heat, rough_moist, albedo, u_surf, v_surfFROM the land boundary TO the exchange grid (in sfc_boundary_layer):t_surf, t_ca, q_ca, rough_mom, rough_heat, albedoFROM the exchange grid TO land_ice_atmos_boundary (in sfc_boundary_layer):t, albedo, land_frac, dt_t, dt_q, u_flux, v_flux, dtaudu, dtaudv, u_star, b_star, rough_momFROM the atmosphere boundary TO the exchange grid (in flux_down_from_atmos):flux_sw, flux_lw, lprec, fprec, coszen, dtmass, delta_t, delta_q, dflux_t, dflux_qFROM the exchange grid TO the land boundary (in flux_down_from_atmos):t_flux, q_flux, lw_flux, sw_flux, lprec, fprec, dhdt, dedt, dedq, drdt, drag_q, p_surfFROM the exchange grid TO the ice boundary (in flux_down_from_atmos):u_flux, v_flux, t_flux, q_flux, lw_flux, lw_flux_dn, sw_flux, sw_flux_dn, lprec, fprec, dhdt, dedt, drdt, coszen, pFROM the land boundary TO the ice boundary (in flux_land_to_ice):runoff, calvingFROM the ice boundary TO the ocean boundary (in flux_ice_to_ocean):u_flux, v_flux, t_flux, q_flux, salt_flux, lw_flux, sw_flux, lprec, fprec, runoff, calving, p, ustar_berg, area_berg, mass_bergFROM the ocean boundary TO the ice boundary (in flux_ocean_to_ice):u, v, t, s, frazil, sea_levelFROM the ice boundary TO the atmosphere boundary (in flux_up_to_atmos):t_surfFROM the land boundary TO the atmosphere boundary (in flux_up_to_atmos):t_ca, t_surf, q_ca -See NOTES below for an explanation of the field names. - -Diagnostic Fields -The table below contains the available diagnostic fields is the flux diagnostic module. -Field Name Units Description - -land_mask none Fractional amount of land - -wind m/s Wind speed for flux calculations - -drag_moist none Drag coeff for moisture - -drag_heat none Drag coeff for heat - -drag_mom none Drag coeff for momentum - -rough_moist m Surface roughness for moisture - -rough_heat m Surface roughness for heat - -rough_mom m Surface roughness for momentum - -u_star m/s Friction velocity - -b_star m/s Buoyancy scale - -q_star kg water/kg air moisture scale - -t_atm deg_k temperature at btm level - -u_atm m/s u wind component at btm level - -v_atm m/s v wind component at btm level - -q_atm kg/kg specific humidity at btm level - -p_atm pa pressure at btm level - -z_atm m height of btm level - -gust m/s gust scale - -rh_ref percent relative humidity at ref height - -t_ref deg_k temperature at ref height - -u_ref m/s zonal wind component at ref height - -v_ref m/s meridional wind component at ref height - -del_h none ref height interp factor for heat - -del_m none ref height interp factor for momentum - -del_q none ref height interp factor for moisture - -tau_x pa zonal wind stress - -tau_y pa meridional wind stress - -ice_mask none fractional amount of sea ice - -t_surf deg_k surface temperature - -t_ca deg_k canopy air temperature - -q_surf kg/kg surface specific humidity - -shflx w/m2 sensible heat flux - -evap kg/m2/s evaporation rate - -lwflx w/m2 net (down-up) longwave flux -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              - -Main Program Example -Below is some pseudo-code to illustrate the logic of the main loop.DOslowtimesteps(ocean) -callflux_ocean_to_ice - -callice_slow_up - -DOfasttimesteps(atmos) -callsfc_boundary_layer - -callatmos_down - -callflux_down_from_atmos - -callland_fast - -callice_fast - -callflux_up_to_atmos - -callatmos_up -ENDDO - -callice_slow_dn - -callflux_ice_to_ocean - -callocean -ENDDO -LAND_FAST and ICE_FAST must update the surface temperature - - -Variables In Defined Data Types For Component Models - -Atmosphere -type(atmos_boundary_data_type)::atm - -real,dimension(:)::Atm%lon_bnd&!longitudeaxisgridboxboundariesinradians -!mustbemonotonic -atm%lat_bnd!latitudeaxisgridboxboundariesinradians -!mustbemonotonic -real,dimension(:,:)::Atm%t_bot&!temperatureatlowestmodellevel -Atm%q_bot&!specifichumidityatlowestmodellevel -Atm%z_bot&!heightabovethesurfaceforthelowestmodellevel(m) -Atm%p_bot&!pressureatlowestmodellevel(pa) -Atm%u_bot&!zonalwindcomponentatlowestmodellevel(m/s) -Atm%v_bot&!meridionalwindcomponentatlowestmodellevel(m/s) -Atm%p_surf&!surfacepressure(pa) -Atm%slp&!sealevelpressure(pa) -Atm%gust&!gustinessfactor(m/s) -Atm%flux_sw&!netshortwavefluxatthesurface -Atm%flux_lw&!downwardlongwavefluxatthesurface -Atm%lprec&!liquidprecipitation(kg/m2) -Atm%fprec&!waterequivalentfrozenprecipitation(kg/m2) -Atm%coszen&!cosineofthezenithangle -integer,dimension(4)::Atm%axes!Axisidentifiersreturnedbydiag_axis_initforthe -!atmosphericmodelaxes:x,y,z_full,z_half. -The following five fields are gathered into a data type for convenience in passing this information through the different levels of the atmospheric model these fields are rlated to the simultaneous implicit time steps in the atmosphere and surface models they are described more fully in flux_exchange.tech.ps and in the documntation for vert_diff_modtype(surf_diff_type)::atm%Surf_Diff - -real,dimension(:,:)::Atm%Surf_Diff%dtmass&!dt/masswheredt=atmospherictimestep((i+1)=(i-1)forleapfrog)(s) -!mass=massperunitareaoflowestatmosphehiclayer(Kg/m2)) -atm%Surf_Diff%delta_t&!increment((i+1)=(i-1)forleapfrog)intemperatureof -!lowestatmosphericlayer(K) -atm%Surf_Diff%delta_q&!increment((i+1)=(i-1)forleapfrog)inspecifichumidityof -!lowestatmosphericlayer(nondimensional--Kg/Kg) -atm%Surf_Diff%dflux_t&!derivativeofimplicitpartofdownwardtemperaturefluxattopof -!lowestatmosphericlayerwithrespecttotemperature -!oflowestatmosphericlayer(Kg/(m2s)) -atm%Surf_Diff%dflux_q!derivativeofimplicitpartofdownwardmoisturefluxattopof -!lowestatmosphericlayerwithrespecttospecifichumidityof -!oflowestatmosphericlayer(kg/(m2s)) - - -Land -type(land_boundary_data_type)::land - -real,dimension(:)::Land%lon_bnd&!longitudeaxisgridboxboundariesinradians -!mustbemonotonic -land%lat_bnd!latitudeaxisgridboxboundariesinradians -!mustbemonotonic - -logical,dimension(:,:,:)::Land%mask&!land/seamask(trueforland) -Land%glacier!glaciermask(trueforglacier) - -real,dimension(:,:,:)::Land%tile_size&!fractionalareaofeachtile(partition) -Land%t_surf&!surfacetemperature(degk) -Land%albedo&!surfacealbedo(fraction) -Land%rough_mom&!surfaceroughnessformomentum(m) -Land%rough_heat&!surfaceroughnessforheat/moisture(m) -Land%stomatal&!stomatalresistance -Land%snow&!snowdepth(waterequivalent)(kg/m2) -Land%water&!waterdepthoftheuppermostbucket(kg/m2) -Land%max_water!maximumwaterdepthallowedintheuppermostbucket(kg/m2) - - -Ice -type(ice_boundary_data_type)::Ice - -real,dimension(:)::Ice%lon_bnd&!longitudeaxisgridboxboundariesfortemperaturepoints -!inradians(mustbemonotonic) -Ice%lat_bnd&!latitudeaxisgridboxboundariesfortemperaturepoints -!inradians(mustbemonotonic) -Ice%lon_bnd_uv&!longitudeaxisgridboxboundariesformomentumpoints -!inradians(mustbemonotonic) -Ice%lat_bnd_uv!latitudeaxisgridboxboundariesformomentumpoints -!inradians(mustbemonotonic) - -logical,dimension(:,:,:)::Ice%mask&!ocean/landmaskfortemperaturepoints -!(trueforocean,withorwithoutice) -Ice%mask_uv&!ocean/landmaskformomentumpoints -!(trueforocean,withorwithoutice) -Ice%ice_mask!optionalicemask(trueforice) - -real,dimension(:,:,:)::Ice%part_size&!fractionalareaofeachpartitionofatemperaturegridbox -Ice%part_size_uv!fractionalareaofeachpartitionofamomentumgridbox -The following fields are located on the ice top gridreal,dimension(:,:,:)::Ice%t_surf&!surfacetemperature(degk) -Ice%albedo&!surfacealbedo(fraction) -Ice%rough_mom&!surfaceroughnessformomentum(m) -Ice%rough_heat&!surfaceroughnessforheat/moisture(m) -Ice%u_surf&!zonal(ocean/ice)currentatthesurface(m/s) -Ice%v_surf!meridional(ocean/ice)currentatthesurface(m/s) -The following fields are located on the ice bottom gridreal,dimension(:,:,:)::Ice%flux_u&!zonalwindstress(Pa) -Ice%flux_v&!meridionalwindstress(Pa) -Ice%flux_t&!sensibleheatflux(w/m2) -Ice%flux_q&!specifichumidityflux(kg/m2/s) -Ice%flux_sw&!net(down-up)shortwaveflux(w/m2) -Ice%flux_lw&!net(down-up)longwaveflux(w/m2) -Ice%lprec&!massofliquidprecipitationsincelasttimestep(Kg/m2) -Ice%fprec&!massoffrozenprecipitationsincelasttimestep(Kg/m2) -Ice%runoff!massofrunoffwatersincelasttimestep(Kg/m2) - - -Ocean -type(ocean_boundary_data_type)::ocean - -real,dimension(:)::Ocean%Data%lon_bnd&!longitudeaxisgridboxboundariesfortemperature -!pointsontheoceanDATAGRID(radians) -ocean%Data%lat_bnd&!latitudeaxisgridboxboundariesfortemperature -!pointsontheoceanDATAGRID(radians) -ocean%Data%lon_bnd_uv&!longitudeaxisgridboxboundariesformomentum -!pointsontheoceanDATAGRID(radians) -ocean%Data%lat_bnd_uv&!latitudeaxisgridboxboundariesformomentum -!pointsontheoceanDATAGRID(radians) -ocean%Ocean%lon_bnd&!longitudeaxisgridboxboundariesfortemperature -!pointsontheoceanMODELGRID(radians) -ocean%Ocean%lat_bnd&!latitudeaxisgridboxboundariesfortemperature -!pointsontheoceanMODELGRID(radians) -ocean%Ocean%lon_bnd_uv&!longitudeaxisgridboxboundariesformomentum -!pointsontheoceanMODELGRID(radians) -ocean%Ocean%lat_bnd_uv&!latitudeaxisgridboxboundariesformomentum -!pointsontheoceanmodelgrid(radians) -The data values in all longitude and latitude grid box boundary array must be monotonic. -logical,dimension(:,:)::Ocean%Data%mask&!ocean/landmaskfortemperaturepointsontheocean -!DATAGRID(trueforocean) -ocean%Data%mask_uv&!ocean/landmaskformomentumpointsontheocean -!DATAGRID(trueforocean) -ocean%Ocean%mask&!ocean/landmaskfortemperaturepointsontheocean -!MODELGRID(trueforocean) -ocean%Ocean%mask_uv!ocean/landmaskformomentumpointsontheocean -!MODELGRID(trueforocean) -real,dimension(:,:)::Ocean%t_surf_data&!surfacetemperatureontheoceanDATAGRID(degk) -Ocean%t_surf&!surfacetemperatureontheoceanMODELGRID(degk) -Ocean%u_surf&!zonaloceancurrentatthesurfaceontheocean -!MODELGRID(m/s) -ocean%v_surf&!meridionaloceancurrentatthesurfaceonthe -!oceanMODELGRID(m/s) -ocean%frazil!frazilattemperaturepointsontheoceanmodelgrid - - -
                                                                                                                                                                                                                                                                                                              - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** - -moduleflux_exchange_mod - - -!model_boundary_data_typecontainsallmodelfieldsattheboundary. -!model1_model2_boundary_typecontainsfieldsthatmodel2gets -!frommodel1,mayalsoincludefluxes.Thesearedeclaredby -!flux_exchange_modandhaveprivatecomponents.Allmodelfieldsin -!model_boundary_data_typemaynotbeexchanged. -!willsupport3typesofflux_exchange: -!REGRID:physicallydistinctgrids,viaxgrid -!REDIST:samegrid,transferinindexspaceonly -!DIRECT:samegrid,samedecomp,directcopy - -usefms -usefmsconstants,only:rdgas,rvgas,cp_air,stefan,wtmair,& -hlv,hlf,radius,pi,cp_ocean,wtmco2,wtmc - -!!Components -useland_model_mod,only:lnd_stock_pe -useocean_model_mod,only:ocean_stock_pe -useatmos_model_mod,only:atm_stock_pe -useatm_land_ice_flux_exchange_mod,only:atm_land_ice_flux_exchange_init,sfc_boundary_layer -useatm_land_ice_flux_exchange_mod,only:generate_sfc_xgrid,flux_down_from_atmos -useatm_land_ice_flux_exchange_mod,only:flux_up_to_atmos,atm_stock_integrate,send_ice_mask_sic -useatm_land_ice_flux_exchange_mod,only:flux_atmos_to_ocean,flux_ex_arrays_dealloc -useland_ice_flux_exchange_mod,only:flux_land_to_ice,land_ice_flux_exchange_init -useice_ocean_flux_exchange_mod,only:ice_ocean_flux_exchange_init -useice_ocean_flux_exchange_mod,only:flux_ocean_to_ice,flux_ocean_to_ice_finish -useice_ocean_flux_exchange_mod,only:flux_ice_to_ocean,flux_ice_to_ocean_finish -useice_ocean_flux_exchange_mod,only:flux_ice_to_ocean_stocks,flux_ocean_from_ice_stocks -useatmos_model_mod,only:atmos_data_type,land_ice_atmos_boundary_type -useocean_model_mod,only:ocean_public_type,ice_ocean_boundary_type -useocean_model_mod,only:ocean_state_type -useice_model_mod,only:ice_data_type,land_ice_boundary_type,& -ocean_ice_boundary_type,atmos_ice_boundary_type,ice_stock_pe -useland_model_mod,only:land_data_type,atmos_land_boundary_type -useatmos_ocean_fluxes_mod,only:atmos_ocean_fluxes_init,atmos_ocean_type_fluxes_init -useatmos_ocean_fluxes_calc_mod,only:atmos_ocean_fluxes_calc -useocean_model_mod,only:ocean_model_init_sfc,ocean_model_flux_init -useatmos_tracer_driver_mod,only:atmos_tracer_flux_init - -implicitnone;private - -public::flux_exchange_init,gas_exchange_init,& -sfc_boundary_layer,& -generate_sfc_xgrid,& -flux_down_from_atmos,& -flux_up_to_atmos,& -flux_land_to_ice,& -flux_atmos_to_ocean,& -flux_ex_arrays_dealloc,& -flux_ice_to_ocean,& -flux_ice_to_ocean_finish,& -flux_ocean_to_ice,& -flux_ocean_to_ice_finish,& -flux_check_stocks,& -flux_init_stocks,& -flux_ice_to_ocean_stocks,& -flux_ocean_from_ice_stocks,& -send_ice_mask_sic - -!----------------------------------------------------------------------- -character(len=128)::version='$Id$' -character(len=128)::tag='$Name$' - -logical::do_init=.true. - -real,parameter::bound_tol=1e-7 - -real,parameter::d622=rdgas/rvgas -real,parameter::d378=1.0-d622 - -real::z_ref_heat=2. -real::z_ref_mom=10. -logical::do_area_weighted_flux=.false. -logical::debug_stocks=.false. -logical::divert_stocks_report=.false. -logical::do_runoff=.true. -logical::do_forecast=.false. -integer::nblocks=1 - -logical::partition_fprec_from_lprec=.false. -real,parameter::tfreeze=273.15 -logical::scale_precip_2d=.false. - -namelist/flux_exchange_nml/z_ref_heat,z_ref_mom,& -&do_area_weighted_flux,debug_stocks,divert_stocks_report,do_runoff,do_forecast,nblocks,& -&partition_fprec_from_lprec,scale_precip_2d - -logical::gas_fluxes_initialized=.false.!Thisissettotruewhenthefollowingtypesareinitialized. -type(FmsCoupler1dBC_type),target::ex_gas_fields_atm!gasfieldsinatm - -type(FmsCoupler1dBC_type),target::ex_gas_fields_ice!gasfieldsatoptheiceorocean - -type(FmsCoupler1dBC_type),target::ex_gas_fluxes!gasfluxesbetweentheatmandocean - - -integer::ni_atm,nj_atm -real,dimension(3)::ccc -!Balaji:clocksmovedintoflux_exchange -integer::cplClock - -!Exchangegridindices -real::Dt_atm,Dt_cpl -real::ATM_PRECIP_NEW - -contains - -!####################################################################### -subroutinegas_exchange_init(gas_fields_atm,gas_fields_ice,gas_fluxes) -type(FmsCoupler1dBC_type),optional,pointer::gas_fields_atm - -type(FmsCoupler1dBC_type),optional,pointer::gas_fields_ice - -type(FmsCoupler1dBC_type),optional,pointer::gas_fluxes - - -if(.not.gas_fluxes_initialized)then -callfms_atmos_ocean_type_fluxes_init() -callocean_model_flux_init() -callatmos_tracer_flux_init() -callfms_atmos_ocean_fluxes_init(ex_gas_fluxes,ex_gas_fields_atm,ex_gas_fields_ice) -gas_fluxes_initialized=.true. -endif - -if(present(gas_fields_atm))gas_fields_atm=>ex_gas_fields_atm -if(present(gas_fields_ice))gas_fields_ice=>ex_gas_fields_ice -if(present(gas_fluxes))gas_fluxes=>ex_gas_fluxes - -endsubroutinegas_exchange_init - -!####################################################################### -subroutineflux_exchange_init(Time,Atm,Land,Ice,Ocean,Ocean_state,& -atmos_ice_boundary,land_ice_atmos_boundary,& -land_ice_boundary,ice_ocean_boundary,ocean_ice_boundary,& -do_ocean,slow_ice_ocean_pelist,dt_atmos,dt_cpld) - -type(FmsTime_type),intent(in)::Time -type(atmos_data_type),intent(inout)::Atm -type(land_data_type),intent(in)::Land -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean -type(ocean_state_type),pointer::Ocean_state -!Allintent(OUT)derivedtypeswithpointercomponentsmustbe -!COMPLETELYallocatedhereandinsubroutinescalledfromhere; -!NOpointercomponentsshouldhavebeenallocatedbeforeentryifthe -!derivedtypehasintent(OUT)otherwisetheymaybelost. -type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary -type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary -type(land_ice_boundary_type),intent(inout)::land_ice_boundary -type(ice_ocean_boundary_type),intent(inout)::ice_ocean_boundary -type(ocean_ice_boundary_type),intent(inout)::ocean_ice_boundary -logical,intent(in)::do_ocean -integer,dimension(:),intent(in)::slow_ice_ocean_pelist -integer,optional,intent(in)::dt_atmos -integer,optional,intent(in)::dt_cpld - -character(len=64),parameter::grid_file='INPUT/grid_spec.nc' -integer::ierr,io -integer::logunit,unit -character(len=256)::errmsg -integer::omp_get_num_threads,nthreads - -!----------------------------------------------------------------------- - -! -!initializeatmos_ocean_fluxes -!Settingupfluxtypes,allocatesthearrays. -! - -! -!ocean_tracer_flux_initiscalledfirstsinceithasthemeaningfulvaluetoset -!fortheinput/outputfilenamesforthetracerfluxvaluesusedinrestarts.These -!valuescouldbesetinthefieldtable,andthisorderingallowsthis. -!atmos_tracer_flux_initiscalledlastsinceitwillusethevaluessetin -!ocean_tracer_flux_initwiththeexceptionofatm_tr_index,whichcanonly -!bemeaningfullysetfromtheatmosphericmodel(notfromthefieldtable) -! - -callfms_sat_vapor_pres_init() - -nthreads=1 -!assignnblockstonumberofthreads. -!$OMPPARALLEL -!$nthreads=omp_get_num_threads() -!$OMPENDPARALLEL -nblocks=nthreads - -!----------------------------------------------------------------------- -logunit=fms_mpp_stdlog() -!-----readnamelist------- - -read(fms_mpp_input_nml_file,flux_exchange_nml,iostat=io) -ierr=fms_check_nml_error(io,'flux_exchange_nml') - -!-----writenamelisttologfile----- -callfms_write_version_number(version,tag) -if(fms_mpp_pe()==fms_mpp_root_pe())write(logunit,nml=flux_exchange_nml) -if(nblocks<1)callfms_error_mesg('flux_exchange_mod',& -'flux_exchange_nmlnblocksmustbepositive',fatal) -if(nblocks.NE.nthreads)then -write(errmsg,'(a,i3,a,i3)')'flux_exchange_nmlnblocksissetto',nblocks,& -'isdifferentfromthedefaultvalue(numberofthreads)=',nthreads -callfms_error_mesg('flux_exchange_mod',errmsg,note) -endif - -!requiredbystock_move,allfluxesusedtoupdatestockswillbezeroifdt_atmos, -!anddt_cpldareabsent -dt_atm=0.0 -dt_cpl=0.0 -if(present(dt_atmos))dt_atm=real(dt_atmos) -if(present(dt_cpld))dt_cpl=real(dt_cpld) - -callfms_xgrid_get_ocean_model_area_elements(ocean%domain,grid_file) - -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -cplclock=fms_mpp_clock_id('Land-ice-atmcoupler',flags=fms_clock_flag_default,grain=clock_component) -callcheck_atm_grid(atm,grid_file) -callatm_land_ice_flux_exchange_init(time,atm,land,ice,atmos_ice_boundary,land_ice_atmos_boundary,& -dt_atm,dt_cpl,z_ref_heat,z_ref_mom,& -do_area_weighted_flux,do_forecast,& -partition_fprec_from_lprec,scale_precip_2d,nblocks,cplclock,& -ex_gas_fields_atm,ex_gas_fields_ice,ex_gas_fluxes) - -callland_ice_flux_exchange_init(land,ice,land_ice_boundary,dt_cpl,do_runoff,cplclock) -endif - -callfms_mpp_set_current_pelist() -callice_ocean_flux_exchange_init(time,ice,ocean,ocean_state,ice_ocean_boundary,ocean_ice_boundary,& -dt_cpl,debug_stocks,do_area_weighted_flux,ex_gas_fields_ice,ex_gas_fluxes,do_ocean,slow_ice_ocean_pelist) - -!----done---- -do_init=.false. - -endsubroutineflux_exchange_init - - -subroutineflux_check_stocks(Time,Atm,Lnd,Ice,Ocn_state) - -type(FmsTime_type),intent(in)::Time -type(atmos_data_type),intent(inout),optional::Atm -type(land_data_type),intent(inout),optional::Lnd -type(ice_data_type),intent(inout),optional::Ice -type(ocean_state_type),intent(inout),optional,pointer::Ocn_state - -real::ref_value -integer::i - - -doi=1,nelems - -if(present(atm))then -ref_value=0.0 -callatm_stock_pe(atm,index=i,value=ref_value) -if(i==istock_water.and.atm%pe)then -!decreasetheAtmstockbytheprecipadjustmenttoreflectthefactthat -!afteranupdate_atmos_upcall,theprecipwillbethatofthefuturetimestep. -!Thus,thestockcallwillrepresentthe(explicit)precipat -!thebeginningoftheprecedingtimestep,andthe(implicit)evapatthe -!endoftheprecedingtimestep -callatm_stock_integrate(atm,atm_precip_new) -ref_value=ref_value+atm_precip_new -endif - -fms_stock_constants_atm_stock(i)%q_now=ref_value -endif - -if(present(lnd))then -ref_value=0.0 -calllnd_stock_pe(lnd,index=i,value=ref_value) -fms_stock_constants_lnd_stock(i)%q_now=ref_value -endif - -if(present(ice))then -ref_value=0.0 -callice_stock_pe(ice,index=i,value=ref_value) -fms_stock_constants_ice_stock(i)%q_now=ref_value -endif - -if(present(ocn_state))then -ref_value=0.0 -callocean_stock_pe(ocn_state,index=i,value=ref_value) -fms_stock_constants_ocn_stock(i)%q_now=ref_value -endif -enddo - -callfms_stock_constants_stocks_report(time) - - -endsubroutineflux_check_stocks - -!####################################################################### - -subroutineflux_init_stocks(Time,Atm,Lnd,Ice,Ocn_state) -type(FmsTime_type),intent(in)::Time -type(atmos_data_type)::Atm -type(land_data_type)::Lnd -type(ice_data_type)::Ice -type(ocean_state_type),pointer::Ocn_state - -integer::i - -fms_stock_constants_stocks_file=fms_mpp_stdout() -!Ifthedivert_stocks_reportissettotrue,writethestockstoanewfile"stocks.out" -if(fms_mpp_pe()==fms_mpp_root_pe().and.divert_stocks_report)then -open(newunit=fms_stock_constants_stocks_file,file='stocks.out',status='replace',form='formatted') -endif - -!Initializestockvalues -doi=1,nelems -callatm_stock_pe(atm,index=i,value=fms_stock_constants_atm_stock(i)%q_start) - -if(i==istock_water.and.atm%pe)then -callatm_stock_integrate(atm,atm_precip_new) -fms_stock_constants_atm_stock(i)%q_start=fms_stock_constants_atm_stock(i)%q_start+atm_precip_new -endif - -calllnd_stock_pe(lnd,index=i,value=fms_stock_constants_lnd_stock(i)%q_start) -callice_stock_pe(ice,index=i,value=fms_stock_constants_ice_stock(i)%q_start) -callocean_stock_pe(ocn_state,index=i,value=fms_stock_constants_ocn_stock(i)%q_start) -enddo - - -callfms_stocks_report_init(time) - - -endsubroutineflux_init_stocks - -subroutinecheck_atm_grid(Atm,grid_file) -type(atmos_data_type),intent(in)::Atm -character(len=*),intent(in)::grid_file - -integer::isg,ieg,jsg,jeg -integer::isc,iec,jsc,jec -integer::isd,ied,jsd,jed -integer::isc2,iec2,jsc2,jec2 -integer::nxg,nyg,ioff,joff -integer::nlon,nlat,siz(4) -integer::i,j -type(FmsMppDomain2D)::domain2 -real,dimension(:,:),allocatable::tmpx,tmpy -real,dimension(:),allocatable::atmlonb,atmlatb -character(len=256)::atm_mosaic_file,tile_file,buffer - -integer,dimension(:),allocatable::pes -type(FmsNetcdfFile_t)::grid_file_obj,atm_mosaic_file_obj -type(FmsNetcdfDomainFile_t)::tile_file_obj -character(len=20)::dim_names(2) -integer::ppos - -callfms_mpp_domains_get_global_domain(atm%domain,isg,ieg,jsg,jeg,xsize=nxg,ysize=nyg) -callfms_mpp_domains_get_compute_domain(atm%domain,isc,iec,jsc,jec) -callfms_mpp_domains_get_data_domain(atm%domain,isd,ied,jsd,jed) - - -allocate(pes(fms_mpp_npes())) -callfms_mpp_get_current_pelist(pes) - -if(.not.fms2_io_open_file(grid_file_obj,grid_file,"read",pelist=pes))then -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -&'Erroropening'//trim(grid_file),fatal) -endif - -if(size(atm%lon_bnd,1).NE.iec-isc+2.OR.size(atm%lon_bnd,2).NE.jec-jsc+2)then -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'sizeofAtm%lon_bnddoesnotmatchtheAtmcomputationaldomain',fatal) -endif -ioff=lbound(atm%lon_bnd,1)-isc -joff=lbound(atm%lon_bnd,2)-jsc - -if(fms2_io_variable_exists(grid_file_obj,"AREA_ATM"))then!oldgrid -callfms2_io_get_variable_size(grid_file_obj,"AREA_ATM",siz(1:2)) -nlon=siz(1) -nlat=siz(2) - -if(nlon/=nxg.or.nlat/=nyg)then -if(fms_mpp_pe()==fms_mpp_root_pe())then -print*,'grid_spec.nchas',nlon,'longitudes,',nlat,'latitudes;',& -'atmospherehas',nxg,'longitudes,',& -nyg,'latitudes(seexba.datandyba.dat)' -endif -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'grid_spec.ncincompatiblewithatmosphereresolution',fatal) -endif -allocate(atmlonb(isg:ieg+1)) -allocate(atmlatb(jsg:jeg+1)) -callfms2_io_read_data(grid_file_obj,'xba',atmlonb) -callfms2_io_read_data(grid_file_obj,'yba',atmlatb) - -doi=isc,iec+1 -if(abs(atmlonb(i)-atm%lon_bnd(i+ioff,jsc+joff)*45.0/atan(1.0))>bound_tol)then -print*,'GRID_SPEC/ATMOSLONGITUDEINCONSISTENCYati=',i,':',& -atmlonb(i),atm%lon_bnd(i+ioff,jsc+joff)*45.0/atan(1.0) -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'grid_spec.ncincompatiblewithatmospherelongitudes(seexba.datandyba.dat)'& -,fatal) -endif -enddo -doj=jsc,jec+1 -if(abs(atmlatb(j)-atm%lat_bnd(isc+ioff,j+joff)*45.0/atan(1.0))>bound_tol)then -print*,'GRID_SPEC/ATMOSLATITUDEINCONSISTENCYatj=',j,':',& -atmlatb(j),atm%lat_bnd(isc+ioff,j+joff)*45.0/atan(1.0) -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'grid_spec.ncincompatiblewithatmospherelatitudes(seexba.datandyba.dat)'& -,fatal) -endif -enddo -deallocate(atmlonb,atmlatb) -elseif(fms2_io_variable_exists(grid_file_obj,"atm_mosaic_file"))then!mosaicgridfile. -callfms2_io_read_data(grid_file_obj,'atm_mosaic_file',atm_mosaic_file) - -if(.not.fms2_io_open_file(atm_mosaic_file_obj,"INPUT/"//trim(atm_mosaic_file)//"","read",pelist=pes))then -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -&'Erroropening'//trim(atm_mosaic_file),fatal) -endif - -callfms2_io_read_data(atm_mosaic_file_obj,"gridfiles",buffer,corner=1) - - -ppos=index(trim(buffer),".tile") -if(ppos>0)then -tile_file=buffer(1:ppos-1)//".nc" -else -tile_file=buffer -endif - -callfms2_io_close_file(atm_mosaic_file_obj) - -callfms_mpp_domains_copy_domain(atm%domain,domain2) -callfms_mpp_domains_create_super_grid_domain(domain2) -callfms_mpp_domains_define_io_domain(domain2,(/1,1/)) - -callfms_mpp_domains_get_compute_domain(domain2,isc2,iec2,jsc2,jec2) - -if(isc2.NE.2*isc-1.OR.iec2.NE.2*iec+1.OR.jsc2.NE.2*jsc-1.OR.jec2.NE.2*jec+1)then -callfms_mpp_error(fatal,'atm_land_ice_flux_exchange_mod:supergriddomainisnotsetproperly') -endif - - -if(.not.fms2_io_open_file(tile_file_obj,"INPUT/"//trim(tile_file)//"","read",domain2))then -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -&'Erroropening'//trim(tile_file),fatal) -endif - -callfms2_io_get_variable_size(tile_file_obj,'area',siz(1:2)) -nlon=siz(1);nlat=siz(2) -if(mod(nlon,2).NE.0)callfms_mpp_error(fatal,& -'atm_land_ice_flux_exchange_mod:atmossupergridlongitudesizecannotbedividedby2') -if(mod(nlat,2).NE.0)callfms_mpp_error(fatal,& -'atm_land_ice_flux_exchange_mod:atmossupergridlatitudesizecannotbedividedby2') -nlon=nlon/2 -nlat=nlat/2 -if(nlon/=nxg.or.nlat/=nyg)then -if(fms_mpp_pe()==fms_mpp_root_pe())then -print*,'atmospheremosaictilehas',nlon,'longitudes,',nlat,'latitudes;',& -'atmospherehas',nxg,'longitudes,',nyg,'latitudes' -endif -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'atmospheremosaictilegridfileincompatiblewithatmosphereresolution',fatal) -endif - -allocate(tmpx(isc2:iec2,jsc2:jec2),tmpy(isc2:iec2,jsc2:jec2)) - - -callfms2_io_get_variable_dimension_names(tile_file_obj,"x",dim_names) -callfms2_io_register_axis(tile_file_obj,dim_names(1),"x") -callfms2_io_register_axis(tile_file_obj,dim_names(2),"y") -callfms2_io_register_field(tile_file_obj,"x","double",dim_names) -callfms2_io_register_field(tile_file_obj,"y","double",dim_names) - - -callfms2_io_read_data(tile_file_obj,'x',tmpx) -callfms2_io_read_data(tile_file_obj,'y',tmpy) - -callfms2_io_close_file(tile_file_obj) - -callfms_mpp_domains_deallocate_domain(domain2) - -doj=jsc,jec+1 -doi=isc,iec+1 -if(abs(tmpx(2*i-1,2*j-1)-atm%lon_bnd(i+ioff,j+joff)*45.0/atan(1.0))>bound_tol)then -print*,'GRID_SPEC/ATMOSLONGITUDEINCONSISTENCYati=',i,',j=',j,':',& -tmpx(2*i-1,2*j-1),atm%lon_bnd(i+ioff,j+joff)*45.0/atan(1.0) -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'grid_spec.ncincompatiblewithatmospherelongitudes(see'//trim(tile_file)//')'& -,fatal) -endif -if(abs(tmpy(2*i-1,2*j-1)-atm%lat_bnd(i+ioff,j+joff)*45.0/atan(1.0))>bound_tol)then -print*,'GRID_SPEC/ATMOSLATITUDEINCONSISTENCYati=',i,',j=',j,':',& -tmpy(2*i-1,2*j-1),atm%lat_bnd(i+ioff,j+joff)*45.0/atan(1.0) -callfms_error_mesg('atm_land_ice_flux_exchange_mod',& -'grid_spec.ncincompatiblewithatmospherelatitudes(see'//trim(tile_file)//')'& -,fatal) -endif -enddo -enddo -deallocate(tmpx,tmpy) -else -callfms_mpp_error(fatal,& -'atm_land_ice_flux_exchange_mod:bothAREA_ATMxOCNandocn_mosaic_filedoesnotexistin'//trim(grid_file)) -endif - -callfms2_io_close_file(grid_file_obj) -endsubroutinecheck_atm_grid - -endmoduleflux_exchange_mod - - -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              diff --git a/docs/xml/full__coupler__mod_8_f90.xml b/docs/xml/full__coupler__mod_8_f90.xml deleted file mode 100644 index ae46a0c3..00000000 --- a/docs/xml/full__coupler__mod_8_f90.xml +++ /dev/null @@ -1,2269 +0,0 @@ - - - - full_coupler_mod.F90 - file_version.fh - - - - - - - - - - - - full_coupler_mod::coupler_clock_type - full_coupler_mod::coupler_components_type - full_coupler_mod::coupler_chksum_type - full_coupler_mod - iso_fortran_env - - - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -modulefull_coupler_mod - -useomp_lib!<f90moduleforopenmp - -usefms!,status_fms=>status -usefmsconstants,only:fmsconstants_init - -#ifdefuse_deprecated_io -usefms_io_mod,only:fms_io_exit -#endif - -!modelinterfacesusedtocouplethecomponentmodels: -!atmosphere,land,ice,andocean -! - -useatmos_model_mod,only:atmos_model_init,atmos_model_end -useatmos_model_mod,only:update_atmos_model_dynamics -useatmos_model_mod,only:update_atmos_model_down -useatmos_model_mod,only:update_atmos_model_up -useatmos_model_mod,only:atmos_data_type -useatmos_model_mod,only:land_ice_atmos_boundary_type -useatmos_model_mod,only:atmos_data_type_chksum -useatmos_model_mod,only:lnd_ice_atm_bnd_type_chksum -useatmos_model_mod,only:lnd_atm_bnd_type_chksum -useatmos_model_mod,only:ice_atm_bnd_type_chksum -useatmos_model_mod,only:atmos_model_restart -useatmos_model_mod,only:update_atmos_model_radiation -useatmos_model_mod,only:update_atmos_model_state - -useland_model_mod,only:land_model_init,land_model_end -useland_model_mod,only:land_data_type,atmos_land_boundary_type -useland_model_mod,only:update_land_model_fast,update_land_model_slow -useland_model_mod,only:atm_lnd_bnd_type_chksum -useland_model_mod,only:land_data_type_chksum -useland_model_mod,only:land_model_restart - -useice_model_mod,only:ice_model_init,share_ice_domains,ice_model_end,ice_model_restart -useice_model_mod,only:update_ice_model_fast,set_ice_surface_fields -useice_model_mod,only:ice_data_type,land_ice_boundary_type -useice_model_mod,only:ocean_ice_boundary_type,atmos_ice_boundary_type -useice_model_mod,only:ice_data_type_chksum,ocn_ice_bnd_type_chksum -useice_model_mod,only:atm_ice_bnd_type_chksum,lnd_ice_bnd_type_chksum -useice_model_mod,only:unpack_ocean_ice_boundary,exchange_slow_to_fast_ice -useice_model_mod,only:ice_model_fast_cleanup,unpack_land_ice_boundary -useice_model_mod,only:exchange_fast_to_slow_ice,update_ice_model_slow - -useocean_model_mod,only:update_ocean_model,ocean_model_init,ocean_model_end -useocean_model_mod,only:ocean_public_type,ocean_state_type,ice_ocean_boundary_type -useocean_model_mod,only:ocean_model_restart -useocean_model_mod,only:ocean_public_type_chksum,ice_ocn_bnd_type_chksum - -usecombined_ice_ocean_driver,only:update_slow_ice_and_ocean,ice_ocean_driver_type -usecombined_ice_ocean_driver,only:ice_ocean_driver_init,ice_ocean_driver_end -! -!flux_callstranslateinformationbetweenmodelgrids-seeflux_exchange.f90 -! - -useflux_exchange_mod,only:flux_exchange_init,gas_exchange_init,sfc_boundary_layer -useflux_exchange_mod,only:generate_sfc_xgrid,send_ice_mask_sic -useflux_exchange_mod,only:flux_down_from_atmos,flux_up_to_atmos -useflux_exchange_mod,only:flux_land_to_ice,flux_ice_to_ocean,flux_ocean_to_ice -useflux_exchange_mod,only:flux_ice_to_ocean_finish,flux_ocean_to_ice_finish -useflux_exchange_mod,only:flux_check_stocks,flux_init_stocks -useflux_exchange_mod,only:flux_ocean_from_ice_stocks,flux_ice_to_ocean_stocks -useflux_exchange_mod,only:flux_atmos_to_ocean,flux_ex_arrays_dealloc - -useatmos_tracer_driver_mod,only:atmos_tracer_driver_gather_data - -usegex_mod,only:gex_init - -useiso_fortran_env - -implicitnone -private - -public::atmos_data_type,land_data_type,ice_data_type -public::ocean_public_type,ocean_state_type -public::atmos_land_boundary_type,atmos_ice_boundary_type,land_ice_atmos_boundary_type -public::land_ice_boundary_type,ice_ocean_boundary_type,ocean_ice_boundary_type,ice_ocean_driver_type - -public::fmsconstants_init - -public::update_slow_ice_and_ocean -public::send_ice_mask_sic -public::flux_ice_to_ocean_finish,flux_ice_to_ocean_stocks,flux_ocean_from_ice_stocks - -public::atmos_model_restart,land_model_restart,ice_model_restart,ocean_model_restart - -public::atmos_data_type_chksum,lnd_ice_atm_bnd_type_chksum -public::lnd_atm_bnd_type_chksum,ice_atm_bnd_type_chksum -public::atm_lnd_bnd_type_chksum,land_data_type_chksum -public::ice_data_type_chksum,ocn_ice_bnd_type_chksum -public::atm_ice_bnd_type_chksum,lnd_ice_bnd_type_chksum -public::ocean_public_type_chksum,ice_ocn_bnd_type_chksum - -public::coupler_init,coupler_end,coupler_restart,coupler_intermediate_restart -public::coupler_summarize_timestep - -public::coupler_flux_init_finish_stocks,coupler_flux_check_stocks -public::coupler_flux_ocean_to_ice -public::coupler_unpack_ocean_ice_boundary,coupler_exchange_slow_to_fast_ice -public::coupler_exchange_fast_to_slow_ice,coupler_set_ice_surface_fields - -public::coupler_generate_sfc_xgrid -public::coupler_atmos_tracer_driver_gather_data,coupler_sfc_boundary_layer -public::coupler_update_atmos_model_dynamics,coupler_update_atmos_model_down -public::coupler_update_atmos_model_radiation,coupler_flux_down_from_atmos -public::coupler_update_land_model_fast,coupler_update_ice_model_fast -public::coupler_flux_up_to_atmos,coupler_update_atmos_model_up -public::coupler_flux_atmos_to_ocean,coupler_update_atmos_model_state - -public::coupler_update_land_model_slow,coupler_flux_land_to_ice -public::coupler_unpack_land_ice_boundary,coupler_flux_ice_to_ocean -public::coupler_update_ice_model_slow_and_stocks,coupler_update_ocean_model - -public::coupler_clock_type,coupler_components_type,coupler_chksum_type - -#include<file_version.fh> - - -integer,dimension(6),public::restart_interval=(/0,0,0,0,0,0/) - -integer,dimension(6)::current_date=(/0,0,0,0,0,0/) - - -character(len=17)::calendar='' - -logical::force_date_from_namelist=.false. - -integer,public::months=0 -integer,public::days=0 -integer,public::hours=0 -integer,public::minutes=0 -integer,public::seconds=0 -integer,public::dt_atmos=0 -integer,public::dt_cpld=0 -integer,public::atmos_npes=0 -integer,public::ocean_npes=0 -integer,public::ice_npes=0 -integer,public::land_npes=0 -integer,public::atmos_nthreads=1 -integer,public::ocean_nthreads=1 -integer,public::radiation_nthreads=1 - -logical,public::do_atmos=.true. -logical,public::do_land=.true. -logical,public::do_ice=.true. -logical,public::do_ocean=.true. -logical,public::do_flux=.true. - -logical,public::concurrent=.false. -logical,public::do_concurrent_radiation=.false. - -logical,public::use_lag_fluxes=.true. - -logical,public::concurrent_ice=.false. - -logical,public::slow_ice_with_ocean=.false. - - -logical,public::combined_ice_and_ocean=.false. - -logical,public::do_chksum=.false. -logical,public::do_endpoint_chksum=.true. -logical,public::do_debug=.false. -integer,public::check_stocks=0 -logical,public::use_hyper_thread=.false. - -namelist/coupler_nml/current_date,calendar,force_date_from_namelist,& -months,days,hours,minutes,seconds,dt_cpld,dt_atmos,& -do_atmos,do_land,do_ice,do_ocean,do_flux,& -atmos_npes,ocean_npes,ice_npes,land_npes,& -atmos_nthreads,ocean_nthreads,radiation_nthreads,& -concurrent,do_concurrent_radiation,use_lag_fluxes,& -check_stocks,restart_interval,do_debug,do_chksum,& -use_hyper_thread,concurrent_ice,slow_ice_with_ocean,& -do_endpoint_chksum,combined_ice_and_ocean - -typecoupler_clock_type -integer::initialization -integer::main -integer::generate_sfc_xgrid -integer::flux_ocean_to_ice -integer::flux_ice_to_ocean -integer::atm -integer::atmos_loop -integer::atmos_tracer_driver_gather_data -integer::sfc_boundary_layer -integer::update_atmos_model_dynamics -integer::update_atmos_model_down -integer::flux_down_from_atmos -integer::update_land_model_fast -integer::update_ice_model_fast -integer::flux_up_to_atmos -integer::update_atmos_model_up -integer::radiation -integer::concurrent_atmos -integer::update_atmos_model_state -integer::update_land_model_slow -integer::flux_land_to_ice -integer::set_ice_surface_fast -integer::update_ice_model_slow_fast -integer::set_ice_surface_slow -integer::update_ice_model_slow_slow -integer::flux_ice_to_ocean_stocks -integer::set_ice_surface_exchange -integer::update_ice_model_slow_exchange -integer::ocean -integer::flux_check_stocks -integer::intermediate_restart -integer::final_flux_check_stocks -integer::termination -integer::atmos_model_init -integer::land_model_init -integer::ice_model_init -integer::ocean_model_init -integer::flux_exchange_init -endtypecoupler_clock_type - -typecoupler_components_type -private -type(atmos_data_type),pointer::Atm -type(land_data_type),pointer::Land -type(ice_data_type),pointer::Ice -type(ocean_public_type),pointer::Ocean -type(land_ice_atmos_boundary_type),pointer::Land_ice_atmos_boundary -type(atmos_land_boundary_type),pointer::Atmos_land_boundary -type(atmos_ice_boundary_type),pointer::Atmos_ice_boundary -type(land_ice_boundary_type),pointer::Land_ice_boundary -type(ice_ocean_boundary_type),pointer::Ice_ocean_boundary -type(ocean_ice_boundary_type),pointer::Ocean_ice_boundary -contains -procedure,public::initialize_coupler_components_obj -procedure,public::get_component -endtypecoupler_components_type - -typecoupler_chksum_type -private -type(coupler_components_type),pointer::components -contains -procedure,public::initialize_coupler_chksum_obj -procedure,public::get_components_obj -procedure,public::get_atmos_ice_land_ocean_chksums -procedure,public::get_atmos_ice_land_chksums -procedure,public::get_slow_ice_chksums -procedure,public::get_ocean_chksums -procedure,public::get_coupler_chksums -endtypecoupler_chksum_type - -character(len=80)::text -character(len=48),parameter::mod_name='coupler_main_mod' - -integer::calendar_type=invalid_calendar - -integer::date_init(6)=(/0,0,0,0,0,0/) - -contains - -!####################################################################### - -subroutinecoupler_init(Atm,Ocean,Land,Ice,Ocean_state,Atmos_land_boundary,Atmos_ice_boundary,& -Ocean_ice_boundary,Ice_ocean_boundary,Land_ice_atmos_boundary,Land_ice_boundary,& -Ice_ocean_driver_CS,Ice_bc_restart,Ocn_bc_restart,ensemble_pelist,slow_ice_ocean_pelist,conc_nthreads,& -coupler_clocks,coupler_components_obj,coupler_chksum_obj,Time_step_cpld,Time_step_atmos,Time_atmos,& -Time_ocean,num_cpld_calls,num_atmos_calls,Time,Time_start,Time_end,Time_restart,Time_restart_current) - -implicitnone - -type(atmos_data_type),intent(inout)::Atm -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean -type(ocean_state_type),pointer,intent(inout)::Ocean_state -type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary -type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary -type(ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary -type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary -type(land_ice_boundary_type),intent(inout)::Land_ice_boundary -type(ice_ocean_driver_type),pointer,intent(inout)::Ice_ocean_driver_CS -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -type(FmsNetcdfDomainFile_t),pointer,dimension(:),intent(inout)::Ice_bc_restart,Ocn_bc_restart - -integer,intent(inout)::conc_nthreads -integer,allocatable,dimension(:,:),intent(inout)::ensemble_pelist -integer,allocatable,dimension(:),intent(inout)::slow_ice_ocean_pelist - -type(coupler_clock_type),intent(inout)::coupler_clocks -type(coupler_components_type),intent(inout)::coupler_components_obj -type(coupler_chksum_type),intent(inout)::coupler_chksum_obj - -type(FMSTime_type),intent(inout)::Time_step_cpld,Time_step_atmos,Time_atmos,Time_ocean -type(FMSTime_type),intent(inout)::Time,Time_start,Time_end,Time_restart,Time_restart_current - -integer,intent(inout)::num_cpld_calls,num_atmos_calls -! -!----------------------------------------------------------------------- -!localparameters -!----------------------------------------------------------------------- -! - -character(len=64),parameter::sub_name='coupler_init' -character(len=256),parameter::error_header=& -'==>Errorfrom'//trim(mod_name)//'('//trim(sub_name)//'):' -character(len=256),parameter::note_header=& -'==>Notefrom'//trim(mod_name)//'('//trim(sub_name)//'):' - -integer::ierr,io,m,i,outunit,logunit,errunit -integer::date(6) -type(fmstime_type)::run_length -character(len=9)::month -integer::pe,npes - -integer::ens_siz(6),ensemble_size -integer::ensemble_id=1 - -integer::atmos_pe_start=0,atmos_pe_end=0,& -ocean_pe_start=0,ocean_pe_end=0 -integer::n -integer::diag_model_subset=diag_all -logical::other_fields_exist -character(len=256)::err_msg -integer::date_restart(6) -character(len=64)::filename,fieldname -integer::id_restart,l -character(len=8)::walldate -character(len=10)::walltime -character(len=5)::wallzone -integer::wallvalues(8) -character(len=:),dimension(:),allocatable::restart_file -integer::time_stamp_unit -integer::ascii_unit - -type(FmsTime_type)::Time_init - -type(FmsCoupler1dBC_type),pointer::& -gas_fields_atm=>null(),&!Apointertothetypedescribingthe -!atmosphericfieldsthatwillparticipateinthegasfluxes. -gas_fields_ocn=>null(),&!Apointertothetypedescribingtheocean -!andicesurfacefieldsthatwillparticipateinthegasfluxes. -gas_fluxes=>null()!Apointertothetypedescribingthe -!atmosphere-oceangasandtracerfluxes. - -integer::num_ice_bc_restart,num_ocn_bc_restart -!----------------------------------------------------------------------- - -outunit=fms_mpp_stdout() -errunit=fms_mpp_stderr() -logunit=fms_mpp_stdlog() - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Enteringcoupler_initat'& -//trim(walldate)//''//trim(walltime) -endif - -!-----writeversiontologfile------- -callfms_write_version_number('FULL_COUPLER_MOD',version) - -!-----readnamelist------- - -read(fms_mpp_input_nml_file,coupler_nml,iostat=io) -ierr=fms_check_nml_error(io,'coupler_nml') - -!-----readdateandcalendartypefromrestartfile----- -if(fms2_io_file_exists('INPUT/coupler.res'))then -callfms2_io_ascii_read('INPUT/coupler.res',restart_file) -read(restart_file(1),*)calendar_type -read(restart_file(2),*)date_init -read(restart_file(3),*)date -deallocate(restart_file) -else -force_date_from_namelist=.true. -endif - -!-----usenamelistvalue(eithernorestartoroverrideflagon)--- - -if(force_date_from_namelist)then - -if(sum(current_date)<=0)then -callfms_error_mesg('programcoupler',& -'nonamelistvalueforbase_dateorcurrent_date',fatal) -else -date=current_date -endif - -!-----overridecalendartypewithnamelistvalue----- - -selectcase(fms_mpp_uppercase(trim(calendar))) -case('GREGORIAN') -calendar_type=gregorian -case('JULIAN') -calendar_type=julian -case('NOLEAP') -calendar_type=noleap -case('THIRTY_DAY') -calendar_type=thirty_day_months -case('NO_CALENDAR') -calendar_type=no_calendar -endselect - -endif - -callfms_time_manager_set_calendar_type(calendar_type,err_msg) -if(err_msg/='')then -callfms_mpp_error(fatal,'ERRORincoupler_init:'//trim(err_msg)) -endif - -if(concurrent.AND..NOT.(use_lag_fluxes.OR.concurrent_ice))& -callfms_mpp_error(warning,'coupler_init:youhavesetconcurrent=TRUE,& -&use_lag_fluxes=FALSE,andconcurrent_ice=FALSE& -&incoupler_nml.Whennotusinglagfluxes,components& -&willsynchronizeattwopoints,andthusrunserially.') -if(concurrent_ice.AND..NOT.slow_ice_with_ocean)callfms_mpp_error(warning,& -'coupler_init:concurrent_iceistrue,butslowice_with_oceanis& -&falseincoupler_nml.Thesetwoflagsshouldbothbetruetoavoid& -&effectivelyserializingtherun.') -if(use_lag_fluxes.AND.concurrent_ice)callfms_mpp_error(warning,& -'coupler_init:use_lag_fluxesandconcurrent_icearebothtrue.& -&Thesetwocouplingoptionsareintendedtobeexclusive.') - -!Checkwiththeensemble_managermoduleforthesizeofensemble -!andPEcountsforeachmemberoftheensemble. -! -!NOTE:ensemble_manager_initrenamesalltheoutputfiles(restartanddiagnostics) -!toshowwhichensemblemembertheyarecomingfrom. -!TherealsoneedtoberestartfilesforeachmemberoftheensembleinINPUT. -! -!NOTE:iftheensemble_size=1theinput/outputfileswillnotberenamed. -! - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startinginitializingensemble_managerat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_ensemble_manager_init()!initpelistsforensembles -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingensemble_managerat'& -//trim(walldate)//''//trim(walltime) -endif -ens_siz=fms_ensemble_manager_get_ensemble_size() -ensemble_size=ens_siz(1) -npes=ens_siz(2) - -!CheckfortheconsistencyofPEcounts -if(concurrent)then -!atmos_npes+ocean_npesmustequalnpes -if(atmos_npes.EQ.0)atmos_npes=npes-ocean_npes -if(ocean_npes.EQ.0)ocean_npes=npes-atmos_npes -!bothmustnowbenon-zero -if(atmos_npes.EQ.0.OR.ocean_npes.EQ.0)& -callfms_mpp_error(fatal,'coupler_init:atmos_npesorocean_npesmustbespecifiedforconcurrentcoupling.') -if(atmos_npes+ocean_npes.NE.npes)& -callfms_mpp_error(fatal,'coupler_init:atmos_npes+ocean_npesmustequalnpesforconcurrentcoupling.') -else!serialtimestepping -if((atmos_npes.EQ.0).and.(do_atmos.or.do_land.or.do_ice))atmos_npes=npes -if((ocean_npes.EQ.0).and.(do_ocean))ocean_npes=npes -if(max(atmos_npes,ocean_npes).EQ.npes)then!overlappingpelists -!donothing -else!disjointpelists -if(atmos_npes+ocean_npes.NE.npes)callfms_mpp_error(fatal,& -'coupler_init:atmos_npes+ocean_npesmustequalnpesforserialcouplingondisjointpelists.') -endif -endif - -if(land_npes==0)land_npes=atmos_npes -if(land_npes>atmos_npes)callfms_mpp_error(fatal,'coupler_init:land_npes>atmos_npes') - -if(ice_npes==0)ice_npes=atmos_npes -if(ice_npes>atmos_npes)callfms_mpp_error(fatal,'coupler_init:ice_npes>atmos_npes') - -allocate(atm%pelist(atmos_npes)) -allocate(ocean%pelist(ocean_npes)) -allocate(land%pelist(land_npes)) -allocate(ice%fast_pelist(ice_npes)) - -!Setupanddeclarealltheneededpelists -callfms_ensemble_manager_ensemble_pelist_setup(concurrent,atmos_npes,ocean_npes,land_npes,ice_npes,& -atm%pelist,ocean%pelist,land%pelist,ice%fast_pelist) - -!setupaffinitiesbasedonthreads - -ensemble_id=fms_ensemble_manager_get_ensemble_id() - -if(allocated(ensemble_pelist))callfms_mpp_error(fatal,'ensemble_pelistunexpectedlyhasalreadybeenallocated') -allocate(ensemble_pelist(1:ensemble_size,1:npes)) -callfms_ensemble_manager_get_ensemble_pelist(ensemble_pelist) - -atm%pe=any(atm%pelist.EQ.fms_mpp_pe()) -ocean%is_ocean_pe=any(ocean%pelist.EQ.fms_mpp_pe()) -land%pe=any(land%pelist.EQ.fms_mpp_pe()) - -ice%shared_slow_fast_PEs=.not.slow_ice_with_ocean -!However,ifusingadataatmosphereandslow_ice_with_oceanthenshared_slow_fast_PEs -!willbetrue.Inthiscase,allprocesorsdotheocean,slowice,andfastice. -if(slow_ice_with_ocean.and.(.not.do_atmos))ice%shared_slow_fast_PEs=.true. -!Thisiswheredifferentsettingswouldbeappliedifthefastandslow -!iceoccurredondifferentPEs. -if(do_atmos)then -if(ice%shared_slow_fast_PEs)then -!FastandslowiceprocessesoccuronthesamePEs. -allocate(ice%pelist(ice_npes)) -ice%pelist(:)=ice%fast_pelist(:) -allocate(ice%slow_pelist(ice_npes)) -ice%slow_pelist(:)=ice%fast_pelist(:) -if(concurrent)then -if(.not.allocated(slow_ice_ocean_pelist))then -allocate(slow_ice_ocean_pelist(ocean_npes+ice_npes)) -else -callfms_mpp_error(fatal,'allocationofslow_ice_ocean_pelistunexpectedlyhasalreadybeenallocated') -endif -slow_ice_ocean_pelist(1:ice_npes)=ice%slow_pelist(:) -slow_ice_ocean_pelist(ice_npes+1:ice_npes+ocean_npes)=ocean%pelist(:) -else -if(ice_npes.GE.ocean_npes)then -allocate(slow_ice_ocean_pelist(ice_npes)) -slow_ice_ocean_pelist(:)=ice%slow_pelist(:) -else -allocate(slow_ice_ocean_pelist(ocean_npes)) -slow_ice_ocean_pelist(:)=ocean%pelist(:) -endif -endif -else -!FasticeprocessesoccurasubsetoftheatmosphericPEs,while -!slowiceprocessesoccurontheoceanPEs. -allocate(ice%slow_pelist(ocean_npes)) -ice%slow_pelist(:)=ocean%pelist(:) -allocate(ice%pelist(ice_npes+ocean_npes)) -!SetIce%pelist()tobetheunionofIce%fast_pelistandIce%slow_pelist. -ice%pelist(1:ice_npes)=ice%fast_pelist(:) -ice%pelist(ice_npes+1:ice_npes+ocean_npes)=ocean%pelist(:) -allocate(slow_ice_ocean_pelist(ocean_npes)) -slow_ice_ocean_pelist(:)=ocean%pelist(:) -endif -elseif(.not.do_atmos)then -!Inthenoatmoscases,shared_slow_fast_PEsisnotenoughtodistinguish -!theslowandfasticeprocesorlayout;slow_ice_with_oceanshouldbeusedinstead. -if(slow_ice_with_ocean)then -!dataatmos,usingcombinedice-oceandriver -!BothfasticeandslowiceprocessesoccuronthesamePEs, -!sincetheAtmosandOceanPEsareshared -allocate(ice%slow_pelist(ocean_npes)) -ice%slow_pelist(:)=ocean%pelist(:) -allocate(ice%pelist(ice_npes)) -ice%pelist(1:ice_npes)=ice%fast_pelist(:) -allocate(slow_ice_ocean_pelist(ocean_npes)) -slow_ice_ocean_pelist(:)=ocean%pelist(:) -else -!dataatmos,notusingcombinedice-oceandriver -allocate(ice%pelist(ice_npes)) -ice%pelist(:)=ice%fast_pelist(:) -allocate(ice%slow_pelist(ice_npes)) -ice%slow_pelist(:)=ice%fast_pelist(:) -if(ice_npes.GE.ocean_npes)then -allocate(slow_ice_ocean_pelist(ice_npes)) -slow_ice_ocean_pelist(:)=ice%slow_pelist(:) -else -allocate(slow_ice_ocean_pelist(ocean_npes)) -slow_ice_ocean_pelist(:)=ocean%pelist(:) -endif -endif -endif -ice%fast_ice_pe=any(ice%fast_pelist(:).EQ.fms_mpp_pe()) -ice%slow_ice_pe=any(ice%slow_pelist(:).EQ.fms_mpp_pe()) -ice%pe=ice%fast_ice_pe.OR.ice%slow_ice_pe -callfms_mpp_declare_pelist(slow_ice_ocean_pelist) -!---dynamicthreadingturnedoffwhenaffinityplacementisinuse -!$callomp_set_dynamic(.FALSE.) -!---nestedOpenMPenabledforOpenMPconcurrentcomponents -!$callomp_set_max_active_levels(3) - -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -!$if(.not.do_concurrent_radiation)radiation_nthreads=atmos_nthreads -!$if(do_concurrent_radiation)conc_nthreads=2 -!---settingaffinity -if(do_concurrent_radiation)then -!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads+radiation_nthreads) -!$callomp_set_num_threads(atmos_nthreads+radiation_nthreads) -else -!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads) -!$callomp_set_num_threads(atmos_nthreads) -endif -endif - -callcoupler_set_clock_ids(coupler_clocks,atm,land,ice,ocean,ensemble_pelist,& -slow_ice_ocean_pelist,ensemble_id) - -!WriteoutmessagesonrootPEs -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -write(text,'(a,2i6,a,i2.2)')'AtmosPErange:',atm%pelist(1),atm%pelist(atmos_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -if(ocean_npes.gt.0)then -write(text,'(a,2i6,a,i2.2)')'OceanPErange:',ocean%pelist(1),ocean%pelist(ocean_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -else -write(text,'(a,i2.2)')'OceanPErangeisnotset(do_ocean=.false.andconcurrent=.false.)forens_',& -ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -endif -write(text,'(a,2i6,a,i2.2)')'LandPErange:',land%pelist(1),land%pelist(land_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -if(.not.concurrent_ice)then -write(text,'(a,2i6,a,i2.2)')'IcePErange:',ice%pelist(1),ice%pelist(ice_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -elseif(concurrent_ice)then -if(do_atmos)then -write(text,'(a,2i6,a,i2.2)')'IcePErange:',ice%pelist(1),ice%pelist(ice_npes+ocean_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -elseif((.not.do_atmos))then -write(text,'(a,2i6,a,i2.2)')'IcePErange:',ice%pelist(1),ice%pelist(ice_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -endif -callfms_mpp_error(note,'coupler_init:RunningwithCONCURRENTICEcoupling.') -write(text,'(a,2i6,a,i2.2)')'slowIcePErange:',ice%slow_pelist(1),ice%slow_pelist(ocean_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -write(text,'(a,2i6,a,i2.2)')'fastIcePErange:',ice%fast_pelist(1),ice%fast_pelist(ice_npes),& -'ens_',ensemble_id -callfms_mpp_error(note,'coupler_init:'//trim(text)) -endif - -if(concurrent)then -callfms_mpp_error(note,'coupler_init:RunningwithCONCURRENTcoupling.') - -write(logunit,'(a)')'Usingconcurrentcoupling...' -write(logunit,'(a,4i6)')& -'atmos_pe_start,atmos_pe_end,ocean_pe_start,ocean_pe_end=',& -atm%pelist(1),atm%pelist(atmos_npes),ocean%pelist(1),ocean%pelist(ocean_npes) -else -callfms_mpp_error(note,'coupler_init:RunningwithSERIALcoupling.') -endif -if(use_lag_fluxes)then -callfms_mpp_error(note,'coupler_init:SendingLAGfluxestoocean.') -else -callfms_mpp_error(note,'coupler_init:Sendingmostrecentfluxestoocean.') -endif -if(concurrent_ice)callfms_mpp_error(note,& -'coupler_init:usinglaggedslow-icecouplingmode.') -if(combined_ice_and_ocean)callfms_mpp_error(note,& -'coupler_init:advancingtheoceanandslow-iceinasinglecall.') -if(combined_ice_and_ocean.and..not.concurrent_ice)callfms_mpp_error(fatal,& -'coupler_init:concurrent_icemustbetrueifcombined_ice_and_oceanistrue.') -if(combined_ice_and_ocean.and..not.slow_ice_with_ocean)callfms_mpp_error(fatal,& -'coupler_init:slow_ice_with_oceanmustbetrueifcombined_ice_and_oceanistrue.') -endif - -!-----writenamelisttologfile----- -if(fms_mpp_pe()==fms_mpp_root_pe())write(logunit,nml=coupler_nml) - -!-----writecurrent/initialdateactuallyusedtologfilefile----- - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())& -write(logunit,16)date(1),trim(fms_time_manager_month_name(date(2))),date(3:6) -16format('currentdateused=',i4,1x,a,2i3,2(':',i2.2),'gmt') - -!----------------------------------------------------------------------- -!------initializediagnosticsmanager------ - -!jwdForkhereissomewhatdangerous.Itrelieson"nosideeffects"from -!diag_manager_init.diag_manager_initorthissectionshouldbe -!re-architectedtoguaranteethisorremovethisassumption. -!Forinstance,whatfollowsassumesthatget_base_datehasthesame -!timeforbothAtmandOceanpes.Whilethisshouldbethecase,the -!possibleerrorconditionneedstobechecked - -diag_model_subset=diag_all -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -if(atmos_npes/=npes)diag_model_subset=diag_other!changediag_model_subsetfromDIAG_ALL -elseif(ocean%is_ocean_pe)then!Errorcheckabovefordisjointpelistsshouldcatchanyproblem -callfms_mpp_set_current_pelist(ocean%pelist) -!TheFMSdiagmanagerhasaconventionthatsegregatesfileswith"ocean" -!intheirnamesfromtheotherfilestohandlelongdiagtables.This -!doesnotworkiftheiceisontheoceanPEs. -if((ocean_npes/=npes).and..not.slow_ice_with_ocean)& -diag_model_subset=diag_ocean!changediag_model_subsetfromDIAG_ALL -endif -if(fms_mpp_pe()==fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializediag_managerat'& -//trim(walldate)//''//trim(walltime) -endif -!initializediag_managerforprocessorsubsetoutput -callfms_diag_init(diag_model_subset=diag_model_subset,time_init=date) -callfms_memutils_print_memuse_stats('diag_manager_init') -if(fms_mpp_pe()==fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingdiag_managerat'& -//trim(walldate)//''//trim(walltime) -endif -!----------------------------------------------------------------------- -!------resetpelistto"fullgroup"------ - -callfms_mpp_set_current_pelist() -!-----alwaysoverrideinitial/basedatewithdiag_managervalue----- - -callfms_diag_get_base_date(date_init(1),date_init(2),date_init(3),& -date_init(4),date_init(5),date_init(6)) - -!-----usecurrentdateifnobasedate------ - -if(date_init(1)==0)date_init=date - -!-----setinitialandcurrenttimetypes------ - -time_init=fms_time_manager_set_date(date_init(1),date_init(2),date_init(3),& -date_init(4),date_init(5),date_init(6)) - -time=fms_time_manager_set_date(date(1),date(2),date(3),& -date(4),date(5),date(6)) - -time_start=time - -!-----computetheendingtime----- - -time_end=time -dom=1,months -time_end=time_end+fms_time_manager_set_time(0,fms_time_manager_days_in_month(time_end)) -enddo -time_end=time_end+fms_time_manager_set_time(hours*3600+minutes*60+seconds,days) -!NeedtopassTime_endintodiag_managerformultiplethreadcase. -callfms_diag_set_time_end(time_end) - -run_length=time_end-time - -!---getthetimethatlastintermediaterestartfilewaswrittenout. -if(fms2_io_file_exists('INPUT/coupler.intermediate.res'))then -callfms2_io_ascii_read('INPUT/coupler.intermediate.res',restart_file) -read(restart_file(1),*)date_restart -deallocate(restart_file) -else -date_restart=date -endif - -time_restart_current=time -if(all(restart_interval==0))then -time_restart=fms_time_manager_increment_date(time_end,0,0,10,0,0,0)!nointermediaterestart -else -time_restart=fms_time_manager_set_date(date_restart(1),date_restart(2),date_restart(3),& -date_restart(4),date_restart(5),date_restart(6)) -time_restart=fms_time_manager_increment_date(time_restart,restart_interval(1),restart_interval(2),& -restart_interval(3),restart_interval(4),restart_interval(5),restart_interval(6)) -if(time_restart<=time)callfms_mpp_error(fatal,& -'==>Errorfromprogramcoupler:Thefirstintermediaterestarttimeisnolargerthanthestarttime') -endif - -!----------------------------------------------------------------------- -!-----writetimestamps(forstarttimeandendtime)------ - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())& -open(newunit=time_stamp_unit,file='time_stamp.out',status='replace',form='formatted') - -month=fms_time_manager_month_name(date(2)) -if(fms_mpp_pe().EQ.fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) - -callfms_time_manager_get_date(time_end,date(1),date(2),date(3),& -date(4),date(5),date(6)) -month=fms_time_manager_month_name(date(2)) -if(fms_mpp_pe().EQ.fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())close(time_stamp_unit) - -20format(i6,5i4,2x,a3) - -!----------------------------------------------------------------------- -!-----computethetimesteps------ - -time_step_cpld=fms_time_manager_set_time(dt_cpld,0) -time_step_atmos=fms_time_manager_set_time(dt_atmos,0) - -!-----determinemaximumnumberofiterationsperloop------ - -num_cpld_calls=run_length/time_step_cpld -num_atmos_calls=time_step_cpld/time_step_atmos - -!----------------------------------------------------------------------- -!-------------------someerrorchecks--------------------------------- - -!-----initialtimecannotbegreaterthancurrenttime------- - -if(time_init>time)callfms_error_mesg('programcoupler',& -'initialtimeisgreaterthancurrenttime',fatal) - -!-----makesurerunlengthisamultipleofoceantimestep------ - -if(num_cpld_calls*time_step_cpld/=run_length)& -callfms_error_mesg('programcoupler',& -'runlengthmustbemultipleofcoupledtimestep',fatal) - -!----makesurecpldtimestepisamultipleofatmostimestep---- - -if(num_atmos_calls*time_step_atmos/=time_step_cpld)& -callfms_error_mesg('programcoupler',& -'cpldtimestepisnotamultipleoftheatmostimestep',fatal) - -! -!Initializethetracermanager.ThisneedstobedoneonallPEs, -!beforetheindividualmodelsareinitialized. -! - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializetracer_managerat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_tracer_manager_init() -!Initializethegas-exchangefluxessothisinformationcanbemade -!availabletotheindividualcomponents. -callgas_exchange_init(gas_fields_atm,gas_fields_ocn,gas_fluxes) -callfms_coupler_types_init() -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingtracer_managerat'& -//trim(walldate)//''//trim(walltime) -endif - -!Initializeatm/landexchange(notfortracers) -callgex_init() - -!----------------------------------------------------------------------- -!------initializecomponentmodels------ -!------gridinfonowcomesfromgrid_specfile - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Beginningtoinitializecomponentmodelsat'& -//trim(walldate)//''//trim(walltime) -endif -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -!----atmosphere---- -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializeatmosphericmodelat'& -//trim(walldate)//''//trim(walltime) -endif - -callfms_mpp_clock_begin(coupler_clocks%atmos_model_init) -callatmos_model_init(atm,time_init,time,time_step_atmos,& -do_concurrent_radiation) -callfms_mpp_clock_end(coupler_clocks%atmos_model_init) - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingatmosphericmodelat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_memutils_print_memuse_stats('atmos_model_init') -callfms_data_override_init(atm_domain_in=atm%domain) -endif -!----land---------- -if(land%pe)then -callfms_mpp_set_current_pelist(land%pelist) -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializelandmodelat'& -//trim(walldate)//''//trim(walltime) -endif - -callfms_mpp_clock_begin(coupler_clocks%land_model_init) -callland_model_init(atmos_land_boundary,land,time_init,time,& -time_step_atmos,time_step_cpld) -callfms_mpp_clock_end(coupler_clocks%land_model_init) - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializinglandmodelat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_memutils_print_memuse_stats('land_model_init') -callfms_data_override_init(land_domain_in=land%domain) -#ifndef_USE_LEGACY_LAND_ -callfms_data_override_init(land_domainug_in=land%ug_domain) -#endif -endif -!----ice----------- -if(ice%pe)then!ThisoccursforallfastorslowicePEs. -if(ice%fast_ice_pe)then -callfms_mpp_set_current_pelist(ice%fast_pelist) -elseif(ice%slow_ice_pe)then -callfms_mpp_set_current_pelist(ice%slow_pelist) -else -callfms_mpp_error(fatal,"AllIce%pesmustbeapartofIce%fast_ice_peorIce%slow_ice_pe") -endif -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializeicemodelat'& -//trim(walldate)//''//trim(walltime) -endif - -callfms_mpp_clock_begin(coupler_clocks%ice_model_init) -callice_model_init(ice,time_init,time,time_step_atmos,& -time_step_cpld,verona_coupler=.false.,& -concurrent_ice=concurrent_ice,& -gas_fluxes=gas_fluxes,gas_fields_ocn=gas_fields_ocn) -callfms_mpp_clock_end(coupler_clocks%ice_model_init) - -!ThismustbecalledusingtheunionoftheicePE_lists. -callfms_mpp_set_current_pelist(ice%pelist) -callshare_ice_domains(ice) - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingicemodelat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_memutils_print_memuse_stats('ice_model_init') -if(ice%fast_ice_pe)then -callfms_mpp_set_current_pelist(ice%fast_pelist) -callfms_data_override_init(ice_domain_in=ice%domain) -endif -endif - -!----ocean--------- -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializeoceanmodelat'& -//trim(walldate)//''//trim(walltime) -endif - -callfms_mpp_clock_begin(coupler_clocks%ocean_model_init) -callocean_model_init(ocean,ocean_state,time_init,time,& -gas_fields_ocn=gas_fields_ocn) -callfms_mpp_clock_end(coupler_clocks%ocean_model_init) - -if(concurrent)then -callfms_mpp_set_current_pelist(ocean%pelist) -!$callfms_affinity_set('OCEAN',use_hyper_thread,ocean_nthreads) -!$callomp_set_num_threads(ocean_nthreads) -else -ocean_nthreads=atmos_nthreads -!---omp_num_threadshasalreadybeensetbytheAtmos-pes,butsetagaintoensure -!$callomp_set_num_threads(ocean_nthreads) -endif - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingoceanmodelat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_memutils_print_memuse_stats('ocean_model_init') -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializedata_overrideat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_data_override_init(ocean_domain_in=ocean%domain) -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingdata_overrideat'& -//trim(walldate)//''//trim(walltime) -endif - -if(combined_ice_and_ocean)& -callice_ocean_driver_init(ice_ocean_driver_cs,time_init,time) - -endif!endofOcean%is_ocean_pe - -!--------------------------------------------- -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finishedinitializingcomponentmodelsat'& -//trim(walldate)//''//trim(walltime) -endif -callfms_mpp_set_current_pelist(ensemble_pelist(ensemble_id,:)) - -callfms_mpp_domains_broadcast_domain(ice%domain) -callfms_mpp_domains_broadcast_domain(ice%slow_domain_NH) -callfms_mpp_domains_broadcast_domain(ocean%domain) -!----------------------------------------------------------------------- -!----initializefluxexchangemodule---- -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Startingtoinitializeflux_exchangeat'& -//trim(walldate)//''//trim(walltime) -endif - -callfms_mpp_clock_begin(coupler_clocks%flux_exchange_init) -if(do_flux)callflux_exchange_init(time,atm,land,ice,ocean,ocean_state,& -atmos_ice_boundary,land_ice_atmos_boundary,& -land_ice_boundary,ice_ocean_boundary,ocean_ice_boundary,& -do_ocean,slow_ice_ocean_pelist,dt_atmos=dt_atmos,dt_cpld=dt_cpld) -callfms_mpp_set_current_pelist(ensemble_pelist(ensemble_id,:)) -callfms_mpp_clock_end(coupler_clocks%flux_exchange_init) - -callfms_mpp_set_current_pelist() -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Finsihedinitializingflux_exchangeat'& -//trim(walldate)//''//trim(walltime) -endif - -time_atmos=time -time_ocean=time - -! -!readinextrafieldsfortheair-seagasfluxes -! -if(ice%slow_ice_pe)then -callfms_mpp_set_current_pelist(ice%slow_pelist) - -callfms_coupler_type_register_restarts(ice%ocean_fluxes,ice_bc_restart,& -num_ice_bc_restart,ice%slow_domain_NH,to_read=.true.,ocean_restart=.false.,directory="INPUT/") - -!Restorethefieldsfromtherestartfiles -dol=1,num_ice_bc_restart -if(fms2_io_check_if_open(ice_bc_restart(l)))callfms2_io_read_restart(ice_bc_restart(l)) -enddo - -!Checkwhethertherestartswerereadsuccessfully. -callfms_coupler_type_restore_state(ice%ocean_fluxes,use_fms2_io=.true.,& -test_by_field=.true.) - -dol=1,num_ice_bc_restart -if(fms2_io_check_if_open(ice_bc_restart(l)))callfms2_io_close_file(ice_bc_restart(l)) -enddo -endif - -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) - -callfms_coupler_type_register_restarts(ocean%fields,ocn_bc_restart,& -num_ocn_bc_restart,ocean%domain,to_read=.true.,ocean_restart=.true.,directory="INPUT/") - -!Restorethefieldsfromtherestartfiles -dol=1,num_ocn_bc_restart -if(fms2_io_check_if_open(ocn_bc_restart(l)))callfms2_io_read_restart(ocn_bc_restart(l)) -enddo - -!Checkwhethertherestartswerereadsuccessfully. -callfms_coupler_type_restore_state(ocean%fields,use_fms2_io=.true.,& -test_by_field=.true.) - -dol=1,num_ocn_bc_restart -if(fms2_io_check_if_open(ocn_bc_restart(l)))callfms2_io_close_file(ocn_bc_restart(l)) -enddo -endif - -callfms_mpp_set_current_pelist() - -!----------------------------------------------------------------------- -!----openandclosedummyfileinrestartdirtocheckifdirexists-- - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -open(newunit=ascii_unit,file='RESTART/file',status='replace',form='formatted') -close(ascii_unit,status="delete") -endif - -!Calltodaig_grid_endtofreeupmemoryusedduringregional -!outputsetup -CALLfms_diag_grid_end() - -!----------------------------------------------------------------------- - -callcoupler_components_obj%initialize_coupler_components_obj(atm,land,ice,ocean,land_ice_atmos_boundary,& -atmos_land_boundary,atmos_ice_boundary,land_ice_boundary,ice_ocean_boundary,ocean_ice_boundary) - -callcoupler_chksum_obj%initialize_coupler_chksum_obj(coupler_components_obj) - -if(do_endpoint_chksum)then -callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('coupler_init+',0) -if(ice%slow_ice_PE)then -callfms_mpp_set_current_pelist(ice%slow_pelist) -callcoupler_chksum_obj%get_slow_ice_chksums('coupler_init+',0) -endif -endif - -callfms_mpp_set_current_pelist() -callfms_memutils_print_memuse_stats('coupler_init') - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -calldate_and_time(walldate,walltime,wallzone,wallvalues) -write(errunit,*)'Exitingcoupler_initat'& -//trim(walldate)//''//trim(walltime) -endif - -endsubroutinecoupler_init - -!####################################################################### - -subroutineinitialize_coupler_components_obj(this,Atm,Land,Ice,Ocean,Land_ice_atmos_boundary,& -Atmos_land_boundary,Atmos_ice_boundary,Land_ice_boundary,Ice_ocean_boundary,Ocean_ice_boundary) - -implicitnone -class(coupler_components_type),intent(inout)::this -type(atmos_data_type),target,intent(in)::Atm -type(land_data_type),target,intent(in)::Land -type(ice_data_type),target,intent(in)::Ice -type(ocean_public_type),target,intent(in)::Ocean -type(land_ice_atmos_boundary_type),target,intent(in)::Land_ice_atmos_boundary -type(atmos_land_boundary_type),target,intent(in)::Atmos_land_boundary -type(atmos_ice_boundary_type),target,intent(in)::Atmos_ice_boundary -type(land_ice_boundary_type),target,intent(in)::Land_ice_boundary -type(ice_ocean_boundary_type),target,intent(in)::Ice_ocean_boundary -type(ocean_ice_boundary_type),target,intent(in)::Ocean_ice_boundary - -this%Atm=>atm -this%Land=>land -this%Ice=>ice -this%Ocean=>ocean -this%Land_ice_atmos_boundary=>land_ice_atmos_boundary -this%Atmos_land_boundary=>atmos_land_boundary -this%Atmos_ice_boundary=>atmos_ice_boundary -this%Land_ice_boundary=>land_ice_boundary -this%Ice_ocean_boundary=>ice_ocean_boundary -this%Ocean_ice_boundary=>ocean_ice_boundary - -endsubroutineinitialize_coupler_components_obj - -subroutineget_component(this,retrieve_component) - -implicitnone -class(coupler_components_type),intent(in)::this -class(*),intent(out)::retrieve_component - -selecttype(retrieve_component) -typeis(atmos_data_type);retrieve_component=this%Atm -typeis(land_data_type);retrieve_component=this%Land -typeis(ice_data_type);retrieve_component=this%Ice -typeis(ocean_public_type);retrieve_component=this%Ocean -typeis(land_ice_atmos_boundary_type);retrieve_component=this%Land_ice_atmos_boundary -typeis(atmos_land_boundary_type);retrieve_component=this%Atmos_land_boundary -typeis(atmos_ice_boundary_type);retrieve_component=this%Atmos_ice_boundary -typeis(land_ice_boundary_type);retrieve_component=this%Land_ice_boundary -typeis(ice_ocean_boundary_type);retrieve_component=this%Ice_ocean_boundary -typeis(ocean_ice_boundary_type);retrieve_component=this%Ocean_ice_boundary -classdefault -callfms_mpp_error(fatal,"failureretrievingcomponentincoupler_components_typeobject,& -cannotrecognizethetypeofrequestedcomponent") -endselect - -endsubroutineget_component - -subroutineinitialize_coupler_chksum_obj(this,components_obj) - -implicitnone -class(coupler_chksum_type),intent(inout)::this -type(coupler_components_type),intent(in),target::components_obj - -this%components=>components_obj - -endsubroutineinitialize_coupler_chksum_obj - -subroutineget_components_obj(this,components_obj) - -implicitnone - -class(coupler_chksum_type),intent(in)::this -type(coupler_components_type),intent(out)::components_obj - -components_obj=this%components - -endsubroutineget_components_obj - -subroutinecoupler_end(Atm,Land,Ice,Ocean,Ocean_state,Land_ice_atmos_boundary,Atmos_ice_boundary,& -Atmos_land_boundary,Ice_ocean_boundary,Ocean_ice_boundary,Ocn_bc_restart,& -Ice_bc_restart,current_timestep,Time_current,Time_start,Time_end,Time_restart_current,& -coupler_chksum_obj,coupler_clocks) - -implicitnone - -type(atmos_data_type),intent(inout)::Atm -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean -type(ocean_state_type),pointer,intent(inout)::Ocean_state -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary -type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary -type(ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary -type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary -type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ocn_bc_restart -type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ice_bc_restart -integer,intent(in)::current_timestep -type(coupler_clock_type),intent(in)::coupler_clocks -type(coupler_chksum_type),intent(in)::coupler_chksum_obj - -type(FmsTime_type),intent(in)::Time_current -type(FmsTime_type),intent(in)::Time_start -type(FmsTime_type),intent(in)::Time_end -type(FmsTime_type),intent(in)::Time_restart_current - -callfms_mpp_clock_begin(coupler_clocks%termination) - -if(do_chksum)callcoupler_chksum_obj%get_coupler_chksums('coupler_end-',current_timestep) -if(do_endpoint_chksum)then -callcoupler_chksum_obj%get_atmos_ice_land_ocean_chksums('coupler_end',0) -if(ice%slow_ice_PE)then -callfms_mpp_set_current_pelist(ice%slow_pelist) -callcoupler_chksum_obj%get_slow_ice_chksums('coupler_end',0) -endif -endif -callfms_mpp_set_current_pelist() - -!-----checktimeversusexpectedendingtime---- - -if(time_current/=time_end)callfms_error_mesg('programcoupler',& -'finaltimedoesnotmatchexpectedendingtime',warning) - -!----------------------------------------------------------------------- -!thecalltofms_io_exithasbeenmovedhere -!thiswillworkforserialcodeorconcurrent(disjointpelists) -!butwillfailonoverlappingbutunequalpelists -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) -callocean_model_end(ocean,ocean_state,time_current) -endif -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -callatmos_model_end(atm) -endif -if(land%pe)then -callfms_mpp_set_current_pelist(land%pelist) -callland_model_end(atmos_land_boundary,land) -endif -if(ice%pe)then!ThishappensonallfastorslowicePEs. -if(ice%slow_ice_PE)then -callfms_mpp_set_current_pelist(ice%slow_pelist) -else!ThismustbeafasticePE. -callfms_mpp_set_current_pelist(ice%fast_pelist) -endif -callice_model_end(ice) -endif - -!-----writerestartfile------ -callcoupler_restart(atm,ice,ocean,ocn_bc_restart,ice_bc_restart,& -time_current,time_restart_current,time_start) - -callfms_diag_end(time_current) -#ifdefuse_deprecated_io -callfms_io_exit -#endif - -callfms_mpp_set_current_pelist() -callfms_mpp_clock_end(coupler_clocks%termination) - -!----------------------------------------------------------------------- - -endsubroutinecoupler_end - -subroutineadd_domain_dimension_data(fileobj) -type(FmsNetcdfDomainFile_t)::fileobj -integer,dimension(:),allocatable::buffer -integer::is,ie - -callfms2_io_get_global_io_domain_indices(fileobj,"xaxis_1",is,ie,indices=buffer) -callfms2_io_write_data(fileobj,"xaxis_1",buffer) -deallocate(buffer) - -callfms2_io_get_global_io_domain_indices(fileobj,"yaxis_1",is,ie,indices=buffer) -callfms2_io_write_data(fileobj,"yaxis_1",buffer) -deallocate(buffer) - -endsubroutineadd_domain_dimension_data - - -subroutinecoupler_restart(Atm,Ice,Ocean,Ocn_bc_restart,Ice_bc_restart,& -Time_current,Time_restart_current,Time_start,time_stamp) - -implicitnone - -type(atmos_data_type),intent(inout)::Atm -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean - -type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ocn_bc_restart -type(FmsNetcdfDomainFile_t),dimension(:),pointer,intent(inout)::Ice_bc_restart -type(FmsTime_type),intent(in)::Time_current -type(FmsTime_type),intent(in)::Time_restart_current -type(FmsTime_type),intent(in)::Time_start -character(len=*),intent(in),optional::time_stamp - -character(len=128)::file_run,file_res - -integer::yr,mon,day,hr,min,sec,date(6),n -integer::num_ice_bc_restart,num_ocn_bc_restart -integer::restart_unit - -callfms_mpp_set_current_pelist() - -!writerestartfile -if(present(time_stamp))then -file_run='RESTART/'//trim(time_stamp)//'.coupler.res' -file_res='RESTART/'//trim(time_stamp)//'.coupler.intermediate.res' -else -file_run='RESTART/coupler.res' -file_res='RESTART/coupler.intermediate.res' -endif - -!-----computecurrentdate------ -callfms_time_manager_get_date(time_current,date(1),date(2),date(3),date(4),date(5),date(6)) -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -open(newunit=restart_unit,file=file_run,status='replace',form='formatted') -write(restart_unit,'(i6,8x,a)')calendar_type,& -'(Calendar:no_calendar=0,thirty_day_months=1,julian=2,gregorian=3,noleap=4)' - -write(restart_unit,'(6i6,8x,a)')date_init,'Modelstarttime:year,month,day,hour,minute,second' -write(restart_unit,'(6i6,8x,a)')date,'Currentmodeltime:year,month,day,hour,minute,second' -close(restart_unit) -endif - -if(time_restart_current>time_start)then -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -open(newunit=restart_unit,file=file_res,status='replace',form='formatted') -callfms_time_manager_get_date(time_restart_current,yr,mon,day,hr,min,sec) -write(restart_unit,'(6i6,8x,a)')yr,mon,day,hr,min,sec,& -'Currentintermediaterestarttime:year,month,day,hour,minute,second' -close(restart_unit) -endif -endif - -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) -if(associated(ocn_bc_restart))deallocate(ocn_bc_restart) - -callfms_coupler_type_register_restarts(ocean%fields,ocn_bc_restart,& -num_ocn_bc_restart,ocean%domain,to_read=.false.,ocean_restart=.true.,directory="RESTART/") -don=1,num_ocn_bc_restart -if(fms2_io_check_if_open(ocn_bc_restart(n)))then -callfms2_io_write_restart(ocn_bc_restart(n)) -calladd_domain_dimension_data(ocn_bc_restart(n)) -callfms2_io_close_file(ocn_bc_restart(n)) -endif -enddo -endif - -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) - -if(associated(ice_bc_restart))deallocate(ice_bc_restart) -callfms_coupler_type_register_restarts(ice%ocean_fluxes,ice_bc_restart,& -num_ice_bc_restart,ice%slow_domain_NH,to_read=.false.,ocean_restart=.false.,directory="RESTART/") -don=1,num_ice_bc_restart -if(fms2_io_check_if_open(ice_bc_restart(n)))then -callfms2_io_write_restart(ice_bc_restart(n)) -calladd_domain_dimension_data(ice_bc_restart(n)) -callfms2_io_close_file(ice_bc_restart(n)) -endif -enddo -endif - -endsubroutinecoupler_restart - -!-------------------------------------------------------------------------- - -subroutineget_coupler_chksums(this,id,timestep) - -implicitnone - -class(coupler_chksum_type),intent(in)::this -character(len=*),intent(in)::id -integer,intent(in)::timestep - -type::tracer_ind_type -integer::atm,ice,lnd!indicesofthetracerintherespectivemodels -endtypetracer_ind_type - -integer::n_atm_tr,n_lnd_tr,n_exch_tr -integer::n_atm_tr_tot,n_lnd_tr_tot -integer::i,tr,n,m,outunit -type(tracer_ind_type),allocatable::tr_table(:) -character(32)::tr_name - -callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,num_prog=n_atm_tr) -callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,num_prog=n_lnd_tr) - -!Assemblethetableoftracernumbertranslationbymatchingnamesof -!prognostictracersintheatmosphereandsurfacemodels;skipallatmos. -!tracersthathavenocorrespondingsurfacetracers. -allocate(tr_table(n_atm_tr)) -n=1 -doi=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) -tr_table(n)%atm=i -tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) -tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) -if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)n=n+1 -enddo -n_exch_tr=n-1 - -100FORMAT("CHECKSUM::",a32,"=",z20) -101FORMAT("CHECKSUM::",a16,a,'%',a,"=",z20) - -if(this%components%Atm%pe)then -callfms_mpp_set_current_pelist(this%components%Atm%pelist) - -outunit=fms_mpp_stdout() -write(outunit,*)'BEGINCHECKSUM(Atm)::',id,timestep -write(outunit,100)'atm%t_bot',fms_mpp_chksum(this%components%Atm%t_bot) -write(outunit,100)'atm%z_bot',fms_mpp_chksum(this%components%Atm%z_bot) -write(outunit,100)'atm%p_bot',fms_mpp_chksum(this%components%Atm%p_bot) -write(outunit,100)'atm%u_bot',fms_mpp_chksum(this%components%Atm%u_bot) -write(outunit,100)'atm%v_bot',fms_mpp_chksum(this%components%Atm%v_bot) -write(outunit,100)'atm%p_surf',fms_mpp_chksum(this%components%Atm%p_surf) -write(outunit,100)'atm%gust',fms_mpp_chksum(this%components%Atm%gust) -dotr=1,n_exch_tr -n=tr_table(tr)%atm -if(n/=no_tracer)then -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -write(outunit,100)'atm%'//trim(tr_name),fms_mpp_chksum(this%components%Atm%tr_bot(:,:,n)) -endif -enddo - -write(outunit,100)'land%t_surf',fms_mpp_chksum(this%components%Land%t_surf) -write(outunit,100)'land%t_ca',fms_mpp_chksum(this%components%Land%t_ca) -write(outunit,100)'land%rough_mom',fms_mpp_chksum(this%components%Land%rough_mom) -write(outunit,100)'land%rough_heat',fms_mpp_chksum(this%components%Land%rough_heat) -write(outunit,100)'land%rough_scale',fms_mpp_chksum(this%components%Land%rough_scale) -dotr=1,n_exch_tr -n=tr_table(tr)%lnd -if(n/=no_tracer)then -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -#ifndef_USE_LEGACY_LAND_ -write(outunit,100)'land%'//trim(tr_name),fms_mpp_chksum(this%components%Land%tr(:,:,n)) -#else -write(outunit,100)'land%'//trim(tr_name),fms_mpp_chksum(this%components%Land%tr(:,:,:,n)) -#endif -endif -enddo - -write(outunit,100)'ice%t_surf',fms_mpp_chksum(this%components%Ice%t_surf) -write(outunit,100)'ice%rough_mom',fms_mpp_chksum(this%components%Ice%rough_mom) -write(outunit,100)'ice%rough_heat',fms_mpp_chksum(this%components%Ice%rough_heat) -write(outunit,100)'ice%rough_moist',fms_mpp_chksum(this%components%Ice%rough_moist) -write(outunit,*)'STOPCHECKSUM(Atm)::',id,timestep - -!endif - -!if(Ocean%is_ocean_pe)callmpp_set_current_pelist(Ocean%pelist) - -write(outunit,*)'BEGINCHECKSUM(Ice)::',id,timestep -callfms_coupler_type_write_chksums(this%components%Ice%ocean_fields,outunit,'ice%') -write(outunit,*)'STOPCHECKSUM(Ice)::',id,timestep - -endif - -deallocate(tr_table) - -callfms_mpp_set_current_pelist() - -endsubroutineget_coupler_chksums - -!####################################################################### - -subroutineget_atmos_ice_land_ocean_chksums(this,id,timestep) - -implicitnone - -class(coupler_chksum_type),intent(in)::this -character(len=*),intent(in)::id -integer,intent(in)::timestep - -if(this%components%Atm%pe)then -callfms_mpp_set_current_pelist(this%components%Atm%pelist) -callthis%get_atmos_ice_land_chksums(trim(id),timestep) -endif -if(this%components%Ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(this%components%Ocean%pelist) -callthis%get_ocean_chksums(trim(id),timestep) -endif - -callfms_mpp_set_current_pelist() - -endsubroutineget_atmos_ice_land_ocean_chksums - -subroutineget_atmos_ice_land_chksums(this,id,timestep) - -class(coupler_chksum_type),intent(in)::this -character(len=*),intent(in)::id -integer,intent(in)::timestep - -callatmos_data_type_chksum(id,timestep,this%components%Atm) -calllnd_ice_atm_bnd_type_chksum(id,timestep,this%components%Land_ice_atmos_boundary) - -if(this%components%Ice%fast_ice_pe)then -callfms_mpp_set_current_pelist(this%components%Ice%fast_pelist) -callice_data_type_chksum(id,timestep,this%components%Ice) -callatm_ice_bnd_type_chksum(id,timestep,this%components%Atmos_ice_boundary) -endif -if(this%components%Land%pe)then -callfms_mpp_set_current_pelist(this%components%Land%pelist) -callland_data_type_chksum(id,timestep,this%components%Land) -callatm_lnd_bnd_type_chksum(id,timestep,this%components%Atmos_land_boundary) -endif - -callfms_mpp_set_current_pelist(this%components%Atm%pelist) - -endsubroutineget_atmos_ice_land_chksums - -subroutineget_slow_ice_chksums(this,id,timestep) - -class(coupler_chksum_type),intent(in)::this -character(len=*),intent(in)::id -integer,intent(in)::timestep - -callice_data_type_chksum(id,timestep,this%components%Ice) -callocn_ice_bnd_type_chksum(id,timestep,this%components%Ocean_ice_boundary) - -endsubroutineget_slow_ice_chksums - - -subroutineget_ocean_chksums(this,id,timestep) - -class(coupler_chksum_type),intent(in)::this -character(len=*),intent(in)::id -integer,intent(in)::timestep - -callocean_public_type_chksum(id,timestep,this%components%Ocean) -callice_ocn_bnd_type_chksum(id,timestep,this%components%Ice_ocean_boundary) - -endsubroutineget_ocean_chksums - -subroutinecoupler_set_clock_ids(coupler_clocks,Atm,Land,Ice,Ocean,ensemble_pelist,& -slow_ice_ocean_pelist,ensemble_id) - -implicitnone - -type(coupler_clock_type),intent(inout)::coupler_clocks -type(atmos_data_type),intent(in)::Atm -type(land_data_type),intent(in)::Land -type(ocean_public_type),intent(in)::Ocean -type(ice_data_type),intent(in)::Ice -integer,dimension(:),intent(in)::slow_ice_ocean_pelist -integer,dimension(:,:),intent(in)::ensemble_pelist -integer,intent(in)::ensemble_id - -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -coupler_clocks%atmos_model_init=fms_mpp_clock_id('Init:atmos_model_init') -endif -if(land%pe)then -callfms_mpp_set_current_pelist(land%pelist) -coupler_clocks%land_model_init=fms_mpp_clock_id('Init:land_model_init') -endif -if(ice%pe)then -if(ice%shared_slow_fast_PEs)then;callfms_mpp_set_current_pelist(ice%pelist) -elseif(ice%fast_ice_pe)then;callfms_mpp_set_current_pelist(ice%fast_pelist) -elseif(ice%slow_ice_pe)then;callfms_mpp_set_current_pelist(ice%slow_pelist) -else;callfms_mpp_error(fatal,"AllIce%pesmustbeapartofIce%fast_ice_peorIce%slow_ice_pe") -endif -coupler_clocks%ice_model_init=fms_mpp_clock_id('Init:ice_model_init') -endif -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) -coupler_clocks%ocean_model_init=fms_mpp_clock_id('Init:ocean_model_init') -endif -callfms_mpp_set_current_pelist(ensemble_pelist(ensemble_id,:)) -coupler_clocks%flux_exchange_init=fms_mpp_clock_id('Init:flux_exchange_init') - -callfms_mpp_set_current_pelist() -coupler_clocks%main=fms_mpp_clock_id('Mainloop') -coupler_clocks%termination=fms_mpp_clock_id('Termination') - -If(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -coupler_clocks%generate_sfc_xgrid=fms_mpp_clock_id('generate_sfc_xgrid') -endif -if(ice%slow_ice_PE.or.ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) -coupler_clocks%flux_ocean_to_ice=fms_mpp_clock_id('flux_ocean_to_ice') -coupler_clocks%flux_ice_to_ocean=fms_mpp_clock_id('flux_ice_to_ocean') -endif -if(atm%pe)then -callfms_mpp_set_current_pelist(atm%pelist) -coupler_clocks%atm=fms_mpp_clock_id('ATM') -coupler_clocks%atmos_loop=fms_mpp_clock_id('ATM:atmosloop') -coupler_clocks%atmos_tracer_driver_gather_data& -=fms_mpp_clock_id('A-L:atmos_tracer_driver_gather_data') -coupler_clocks%sfc_boundary_layer=fms_mpp_clock_id('A-L:sfc_boundary_layer') -coupler_clocks%update_atmos_model_dynamics=fms_mpp_clock_id('A-L:update_atmos_model_dynamics') -if(.not.do_concurrent_radiation)& -coupler_clocks%radiation=fms_mpp_clock_id('A-L:serialradiation') -coupler_clocks%update_atmos_model_down=fms_mpp_clock_id('A-L:update_atmos_model_down') -coupler_clocks%flux_down_from_atmos=fms_mpp_clock_id('A-L:flux_down_from_atmos') -coupler_clocks%update_land_model_fast=fms_mpp_clock_id('A-L:update_land_model_fast') -coupler_clocks%update_ice_model_fast=fms_mpp_clock_id('A-L:update_ice_model_fast') -coupler_clocks%flux_up_to_atmos=fms_mpp_clock_id('A-L:flux_up_to_atmos') -coupler_clocks%update_atmos_model_up=fms_mpp_clock_id('A-L:update_atmos_model_up') -if(do_concurrent_radiation)then -coupler_clocks%radiation=fms_mpp_clock_id('A-L:concurrentradiation') -coupler_clocks%concurrent_atmos=fms_mpp_clock_id('A-L:concurrentatmos') -endif -coupler_clocks%update_atmos_model_state=fms_mpp_clock_id('A-L:update_atmos_model_state') -coupler_clocks%update_land_model_slow=fms_mpp_clock_id('ATM:update_land_model_slow') -coupler_clocks%flux_land_to_ice=fms_mpp_clock_id('ATM:flux_land_to_ice') -endif -if(ice%pe)then -if(ice%fast_ice_pe)callfms_mpp_set_current_pelist(ice%fast_pelist) -coupler_clocks%set_ice_surface_fast=fms_mpp_clock_id('Ice:set_ice_surfacefast') -coupler_clocks%update_ice_model_slow_fast=fms_mpp_clock_id('Ice:update_ice_model_slowfast') - -if(ice%slow_ice_pe)callfms_mpp_set_current_pelist(ice%slow_pelist) -coupler_clocks%set_ice_surface_slow=fms_mpp_clock_id('Ice:set_ice_surfaceslow') -coupler_clocks%update_ice_model_slow_slow=fms_mpp_clock_id('Ice:update_ice_model_slowslow') -coupler_clocks%flux_ice_to_ocean_stocks=fms_mpp_clock_id('Ice:flux_ice_to_ocean_stocks') - -callfms_mpp_set_current_pelist(ice%pelist) -coupler_clocks%set_ice_surface_exchange=fms_mpp_clock_id('Ice:set_ice_surfaceexchange') -coupler_clocks%update_ice_model_slow_exchange=fms_mpp_clock_id('Ice:update_ice_model_slowexchange') - -endif -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) -coupler_clocks%ocean=fms_mpp_clock_id('OCN') -endif - -callfms_mpp_set_current_pelist() -coupler_clocks%flux_check_stocks=fms_mpp_clock_id('flux_check_stocks') -coupler_clocks%intermediate_restart=fms_mpp_clock_id('intermediaterestart') -coupler_clocks%final_flux_check_stocks=fms_mpp_clock_id('finalflux_check_stocks') - -endsubroutinecoupler_set_clock_ids - -subroutinecoupler_flux_init_finish_stocks(Time,Atm,Land,Ice,Ocean_state,& -coupler_clocks,init_stocks,finish_stocks) - -implicitnone - -type(FmsTime_type),intent(in)::Time -type(atmos_data_type),intent(inout)::Atm -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(ocean_state_type),pointer,intent(inout)::Ocean_state -type(coupler_clock_type),intent(inout)::coupler_clocks -logical,optional,intent(in)::init_stocks,finish_stocks - -logical::init,finish - -init=.false.;if(present(init_stocks))init=init_stocks -finish=.false.;if(present(finish_stocks))finish=finish_stocks - -if(init)then -callfms_mpp_set_current_pelist() -callflux_init_stocks(time,atm,land,ice,ocean_state) -elseif(finish)then -callfms_mpp_set_current_pelist() -callfms_mpp_clock_begin(coupler_clocks%final_flux_check_stocks) -if(check_stocks>=0)then -callfms_mpp_set_current_pelist() -callflux_check_stocks(time=time,atm=atm,lnd=land,ice=ice,ocn_state=ocean_state) -endif -callfms_mpp_clock_end(coupler_clocks%final_flux_check_stocks) -else -callfms_mpp_error(fatal,'coupler_flux_init_finish_stocks:eitherinitorfinishneedstobe.True.') -endif - -endsubroutinecoupler_flux_init_finish_stocks - -subroutinecoupler_flux_check_stocks(nc,Time,Atm,Land,Ice,Ocean_state,coupler_clocks) - -implicitnone - -integer,intent(in)::nc -type(FmsTime_type),intent(in)::Time -type(atmos_data_type),intent(inout)::Atm -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(ocean_state_type),pointer,intent(inout)::Ocean_state -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%flux_check_stocks) -if(check_stocks*((nc-1)/check_stocks)==nc-1.AND.nc>1)then -callfms_mpp_set_current_pelist() -callflux_check_stocks(time=time,atm=atm,lnd=land,ice=ice,ocn_state=ocean_state) -endif -callfms_mpp_clock_end(coupler_clocks%flux_check_stocks) - -endsubroutinecoupler_flux_check_stocks - -subroutinecoupler_flux_ocean_to_ice(Ocean,Ice,Ocean_ice_boundary,coupler_clocks,slow_ice_ocean_pelist) - -implicitnone - -type(ocean_public_type),intent(inout)::Ocean -type(ice_data_type),intent(in)::Ice -type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary -type(coupler_clock_type),intent(inout)::coupler_clocks -integer,dimension(:),intent(in)::slow_ice_ocean_pelist - -!RedistributequantitiesfromOceantoOcean_ice_boundary - -!IftheslowiceisonasubsetoftheoceanPEs,usetheoceanPElist. -callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) -callfms_mpp_clock_begin(coupler_clocks%flux_ocean_to_ice) - -!IceintentisIn,usedonlyforaccessingIce%areaandknowingifweareonanIcepe -callflux_ocean_to_ice(ocean,ice,ocean_ice_boundary) - -callfms_mpp_clock_end(coupler_clocks%flux_ocean_to_ice) - -endsubroutinecoupler_flux_ocean_to_ice - -subroutinecoupler_flux_ice_to_ocean(Ice,Ocean,Ice_ocean_boundary,coupler_clocks,& -slow_ice_ocean_pelist,set_current_slow_ice_ocean_pelist) - -implicitnone - -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean -type(ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary -type(coupler_clock_type),intent(inout)::coupler_clocks -integer,dimension(:),optional,intent(in)::slow_ice_ocean_pelist -logical,optional,intent(in)::set_current_slow_ice_ocean_pelist - -logical::set_current_slow_ice_ocean_pelist_in - -set_current_slow_ice_ocean_pelist_in=.false. -if(present(set_current_slow_ice_ocean_pelist))& -set_current_slow_ice_ocean_pelist_in=set_current_slow_ice_ocean_pelist - -!UpdateIce_ocean_boundary;thefirstiterationissuppliedbyrestarts - -if(set_current_slow_ice_ocean_pelist_in)callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) - -callfms_mpp_clock_begin(coupler_clocks%flux_ice_to_ocean) -callflux_ice_to_ocean(ice,ocean,ice_ocean_boundary) -callfms_mpp_clock_end(coupler_clocks%flux_ice_to_ocean) - -endsubroutinecoupler_flux_ice_to_ocean - -subroutinecoupler_unpack_ocean_ice_boundary(nc,Time_flux_ocean_to_ice,Ice,Ocean_ice_boundary,coupler_clocks,& -coupler_chksum_obj) - -implicitnone - -integer,intent(in)::nc -type(FmsTime_type),intent(inout)::Time_flux_ocean_to_ice -type(ice_data_type),intent(inout)::Ice -type(ocean_ice_boundary_type),intent(inout)::Ocean_ice_boundary -type(coupler_clock_type),intent(inout)::coupler_clocks -type(coupler_chksum_type),intent(in)::coupler_chksum_obj - -callfms_mpp_set_current_pelist(ice%slow_pelist) -callfms_mpp_clock_begin(coupler_clocks%set_ice_surface_slow) - -!ThismaydodataoverrideordiagnosticsonIce_ocean_boundary. -callflux_ocean_to_ice_finish(time_flux_ocean_to_ice,ice,ocean_ice_boundary) -callunpack_ocean_ice_boundary(ocean_ice_boundary,ice) -if(do_chksum)callcoupler_chksum_obj%get_slow_ice_chksums('update_ice_slow+',nc) - -callfms_mpp_clock_end(coupler_clocks%set_ice_surface_slow) - -endsubroutinecoupler_unpack_ocean_ice_boundary - -subroutinecoupler_exchange_slow_to_fast_ice(Ice,coupler_clocks) - -implicitnone -type(ice_data_type),intent(inout)::Ice -type(coupler_clock_type),intent(inout)::coupler_clocks - -!Thiscouldbeapointwherethemodelisserializedifthefastand -!slowiceareondifferentPEs. -if(.not.ice%shared_slow_fast_PEs)callfms_mpp_set_current_pelist(ice%pelist) -callfms_mpp_clock_begin(coupler_clocks%set_ice_surface_exchange) -callexchange_slow_to_fast_ice(ice) -callfms_mpp_clock_end(coupler_clocks%set_ice_surface_exchange) - -endsubroutinecoupler_exchange_slow_to_fast_ice - -subroutinecoupler_exchange_fast_to_slow_ice(Ice,coupler_clocks,set_ice_current_pelist) - -implicitnone -type(ice_data_type),intent(inout)::Ice -type(coupler_clock_type),intent(inout)::coupler_clocks -logical,optional,intent(in)::set_ice_current_pelist - -logical::set_ice_current_pelist_in - -set_ice_current_pelist_in=.false. -if(present(set_ice_current_pelist))set_ice_current_pelist_in=set_ice_current_pelist - -if(set_ice_current_pelist_in.and..not.ice%shared_slow_fast_PEs)callfms_mpp_set_current_pelist(ice%pelist) -callfms_mpp_clock_begin(coupler_clocks%update_ice_model_slow_exchange) -callexchange_fast_to_slow_ice(ice) -callfms_mpp_clock_end(coupler_clocks%update_ice_model_slow_exchange) - -endsubroutinecoupler_exchange_fast_to_slow_ice - -subroutinecoupler_set_ice_surface_fields(Ice,coupler_clocks) - -implicitnone -type(ice_data_type),intent(inout)::Ice -type(coupler_clock_type),intent(inout)::coupler_clocks - -if(.not.ice%shared_slow_fast_PEs)callfms_mpp_set_current_pelist(ice%fast_pelist) -callfms_mpp_clock_begin(coupler_clocks%set_ice_surface_fast) -callset_ice_surface_fields(ice) -callfms_mpp_clock_end(coupler_clocks%set_ice_surface_fast) - -endsubroutinecoupler_set_ice_surface_fields - -subroutinecoupler_generate_sfc_xgrid(Land,Ice,coupler_clocks) - -implicitnone -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%generate_sfc_xgrid) -callgenerate_sfc_xgrid(land,ice) -callfms_mpp_clock_end(coupler_clocks%generate_sfc_xgrid) - -endsubroutinecoupler_generate_sfc_xgrid - -subroutinecoupler_atmos_tracer_driver_gather_data(Atm,coupler_clocks) - -implicitnone - -type(atmos_data_type),intent(inout)::Atm -type(coupler_clock_type),intent(inout)::coupler_clocks -callfms_mpp_clock_begin(coupler_clocks%atmos_tracer_driver_gather_data) -callatmos_tracer_driver_gather_data(atm%fields,atm%tr_bot) -callfms_mpp_clock_end(coupler_clocks%atmos_tracer_driver_gather_data) - -endsubroutinecoupler_atmos_tracer_driver_gather_data - -subroutinecoupler_sfc_boundary_layer(Atm,Land,Ice,Land_ice_atmos_boundary,& -Time_atmos,current_timestep,coupler_chksum_obj,coupler_clocks) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -type(FmsTime_type),intent(in)::Time_atmos -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%sfc_boundary_layer) - -callsfc_boundary_layer(real(dt_atmos),Time_atmos,Atm,Land,Ice,Land_ice_atmos_boundary) -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('sfc+',current_timestep) - -callfms_mpp_clock_end(coupler_clocks%sfc_boundary_layer) - -endsubroutinecoupler_sfc_boundary_layer - -subroutinecoupler_update_atmos_model_dynamics(Atm,current_timestep,coupler_chksum_obj,coupler_clocks) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_dynamics) -callupdate_atmos_model_dynamics(atm) -callfms_mpp_clock_end(coupler_clocks%update_atmos_model_dynamics) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_model_dynamics',current_timestep) -if(do_debug)callfms_memutils_print_memuse_stats('updatedyn') - -endsubroutinecoupler_update_atmos_model_dynamics - -subroutinecoupler_update_atmos_model_radiation(Atm,Land_ice_atmos_boundary,coupler_clocks,& -current_timestep,coupler_chksum_obj) - -implicitnone - -type(atmos_data_type),intent(inout)::Atm -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -type(coupler_clock_type),intent(inout)::coupler_clocks -integer,optional,intent(in)::current_timestep -type(coupler_chksum_type),optional,intent(in)::coupler_chksum_obj - -character(128)::memuse_stats_id='updateserialrad' - -callfms_mpp_clock_begin(coupler_clocks%radiation) -callupdate_atmos_model_radiation(land_ice_atmos_boundary,atm) -callfms_mpp_clock_end(coupler_clocks%radiation) - -if(do_chksum)then -if(.not.do_concurrent_radiation)& -callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_model_radiation(ser)',current_timestep) -endif - -if(do_debug)then -if(do_concurrent_radiation)memuse_stats_id='updateconcurrentrad' -callfms_memutils_print_memuse_stats(trim(memuse_stats_id)) -endif - -endsubroutinecoupler_update_atmos_model_radiation - -subroutinecoupler_update_atmos_model_down(Atm,Land_ice_atmos_boundary,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_down) -callupdate_atmos_model_down(land_ice_atmos_boundary,atm) -callfms_mpp_clock_end(coupler_clocks%update_atmos_model_down) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_down+',current_timestep) -if(do_debug)callfms_memutils_print_memuse_stats('updatedown') - -endsubroutinecoupler_update_atmos_model_down - -subroutinecoupler_flux_down_from_atmos(Atm,Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,& -Atmos_ice_boundary,Time_atmos,current_timestep,coupler_clocks,coupler_chksum_obj) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary -type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary -type(FmsTime_type),intent(in)::Time_atmos -integer,intent(in)::current_timestep -type(coupler_clock_type),intent(inout)::coupler_clocks -type(coupler_chksum_type),intent(in)::coupler_chksum_obj - -callfms_mpp_clock_begin(coupler_clocks%flux_down_from_atmos) -callflux_down_from_atmos(time_atmos,atm,land,ice,land_ice_atmos_boundary,& -atmos_land_boundary,atmos_ice_boundary) -callfms_mpp_clock_end(coupler_clocks%flux_down_from_atmos) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('flux_down_from_atmos+',current_timestep) - -endsubroutinecoupler_flux_down_from_atmos - -subroutinecoupler_update_land_model_fast(Land,Atmos_land_boundary,atm_pelist,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -implicitnone -type(land_data_type),intent(inout)::Land -type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary -integer,dimension(:),intent(in)::atm_pelist -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%update_land_model_fast) -if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(land%pelist) - -callupdate_land_model_fast(atmos_land_boundary,land) - -if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(atm_pelist) -callfms_mpp_clock_end(coupler_clocks%update_land_model_fast) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_land_fast+',current_timestep) -if(do_debug)callfms_memutils_print_memuse_stats('updateland') - -endsubroutinecoupler_update_land_model_fast - -subroutinecoupler_update_ice_model_fast(Ice,Atmos_ice_boundary,atm_pelist,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -implicitnone -type(ice_data_type),intent(inout)::Ice -type(Atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary -integer,dimension(:),intent(in)::atm_pelist -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%update_ice_model_fast) -if(ice_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(ice%fast_pelist) - -callupdate_ice_model_fast(atmos_ice_boundary,ice) - -if(ice_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(atm_pelist) -callfms_mpp_clock_end(coupler_clocks%update_ice_model_fast) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_ice_fast+',current_timestep) -if(do_debug)callfms_memutils_print_memuse_stats('updateice') - -endsubroutinecoupler_update_ice_model_fast - -subroutinecoupler_flux_up_to_atmos(Land,Ice,Land_ice_atmos_boundary,Atmos_land_boundary,Atmos_ice_boundary,& -Time_atmos,current_timestep,coupler_chksum_obj,coupler_clocks) - -implicitnone -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary -type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary -type(FmsTime_type),intent(in)::Time_atmos -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(in)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%flux_up_to_atmos) -callflux_up_to_atmos(time_atmos,land,ice,land_ice_atmos_boundary,atmos_land_boundary,atmos_ice_boundary) -callfms_mpp_clock_end(coupler_clocks%flux_up_to_atmos) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('flux_up2atmos+',current_timestep) - -endsubroutinecoupler_flux_up_to_atmos - -subroutinecoupler_update_atmos_model_up(Atm,Land_ice_atmos_boundary,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -type(land_ice_atmos_boundary_type),intent(inout)::Land_ice_atmos_boundary -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_up) -callupdate_atmos_model_up(land_ice_atmos_boundary,atm) -callfms_mpp_clock_end(coupler_clocks%update_atmos_model_up) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_up+',current_timestep) -if(do_debug)callfms_memutils_print_memuse_stats('updateup') - -endsubroutinecoupler_update_atmos_model_up - -subroutinecoupler_flux_atmos_to_ocean(Atm,Atmos_ice_boundary,Ice,Time_atmos) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -type(atmos_ice_boundary_type),intent(inout)::Atmos_ice_boundary -type(ice_data_type),intent(inout)::Ice -type(FmsTime_type),intent(in)::Time_atmos - -callflux_atmos_to_ocean(time_atmos,atm,atmos_ice_boundary,ice) -callflux_ex_arrays_dealloc - -endsubroutinecoupler_flux_atmos_to_ocean - -subroutinecoupler_update_atmos_model_state(Atm,current_timestep,coupler_chksum_obj,coupler_clocks) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%update_atmos_model_state) -callupdate_atmos_model_state(atm) -callfms_mpp_clock_end(coupler_clocks%update_atmos_model_state) - -if(do_chksum)& -callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_atmos_model_state+',current_timestep) -if(do_debug)callfms_memutils_print_memuse_stats('updatestate') - -endsubroutinecoupler_update_atmos_model_state - -subroutinecoupler_update_land_model_slow(Land,Atmos_land_boundary,atm_pelist,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -implicitnone -type(land_data_type),intent(inout)::Land -type(atmos_land_boundary_type),intent(inout)::Atmos_land_boundary -integer,dimension(:),intent(in)::atm_pelist -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%update_land_model_slow) - -if(land%pe)then -if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(land%pelist) -callupdate_land_model_slow(atmos_land_boundary,land) -endif - -if(land_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(atm_pelist) -callfms_mpp_clock_end(coupler_clocks%update_land_model_slow) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('update_land_slow+',current_timestep) - -endsubroutinecoupler_update_land_model_slow - -subroutinecoupler_flux_land_to_ice(Land,Ice,Land_ice_boundary,Time,current_timestep,& -coupler_chksum_obj,coupler_clocks) - -implicitnone -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(land_ice_boundary_type),intent(inout)::Land_ice_boundary -type(FmsTime_type),intent(in)::Time -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -type(coupler_clock_type),intent(inout)::coupler_clocks - -callfms_mpp_clock_begin(coupler_clocks%flux_land_to_ice) -callflux_land_to_ice(time,land,ice,land_ice_boundary) -callfms_mpp_clock_end(coupler_clocks%flux_land_to_ice) - -if(do_chksum)callcoupler_chksum_obj%get_atmos_ice_land_chksums('fluxlnd2ice+',current_timestep) - -endsubroutinecoupler_flux_land_to_ice - -subroutinecoupler_unpack_land_ice_boundary(Ice,Land_ice_boundary,coupler_clocks) - -implicitnone -type(ice_data_type),intent(inout)::Ice -type(land_ice_boundary_type),intent(inout)::Land_ice_boundary -type(coupler_clock_type),intent(inout)::coupler_clocks - -if(ice_npes.NE.atmos_npes)callfms_mpp_set_current_pelist(ice%fast_pelist) -callfms_mpp_clock_begin(coupler_clocks%update_ice_model_slow_fast) - -callice_model_fast_cleanup(ice) -callunpack_land_ice_boundary(ice,land_ice_boundary) - -callfms_mpp_clock_end(coupler_clocks%update_ice_model_slow_fast) - -endsubroutinecoupler_unpack_land_ice_boundary - -subroutinecoupler_update_ice_model_slow_and_stocks(Ice,coupler_clocks) - -implicitnone -type(ice_data_type),intent(inout)::Ice -type(coupler_clock_type),intent(inout)::coupler_clocks - -if(slow_ice_with_ocean)callfms_mpp_set_current_pelist(ice%slow_pelist) -callfms_mpp_clock_begin(coupler_clocks%update_ice_model_slow_slow) - -callupdate_ice_model_slow(ice) - -callfms_mpp_clock_begin(coupler_clocks%flux_ice_to_ocean_stocks) -callflux_ice_to_ocean_stocks(ice) -callfms_mpp_clock_end(coupler_clocks%flux_ice_to_ocean_stocks) - -callfms_mpp_clock_end(coupler_clocks%update_ice_model_slow_slow) - -endsubroutinecoupler_update_ice_model_slow_and_stocks - -subroutinecoupler_update_ocean_model(Ocean,Ocean_state,Ice_ocean_boundary,& -Time_ocean,Time_step_cpld,current_timestep,coupler_chksum_obj) - -implicitnone -type(ocean_public_type),intent(inout)::Ocean -type(ocean_state_type),pointer,intent(inout)::Ocean_state -type(Ice_ocean_boundary_type),intent(inout)::Ice_ocean_boundary -type(FmsTime_type),intent(inout)::Time_ocean -type(FmsTime_type),intent(in)::Time_step_cpld -integer,intent(in)::current_timestep -type(coupler_chksum_type),intent(in)::coupler_chksum_obj - -callupdate_ocean_model(ice_ocean_boundary,ocean_state,ocean,time_ocean,time_step_cpld) -if(do_chksum)callcoupler_chksum_obj%get_ocean_chksums('update_ocean_model+',current_timestep) - -endsubroutinecoupler_update_ocean_model - -subroutinecoupler_intermediate_restart(Atm,Ice,Ocean,Ocean_state,Ocn_bc_restart,Ice_bc_restart,& -Time_current,Time_restart,Time_restart_current,Time_start) - -implicitnone -type(atmos_data_type),intent(inout)::Atm -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean -type(ocean_state_type),pointer,intent(inout)::Ocean_state -type(FmsNetcdfDomainFile_t),pointer,intent(inout)::Ocn_bc_restart(:) -type(FmsNetcdfDomainFile_t),pointer,intent(inout)::Ice_bc_restart(:) -type(FmsTime_type),intent(in)::Time_current,Time_start -type(FmsTime_type),intent(inout)::Time_restart,Time_restart_current -character(len=32)::timestamp -integer::outunit - -time_restart_current=time_current - -timestamp=fms_time_manager_date_to_string(time_restart_current) -outunit=fms_mpp_stdout() -write(outunit,*)'=>NOTEfromprogramcoupler:intermediaterestartfileiswrittenand',& -trim(timestamp),'isappendedasprefixtoeachrestartfilename' -if(atm%pe)then -callatmos_model_restart(atm,timestamp) -callland_model_restart(timestamp) -callice_model_restart(ice,timestamp) -endif -if(ocean%is_ocean_pe)callocean_model_restart(ocean_state,timestamp) - -callcoupler_restart(atm,ice,ocean,ocn_bc_restart,ice_bc_restart,& -time_current,time_restart_current,time_start,timestamp) - -time_restart=fms_time_manager_increment_date(time_current,restart_interval(1),restart_interval(2),& -restart_interval(3),restart_interval(4),restart_interval(5),restart_interval(6)) - -endsubroutinecoupler_intermediate_restart - -subroutinecoupler_summarize_timestep(current_timestep,num_cpld_calls,coupler_chksum_obj,& -is_atmos_pe,omp_sec,imb_sec) - -implicitnone -integer,intent(in)::current_timestep -integer,intent(in)::num_cpld_calls -type(coupler_chksum_type),intent(in)::coupler_chksum_obj -logical,intent(in)::is_atmos_pe -real,dimension(:),intent(inout)::omp_sec,imb_sec - -integer::outunit -character(len=80)::text - -if(do_chksum)callcoupler_chksum_obj%get_coupler_chksums('MAIN_LOOP+',current_timestep) -write(text,'(a,i6)')'Mainloopatcouplingtimestep=',current_timestep -callfms_memutils_print_memuse_stats(text) -outunit=fms_mpp_stdout() - -if(fms_mpp_pe()==fms_mpp_root_pe().and.is_atmos_pe.and.do_concurrent_radiation)& -write(outunit,102)'Atcouplingstep',current_timestep,'of',num_cpld_calls,'Atm&Rad(imbalance):',& -omp_sec(1),'(',imb_sec(1),')',omp_sec(2),'(',imb_sec(2),')' - -callflush(outunit) - -102format(a17,i5,a4,i5,a24,f10.4,a2,f10.4,a3,f10.4,a2,f10.4,a1) - -endsubroutinecoupler_summarize_timestep - -endmodulefull_coupler_mod - - - - diff --git a/docs/xml/ice__model_8_f90.xml b/docs/xml/ice__model_8_f90.xml deleted file mode 100644 index 8a3f633d..00000000 --- a/docs/xml/ice__model_8_f90.xml +++ /dev/null @@ -1,1324 +0,0 @@ - - - - ice_model.F90 - ice_model_mod::ice_data_type - ice_model_mod::atmos_ice_boundary_type - ice_model_mod - -Handles ice component updates and time steps. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -moduleice_model_mod - -!!Components -useice_albedo_mod,only:ice_albedo_init,ice_albedo -useocean_albedo_mod,only:compute_ocean_albedo_new -useocean_rough_mod,only:compute_ocean_roughness,fixed_ocean_roughness - -!!FMS -usefms -usefmsconstants,only:hlv,hlf,tfreeze,pi - -implicitnone -private -real::cmin,cmax - -public::ice_data_type,atmos_ice_boundary_type,& -ice_model_init,ice_model_end,update_ice_model_fast,& -update_ice_model_slow -!---------------------------------------------------------------- -!---------NAMELISTINTERFACE--------- -! -!use_climo_ice=usemonthlyclimatologicalamipicemask -!use_annual_ice=useannualclimatologyamipicemask -!temp_ice_freeze=temperatureatwhichseaicemelts -!heat_capacity_ocean=heatcapacityforoceaninsimplemixedlayermodel -! -real::diff=2.092 -real::thickness_min=0.10 -real::specified_ice_thickness=2.0 -real::heat_capacity_ocean=1.e07 -real::temp_ice_freeze=-1.66 -real::roughness_ice=1.e-4 -logical::mixed_layer_ocean=.false. -logical::use_climo_ice=.false. -logical::use_annual_ice=.false. -logical::use_climo_sst=.false. -logical::use_annual_sst=.false. -character(len=64)::ice_method='prognostic'!none,uniform,orprognostic -character(len=64)::sst_method='specified' -real::temp_ice=270.!usedwhenice_method='uniform' -real::temp_sst=280.!usedwhensst_method='uniform' -real::sst_anom=0.!sstperturbationusedforsensitivityexperiments -character(len=64)::interp_method="bilinear"!conservativeorbilinear -logical::do_netcdf_restart=.true. - -namelist/ice_model_nml/diff,thickness_min,specified_ice_thickness,& -heat_capacity_ocean,temp_ice_freeze,roughness_ice,& -ice_method,use_climo_ice,use_annual_ice,temp_ice,& -sst_method,use_climo_sst,use_annual_sst,temp_sst,& -interp_method,do_netcdf_restart,sst_anom - -!---------------------------------------------------------------- - -typeice_data_type -type(FmsMppDomain2D),pointer::Domain - -real,pointer,dimension(:,:)::glon_bnd=>null(),& -glat_bnd=>null(),& -lon_bnd=>null(),& -lat_bnd=>null() - -real,pointer,dimension(:,:)::glon=>null(),& -glat=>null(),& -lon=>null(),& -lat=>null() - -logical,pointer,dimension(:,:)::gmask=>null(),& -mask=>null(),& -ice_mask=>null() - -real,pointer,dimension(:,:)::t_surf=>null(),& -albedo=>null(),& -albedo_vis_dir=>null(),& -albedo_nir_dir=>null(),& -albedo_vis_dif=>null(),& -albedo_nir_dif=>null(),& -rough_mom=>null(),& -rough_heat=>null(),& -rough_moist=>null(),& -thickness=>null() - -type(fmstime_type)::time_init,time,& -time_step_fast,& -time_step_slow -endtypeice_data_type - -!---------------------------------------------------------------- - -type::atmos_ice_boundary_type -real,dimension(:,:),pointer::u_star=>null(),& -t_flux=>null(),& -q_flux=>null(),& -lw_flux=>null(),& -sw_flux=>null(),& -lprec=>null(),& -fprec=>null() -real,dimension(:,:),pointer::dhdt=>null(),& -dedt=>null(),& -drdt=>null(),& -coszen=>null(),& -data=>null() -integer::xtype -endtypeatmos_ice_boundary_type - -!---------------------------------------------------------------- - -integer::is,ie,js,je -type(FmsAmipInterp_type),save::Amip_ice,Amip_sst -logical::module_is_initialized=.false. -character(len=64)::fname='INPUT/ice_model.res.nc' - -character(len=128)::version='$Id$' -character(len=128)::tagname='$Name$' - -real,parameter::LATENT=hlv+hlf - -contains - -!###################################################################### - -subroutineupdate_ice_model_fast(Atmos_boundary,Ice) -type(atmos_ice_boundary_type),intent(in)::Atmos_boundary -type(ice_data_type),intent(inout)::ice - -real,dimension(is:ie,js:je)::ts_new,gamma,flux_i,t_dt_surf,& -flux_t_new,flux_q_new,flux_lw_new,flux_sw_new,& -flux_u_new,flux_v_new,lprec_new,fprec_new,& -deriv - -logical,dimension(is:ie,js:je,2)::mask_ice -real,dimension(is:ie,js:je,2)::thickness_ice,t_surf_ice,albedo -real,dimension(is:ie,js:je)::albedo_vis_dir,albedo_nir_dir,& -albedo_vis_dif,albedo_nir_dif -integer::dt - -!----------------------------------------------------------------------- -! -!updatesicemodelontheatmospheric(fast)timestep -!averagesinputquantitiestobeseenbytheocean -! -!flux_u=zonalwindstress -!flux_v=meridionalwindstress -!flux_sw=netshortwaveradiation(down-up) -!flux_sw_vis=netvisibleshortwaveradiation(down-up) -!flux_sw_dir=netdirectshortwaveradiation(down-up) -!flux_sw_dif=netdiffuseshortwaveradiation(down-up) -!flux_sw_vis_dir=netvisibledirectshortwaveradiation(down-up) -!flux_sw_vis_dif=netvisiblediffuseshortwaveradiation(down-up) -!flux_lw=netlongwaveradiation(down-up) -!flux_t=sensibleheatflux -!flux_q=specifichumidityflux -!lprec=liquidprecipitiationrate(kg/m2/s) -!fprec=frozenprecipitiationrate(kg/m2/s) -!coszen=cosineofthezenithangle -! -!----------------------------------------------------------------------- -!-----implicitupdateoficesurfacetemperature----- - -if(trim(ice_method)=='prognostic')then - -where(ice%ice_mask) -gamma=diff/max(ice%thickness,thickness_min) -flux_i=gamma*(tfreeze+temp_ice_freeze-ice%t_surf) - -t_dt_surf=(flux_i+atmos_boundary%lw_flux+atmos_boundary%sw_flux-& -atmos_boundary%t_flux-atmos_boundary%q_flux*latent)& -/(atmos_boundary%dhdt+atmos_boundary%dedt*latent+& -atmos_boundary%drdt+gamma) -ts_new=ice%t_surf+t_dt_surf -elsewhere -ts_new=0. -endwhere - -!updateseaicetemperature -!newtemperaturecannotbegreaterthanfreezingtemperature -where(ice%ice_mask.and.ts_new>tfreeze) -ice%t_surf=tfreeze -endwhere - -where(ice%ice_mask.and.ts_new<=tfreeze) -ice%t_surf=ts_new -endwhere - -endif - - -if(trim(ice_method)=='uniform')then -where(ice%ice_mask) -!t_dt_surf=temp_ice-Ice%t_surf -ice%t_surf=temp_ice -endwhere -endif - -!----------------------------------------------------------------------- -!-----simplemixedlayerocean------ - -if(trim(sst_method)=='mixed_layer')then - -callfms_time_manager_get_time(ice%Time_step_slow,dt) - -where(ice%mask.and..not.ice%ice_mask) -flux_i=(atmos_boundary%lw_flux+atmos_boundary%sw_flux-& -atmos_boundary%t_flux-atmos_boundary%q_flux*hlv-& -atmos_boundary%fprec*hlf)*real(dt)/heat_capacity_ocean -deriv=-(atmos_boundary%dhdt+atmos_boundary%dedt*hlv+& -atmos_boundary%drdt)*real(dt)/heat_capacity_ocean -t_dt_surf=flux_i/(1.0-deriv) -ts_new=ice%t_surf+t_dt_surf -endwhere - -!updateseasurfacetemperature -!note:temperaturesallowedbelowfreezingforconservation -where(ice%mask.and..not.ice%ice_mask) -ice%t_surf=ts_new -endwhere - -endif - -if(trim(sst_method)=='uniform')then -where(ice%mask.and..not.ice%ice_mask) -ice%t_surf=temp_sst -endwhere -endif - -!----------------------------------------------------------------------- -!------updateocean/icesurfaceparameters-------- - -!----overalloceanpoints(regardlessofice)---- - -callcompute_ocean_roughness(ice%mask,& -atmos_boundary%u_star(:,:),& -ice%rough_mom(:,:),& -ice%rough_heat(:,:),& -ice%rough_moist(:,:)) - -callcompute_ocean_albedo_new(ice%mask,atmos_boundary%coszen(:,:),& -albedo_vis_dir,albedo_vis_dif,albedo_nir_dir,albedo_nir_dif,ice%lat) - -!----overonlyicepoints----- - -where(ice%ice_mask) -ice%rough_mom=roughness_ice -ice%rough_heat=roughness_ice -ice%rough_moist=roughness_ice -endwhere - -mask_ice(:,:,2)=ice%ice_mask -thickness_ice(:,:,2)=ice%thickness -t_surf_ice(:,:,2)=ice%t_surf -albedo(:,:,2)=ice%albedo -albedo(:,:,1)=ice%albedo -callice_albedo(mask_ice,thickness_ice,t_surf_ice,albedo) - -where(ice%ice_mask) -ice%albedo=albedo(:,:,2) -ice%albedo_vis_dir=albedo(:,:,2) -ice%albedo_nir_dir=albedo(:,:,2) -ice%albedo_vis_dif=albedo(:,:,2) -ice%albedo_nir_dif=albedo(:,:,2) -elsewhere -ice%albedo=albedo(:,:,1) -ice%albedo_vis_dir=albedo_vis_dir -ice%albedo_nir_dir=albedo_vis_dir -ice%albedo_vis_dif=albedo_vis_dir -ice%albedo_nir_dif=albedo_vis_dir -endwhere - -!----------------------------------------------------------------------- -!---------advancetime----------------- - -ice%Time=ice%Time+ice%Time_step_fast - -!----------------------------------------------------------------------- - -endsubroutineupdate_ice_model_fast - -!###################################################################### - -subroutineupdate_ice_model_slow(Atmos_boundary,Ice) -type(atmos_ice_boundary_type),intent(in)::Atmos_boundary -type(ice_data_type),intent(inout)::Ice - -!----getthespecifiedsea-icefraction----- - -if(trim(ice_method)=='prognostic'.or.trim(ice_method)=='uniform')then - -callprognostic_ice(ice) - -endif - -!----getthespecifiedoceantemperature----- - -if(trim(sst_method)=='specified')then - -callprognostic_sst(ice) - -endif - - -endsubroutineupdate_ice_model_slow - -!###################################################################### - -subroutineprognostic_ice(Ice) -type(ice_data_type),intent(inout)::Ice - -real,dimension(is:ie,js:je)::ice_frac - -!----getthespecifiedsea-icefraction----- - -callfms_amip_interp_get_amip_ice(ice%Time,amip_ice,ice_frac) - -!determinewhichgridboxeshaveicecoverage -where(ice%mask(:,:).and.ice_frac>0.5) -ice%thickness(:,:)=specified_ice_thickness -ice%ice_mask(:,:)=.true. -ice%t_surf(:,:)=min(ice%t_surf(:,:),tfreeze) -elsewhere -ice%thickness(:,:)=0.0 -ice%ice_mask(:,:)=.false. -ice%t_surf(:,:)=max(ice%t_surf(:,:),tfreeze) -endwhere - -endsubroutineprognostic_ice - -!###################################################################### - -subroutineprognostic_sst(Ice) -type(ice_data_type),intent(inout)::Ice - -real,dimension(is:ie,js:je)::sea_temp - -!----getthespecifiedoceantemperature----- - -callfms_amip_interp_get_amip_sst(ice%Time,amip_sst,sea_temp) - -!determinewhichgridboxeshaveopenoceancoverage---- -where(ice%mask(:,:).and..not.ice%ice_mask(:,:)) -ice%t_surf(:,:)=sea_temp -endwhere - -endsubroutineprognostic_sst - -!###################################################################### - -!subroutineupdate_ice_model_slow_up(Ocean_boundary,Ice) -!type(ocean_ice_boundary_type),intent(in)::Ocean_boundary -!type(ice_data_type),intent(inout)::Ice - -!settempatopenoceanpoints - -!endsubroutineupdate_ice_model_slow_up - -!###################################################################### - -subroutineice_model_init(Ice,Time_Init,Time,& -Time_step_fast,Time_step_slow,& -glon_bnd,glat_bnd,Atmos_domain) -type(ice_data_type),intent(inout)::Ice -type(FmsTime_type),intent(in)::Time_Init,Time,& -Time_step_fast,Time_step_slow -real,intent(in)::glon_bnd(:,:),glat_bnd(:,:) -type(FmsMppDomain2D),intent(in),target::Atmos_domain - -real::lon0,lond,latd,amp,t_control,dellon,dom_wid,siggy,tempi -integer::isg,ieg,jsg,jeg -integer::unit,ierr,io,i,j -integer::ndim,nvar,natt,ntime,nlon,nlat,mlon,mlat,layout(2) -logical::need_ic -type(FmsNetcdfDomainFile_t)::land_mask_fileobj -type(FmsNetcdfDomainFile_t)::ice_restart_fileobj - -if(module_is_initialized)then -return -endif - - -read(fms_mpp_input_nml_file,nml=ice_model_nml,iostat=io) -ierr=fms_check_nml_error(io,'ice_model_nml') - -do_netcdf_restart=.true. - -callfms_write_version_number(version,tagname) -if(fms_mpp_pe()==fms_mpp_root_pe())then -write(fms_mpp_stdlog(),nml=ice_model_nml) -endif - -!----errorchecks---- - -if(trim(ice_method)/='none'.and.& -trim(ice_method)/='uniform'.and.& -trim(ice_method)/='prognostic')callfms_error_mesg& -('ice_model_init','namelistvariableice_methodhasinvalidvalue',fatal) - -if(trim(sst_method)/='specified'.and.& -trim(sst_method)/='uniform'.and.& -trim(sst_method)/='aqua_planet_1'.and.& -trim(sst_method)/='aqua_planet_2'.and.& -trim(sst_method)/='aqua_planet_3'.and.& -trim(sst_method)/='aqua_planet_4'.and.& -trim(sst_method)/='aqua_planet_5'.and.& -trim(sst_method)/='aqua_planet_6'.and.& -trim(sst_method)/='aqua_planet_7'.and.& -trim(sst_method)/='aqua_planet_8'.and.& -trim(sst_method)/='aqua_planet_10N'.and.& -trim(sst_method)/='aqua_planet_15N'.and.& -trim(sst_method)/='aqua_planet_20N'.and.& -trim(sst_method)/='aqua_planet_25N'.and.& -trim(sst_method)/='aqua_planet_30N'.and.& -trim(sst_method)/='aqua_planet_35N'.and.& -trim(sst_method)/='aqua_planet_40N'.and.& -trim(sst_method)/='aqua_planet_45N'.and.& -trim(sst_method)/='aqua_planet_50N'.and.& -trim(sst_method)/='aqua_planet_55N'.and.& -trim(sst_method)/='aqua_planet_60N'.and.& -trim(sst_method)/='aqua_planet_65N'.and.& -trim(sst_method)/='aqua_planet_70N'.and.& -trim(sst_method)/='aqua_planet_75N'.and.& -trim(sst_method)/='aqua_planet_80N'.and.& -trim(sst_method)/='aqua_planet_85N'.and.& -trim(sst_method)/='aqua_planet_90N'.and.& -trim(sst_method)/='aqua_walker'.and.& -trim(sst_method)/='aqua_walker_cos'.and.& -trim(sst_method)/='aqua_walker_guass'.and.& -trim(sst_method)/='aqua_walker_guass_b'.and.& -trim(sst_method)/='aqua_walker_guass_c'.and.& -trim(sst_method)/='aqua_walker_guass_d'.and.& -trim(sst_method)/='mixed_layer')callfms_error_mesg& -('ice_model_init','namelistvariablesst_methodhasinvalidvalue',fatal) - -!---------------------------------------------------------- - -nlon=size(glon_bnd,1)-1 -nlat=size(glon_bnd,2)-1 - -!---------------------------------------------------------- -!---setupdomaintype--- - -!if(present(Atmos_domain))then -!callmpp_get_layout(Atmos_domain,layout) -!else -!callmpp_define_layout((/1,nlon,1,nlat/),fms_mpp_npes(),layout) -!endif - -!callmpp_define_domains((/1,nlon,1,nlat/),layout,Ice%Domain,& -!name='icegrid') - -ice%Domain=>atmos_domain - -!---------------------------------------------------------- -!getglobaldomainindices -!thisassumesthatFmsMppDomain2Dtypehasbeenassigned - -callfms_mpp_domains_get_global_domain(ice%Domain,isg,ieg,jsg,jeg) - -allocate(ice%glon_bnd(isg:ieg+1,jsg:jeg+1),& -ice%glat_bnd(isg:ieg+1,jsg:jeg+1),& -ice%glon(isg:ieg,jsg:jeg),& -ice%glat(isg:ieg,jsg:jeg),& -ice%gmask(isg:ieg,jsg:jeg)) - -!---------------------------------------------------------- -!---readgridinfo---- - -ice%glon_bnd=glon_bnd -ice%glat_bnd=glat_bnd -!doj=js,je+1 -!doi=is,ie+1 -!Ice%glon_bnd(i,j)=glon_bnd(i-isg+1,j-jsg+1) -!Ice%glat_bnd(i,j)=glat_bnd(i-isg+1,j-jsg+1) -!enddo -!enddo - -!setiodomainifnotthereinordertocheckfiles -if(.not.associated(fms_mpp_domains_get_io_domain(ice%domain)))then -callfms_mpp_domains_define_io_domain(ice%domain,(/1,1/)) -endif - -!readthelandmaskfromafile(land=1) -if(fms2_io_open_file(land_mask_fileobj,'INPUT/land_mask.nc','read',ice%domain))then -callfms2_io_read_data(land_mask_fileobj,'land_mask',ice%glon) -where(ice%glon>0.50) -ice%gmask=.false. -elsewhere -ice%gmask=.true. -endwhere -callfms2_io_close_file(land_mask_fileobj) -else -ice%gmask=.true.!aqua-planet -endif - -!mid-pointofgridbox -!if(is_latlon(glon_bnd,latb_out))then -!doj=js,je -!doi=is,ie -!Ice%glon(i,j)=(Ice%glon_bnd(i,j)+Ice%glon_bnd(i+1,j)+& -!Ice%glon_bnd(i,j+1)+Ice%glon_bnd(i+1,j+1))*0.25 -!Ice%glat(i,j)=(Ice%glat_bnd(i,j)+Ice%glat_bnd(i+1,j)+& -!Ice%glat_bnd(i,j+1)+Ice%glat_bnd(i+1,j+1))*0.25 -!enddo -!enddo -!else -callget_cell_center(ice%glon_bnd,ice%glat_bnd,ice%glon,ice%glat) -!endif - -!---------------------------------------------------------- -!getcomputedomainindices - -callfms_mpp_domains_get_compute_domain(ice%Domain,is,ie,js,je) - -allocate(ice%lon_bnd(is:ie+1,js:je+1),& -ice%lat_bnd(is:ie+1,js:je+1),& -ice%lon(is:ie,js:je),& -ice%lat(is:ie,js:je),& -ice%ice_mask(is:ie,js:je),& -ice%t_surf(is:ie,js:je),& -ice%albedo(is:ie,js:je),& -ice%albedo_vis_dir(is:ie,js:je),& -ice%albedo_nir_dir(is:ie,js:je),& -ice%albedo_vis_dif(is:ie,js:je),& -ice%albedo_nir_dif(is:ie,js:je),& -ice%rough_mom(is:ie,js:je),& -ice%rough_heat(is:ie,js:je),& -ice%rough_moist(is:ie,js:je),& -ice%thickness(is:ie,js:je),& -ice%mask(is:ie,js:je)) - -ice%lon_bnd=ice%glon_bnd(is:ie+1,js:je+1) -ice%lat_bnd=ice%glat_bnd(is:ie+1,js:je+1) -ice%lon=ice%glon(is:ie,js:je) -ice%lat=ice%glat(is:ie,js:je) -ice%mask=ice%gmask(is:ie,js:je) -ice%Time=time -ice%Time_init=time_init -ice%Time_step_fast=time_step_fast -ice%Time_step_slow=time_step_slow - -!---------------------------------------------------------- -!-----------readrestart------------- - -need_ic=.false. - -if(fms2_io_open_file(ice_restart_fileobj,'INPUT/ice_model.res.nc','read',ice%domain,is_restart=.true.))then -if(fms_mpp_pe()==fms_mpp_root_pe())callfms_error_mesg('ice_model_mod',& -'ReadingNetCDFformattedrestartfile:INPUT/ice_model.res.nc',note) - -callfms2_io_read_data(ice_restart_fileobj,'mlon',mlon) -callfms2_io_read_data(ice_restart_fileobj,'mlat',mlat) -if(mlon/=nlon.or.mlat/=nlat)& -callfms_error_mesg('ice_model_init',& -'incorrectresolutiononrestart',fatal) - -callice_register_restart(ice_restart_fileobj,ice) -callfms2_io_read_restart(ice_restart_fileobj) -callfms2_io_close_file(ice_restart_fileobj) -else -!---ifnorestartthennoice--- -need_ic=.true. -ice%t_surf=tfreeze!+temp_ice_freeze -ice%thickness=0.0!noiceinitially -ice%albedo=0.14 -ice%albedo_vis_dir=0.14 -ice%albedo_nir_dir=0.14 -ice%albedo_vis_dif=0.14 -ice%albedo_nir_dif=0.14 -ice%rough_mom=0.0004 -ice%rough_heat=0.0004 -ice%rough_moist=0.0004 -!Ice%ice_mask=.false.!noiceinitially - -!fixedroughness -callfixed_ocean_roughness(ice%mask,ice%rough_mom,& -ice%rough_heat,ice%rough_moist) -endif - -!initializemaskwhereiceexists -ice%ice_mask=ice%mask.and.ice%thickness.ge.thickness_min - -callice_albedo_init(tfreeze) - -!analyticdistributionwithnoice -!meltallice -if(sst_method=="aqua_planet_1")then -ice_method='none' -ice%ice_mask=.false. -where(ice%mask) -ice%t_surf=27.*(1.-sin(max(min(1.5*ice%lat,pi*0.5),-pi*0.5))**2)+tfreeze -endwhere -elseif(sst_method=="aqua_planet_2")then -ice_method='none' -ice%ice_mask=.false. -where(ice%mask) -ice%t_surf=27.*(1.-min(3.*abs(ice%lat)/pi,1.))+tfreeze -endwhere -elseif(sst_method=="aqua_planet_3")then -ice_method='none' -ice%ice_mask=.false. -where(ice%mask) -ice%t_surf=27.*(1.-sin(max(min(1.5*ice%lat,pi*0.5),-pi*0.5))**4)+tfreeze -endwhere -elseif(sst_method=="aqua_planet_4")then -ice_method='none' -ice%ice_mask=.false. -where(ice%mask) -ice%t_surf=max(min(1.5*ice%lat,pi*0.5),-pi*0.5)!uset_surfasworkarray -ice%t_surf=27.*(1.-0.5*(sin(ice%t_surf)**2+sin(ice%t_surf)**4))+tfreeze -endwhere -elseif(sst_method=="aqua_planet_5")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/36.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/36.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/36.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_6".or.sst_method=="aqua_planet_7")then -ice_method='none' -ice%ice_mask=.false. -!constants -lon0=0. -lond=30.*pi/180. -latd=15.*pi/180. -if(sst_method=="aqua_planet_6")amp=1. -if(sst_method=="aqua_planet_7")amp=3. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -t_control=27.*(1.-sin(max(min(1.5*ice%lat(i,j),pi*0.5),-pi*0.5))**2)+tfreeze -dellon=ice%lon(i,j)-lon0 -if(dellon>pi)dellon=dellon-2.*pi -if(dellon<-pi)dellon=dellon+2.*pi -ice%t_surf(i,j)=t_control+amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.))**2*& -cos(0.5*pi*min(max(ice%lat(i,j)/latd,-1.),1.))**2 -endif -enddo -enddo -elseif(sst_method=="aqua_walker")then -ice_method='none' -ice%ice_mask=.false. -!constants -lon0=0. -!lond=30.*pi/180. -lond=pi/36.!multiplyoriginallondby1/6 -latd=15.*pi/180. -amp=8. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -dellon=ice%lon(i,j)-lon0 -if(dellon>pi)dellon=dellon-2.*pi -if(dellon<-pi)dellon=dellon+2.*pi -!Ice%t_surf(i,j)=27.+TFREEZE+amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.))**2 -ice%t_surf(i,j)=297.+amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.))**2 -endif -enddo -enddo -elseif(sst_method=="aqua_walker_guass")then!seeWofsyandKuang -ice_method='none' -ice%ice_mask=.false. -!constants -lon0=0. -siggy=(pi/8.)*(1./6.)!sigmaintheguassiandistribution -!amp=1./(siggy*SQRT(2*pi)) -amp=8. -doj=js,je -tempi=real(j) -doi=is,ie -if(ice%mask(i,j))then -dellon=ice%lon(i,j)-lon0 -if(dellon>pi)dellon=dellon-2.*pi -if(dellon<-pi)dellon=dellon+2.*pi -ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) -endif -enddo -enddo -elseif(sst_method=="aqua_walker_guass_b")then!seeWofsyandKuang -ice_method='none' -ice%ice_mask=.false. -!constants -lon0=0. -siggy=(pi/12.)*(1./6.)!sigmaintheguassiandistribution -!amp=1./(siggy*SQRT(2*pi)) -amp=8. -doj=js,je -tempi=real(j) -doi=is,ie -if(ice%mask(i,j))then -dellon=ice%lon(i,j)-lon0 -if(dellon>pi)dellon=dellon-2.*pi -if(dellon<-pi)dellon=dellon+2.*pi -ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) -endif -enddo -enddo -elseif(sst_method=="aqua_walker_guass_c")then!seeWofsyandKuang -ice_method='none' -ice%ice_mask=.false. -!constants -lon0=0. -siggy=(pi/16.)*(1./6.)!sigmaintheguassiandistribution -!amp=1./(siggy*SQRT(2*pi)) -amp=8. -doj=js,je -tempi=real(j) -doi=is,ie -if(ice%mask(i,j))then -dellon=ice%lon(i,j)-lon0 -if(dellon>pi)dellon=dellon-2.*pi -if(dellon<-pi)dellon=dellon+2.*pi -ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) -endif -enddo -enddo -elseif(sst_method=="aqua_walker_guass_d")then!seeWofsyandKuang -ice_method='none' -ice%ice_mask=.false. -!constants -lon0=0. -siggy=(pi/20.)*(1./6.)!sigmaintheguassiandistribution -!amp=1./(siggy*SQRT(2*pi)) -amp=4. -doj=js,je -tempi=real(j) -doi=is,ie -if(ice%mask(i,j))then -dellon=ice%lon(i,j)-lon0 -if(dellon>pi)dellon=dellon-2.*pi -if(dellon<-pi)dellon=dellon+2.*pi -ice%t_surf(i,j)=297.+amp*exp(-0.5*((dellon)**2.)/(siggy)**2) -endif -enddo -enddo -elseif(sst_method=="aqua_walker_cos")then!seeWofsyandKuang -ice_method='none' -ice%ice_mask=.false. -!constants -lond=pi/36.!multiplyoriginallondby1/6 -lon0=0. -amp=8. -dom_wid=ice%lon(is,js)-ice%lon(is,je) -!dom_wid=real(ie)-real(is) -doj=js,je -tempi=real(j) -doi=is,ie -if(ice%mask(i,j))then -dellon=ice%lon(i,j)-lon0 -if(dellon>pi)dellon=dellon-2.*pi -if(dellon<-pi)dellon=dellon+2.*pi -ice%t_surf(i,j)=297.-amp*cos(0.5*pi*min(max(dellon/lond,-1.),1.)) -endif -enddo -enddo -elseif(sst_method=="aqua_planet_8")then -ice_method='none' -ice%ice_mask=.false. -!constants -lon0=0. -latd=30.*pi/180. -amp=3. -where(ice%mask) -ice%t_surf=27.*(1.-sin(max(min(1.5*ice%lat,pi*0.5),-pi*0.5))**2)+tfreeze+& -amp*cos(ice%lon-lon0)*cos(0.5*pi*min(max(ice%lat/latd,-1.),1.))**2 -endwhere -elseif(sst_method=="aqua_planet_10N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/18.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/18.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/18.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_15N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/12.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/12.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/12.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_20N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/9.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/9.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/9.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_25N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>5.*pi/36.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-5.*pi/36.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-5.*pi/36.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_30N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/6.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/6.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/6.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_35N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>7.*pi/36.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-7.*pi/36.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-7.*pi/36.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_40N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>2.*pi/9.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-2.*pi/9.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-2.*pi/9.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_45N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/4.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/4.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/4.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_50N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>5.*pi/18.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-5.*pi/18.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-5.*pi/18.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_55N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>11.*pi/36.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-11.*pi/36.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-11.*pi/36.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_60N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/3.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/3.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/3.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_65N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>13.*pi/36.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-13.*pi/36.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-13.*pi/36.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_70N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>7.*pi/18.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-7.*pi/18.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-7.*pi/18.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_75N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>5.*pi/12.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-5.*pi/12.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-5.*pi/12.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_80N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>4.*pi/9.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-4.*pi/9.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-4.*pi/9.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_85N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>17.*pi/36.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-17.*pi/36.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-17.*pi/36.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -elseif(sst_method=="aqua_planet_90N")then -ice_method='none' -ice%ice_mask=.false. -doj=js,je -doi=is,ie -if(ice%mask(i,j))then -if(ice%lat(i,j)>pi/2.)then -ice%t_surf(i,j)=27.*(1.-sin(min(90./55.*(ice%lat(i,j)-pi/2.),pi*0.5))**2)+tfreeze -else -ice%t_surf(i,j)=27.*(1.-sin(max(90./65.*(ice%lat(i,j)-pi/2.),-pi*0.5))**2)+tfreeze -endif -endif -enddo -enddo -endif - - -!---------------------------------------------------------- - -if(trim(ice_method)=='prognostic'.or.& -trim(ice_method)=='uniform')then -if(trim(interp_method)=="conservative")then -amip_ice=fms_amip_interp_new(ice%lon_bnd(:,1),ice%lat_bnd(1,:),& -ice%mask(:,:),interp_method=interp_method,& -use_climo=use_climo_ice,use_annual=use_annual_ice) -elseif(trim(interp_method)=="bilinear")then -amip_ice=fms_amip_interp_new(ice%lon,ice%lat,& -ice%mask(:,:),interp_method=interp_method,& -use_climo=use_climo_ice,use_annual=use_annual_ice) -else -callfms_error_mesg('ice_model_init','interp_methodshouldbe'//& -'conservativeorbilinear',fatal) -endif -!initializeice(ifneeded) -if(need_ic)then -callprognostic_ice(ice) -endif -endif - -!---------------------------------------------------------- - -if(trim(sst_method)=='specified')then -if(trim(interp_method)=="conservative")then -amip_sst=fms_amip_interp_new(ice%lon_bnd(:,1),ice%lat_bnd(1,:),& -ice%mask(:,:),interp_method=interp_method,& -use_climo=use_climo_sst,use_annual=use_annual_sst) -elseif(trim(interp_method)=="bilinear")then -amip_sst=fms_amip_interp_new(ice%lon,ice%lat,& -ice%mask(:,:),interp_method=interp_method,& -use_climo=use_climo_sst,use_annual=use_annual_sst) -else -callfms_error_mesg('ice_model_init','interp_methodshouldbe'//& -'conservativeorbilinear',fatal) -endif -!initializesst(ifneeded) -if(need_ic)then -callprognostic_sst(ice) -endif -endif - -print*,'pe,count(ice,all,ocean)=',fms_mpp_pe(),count(ice%ice_mask),count(ice%mask),& -count(ice%mask.and..not.ice%ice_mask) - -!addonnon-zeroseasurfacetemperatureperturbation(namelistoption) -!thisperturbationmaybeusefulinaccessingmodelsensitivities - -if(abs(sst_anom)>0.0001)then -ice%t_surf(:,:)=ice%t_surf(:,:)+sst_anom -endif - -!---------------------------------------------------------- - -module_is_initialized=.true. - -!---------------------------------------------------------- - -endsubroutineice_model_init - -subroutineice_register_restart(fileobj,Ice) - -type(FmsNetcdfDomainFile_t),intent(inout)::fileobj -type(ice_data_type),intent(inout)::Ice -character(len=8),dimension(3)::dim_names - -dim_names(1)="xaxis_1" -dim_names(2)="yaxis_1" -dim_names(3)="Time" - -callfms2_io_register_axis(fileobj,dim_names(1),"x") -callfms2_io_register_axis(fileobj,dim_names(2),"y") -callfms2_io_register_axis(fileobj,dim_names(3),unlimited) - - -callfms2_io_register_field(fileobj,dim_names(1),"double",(/dim_names(1)/)) -callfms2_io_register_field(fileobj,dim_names(2),"double",(/dim_names(2)/)) - -callfms2_io_register_restart_field(fileobj,'t_surf',ice%t_surf,dim_names) -callfms2_io_register_restart_field(fileobj,'thickness',ice%thickness,dim_names) -callfms2_io_register_restart_field(fileobj,'albedo',ice%albedo,dim_names) -callfms2_io_register_restart_field(fileobj,'albedo_vis_dir',ice%albedo_vis_dir,dim_names) -callfms2_io_register_restart_field(fileobj,'albedo_nir_dir',ice%albedo_nir_dir,dim_names) -callfms2_io_register_restart_field(fileobj,'albedo_vis_dif',ice%albedo_vis_dif,dim_names) -callfms2_io_register_restart_field(fileobj,'albedo_nir_dif',ice%albedo_nir_dif,dim_names) -callfms2_io_register_restart_field(fileobj,'rough_mom',ice%rough_mom,dim_names) -callfms2_io_register_restart_field(fileobj,'rough_heat',ice%rough_heat,dim_names) -callfms2_io_register_restart_field(fileobj,'rough_moist',ice%rough_moist,dim_names) - -endsubroutineice_register_restart - -!###################################################################### - -subroutineice_model_end(Ice) -type(ice_data_type),intent(inout)::Ice -integer::unit -character(len=64)::fname='RESTART/ice_model.res.nc' -type(FmsNetcdfDomainFile_t)::ice_restart_fileobj - -if(.not.module_is_initialized)return -if(do_netcdf_restart)then - -if(fms_mpp_pe()==fms_mpp_root_pe())then -callfms_error_mesg('ice_model_mod','WritingNetCDFformattedrestartfile:RESTART/ice_model.res.nc',note) -endif - -if(fms2_io_open_file(ice_restart_fileobj,fname,'overwrite',ice%domain,is_restart=.true.))then -callice_register_restart(ice_restart_fileobj,ice) -callfms2_io_register_field(ice_restart_fileobj,"mlon","double") -callfms2_io_register_field(ice_restart_fileobj,"mlat","double") -callfms2_io_write_restart(ice_restart_fileobj) -callfms2_io_write_data(ice_restart_fileobj,'mlon',size(ice%gmask,1)) -callfms2_io_write_data(ice_restart_fileobj,'mlat',size(ice%gmask,2)) -calladd_domain_dimension_data(ice_restart_fileobj) -callfms2_io_close_file(ice_restart_fileobj) -endif -endif - - -deallocate(ice%glon_bnd,ice%glat_bnd,ice%glon,ice%glat,ice%gmask) -deallocate(ice%lon_bnd,ice%lat_bnd,ice%lon,ice%lat,ice%ice_mask,& -ice%t_surf,ice%albedo,ice%albedo_vis_dir,ice%albedo_nir_dir,& -ice%albedo_vis_dif,ice%albedo_nir_dif,ice%rough_mom,& -ice%rough_heat,ice%rough_moist,ice%thickness,ice%mask) - -module_is_initialized=.false. - -endsubroutineice_model_end - - -subroutineadd_domain_dimension_data(fileobj) -type(FmsNetcdfDomainFile_t)::fileobj -integer,dimension(:),allocatable::buffer -integer::is,ie - -callfms2_io_get_global_io_domain_indices(fileobj,"xaxis_1",is,ie,indices=buffer) -callfms2_io_write_data(fileobj,"xaxis_1",buffer) -deallocate(buffer) - -callfms2_io_get_global_io_domain_indices(fileobj,"yaxis_1",is,ie,indices=buffer) -callfms2_io_write_data(fileobj,"yaxis_1",buffer) -deallocate(buffer) -endsubroutineadd_domain_dimension_data - -!###################################################################### -!Routinesaddedforcomputingthen -!mid-pointofgridboxeswithcubedsphere -!###################################################################### - -functionis_latlon(lon,lat) -real,intent(in)::lon(:,:),lat(:,:) - -!Determinesifthelatitude/longitudevaluesforma -!regularlatitude/longitudegrid(orsomethingelse). -! - -logical::is_latlon -integer::i,j - -is_latlon=.true. - -doj=2,size(lon,2) -doi=1,size(lon,1) -if(lon(i,j).ne.lon(i,1))then -is_latlon=.false. -return -endif -enddo -enddo - -doj=1,size(lat,2) -doi=2,size(lat,1) -if(lat(i,j).ne.lat(1,j))then -is_latlon=.false. -return -endif -enddo -enddo - -endfunctionis_latlon - -!######################################################################## - -subroutineget_cell_center(lonb,latb,lon,lat) -!------------------------------------------------------------------! -!calculatecellcenter(lon,lat)! -!byaveragingcellcornerlocations(lonb,latb)inCartesiancoor! -!------------------------------------------------------------------! -real,dimension(:,:),intent(in)::lonb,latb -real,dimension(:,:),intent(out)::lon,lat -!------------------------------------------------------------------! -!localvariables! -!------------------------------------------------------------------! -real::sph_coor(2),xyz_corner(3,size(lonb,1),size(latb,2)),xyz_center(3),abs_center -integer::i,j,nx,ny - -nx=size(lonb,1) -ny=size(latb,2) - -doj=1,ny -doi=1,nx -sph_coor(1)=lonb(i,j) -sph_coor(2)=latb(i,j) -calllatlon2xyz(sph_coor,xyz_corner(1,i,j)) -enddo -enddo -doj=1,ny-1 -doi=1,nx-1 -xyz_center(:)=0.25*(xyz_corner(:,i,j)+xyz_corner(:,i+1,j)& -+xyz_corner(:,i,j+1)+xyz_corner(:,i+1,j+1)) -abs_center=xyz_center(1)*xyz_center(1)& -+xyz_center(2)*xyz_center(2)& -+xyz_center(3)*xyz_center(3) -xyz_center(:)=xyz_center(:)/abs_center -callxyz2latlon(xyz_center,sph_coor) -lon(i,j)=sph_coor(1) -lat(i,j)=sph_coor(2) -enddo -enddo - -endsubroutineget_cell_center - -!######################################################################## - -subroutinelatlon2xyz(sph_coor,xyz_coor) -!------------------------------------------------------------------! -!calculatecartesiancoordinatesfromsphericalcoordinates! -!! -!input:! -!sph_coor[rad]latloncoordinate! -!! -!output:! -!xyz_coor[1]normalizedcartesianvector! -!------------------------------------------------------------------! -real,dimension(2),intent(in)::sph_coor -real,dimension(3),intent(inout)::xyz_coor - -xyz_coor(1)=cos(sph_coor(2))*cos(sph_coor(1)) -xyz_coor(2)=cos(sph_coor(2))*sin(sph_coor(1)) -xyz_coor(3)=sin(sph_coor(2)) - -endsubroutinelatlon2xyz -!====================================================================! -subroutinexyz2latlon(xyz_coor,sph_coor) -!------------------------------------------------------------------! -!calculatesphericalcoordinatesfromcartesiancoordinates! -!! -!input:! -!xyz_coor[1]normalizedcartesianvector! -!! -!output:! -!sph_coor[rad]latloncoordinate! -!------------------------------------------------------------------! - -real,dimension(3),intent(in)::xyz_coor -real,dimension(2),intent(inout)::sph_coor -!------------------------------------------------------------------! -!localvariables! -!------------------------------------------------------------------! -real::coslat,radius -real,parameter::epsilon=1.e-7 -integer::i,j - - -radius=sqrt(xyz_coor(1)*xyz_coor(1)& -+xyz_coor(2)*xyz_coor(2)& -+xyz_coor(3)*xyz_coor(3)) - -sph_coor(1)=atan2(xyz_coor(2),xyz_coor(1)) -if(sph_coor(1)<0.)sph_coor(1)=sph_coor(1)+2*pi -sph_coor(2)=asin(xyz_coor(3)/radius) - -endsubroutinexyz2latlon - -!###################################################################### - -endmoduleice_model_mod - - - - - diff --git a/docs/xml/ice__ocean__flux__exchange_8_f90.xml b/docs/xml/ice__ocean__flux__exchange_8_f90.xml deleted file mode 100644 index 6d957e46..00000000 --- a/docs/xml/ice__ocean__flux__exchange_8_f90.xml +++ /dev/null @@ -1,700 +0,0 @@ - - - - ice_ocean_flux_exchange.F90 - ice_ocean_flux_exchange_mod - -Handles flux calculations and exchange grids for ice and ocean. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -moduleice_ocean_flux_exchange_mod - -!!FMS -usefms -usefmsconstants,only:hlf,hlv,cp_ocean -!!Components -useice_model_mod,only:ice_data_type,ocean_ice_boundary_type -useocean_model_mod,only:ocean_public_type,ice_ocean_boundary_type -useocean_model_mod,only:ocean_state_type,ocean_model_data_get -useocean_model_mod,only:ocean_model_init_sfc - -implicitnone;private - - -public::ice_ocean_flux_exchange_init,& -flux_ice_to_ocean,flux_ice_to_ocean_finish,& -flux_ocean_to_ice,flux_ocean_to_ice_finish,& -flux_ice_to_ocean_stocks,& -flux_ocean_from_ice_stocks - -!Balaji,setsboundary_type%xtype -!REGRID:gridsarephysicallydifferent,passviaexchangegrid -!REDIST:samephysicalgrid,differentdecomposition,mustmovedataaround -!DIRECT:samephysicalgrid,samedomaindecomposition,candirectlycopydata -integer,parameter::REGRID=1,redist=2,direct=3 - -logical::debug_stocks=.false. -logical::do_area_weighted_flux=.false. - -integer::cplOcnClock,fluxOceanIceClock,fluxIceOceanClock -real::Dt_cpl -integer,allocatable::slow_ice_ocean_pelist(:) - -contains - -subroutineice_ocean_flux_exchange_init(Time,Ice,Ocean,Ocean_state,ice_ocean_boundary,& -ocean_ice_boundary,Dt_cpl_in,debug_stocks_in,& -do_area_weighted_flux_in,ex_gas_fields_ice,ex_gas_fluxes,& -do_ocean,slow_ice_ocean_pelist_in) - -type(FmsTime_type),intent(in)::Time -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean -type(ocean_state_type),pointer::Ocean_state -type(ice_ocean_boundary_type),intent(inout)::ice_ocean_boundary -type(ocean_ice_boundary_type),intent(inout)::ocean_ice_boundary -real,intent(in)::Dt_cpl_in -logical,intent(in)::debug_stocks_in -logical,intent(in)::do_area_weighted_flux_in -type(FmsCoupler1dBC_type),intent(in)::ex_gas_fields_ice,ex_gas_fluxes -logical,intent(in)::do_ocean -integer,dimension(:),intent(in)::slow_ice_ocean_pelist_in -integer::is,ie,js,je - -dt_cpl=dt_cpl_in -debug_stocks=debug_stocks_in -do_area_weighted_flux=do_area_weighted_flux_in - -!ocean_ice_boundaryandice_ocean_boundarymustbedoneonallPES -!domainboundarieswillassurenospaceisallocatedonnon-relevantPEs. -callfms_mpp_domains_get_compute_domain(ice%slow_Domain_NH,is,ie,js,je) -!allocateocean_ice_boundary -allocate(ocean_ice_boundary%u(is:ie,js:je)) -allocate(ocean_ice_boundary%v(is:ie,js:je)) -allocate(ocean_ice_boundary%t(is:ie,js:je)) -allocate(ocean_ice_boundary%s(is:ie,js:je)) -!frazilandsea_levelareoptional,ifnotpresenttheyshouldbenullified -allocate(ocean_ice_boundary%frazil(is:ie,js:je)) -allocate(ocean_ice_boundary%sea_level(is:ie,js:je)) -!initializeboundaryfieldsforoverrideexperiments(mjh) -ocean_ice_boundary%u=0.0 -ocean_ice_boundary%v=0.0 -ocean_ice_boundary%t=273.0 -ocean_ice_boundary%s=0.0 -ocean_ice_boundary%frazil=0.0 -ocean_ice_boundary%sea_level=0.0 - -!allocatefieldsforextratracersinocean_ice_boundary -if(.not.fms_coupler_type_initialized(ocean_ice_boundary%fields))& -callfms_coupler_type_spawn(ex_gas_fields_ice,ocean_ice_boundary%fields,(/is,is,ie,ie/),& -(/js,js,je,je/),suffix='_ocn_ice') -if(ice%pe)& -callfms_coupler_type_set_diags(ocean_ice_boundary%fields,"ice_flux",ice%axes(1:2),time) - -! -!allocatefieldsandfluxesforextratracersfortheIcetype -! -if(.not.fms_coupler_type_initialized(ice%ocean_fluxes))& -callfms_coupler_type_spawn(ex_gas_fluxes,ice%ocean_fluxes,(/is,is,ie,ie/),& -(/js,js,je,je/),suffix='_ice') - -!Thiswasneverbeingsent,socommentitoutfornow. -!if(Ice%pe)& -!callcoupler_type_set_diags(Ice%ocean_fluxes,"ice_flux",Ice%axes(1:2),Time) - - -!allocateice_ocean_boundary -callfms_mpp_domains_get_compute_domain(ocean%domain,is,ie,js,je) -!MLoceanonlyrequirest,q,lw,sw,fprec,calving -!AMIPoceanneedsnoinputfields -!choiceoffieldswilleventuallybedoneatruntime -!viafield_manager -allocate(ice_ocean_boundary%u_flux(is:ie,js:je));ice_ocean_boundary%u_flux=0.0 -allocate(ice_ocean_boundary%v_flux(is:ie,js:je));ice_ocean_boundary%v_flux=0.0 -allocate(ice_ocean_boundary%t_flux(is:ie,js:je));ice_ocean_boundary%t_flux=0.0 -allocate(ice_ocean_boundary%q_flux(is:ie,js:je));ice_ocean_boundary%q_flux=0.0 -allocate(ice_ocean_boundary%salt_flux(is:ie,js:je));ice_ocean_boundary%salt_flux=0.0 -allocate(ice_ocean_boundary%lw_flux(is:ie,js:je));ice_ocean_boundary%lw_flux=0.0 -allocate(ice_ocean_boundary%sw_flux_vis_dir(is:ie,js:je));ice_ocean_boundary%sw_flux_vis_dir=0.0 -allocate(ice_ocean_boundary%sw_flux_vis_dif(is:ie,js:je));ice_ocean_boundary%sw_flux_vis_dif=0.0 -allocate(ice_ocean_boundary%sw_flux_nir_dir(is:ie,js:je));ice_ocean_boundary%sw_flux_nir_dir=0.0 -allocate(ice_ocean_boundary%sw_flux_nir_dif(is:ie,js:je));ice_ocean_boundary%sw_flux_nir_dif=0.0 -allocate(ice_ocean_boundary%lprec(is:ie,js:je));ice_ocean_boundary%lprec=0.0 -allocate(ice_ocean_boundary%fprec(is:ie,js:je));ice_ocean_boundary%fprec=0.0 -allocate(ice_ocean_boundary%runoff(is:ie,js:je));ice_ocean_boundary%runoff=0.0 -allocate(ice_ocean_boundary%calving(is:ie,js:je));ice_ocean_boundary%calving=0.0 -allocate(ice_ocean_boundary%runoff_hflx(is:ie,js:je));ice_ocean_boundary%runoff_hflx=0.0 -allocate(ice_ocean_boundary%calving_hflx(is:ie,js:je));ice_ocean_boundary%calving_hflx=0.0 -allocate(ice_ocean_boundary%p(is:ie,js:je));ice_ocean_boundary%p=0.0 -allocate(ice_ocean_boundary%mi(is:ie,js:je));ice_ocean_boundary%mi=0.0 -!Allocatingicebergfields,ifthecorrespondingfieldsareassosiatedintheseaicemodel(s) -if(associated(ice%ustar_berg))then -allocate(ice_ocean_boundary%ustar_berg(is:ie,js:je));ice_ocean_boundary%ustar_berg=0.0 -endif -if(associated(ice%area_berg))then -allocate(ice_ocean_boundary%area_berg(is:ie,js:je));ice_ocean_boundary%area_berg=0.0 -endif -if(associated(ice%mass_berg))then -allocate(ice_ocean_boundary%mass_berg(is:ie,js:je));ice_ocean_boundary%mass_berg=0.0 -endif -!Copythestaggerindicationvariablesfromtheiceprocessorstheocean -!PEsandviceversa.Thedefaultsarelargenegativenumbers,sothe -!globalmaxherepicksoutonlyvaluesthathavebeensetonactivePEs. -callfms_mpp_max(ice%flux_uv_stagger) -callfms_mpp_max(ocean%stagger) -ice_ocean_boundary%wind_stagger=ice%flux_uv_stagger -if(do_ocean)then -ocean_ice_boundary%stagger=ocean%stagger -else -ocean_ice_boundary%stagger=agrid -endif - -!allocatefieldsforextratracerfluxesinice_ocean_boundary -if(.not.fms_coupler_type_initialized(ice_ocean_boundary%fluxes))& -callfms_coupler_type_spawn(ex_gas_fluxes,ice_ocean_boundary%fluxes,(/is,is,ie,ie/),& -(/js,js,je,je/),suffix='_ice_ocn') -if(ocean%is_ocean_pe)& -callfms_coupler_type_set_diags(ice_ocean_boundary%fluxes,"ocean_flux",ocean%axes(1:2),time) - -!Thistypicallyonlyoccursonnon-oceanPEs. -if(.not.fms_coupler_type_initialized(ocean%fields))& -callfms_coupler_type_spawn(ex_gas_fields_ice,ocean%fields,(/is,is,ie,ie/),& -(/js,js,je,je/),suffix='_ocn') - -!initializeboundaryvaluesforoverrideexperiments -ocean_ice_boundary%xtype=redist -if(ocean%domain.EQ.ice%slow_Domain_NH)ocean_ice_boundary%xtype=direct -ice_ocean_boundary%xtype=ocean_ice_boundary%xtype - -!initializetheOceantypeforextrafieldsforsurfacefluxes -!Sameallocationofarraysandstuff -!(thismustbedoneaftertheOceanfieldsareallocatedasthefieldsontheOcean%fields -!arereadininthissubroutine) -! - -if(ocean%is_ocean_pe)then -callfms_mpp_set_current_pelist(ocean%pelist) -callocean_model_init_sfc(ocean_state,ocean) -endif -callfms_mpp_set_current_pelist() - -!z1lcheckthefluxconservation. -if(debug_stocks)callcheck_flux_conservation(ice,ocean,ice_ocean_boundary) -if(ice%slow_ice_PE.or.ocean%is_ocean_pe)then -allocate(slow_ice_ocean_pelist(size(slow_ice_ocean_pelist_in(:)))) -slow_ice_ocean_pelist=slow_ice_ocean_pelist_in -callfms_mpp_set_current_pelist(slow_ice_ocean_pelist) -cplocnclock=fms_mpp_clock_id('Ice-oceancoupler',flags=fms_clock_flag_default,grain=clock_component) -fluxiceoceanclock=fms_mpp_clock_id('Fluxicetoocean',flags=fms_clock_flag_default,grain=clock_routine) -fluxoceaniceclock=fms_mpp_clock_id('Fluxoceantoice',flags=fms_clock_flag_default,grain=clock_routine) -endif - -endsubroutineice_ocean_flux_exchange_init - - -!####################################################################### -!!\briefTakestheicemodelstate(fluxesatthebottomoftheice)andinterpolatesittotheoceanmodelgrid. -!! -!!ThefollowingquantitiesaretransferredfromtheIcetotheice_ocean_boundary_type: -!!<pre> -!!flux_u=zonalwindstress(Pa) -!!flux_v=meridionalwindstress(Pa) -!!flux_t=sensibleheatflux(W/m2) -!!flux_q=specifichumidityflux(Kg/m2/s) -!!flux_salt=saltflux(Kg/m2/s) -!!flux_sw=net(down-up)shortwaveflux(W/m2) -!!flux_lw=net(down-up)longwaveflux(W/m2) -!!lprec=massofliquidprecipitationsincelast -!!timestep(Kg/m2) -!!fprec=massoffrozenprecipitationsincelast -!!timestep(Kg/m2) -!!runoff=massofrunoffsincelasttimestep(Kg/m2) -!!runoff=massofcalvingsincelasttimestep(Kg/m2) -!!p_surf=surfacepressure(Pa) -!!</pre> -subroutineflux_ice_to_ocean(Ice,Ocean,Ice_Ocean_Boundary) - -type(ice_data_type),intent(in)::Ice -type(ocean_public_type),intent(in)::Ocean -type(ice_ocean_boundary_type),intent(inout)::Ice_Ocean_Boundary - -integer::m -integer::n -logical::used - -callfms_mpp_clock_begin(cplocnclock) -callfms_mpp_clock_begin(fluxiceoceanclock) - -if(ASSOCIATED(ice_ocean_boundary%u_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_u,ice_ocean_boundary%u_flux,ice_ocean_boundary%xtype,.false.) - -if(ASSOCIATED(ice_ocean_boundary%v_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_v,ice_ocean_boundary%v_flux,ice_ocean_boundary%xtype,.false.) - -if(ASSOCIATED(ice_ocean_boundary%p))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%p_surf,ice_ocean_boundary%p,ice_ocean_boundary%xtype,.false.) - -if(ASSOCIATED(ice_ocean_boundary%mi))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%mi,ice_ocean_boundary%mi,ice_ocean_boundary%xtype,.false.) - -!Extrafluxes -if(ice_ocean_boundary%xtype==direct)then -callfms_coupler_type_copy_data(ice%ocean_fluxes,ice_ocean_boundary%fluxes) -else -callfms_coupler_type_redistribute_data(ice%ocean_fluxes,ice%slow_Domain_NH,& -ice_ocean_boundary%fluxes,ocean%Domain,complete=.true.) -endif - -!---Thefollowingvariablesmayrequireconservedfluxexchangefromicetooceanbecausethe -!---iceareamaybedifferentfromoceanarea. -if(ASSOCIATED(ice_ocean_boundary%t_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_t,ice_ocean_boundary%t_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%salt_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_salt,ice_ocean_boundary%salt_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%sw_flux_nir_dir))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_sw_nir_dir,ice_ocean_boundary%sw_flux_nir_dir,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%sw_flux_nir_dif))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_sw_nir_dif,ice_ocean_boundary%sw_flux_nir_dif,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%sw_flux_vis_dir))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_sw_vis_dir,ice_ocean_boundary%sw_flux_vis_dir,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%sw_flux_vis_dif))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_sw_vis_dif,ice_ocean_boundary%sw_flux_vis_dif,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%lw_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_lw,ice_ocean_boundary%lw_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%lprec))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%lprec,ice_ocean_boundary%lprec,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%fprec))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%fprec,ice_ocean_boundary%fprec,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%runoff))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%runoff,ice_ocean_boundary%runoff,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%calving))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%calving,ice_ocean_boundary%calving,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%ustar_berg))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%ustar_berg,ice_ocean_boundary%ustar_berg,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%area_berg))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%area_berg,ice_ocean_boundary%area_berg,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%mass_berg))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%mass_berg,ice_ocean_boundary%mass_berg,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%runoff_hflx))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%runoff_hflx,ice_ocean_boundary%runoff_hflx,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%calving_hflx))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%calving_hflx,ice_ocean_boundary%calving_hflx,ice_ocean_boundary%xtype,do_area_weighted_flux) - -if(ASSOCIATED(ice_ocean_boundary%q_flux))callflux_ice_to_ocean_redistribute(ice,ocean,& -ice%flux_q,ice_ocean_boundary%q_flux,ice_ocean_boundary%xtype,do_area_weighted_flux) - -callfms_mpp_clock_end(fluxiceoceanclock) -callfms_mpp_clock_end(cplocnclock) -!----------------------------------------------------------------------- - -endsubroutineflux_ice_to_ocean - -subroutineflux_ice_to_ocean_finish(Time,Ice_Ocean_Boundary) - -type(FmsTime_type),intent(in)::Time -type(ice_ocean_boundary_type),intent(inout)::Ice_Ocean_Boundary - -callfms_data_override('OCN','u_flux',ice_ocean_boundary%u_flux,time) -callfms_data_override('OCN','v_flux',ice_ocean_boundary%v_flux,time) -callfms_data_override('OCN','t_flux',ice_ocean_boundary%t_flux,time) -callfms_data_override('OCN','q_flux',ice_ocean_boundary%q_flux,time) -callfms_data_override('OCN','salt_flux',ice_ocean_boundary%salt_flux,time) -callfms_data_override('OCN','lw_flux',ice_ocean_boundary%lw_flux,time) -callfms_data_override('OCN','sw_flux_nir_dir',ice_ocean_boundary%sw_flux_nir_dir,time) -callfms_data_override('OCN','sw_flux_nir_dif',ice_ocean_boundary%sw_flux_nir_dif,time) -callfms_data_override('OCN','sw_flux_vis_dir',ice_ocean_boundary%sw_flux_vis_dir,time) -callfms_data_override('OCN','sw_flux_vis_dif',ice_ocean_boundary%sw_flux_vis_dif,time) -callfms_data_override('OCN','lprec',ice_ocean_boundary%lprec,time) -callfms_data_override('OCN','fprec',ice_ocean_boundary%fprec,time) -callfms_data_override('OCN','runoff',ice_ocean_boundary%runoff,time) -callfms_data_override('OCN','calving',ice_ocean_boundary%calving,time) -callfms_data_override('OCN','runoff_hflx',ice_ocean_boundary%runoff_hflx,time) -callfms_data_override('OCN','calving_hflx',ice_ocean_boundary%calving_hflx,time) -callfms_data_override('OCN','p',ice_ocean_boundary%p,time) -callfms_data_override('OCN','mi',ice_ocean_boundary%mi,time) - -!Aretheseifstatementsneeded,ordoesdata_overrideroutinecheckifvariableisassociated? -if(ASSOCIATED(ice_ocean_boundary%ustar_berg))& -callfms_data_override('OCN','ustar_berg',ice_ocean_boundary%ustar_berg,time) -if(ASSOCIATED(ice_ocean_boundary%area_berg))& -callfms_data_override('OCN','area_berg',ice_ocean_boundary%area_berg,time) -if(ASSOCIATED(ice_ocean_boundary%mass_berg))& -callfms_data_override('OCN','mass_berg',ice_ocean_boundary%mass_berg,time) - -!Extrafluxes -callfms_coupler_type_data_override('OCN',ice_ocean_boundary%fluxes,time) - -!Thesend_datacallforanyoftheIce_Ocean_Boundaryfluxeswouldgohere. -callfms_coupler_type_send_data(ice_ocean_boundary%fluxes,time) - -endsubroutineflux_ice_to_ocean_finish - -!####################################################################### -subroutineflux_ocean_to_ice(Ocean,Ice,Ocean_Ice_Boundary) - -type(ocean_public_type),intent(in)::Ocean -type(ice_data_type),intent(in)::Ice -type(ocean_ice_boundary_type),intent(inout)::Ocean_Ice_Boundary -real,allocatable,dimension(:,:)::tmp -integer::m -integer::n -logical::used - -callfms_mpp_clock_begin(cplocnclock) -callfms_mpp_clock_begin(fluxoceaniceclock) - -selectcase(ocean_ice_boundary%xtype) -case(direct) -!samegridanddomaindecompforoceanandice -if(ASSOCIATED(ocean_ice_boundary%u))ocean_ice_boundary%u=ocean%u_surf -if(ASSOCIATED(ocean_ice_boundary%v))ocean_ice_boundary%v=ocean%v_surf -if(ASSOCIATED(ocean_ice_boundary%t))ocean_ice_boundary%t=ocean%t_surf -if(ASSOCIATED(ocean_ice_boundary%s))ocean_ice_boundary%s=ocean%s_surf -if(ASSOCIATED(ocean_ice_boundary%sea_level))ocean_ice_boundary%sea_level=ocean%sea_lev -if(ASSOCIATED(ocean_ice_boundary%frazil))then -if(do_area_weighted_flux)then -ocean_ice_boundary%frazil=ocean%frazil*ocean%area -calldivide_by_area(data=ocean_ice_boundary%frazil,area=ice%area) -else -ocean_ice_boundary%frazil=ocean%frazil -endif -endif - -!Extrafluxes -callfms_coupler_type_copy_data(ocean%fields,ocean_ice_boundary%fields) - -case(redist) -!samegrid,differentdomaindecompforoceanandice -if(ASSOCIATED(ocean_ice_boundary%u))& -callfms_mpp_domains_redistribute(ocean%Domain,ocean%u_surf,ice%slow_Domain_NH,ocean_ice_boundary%u) -if(ASSOCIATED(ocean_ice_boundary%v))& -callfms_mpp_domains_redistribute(ocean%Domain,ocean%v_surf,ice%slow_Domain_NH,ocean_ice_boundary%v) -if(ASSOCIATED(ocean_ice_boundary%t))& -callfms_mpp_domains_redistribute(ocean%Domain,ocean%t_surf,ice%slow_Domain_NH,ocean_ice_boundary%t) -if(ASSOCIATED(ocean_ice_boundary%s))& -callfms_mpp_domains_redistribute(ocean%Domain,ocean%s_surf,ice%slow_Domain_NH,ocean_ice_boundary%s) - -if(ASSOCIATED(ocean_ice_boundary%sea_level))& -callfms_mpp_domains_redistribute(ocean%Domain,ocean%sea_lev,ice%slow_Domain_NH,& -ocean_ice_boundary%sea_level) - -if(ASSOCIATED(ocean_ice_boundary%frazil))then -if(do_area_weighted_flux)then -if(ocean%is_ocean_pe)then -allocate(tmp(size(ocean%area,1),size(ocean%area,2))) -tmp(:,:)=ocean%frazil(:,:)*ocean%area(:,:) -endif -callfms_mpp_domains_redistribute(ocean%Domain,tmp,ice%slow_Domain_NH,ocean_ice_boundary%frazil) -if(ice%slow_ice_pe)& -calldivide_by_area(data=ocean_ice_boundary%frazil,area=ice%area) -if(ocean%is_ocean_pe)deallocate(tmp) -else -callfms_mpp_domains_redistribute(ocean%Domain,ocean%frazil,ice%slow_Domain_NH,ocean_ice_boundary%frazil) -endif -endif - -!Extrafluxes -callfms_coupler_type_redistribute_data(ocean%fields,ocean%Domain,& -ocean_ice_boundary%fields,ice%slow_Domain_NH) -caseDEFAULT -callfms_mpp_error(fatal,'flux_ocean_to_ice:Ocean_Ice_Boundary%xtypemustbeDIRECTorREDIST.') -endselect - -callfms_mpp_clock_end(fluxoceaniceclock) -callfms_mpp_clock_end(cplocnclock) -!----------------------------------------------------------------------- - -endsubroutineflux_ocean_to_ice - -subroutineflux_ocean_to_ice_finish(Time,Ice,Ocean_Ice_Boundary) - -type(FmsTime_type),intent(in)::Time -type(ice_data_type),intent(in)::Ice -type(ocean_ice_boundary_type),intent(inout)::Ocean_Ice_Boundary -real::from_dq - -callfms_data_override('ICE','u',ocean_ice_boundary%u,time) -callfms_data_override('ICE','v',ocean_ice_boundary%v,time) -callfms_data_override('ICE','t',ocean_ice_boundary%t,time) -callfms_data_override('ICE','s',ocean_ice_boundary%s,time) -callfms_data_override('ICE','frazil',ocean_ice_boundary%frazil,time) -callfms_data_override('ICE','sea_level',ocean_ice_boundary%sea_level,time) -callfms_coupler_type_data_override('ICE',ocean_ice_boundary%fields,time) - -!Performdiagnosticoutputfortheocean_ice_boundaryfields -callfms_coupler_type_send_data(ocean_ice_boundary%fields,time) - -!frazil(alreadyinJ/m^2sononeedtomultiplybyDt_cpl) -from_dq=sum(ice%area*ocean_ice_boundary%frazil) -fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)=& -fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)-from_dq -fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)=& -fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)+from_dq - -endsubroutineflux_ocean_to_ice_finish - - -!####################################################################### - -subroutineflux_ice_to_ocean_stocks(Ice) - -type(ice_data_type),intent(in)::Ice - -real::from_dq - -!fluxesfromice->ocean,integrateoversurfaceandintime - -!precip-evap -from_dq=dt_cpl*sum(ice%area*(ice%lprec+ice%fprec-ice%flux_q)) -fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)=& -fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)-from_dq -fms_stock_constants_ocn_stock(istock_water)%dq(istock_top)=& -fms_stock_constants_ocn_stock(istock_water)%dq(istock_top)+from_dq - -!river -from_dq=dt_cpl*sum(ice%area*(ice%runoff+ice%calving)) -fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)=& -fms_stock_constants_ice_stock(istock_water)%dq(istock_bottom)-from_dq -fms_stock_constants_ocn_stock(istock_water)%dq(istock_side)=& -fms_stock_constants_ocn_stock(istock_water)%dq(istock_side)+from_dq - -!sensibleheat+shortwave+longwave+latentheat -from_dq=dt_cpl*sum(ice%area*(& -&ice%flux_sw_vis_dir+ice%flux_sw_vis_dif& -&+ice%flux_sw_nir_dir+ice%flux_sw_nir_dif+ice%flux_lw& -&-(ice%fprec+ice%calving)*hlf-ice%flux_t-ice%flux_q*hlv)) -fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)=& -fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)-from_dq -fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)=& -fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)+from_dq - -!heatcarriedbyriver+pme(assumingreferencetemperatureof0degCandriver/pmetemp=surfacetemp) -!Note:itdoesnotmatterwhatthereftemperatureisbutitmustbeconsistentwiththatinOCNandICE -from_dq=dt_cpl*sum(ice%area*(& -&(ice%lprec+ice%fprec-ice%flux_q+ice%runoff+ice%calving)*cp_ocean*ice%SST_C(:,:))) -fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)=& -fms_stock_constants_ice_stock(istock_heat)%dq(istock_bottom)-from_dq -fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)=& -fms_stock_constants_ocn_stock(istock_heat)%dq(istock_side)+from_dq - -!SALTflux -from_dq=dt_cpl*sum(ice%area*(-ice%flux_salt)) -fms_stock_constants_ice_stock(istock_salt)%dq(istock_bottom)=& -fms_stock_constants_ice_stock(istock_salt)%dq(istock_bottom)-from_dq -fms_stock_constants_ocn_stock(istock_salt)%dq(istock_top)=& -fms_stock_constants_ocn_stock(istock_salt)%dq(istock_top)+from_dq - - -endsubroutineflux_ice_to_ocean_stocks - -!####################################################################### -subroutineflux_ocean_from_ice_stocks(ocean_state,Ocean,Ice_Ocean_boundary) -type(ocean_state_type),pointer::ocean_state -type(ocean_public_type),intent(in)::Ocean -type(ice_ocean_boundary_type),intent(in)::Ice_Ocean_Boundary -real::from_dq,cp_ocn -real,dimension(size(Ice_Ocean_Boundary%lprec,1),size(Ice_Ocean_Boundary%lprec,2))::& -ocean_cell_area,wet,t_surf,t_pme,t_calving,t_runoff,btfHeat -integer::isc,iec,jsc,jec - -callfms_mpp_domains_get_compute_domain(ocean%Domain,isc,iec,jsc,jec) -callocean_model_data_get(ocean_state,ocean,'area',ocean_cell_area,isc,jsc) -callocean_model_data_get(ocean_state,ocean,'mask',wet,isc,jsc) -callocean_model_data_get(ocean_state,ocean,'t_surf',t_surf,isc,jsc) -callocean_model_data_get(ocean_state,ocean,'t_runoff',t_runoff,isc,jsc) -callocean_model_data_get(ocean_state,ocean,'t_pme',t_pme,isc,jsc) -callocean_model_data_get(ocean_state,ocean,'t_calving',t_calving,isc,jsc) -callocean_model_data_get(ocean_state,ocean,'btfHeat',btfheat,isc,jsc) -callocean_model_data_get(ocean_state,ocean,'c_p',cp_ocn) - - -!fluxesfromice->ocean,integrateoversurfaceandintime - -!precip-evap -from_dq=sum(ocean_cell_area*wet*(ice_ocean_boundary%lprec+ice_ocean_boundary%fprec-ice_ocean_boundary%q_flux)) -fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_top)=& -fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_top)+from_dq*dt_cpl - -from_dq=sum(ocean_cell_area*wet*(ice_ocean_boundary%runoff+ice_ocean_boundary%calving)) -fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_side)=& -fms_stock_constants_ocn_stock(istock_water)%dq_IN(istock_side)+from_dq*dt_cpl - -!sensibleheat+shortwave+longwave+latentheat - -from_dq=sum(ocean_cell_area*wet*(ice_ocean_boundary%sw_flux_vis_dir+ice_ocean_boundary%sw_flux_vis_dif& -+ice_ocean_boundary%sw_flux_nir_dir+ice_ocean_boundary%sw_flux_nir_dif& -+ice_ocean_boundary%lw_flux& --(ice_ocean_boundary%fprec+ice_ocean_boundary%calving)*hlf& --ice_ocean_boundary%t_flux-ice_ocean_boundary%q_flux*hlv)) - -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)=& -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)+from_dq*dt_cpl - -!heatcarriedbyriver+pme(assumingreferencetemperatureof0degCandriver/pmetemp=surfacetemp) -!Note:itdoesnotmatterwhatthereftemperatureisbutitmustbeconsistentwiththatinOCNandICE - -from_dq=sum(ocean_cell_area*wet*cp_ocn*& -((ice_ocean_boundary%lprec+ice_ocean_boundary%fprec-ice_ocean_boundary%q_flux)*t_pme& -+ice_ocean_boundary%calving*t_calving& -+ice_ocean_boundary%runoff*t_runoff)) - -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)=& -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)+from_dq*dt_cpl - -!Bottomheatflux -from_dq=-sum(ocean_cell_area*wet*btfheat) - -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_bottom)=& -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_bottom)+from_dq*dt_cpl - -!Frazilheat - -from_dq=sum(ocean_cell_area*wet*ocean%frazil) -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)=& -fms_stock_constants_ocn_stock(istock_heat)%dq_IN(istock_side)+from_dq - -!SALTflux -from_dq=sum(ocean_cell_area*wet*(-ice_ocean_boundary%salt_flux)) -fms_stock_constants_ocn_stock(istock_salt)%dq_IN(istock_top)=& -fms_stock_constants_ocn_stock(istock_salt)%dq_IN(istock_top)+from_dq*dt_cpl - - -endsubroutineflux_ocean_from_ice_stocks - -!####################################################################### -subroutineflux_ice_to_ocean_redistribute(ice,ocean,ice_data,ocn_bnd_data,type,do_area_weighted) - -!PerformsagloballyconservativefluxredistributionacrossICE/OCN. -!Assumesthattheice/ocngridsarethesame.Ifoceanispresent, -!thenassumedifferentmppdomansandredistribute - -!shouldbeinvokedbyallPEs - -type(ice_data_type),intent(in)::ice -type(ocean_public_type),intent(in)::ocean -real,dimension(:,:),intent(in)::ice_data -real,dimension(:,:),intent(out)::ocn_bnd_data -integer,intent(in)::type -logical,intent(in)::do_area_weighted - -real,allocatable,dimension(:,:)::tmp - -selectcase(type) -case(direct) -if(do_area_weighted)then -ocn_bnd_data=ice_data*ice%area -calldivide_by_area(data=ocn_bnd_data,area=ocean%area) -else -ocn_bnd_data=ice_data -endif -case(redist) -if(do_area_weighted)then -if(ice%slow_ice_pe)then -allocate(tmp(size(ice%area,1),size(ice%area,2))) -tmp(:,:)=ice_data(:,:)*ice%area(:,:) -endif -callfms_mpp_domains_redistribute(ice%slow_Domain_NH,tmp,ocean%Domain,ocn_bnd_data) -if(ocean%is_ocean_pe)calldivide_by_area(ocn_bnd_data,area=ocean%area) -if(ice%slow_ice_pe)deallocate(tmp) -else -callfms_mpp_domains_redistribute(ice%slow_Domain_NH,ice_data,ocean%Domain,ocn_bnd_data) -endif -caseDEFAULT -callfms_mpp_error(fatal,'FLUX_ICE_TO_OCEAN:Ice_Ocean_Boundary%xtypemustbeDIRECTorREDIST.') -endselect - -endsubroutineflux_ice_to_ocean_redistribute - -!###################################################################################### -subroutinedivide_by_area(data,area) -real,intent(inout)::data(:,:) -real,intent(in)::area(:,:) - -if(size(data,dim=1)/=size(area,dim=1).or.size(data,dim=2)/=size(area,dim=2))then -!noop -return -endif - -where(area/=0.0) -data=data/area -endwhere - -endsubroutinedivide_by_area - -!####################################################################### - -subroutinecheck_flux_conservation(Ice,Ocean,Ice_Ocean_Boundary) -type(ice_data_type),intent(inout)::Ice -type(ocean_public_type),intent(inout)::Ocean -type(ice_ocean_boundary_type),intent(inout)::ice_ocean_boundary - -real,allocatable,dimension(:,:)::ice_data,ocn_data -real::ice_sum,area_weighted_sum,non_area_weighted_sum -integer::outunit - -outunit=fms_mpp_stdout() -allocate(ice_data(size(ice%flux_q,1),size(ice%flux_q,2))) -allocate(ocn_data(size(ice_ocean_boundary%q_flux,1),size(ice_ocean_boundary%q_flux,2))) -callrandom_number(ice_data) -ice_sum=sum(ice_data*ice%area) -callfms_mpp_sum(ice_sum) -ocn_data=0.0 -callflux_ice_to_ocean_redistribute(ice,ocean,ice_data,ocn_data,ice_ocean_boundary%xtype,.false.) -non_area_weighted_sum=sum(ocn_data*ocean%area) -callfms_mpp_sum(non_area_weighted_sum) -ocn_data=0.0 -callflux_ice_to_ocean_redistribute(ice,ocean,ice_data,ocn_data,ice_ocean_boundary%xtype,.true.) -area_weighted_sum=sum(ocn_data*ocean%area) -callfms_mpp_sum(area_weighted_sum) -write(outunit,*)"NOTEfromflux_exchange_mod:checkforfluxconservationforflux_ice_to_ocean" -write(outunit,*)"*****Theglobalareasumofrandomnumberonicedomain(inputdata)is",ice_sum -write(outunit,*)"*****Theglobalareasumofdataafterflux_ice_to_ocean_redistributewith"//& -"do_area_weighted_flux=falseis",non_area_weighted_sum,& -"andthedifferencefromglobalinputareasum=",ice_sum-non_area_weighted_sum -write(outunit,*)"*****Theglobalareasumofdataafterflux_ice_to_ocean_redistributewith"//& -"do_area_weighted_flux=trueis",area_weighted_sum,& -"andthedifferencefromglobalinputareasum=",ice_sum-area_weighted_sum - - -endsubroutinecheck_flux_conservation - -endmoduleice_ocean_flux_exchange_mod - - - - diff --git a/docs/xml/index.xml b/docs/xml/index.xml deleted file mode 100644 index d66fc611..00000000 --- a/docs/xml/index.xml +++ /dev/null @@ -1,762 +0,0 @@ - - - ice_model_mod::atmos_ice_boundary_type - u_star - t_flux - q_flux - lw_flux - sw_flux - lprec - fprec - dhdt - dedt - drdt - coszen - data - xtype - - full_coupler_mod::coupler_chksum_type - components - initialize_coupler_chksum_obj - get_components_obj - get_atmos_ice_land_ocean_chksums - get_atmos_ice_land_chksums - get_slow_ice_chksums - get_ocean_chksums - get_coupler_chksums - - full_coupler_mod::coupler_clock_type - initialization - main - generate_sfc_xgrid - flux_ocean_to_ice - flux_ice_to_ocean - atm - atmos_loop - atmos_tracer_driver_gather_data - sfc_boundary_layer - update_atmos_model_dynamics - update_atmos_model_down - flux_down_from_atmos - update_land_model_fast - update_ice_model_fast - flux_up_to_atmos - update_atmos_model_up - radiation - concurrent_atmos - update_atmos_model_state - update_land_model_slow - flux_land_to_ice - set_ice_surface_fast - update_ice_model_slow_fast - set_ice_surface_slow - update_ice_model_slow_slow - flux_ice_to_ocean_stocks - set_ice_surface_exchange - update_ice_model_slow_exchange - ocean - flux_check_stocks - intermediate_restart - final_flux_check_stocks - termination - atmos_model_init - land_model_init - ice_model_init - ocean_model_init - flux_exchange_init - - full_coupler_mod::coupler_components_type - atm - land - ice - ocean - land_ice_atmos_boundary - atmos_land_boundary - atmos_ice_boundary - land_ice_boundary - ice_ocean_boundary - ocean_ice_boundary - initialize_coupler_components_obj - get_component - - ice_model_mod::ice_data_type - domain - glon_bnd - glat_bnd - lon_bnd - lat_bnd - glon - glat - lon - lat - gmask - mask - ice_mask - t_surf - albedo - albedo_vis_dir - albedo_nir_dir - albedo_vis_dif - albedo_nir_dif - rough_mom - rough_heat - rough_moist - thickness - time_init - time - time_step_fast - time_step_slow - - atm_land_ice_flux_exchange_mod::put_logical_to_real - put_logical_to_real_sg - put_logical_to_real_ug - - surface_flux_mod::surface_flux - surface_flux_1d - surface_flux_2d - - atm_land_ice_flux_exchange_mod::tracer_exch_ind_type - exch - ice - lnd - - atm_land_ice_flux_exchange_mod::tracer_ind_type - atm - ice - lnd - - atm_land_ice_flux_exchange_mod - version - tag - xmap_sfc - n_xgrid_sfc - mod_name - id_b_star - id_del_h - id_del_m - id_del_q - id_drag_heat - id_drag_moist - id_drag_mom - id_gust - id_husslut_land - id_ice_mask - id_land_mask - id_p_atm - id_q_flux - id_q_flux_land - id_q_ref - id_q_ref_land - id_q_star - id_r_flux - id_rh_ref - id_rh_ref_cmip - id_rh_ref_land - id_rough_heat - id_rough_moist - id_rough_mom - id_rough_scale - id_slp - id_t_atm - id_t_ca - id_t_flux - id_t_ocean - id_t_ref - id_t_ref_land - id_t_surf - id_taslut_land - id_thv_atm - id_thv_surf - id_u_atm - id_u_flux - id_u_ref - id_u_ref_land - id_u_star - id_v_atm - id_v_flux - id_v_ref - id_v_ref_land - id_wind - id_wind_ref - id_z_atm - id_co2_atm_dvmr - id_co2_surf_dvmr - id_co2_bot - id_co2_flux_pcair_atm - id_o2_flux_pcair_atm - id_tr_atm - id_tr_surf - id_tr_flux - id_tr_mol_flux - id_tr_ref - id_tr_ref_land - id_tr_mol_flux0 - id_tr_flux_land - id_tr_mol_flux_land - id_tr_con_atm - id_tr_con_atm_land - id_tr_con_ref - id_tr_con_ref_land - id_evspsbl - id_height10m - id_height2m - id_hfls - id_hfss - id_hurs - id_huss - id_psl - id_rhs - id_sfcwind - id_sftlf - id_sic - id_tas - id_tauu - id_tauv - id_tos - id_ts - id_tslsi - id_uas - id_vas - id_evspsbl_g - id_hfls_g - id_rls_g - id_tas_g - id_tasl_g - id_ts_g - first_static - do_init - remap_method - d622 - d378 - d608 - tfreeze - frac_precip - z_ref_heat - z_ref_mom - do_forecast - nblocks - partition_fprec_from_lprec - scale_precip_2d - my_nblocks - block_start - block_end - ex_albedo_fix - ex_albedo_nir_dif_fix - ex_albedo_nir_dir_fix - ex_albedo_vis_dif_fix - ex_albedo_vis_dir_fix - ex_b_star - ex_cd_m - ex_cd_t - ex_con_atm - ex_dedt_surf - ex_dhdt_atm - ex_dhdt_surf - ex_dqsatdt_surf - ex_drdt_surf - ex_dtaudu_atm - ex_dtaudv_atm - ex_e_q_n - ex_flux_lw - ex_flux_t - ex_flux_u - ex_flux_v - ex_old_albedo - ex_p_surf - ex_seawater - ex_slp - ex_t_ca - ex_t_surf - ex_t_surf_miz - ex_u_star - ex_wind - ex_z_atm - ex_dhdt_surf_forland - ex_dedt_surf_forland - ex_dedq_surf_forland - ex_dfdtr_atm - ex_dfdtr_surf - ex_e_tr_n - ex_f_tr_delt_n - ex_flux_tr - ex_tr_con_ref - ex_tr_con_atm - ex_tr_surf - ex_avail - ex_land - ex_e_t_n - ex_f_t_delt_n - n_atm_tr - n_atm_tr_tot - n_lnd_tr - n_lnd_tr_tot - n_exch_tr - n_gex_atm2lnd - n_gex_lnd2atm - tr_table - tr_table_map - isphum - ico2 - inh3 - ex_gas_fields_atm - ex_gas_fields_ice - ex_gas_fluxes - regrid - redist - redirect - cplclock - sfcclock - fluxatmdnclock - regenclock - fluxatmupclock - x1_grid_atm - x1_grid_ice - x1_grid_lnd - dt_atm - dt_cpl - ni_atm - nj_atm - nxc_ice - nyc_ice - nk_ice - nxc_lnd - nyc_lnd - atm_land_ice_flux_exchange_init - sfc_boundary_layer - flux_down_from_atmos - generate_sfc_xgrid - flux_up_to_atmos - flux_ex_arrays_dealloc - flux_atmos_to_ocean - put_logical_to_real_sg - put_logical_to_real_ug - diag_field_init - divide_by_area - send_ice_mask_sic - atm_stock_integrate - - atmos_ocean_dep_fluxes_calc_mod - mod_name - atmos_ocean_dep_fluxes_calc - - atmos_ocean_fluxes_calc_mod - mod_name - epsln - atmos_ocean_fluxes_calc - calc_kw - calc_ka - calc_kl - schmidt_g - d_air - p_air - v_air - n_air - - flux_exchange_mod - version - tag - do_init - bound_tol - d622 - d378 - z_ref_heat - z_ref_mom - do_area_weighted_flux - debug_stocks - divert_stocks_report - do_runoff - do_forecast - nblocks - partition_fprec_from_lprec - tfreeze - scale_precip_2d - gas_fluxes_initialized - ex_gas_fields_atm - ex_gas_fields_ice - ex_gas_fluxes - ni_atm - nj_atm - ccc - cplclock - dt_atm - dt_cpl - atm_precip_new - mod_name - id_drag_moist - id_drag_heat - id_drag_mom - id_rough_moist - id_rough_heat - id_rough_mom - id_u_star - id_b_star - id_q_star - id_u_flux - id_v_flux - id_t_surf - id_t_flux - id_q_flux - id_r_flux - id_t_atm - id_u_atm - id_v_atm - id_wind - id_thv_atm - id_thv_surf - id_t_ref - id_rh_ref - id_u_ref - id_v_ref - id_q_ref - id_del_h - id_del_m - id_del_q - id_albedo - id_gust - id_t_ca - id_q_surf - id_q_atm - id_z_atm - id_p_atm - id_land_mask - id_ice_mask - id_rough_scale - id_albedo_vis_dir - id_albedo_nir_dir - id_albedo_vis_dif - id_albedo_nir_dif - id_tas - id_uas - id_vas - id_ts - id_psl - id_sfcwind - id_tauu - id_tauv - id_hurs - id_huss - id_evspsbl - id_hfls - id_hfss - id_height2m - id_height10m - first_static - do_read_nml - isphum - n_atm_tr_tot - n_atm_tr - use_existing_grid_spec - all_ocean - all_land - is - ie - js - je - t_surf - t_ca - q_surf - p_surf - e_t_n - f_t_delt_n - e_q_n - f_q_delt_n - dhdt_surf - dedt_surf - dedq_surf - drdt_surf - dhdt_atm - dedq_atm - flux_t - flux_q - flux_lw - flux_u - flux_v - drag_q - dtaudu_atm - dtaudv_atm - cd_t - cd_m - b_star - u_star - wind - used - gas_exchange_init - flux_exchange_init - flux_check_stocks - flux_init_stocks - check_atm_grid - sfc_boundary_layer - flux_down_from_atmos - flux_up_to_atmos - flux_exchange_init - read_namelist - diag_field_init - flux_exchange_end - surface_flux_2d - - FMS - - full_coupler_mod - restart_interval - current_date - calendar - force_date_from_namelist - months - days - hours - minutes - seconds - dt_atmos - dt_cpld - atmos_npes - ocean_npes - ice_npes - land_npes - atmos_nthreads - ocean_nthreads - radiation_nthreads - do_atmos - do_land - do_ice - do_ocean - do_flux - concurrent - do_concurrent_radiation - use_lag_fluxes - concurrent_ice - slow_ice_with_ocean - combined_ice_and_ocean - do_chksum - do_endpoint_chksum - do_debug - check_stocks - use_hyper_thread - text - mod_name - calendar_type - date_init - coupler_init - initialize_coupler_components_obj - get_component - initialize_coupler_chksum_obj - get_components_obj - coupler_end - add_domain_dimension_data - coupler_restart - get_coupler_chksums - get_atmos_ice_land_ocean_chksums - get_atmos_ice_land_chksums - get_slow_ice_chksums - get_ocean_chksums - coupler_set_clock_ids - coupler_flux_init_finish_stocks - coupler_flux_check_stocks - coupler_flux_ocean_to_ice - coupler_flux_ice_to_ocean - coupler_unpack_ocean_ice_boundary - coupler_exchange_slow_to_fast_ice - coupler_exchange_fast_to_slow_ice - coupler_set_ice_surface_fields - coupler_generate_sfc_xgrid - coupler_atmos_tracer_driver_gather_data - coupler_sfc_boundary_layer - coupler_update_atmos_model_dynamics - coupler_update_atmos_model_radiation - coupler_update_atmos_model_down - coupler_flux_down_from_atmos - coupler_update_land_model_fast - coupler_update_ice_model_fast - coupler_flux_up_to_atmos - coupler_update_atmos_model_up - coupler_flux_atmos_to_ocean - coupler_update_atmos_model_state - coupler_update_land_model_slow - coupler_flux_land_to_ice - coupler_unpack_land_ice_boundary - coupler_update_ice_model_slow_and_stocks - coupler_update_ocean_model - coupler_intermediate_restart - coupler_summarize_timestep - - ice_model_mod - cmin - cmax - diff - thickness_min - specified_ice_thickness - heat_capacity_ocean - temp_ice_freeze - roughness_ice - mixed_layer_ocean - use_climo_ice - use_annual_ice - use_climo_sst - use_annual_sst - ice_method - sst_method - specified - uniform - or - mixed_layer - temp_ice - temp_sst - sst_anom - interp_method - do_netcdf_restart - is - ie - js - je - amip_ice - amip_sst - module_is_initialized - fname - version - tagname - latent - update_ice_model_fast - update_ice_model_slow - prognostic_ice - prognostic_sst - ice_model_init - ice_register_restart - ice_model_end - add_domain_dimension_data - is_latlon - get_cell_center - latlon2xyz - xyz2latlon - - ice_ocean_flux_exchange_mod - regrid - redist - direct - debug_stocks - do_area_weighted_flux - cplocnclock - fluxoceaniceclock - fluxiceoceanclock - dt_cpl - slow_ice_ocean_pelist - ice_ocean_flux_exchange_init - flux_ice_to_ocean - flux_ice_to_ocean_finish - flux_ocean_to_ice - flux_ocean_to_ice_finish - flux_ice_to_ocean_stocks - flux_ocean_from_ice_stocks - flux_ice_to_ocean_redistribute - divide_by_area - check_flux_conservation - - iso_fortran_env - - land_ice_flux_exchange_mod - xmap_runoff - n_xgrid_runoff - x2_grid_lnd - x2_grid_ice - cplclock - fluxlandiceclock - do_runoff - dt_cpl - land_ice_flux_exchange_init - flux_land_to_ice - - omp_lib - - surface_flux_mod - version - tagname - module_is_initialized - d622 - d378 - hlars - gcp - kappa - d608 - rough_scheme_ocean - no_neg_q - use_virtual_temp - alt_gustiness - old_dtaudv - use_mixing_ratio - gust_const - gust_min - ncar_ocean_flux - ncar_ocean_flux_orig - ncar_ocean_flux_multilevel - do_iter_monin_obukhov - use_u10_neutral - bulk_zu - bulk_zt - bulk_zq - raoult_sat_vap - do_simple - niter_monin_obukhov - surface_flux_1d - surface_flux_0d - surface_flux_2d - surface_flux_init - ncar_ocean_fluxes - ncar_ocean_fluxes_multilevel - iter_monin_obukhov_ocean - - atm_land_ice_flux_exchange.F90 - FMS_DATA_OVERRIDE_ - FMS_XGRID_PUT_TO_XGRID_ - FMS_XGRID_STOCK_MOVE_ - FMS_XGRID_SET_FRAC_AREA_ - FMS_XGRID_GET_FROM_XGRID_ - FMS_DIAG_REGISTER_FIELD_ - - atmos_ocean_dep_fluxes_calc.F90 - - atmos_ocean_fluxes_calc.F90 - - coupler_main.F90 - coupler_main - - coupler_main.F90 - coupler_main - coupler_init - coupler_restart - coupler_end - - coupler_main.F90 - coupler_main - coupler_init - coupler_end - coupler_chksum - - flux_exchange.F90 - - flux_exchange.F90 - - full_coupler_mod.F90 - - ice_ocean_flux_exchange.F90 - - land_ice_flux_exchange.F90 - - surface_flux.F90 - - ice_model.F90 - - coupler_config - - flux_exchange_conf - - surface_flux_config - - full - - shared - - SHiELD - - simple - - index - - diff --git a/docs/xml/index.xsd b/docs/xml/index.xsd deleted file mode 100644 index d7ab2a90..00000000 --- a/docs/xml/index.xsd +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/xml/indexpage.xml b/docs/xml/indexpage.xml deleted file mode 100644 index 151fe097..00000000 --- a/docs/xml/indexpage.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - index - FMS Coupler - -FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean) on different logically rectangular grids. - -FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean) on different logically rectangular grids. This repository holds 3 separate directories with driver programs for different usages along with modules with routines for common operations.There are currently 3 coupler_main driver programs, each with their own directory: -the original 'full' coupler_maina slimmed down 'simple' versiona SHiELD version for use with the model -Additionally, files in the 'shared' directory holds modules used by multiple drivers. The information below is provided for the full coupler, but there is considerable overlap between the other versions. Documentation on all programs and modules is available through the files tab.Bruce Wyman Bruce.Wyman@noaa.gov -V. Balaji V.Balaji@noaa.gov -coupler_main.F90 couples component models for atmosphere, ocean, land and sea ice on independent grids. It also controls the time integration.This version couples model components representing atmosphere, ocean, land and sea ice on independent grids. Each model component is represented by a data type giving the instantaneous model state.The component models are coupled to allow implicit vertical diffusion of heat and moisture at the interfaces of the atmosphere, land, and ice models. As a result, the atmosphere, land, and ice models all use the same time step. The atmospheric model has been separated into down and up calls that correspond to the down and up sweeps of the standard tridiagonal elimination.The ocean interface uses explicit mixing. Fluxes to and from the ocean must be passed through the ice model. This includes atmospheric fluxes as well as fluxes from the land to the ocean (runoff).This program contains the model's main time loop. Each iteration of the main time loop is one coupled (slow) time step. Within this slow time step loop is a fast time step loop, using the atmospheric time step, where the tridiagonal vertical diffusion equations are solved. Exchange between sea ice and ocean occurs once every slow timestep. -Namelists -The three components of coupler: coupler_main , flux_exchange_mod, and surface_flux_mod are configured through three namelists -coupler_nmlflux_exchange_nmlsurface_flux_nml - -If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.The run length must be an intergal multiple of the coupling timestep dt_cpld. - - - -Program Example -Below is some pseudo-code to illustrate the runtime loop of the coupler_main drivers.DOslowtimesteps(ocean) -callflux_ocean_to_ice - -callset_ice_surface_fields - -DOfasttimesteps(atmos) -callflux_calculation - -callatmos_down - -callflux_down_from_atmos - -callland_fast - -callice_fast - -callflux_up_to_atmos - -callatmos_up -ENDDO - -callice_slow - -callflux_ice_to_ocean - -callocean -enddo - - - - diff --git a/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml b/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml deleted file mode 100644 index a2c9bebb..00000000 --- a/docs/xml/interfaceatm__land__ice__flux__exchange__mod_1_1put__logical__to__real.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - atm_land_ice_flux_exchange_mod::put_logical_to_real - - - subroutine - subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_sg - (mask, id, ex_mask, xmap) - put_logical_to_real_sg - - mask - mask - - - id - id - - - ex_mask - ex_mask - - - xmap - xmap - - -Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND - - - -mask - - -land/ice mask to map to exchange grid - - - -ex_mask - - -converted mask on exchange grid - - - - - - - - - subroutine - subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real::put_logical_to_real_ug - (mask, id, ex_mask, xmap) - put_logical_to_real_ug - - mask - mask - - - id - id - - - ex_mask - ex_mask - - - xmap - xmap - - -Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND - - - -mask - - -mask on component grid - - - -ex_mask - - -converted mask on exchange grid - - - - - - - - - - - - - - - atm_land_ice_flux_exchange_mod::put_logical_to_realput_logical_to_real_sg - atm_land_ice_flux_exchange_mod::put_logical_to_realput_logical_to_real_ug - - - diff --git a/docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml b/docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml deleted file mode 100644 index 498ca679..00000000 --- a/docs/xml/interfacesurface__flux__mod_1_1surface__flux.xml +++ /dev/null @@ -1,529 +0,0 @@ - - - - surface_flux_mod::surface_flux - - - subroutine - subroutine surface_flux_mod::surface_flux::surface_flux_1d - (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) - surface_flux_1d - - t_atm - t_atm - Air temp lowest atmospheric level. - - - q_atm_in - q_atm_in - Mixing ratio at lowest atmospheric level (kg/kg). - - - u_atm - u_atm - Zonal wind velocity at lowest atmospheric level. - - - v_atm - v_atm - Meridional wind velocity at lowest atmospheric level. - - - p_atm - p_atm - Pressure lowest atmospheric level. - - - z_atm - z_atm - Height lowest atmospheric level. - - - p_surf - p_surf - Pressure at the Earth's surface - - - t_surf - t_surf - Temp at the Earth's surface - - - t_ca - t_ca - Air temp at the canopy - - - q_surf - q_surf - Mixing ratio at the Earth's surface (kg/kg) - - - u_surf - u_surf - Zonal wind velocity at the Earth's surface - - - v_surf - v_surf - Meridional wind velocity at the Earth's surface - - - rough_mom - rough_mom - Momentum roughness length - - - rough_heat - rough_heat - Heat roughness length - - - rough_moist - rough_moist - - - rough_scale - rough_scale - Scale factor used to topographic roughness calculation - - - gust - gust - - - flux_t - flux_t - Sensible heat flux - - - flux_q - flux_q - Evaporative water flux - - - flux_r - flux_r - Radiative energy flux - - - flux_u - flux_u - Zonal momentum flux - - - flux_v - flux_v - Meridional momentum flux - - - cd_m - cd_m - Momentum exchange coefficient - - - cd_t - cd_t - - - cd_q - cd_q - - - w_atm - w_atm - Absolute wind at the lowest atmospheric level - - - u_star - u_star - Turbulent velocity scale - - - b_star - b_star - Turbulent buoyant scale - - - q_star - q_star - Turbulent moisture scale - - - thv_atm - thv_atm - - - thv_surf - thv_surf - - - dhdt_surf - dhdt_surf - Sensible heat flux temperature sensitivity - - - dedt_surf - dedt_surf - Moisture flux temperature sensitivity - - - dedq_surf - dedq_surf - Moisture flux humidity sensitivity - - - drdt_surf - drdt_surf - Radiative energy flux temperature sensitivity - - - dhdt_atm - dhdt_atm - Derivative of sensible heat flux over temp at the lowest atmos level - - - dedq_atm - dedq_atm - Derivative of water vapor flux over temp at the lowest atmos level - - - dtaudu_atm - dtaudu_atm - Derivative of zonal wind stress with respect to the lowest level - - - dtaudv_atm - dtaudv_atm - Derivative of meridional wind stress with respect to the lowest - - - dt - dt - - - land - land - Indicates where land exists (.TRUE. if exchange cell is on land - - - seawater - seawater - Indicates where liquid ocean water exists - - - avail - avail - - - - - - -avail - - -.TRUE. where the exchange cell is active - - - -gust - - -Gustiness factor - - - -cd_q - - -Moisture exchange coefficient - - - -rough_moist - - -Moisture roughness length - - - -dt - - -Time step (it is not used presently) - - - - - - - - - subroutine - subroutine surface_flux_mod::surface_flux::surface_flux_2d - (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) - surface_flux_2d - - t_atm - t_atm - Air temp lowest atmospheric level. - - - q_atm_in - q_atm_in - Mixing ratio at lowest atmospheric level (kg/kg). - - - u_atm - u_atm - Zonal wind velocity at lowest atmospheric level. - - - v_atm - v_atm - Meridional wind velocity at lowest atmospheric level. - - - p_atm - p_atm - Pressure lowest atmospheric level. - - - z_atm - z_atm - Height lowest atmospheric level. - - - p_surf - p_surf - Pressure at the Earth's surface - - - t_surf - t_surf - Temp at the Earth's surface - - - t_ca - t_ca - Air temp at the canopy - - - q_surf - q_surf - Mixing ratio at the Earth's surface (kg/kg) - - - u_surf - u_surf - Zonal wind velocity at the Earth's surface - - - v_surf - v_surf - Meridional wind velocity at the Earth's surface - - - rough_mom - rough_mom - Momentum roughness length - - - rough_heat - rough_heat - Heat roughness length - - - rough_moist - rough_moist - - - rough_scale - rough_scale - Scale factor used to topographic roughness calculation - - - gust - gust - - - flux_t - flux_t - Sensible heat flux - - - flux_q - flux_q - Evaporative water flux - - - flux_r - flux_r - Radiative energy flux - - - flux_u - flux_u - Zonal momentum flux - - - flux_v - flux_v - Meridional momentum flux - - - cd_m - cd_m - Momentum exchange coefficient - - - cd_t - cd_t - - - cd_q - cd_q - - - w_atm - w_atm - Absolute wind at the lowest atmospheric level - - - u_star - u_star - Turbulent velocity scale - - - b_star - b_star - Turbulent buoyant scale - - - q_star - q_star - Turbulent moisture scale - - - thv_atm - thv_atm - - - thv_surf - thv_surf - - - dhdt_surf - dhdt_surf - Sensible heat flux temperature sensitivity - - - dedt_surf - dedt_surf - Moisture flux temperature sensitivity - - - dedq_surf - dedq_surf - Moisture flux humidity sensitivity - - - drdt_surf - drdt_surf - Radiative energy flux temperature sensitivity - - - dhdt_atm - dhdt_atm - Derivative of sensible heat flux over temp at the lowest - - - dedq_atm - dedq_atm - Derivative of water vapor flux over temp at the lowest atmos level - - - dtaudu_atm - dtaudu_atm - Derivative of zonal wind stress with respect to the lowest level - - - dtaudv_atm - dtaudv_atm - Derivative of meridional wind stress with respect to the lowest - - - dt - dt - - - land - land - Indicates where land exists (.TRUE. if exchange cell is on land - - - seawater - seawater - Indicates where liquid ocean water exists - - - avail - avail - - - - - - -avail - - -.TRUE. where the exchange cell is active - - - -gust - - -Gustiness factor - - - -cd_q - - -Moisture exchange coefficient - - - -rough_moist - - -Moisture roughness length - - - -dt - - -Time step (it is not used presently) - - - - - - - - - -For the calculation of fluxes on the exchange grids. - -For the calculation of fluxes on the exchange grids. - - - surface_flux_mod::surface_fluxsurface_flux_1d - surface_flux_mod::surface_fluxsurface_flux_2d - - - diff --git a/docs/xml/land__ice__flux__exchange_8_f90.xml b/docs/xml/land__ice__flux__exchange_8_f90.xml deleted file mode 100644 index 0b73a8dd..00000000 --- a/docs/xml/land__ice__flux__exchange_8_f90.xml +++ /dev/null @@ -1,169 +0,0 @@ - - - - land_ice_flux_exchange.F90 - land_ice_flux_exchange_mod - -Handles flux exchanges and exchange grids between land and ice grids. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -moduleland_ice_flux_exchange_mod - -!!FMS -usefms -usefmsconstants,only:radius -!!Components -useland_model_mod,only:land_data_type -useice_model_mod,only:ice_data_type,land_ice_boundary_type - -implicitnone -private - - -!----exchangegridmaps----- - -type(FmsXgridXmap_type),save::xmap_runoff -integer::n_xgrid_runoff=0 - -!Exchangegridindices -integer::X2_GRID_LND,X2_GRID_ICE - -public::flux_land_to_ice,land_ice_flux_exchange_init - -integer::cplClock,fluxLandIceClock -logical::do_runoff -real::Dt_cpl -contains - -subroutineland_ice_flux_exchange_init(Land,Ice,land_ice_boundary,Dt_cpl_in,do_runoff_in,cplClock_in) -type(land_data_type),intent(in)::Land -type(ice_data_type),intent(inout)::Ice -type(land_ice_boundary_type),intent(inout)::land_ice_boundary -real,intent(in)::Dt_cpl_in -logical,intent(in)::do_runoff_in -integer,intent(in)::cplClock_in - -integer::is,ie,js,je - -do_runoff=do_runoff_in -cplclock=cplclock_in -dt_cpl=dt_cpl_in -fluxlandiceclock=fms_mpp_clock_id('Fluxlandtoice',flags=fms_clock_flag_default,grain=clock_routine) - -if(do_runoff)then -callfms_xgrid_setup_xmap(xmap_runoff,(/'LND','OCN'/),& -(/land%Domain,ice%Domain/),& -"INPUT/grid_spec.nc") -!exchangegridindices -x2_grid_lnd=1;x2_grid_ice=2; -n_xgrid_runoff=max(fms_xgrid_count(xmap_runoff),1) -if(n_xgrid_runoff.eq.1)write(*,'(a,i6,6x,a)')'PE=',fms_mpp_pe(),'Runoffexchangesizeequalsone.' -endif - -callfms_mpp_domains_get_compute_domain(ice%domain,is,ie,js,je) - -!allocateland_ice_boundary -allocate(land_ice_boundary%runoff(is:ie,js:je)) -allocate(land_ice_boundary%calving(is:ie,js:je)) -allocate(land_ice_boundary%runoff_hflx(is:ie,js:je)) -allocate(land_ice_boundary%calving_hflx(is:ie,js:je)) -!initializevaluesforoverrideexperiments(mjh) -land_ice_boundary%runoff=0.0 -land_ice_boundary%calving=0.0 -land_ice_boundary%runoff_hflx=0.0 -land_ice_boundary%calving_hflx=0.0 - - -endsubroutineland_ice_flux_exchange_init - -!####################################################################### -!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! -!flux_land_to_ice-translaterunofffromlandtoicegrids! -!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! -subroutineflux_land_to_ice(Time,Land,Ice,Land_Ice_Boundary) -type(FmsTime_type),intent(in)::Time -type(land_data_type),intent(in)::Land -type(ice_data_type),intent(in)::Ice -!real,dimension(:,:),intent(out)::runoff_ice,calving_ice -type(land_ice_boundary_type),intent(inout)::Land_Ice_Boundary - -integer::ier -real,dimension(n_xgrid_runoff)::ex_runoff,ex_calving,ex_runoff_hflx,ex_calving_hflx -real,dimension(size(Land_Ice_Boundary%runoff,1),size(Land_Ice_Boundary%runoff,2),1)::ice_buf - -!Balaji -callfms_mpp_clock_begin(cplclock) -callfms_mpp_clock_begin(fluxlandiceclock) - -!ccc=conservation_check(Land%discharge,'LND',xmap_runoff) -!if(fms_mpp_pe()==fms_mpp_root_pe())print*,'RUNOFF',ccc - -if(do_runoff)then -callfms_xgrid_put_to_xgrid(land%discharge,'LND',ex_runoff,xmap_runoff) -callfms_xgrid_put_to_xgrid(land%discharge_snow,'LND',ex_calving,xmap_runoff) -callfms_xgrid_put_to_xgrid(land%discharge_heat,'LND',ex_runoff_hflx,xmap_runoff) -callfms_xgrid_put_to_xgrid(land%discharge_snow_heat,'LND',ex_calving_hflx,xmap_runoff) -callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_runoff,xmap_runoff) -land_ice_boundary%runoff=ice_buf(:,:,1); -callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_calving,xmap_runoff) -land_ice_boundary%calving=ice_buf(:,:,1); -callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_runoff_hflx,xmap_runoff) -land_ice_boundary%runoff_hflx=ice_buf(:,:,1); -callfms_xgrid_get_from_xgrid(ice_buf,'OCN',ex_calving_hflx,xmap_runoff) -land_ice_boundary%calving_hflx=ice_buf(:,:,1); -!Balaji -callfms_data_override('ICE','runoff',land_ice_boundary%runoff,time) -callfms_data_override('ICE','calving',land_ice_boundary%calving,time) -callfms_data_override('ICE','runoff_hflx',land_ice_boundary%runoff_hflx,time) -callfms_data_override('ICE','calving_hflx',land_ice_boundary%calving_hflx,time) - -!computestockincrement -ice_buf(:,:,1)=land_ice_boundary%runoff+land_ice_boundary%calving -callfms_xgrid_stock_move(from=fms_stock_constants_lnd_stock(istock_water),& -&to=fms_stock_constants_ice_stock(istock_water),& -&grid_index=x2_grid_ice,& -&stock_data3d=ice_buf,& -&xmap=xmap_runoff,& -&delta_t=dt_cpl,& -&from_side=istock_side,to_side=istock_side,& -&radius=radius,ier=ier,verbose='stockmoveRUNOFF+CALVING(Lnd->Ice)') -else -land_ice_boundary%runoff=0.0 -land_ice_boundary%calving=0.0 -land_ice_boundary%runoff_hflx=0.0 -land_ice_boundary%calving_hflx=0.0 -endif - -callfms_mpp_clock_end(fluxlandiceclock) -callfms_mpp_clock_end(cplclock) - -endsubroutineflux_land_to_ice - - -!####################################################################### - -endmoduleland_ice_flux_exchange_mod - - - - diff --git a/docs/xml/namespace_f_m_s.xml b/docs/xml/namespace_f_m_s.xml deleted file mode 100644 index fcff1314..00000000 --- a/docs/xml/namespace_f_m_s.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - FMS - - - - - - - diff --git a/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml b/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml deleted file mode 100644 index 8c4bcfd7..00000000 --- a/docs/xml/namespaceatm__land__ice__flux__exchange__mod.xml +++ /dev/null @@ -1,3356 +0,0 @@ - - - - atm_land_ice_flux_exchange_mod - atm_land_ice_flux_exchange_mod::put_logical_to_real - atm_land_ice_flux_exchange_mod::tracer_exch_ind_type - atm_land_ice_flux_exchange_mod::tracer_ind_type - - - character(len=128) - character(len=128) atm_land_ice_flux_exchange_mod::version - - version - = '$Id$' - -coupler version number - - - - - - - - character(len=128) - character(len=128) atm_land_ice_flux_exchange_mod::tag - - tag - = '$Name$' - -coupler tag - - - - - - - - type(fmsxgridxmap_type), save - type(fmsxgridxmap_type), save atm_land_ice_flux_exchange_mod::xmap_sfc - - xmap_sfc - -holds exchange grid between different components - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_xgrid_sfc - - n_xgrid_sfc - =0 - -total number of exchange grid cells - - - - - - - - character(len=4), parameter - character(len=4), parameter atm_land_ice_flux_exchange_mod::mod_name - - mod_name - = 'flux' - -module name used to register diag_manager - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_b_star - - id_b_star - -diag_manager registered field id for bouyancy scale - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_del_h - - id_del_h - -diag_manager registered field id ref height interp factor for heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_del_m - - id_del_m - -diag_manager registered field id ref height for interp factor for momentum - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_del_q - - id_del_q - -diag_manager registered field id ref height interp factor for moisture - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_drag_heat - - id_drag_heat - -diag_manager registered field id drag coefficient for heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_drag_moist - - id_drag_moist - -diag_manager registered field id drag coefficient for moisture - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_drag_mom - - id_drag_mom - -diag_manager registered field id drag coefficient for momentum - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_gust - - id_gust - -diag_manager registered field id gust scale - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_husslut_land - - id_husslut_land - -diag_manager registered field id near-surface specific humidity on land use tile - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_ice_mask - - id_ice_mask - -diag_manager registered field id fractional amount of land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_land_mask - - id_land_mask - -diag_manager registered field id fractional amount of sea ice - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_p_atm - - id_p_atm - -diag_manager registered field id pressure at lowest atmospheric level - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_q_flux - - id_q_flux - -diag_manager registered field id evaporation rate - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_q_flux_land - - id_q_flux_land - -diag_manager registered field id evaporation rate over land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_q_ref - - id_q_ref - -diag_manager registered field id specific humidity at z_ref_heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_q_ref_land - - id_q_ref_land - -diag_manager registered field id specific humidity at z_ref_heat over land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_q_star - - id_q_star - -diag_manager registered field id moisture scale - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_r_flux - - id_r_flux - -diag_manager registered field id net (down-up) longwave flux - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rh_ref - - id_rh_ref - -diag_manager registered field id relative humidity at z_ref_heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rh_ref_cmip - - id_rh_ref_cmip - -diag_manager registered field id relative humidity at z_ref_heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rh_ref_land - - id_rh_ref_land - -diag_manager registered field id relative humidity at z_ref_heat over land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rough_heat - - id_rough_heat - -diag_manager registered field id surface roughness for heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rough_moist - - id_rough_moist - -diag_manager registered field id surface roughness for moisture - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rough_mom - - id_rough_mom - -diag_manager registered field id surface roughness for momentum - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rough_scale - - id_rough_scale - -diag_manager registered field id topographic scaling fractor for momentum drag - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_slp - - id_slp - -diag_manager registered field id sea level pressure - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_t_atm - - id_t_atm - -diag_manager registered field id temperature at lowest atmospheric level - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_t_ca - - id_t_ca - -diag_manager registered field id canopy air temperature - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_t_flux - - id_t_flux - -diag_manager registered field id sensible heat flux - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_t_ocean - - id_t_ocean - -diag_manager registered field id surface temperature from ocean output - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_t_ref - - id_t_ref - -diag_manager registered field id temperature at z_ref_heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_t_ref_land - - id_t_ref_land - -diag_manager registered field id temperature at z_ref_heat over land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_t_surf - - id_t_surf - -diag_manager registered field id surface temperature - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_taslut_land - - id_taslut_land - -diag_manager registered field id near-surface air temperature z_ref_heat - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_thv_atm - - id_thv_atm - -diag_manager registered field id surface air virtual potential temperature - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_thv_surf - - id_thv_surf - -diag_manager registered field id surface virtual potential temperature - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_u_atm - - id_u_atm - -diag_manager registered field id u wind component at lowest atmospheric level - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_u_flux - - id_u_flux - -diag_manager registered field id zonal wind stress - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_u_ref - - id_u_ref - -diag_manager registered field id zonal wind component at z_ref_mom - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_u_ref_land - - id_u_ref_land - -diag_manager registered field id zonal wind component at z_ref_mom over land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_u_star - - id_u_star - - - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_v_atm - - id_v_atm - -diag_manager registered field id v wind component at lowest atmospheric level - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_v_flux - - id_v_flux - -diag_manager registered field id meridional wind stress - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_v_ref - - id_v_ref - -diag_manager registered field id meridional wind component at z_ref_mom - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_v_ref_land - - id_v_ref_land - -diag_manager registered field id meridional wind component at z_ref_mom over land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_wind - - id_wind - -diag_manager registered field id wind speed for flux calculations - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_wind_ref - - id_wind_ref - -diag_manager registered field id absolute value of wind at z_ref_mom - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_z_atm - - id_z_atm - -diag_manager registered field id height of lowest atmospheric level - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_co2_atm_dvmr - - id_co2_atm_dvmr - -diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_co2_surf_dvmr - - id_co2_surf_dvmr - - - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_co2_bot - - id_co2_bot - -diag_manager registered field id concentration of co2 to be passed to land/photosynthesis - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_co2_flux_pcair_atm - - id_co2_flux_pcair_atm - -diag_manager registered field id concentration of co2 to be passed to ocean - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_o2_flux_pcair_atm - - id_o2_flux_pcair_atm - -diag_manager registered field id concentration of o2 to be passed to to ocean - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_atm - - id_tr_atm - -diag_manager registered field id value of tracer at lowest atmospheric level - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_surf - - id_tr_surf - -diag_manager registered field id value of tracer at surface - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux - - id_tr_flux - -diag_manager registered field id tracer fluxes - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux - - id_tr_mol_flux - -diag_manager registered field id flux of co2 concentration in [mol/m2*s] - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref - - id_tr_ref - -diag_manager registered field id value of tracer at z_ref_heat - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_ref_land - - id_tr_ref_land - -diag_manager registered field id tracer flux at z_ref_heat over land - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux0 - - id_tr_mol_flux0 - -diag_manager registered field id - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_flux_land - - id_tr_flux_land - -diag_manager registered field id flux of tracer concentration over land in [kg/m2*s] - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_mol_flux_land - - id_tr_mol_flux_land - -diag_manager registered field id flux of - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm - - id_tr_con_atm - -diag_manager registered field id deposition velocity at lowest atmospheric level (atm) - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_atm_land - - id_tr_con_atm_land - -diag_manager registered field id - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref - - id_tr_con_ref - -diag_manager registered field id deposition velocity at reference height (atm) - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::id_tr_con_ref_land - - id_tr_con_ref_land - -diag_manager registered field id deposition velocity at reference height over land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_evspsbl - - id_evspsbl - -diag_manager registered field id water evaporation flux (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_height10m - - id_height10m - -diag_manager registered field id near surface height (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_height2m - - id_height2m - -diag_manager registered field id near surface height (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_hfls - - id_hfls - -diag_manager registered field id surface upward latent heat flux (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_hfss - - id_hfss - -diag_manager registered field id surface upward sensible heat flux (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_hurs - - id_hurs - -diag_manager registered field id near-surface relative humidity (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_huss - - id_huss - -diag_manager registered field id near-surface specific humidity (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_psl - - id_psl - -diag_manager registered field id air pressure at sea level (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rhs - - id_rhs - -diag_manager registered field id near-surface relative humidity (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_sfcwind - - id_sfcwind - -diag_manager registered field id near-surface wind speed (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_sftlf - - id_sftlf - -diag_manager registered field id fraction of the grid cell occupied by land (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_sic - - id_sic - -diag_manager registered field id sea ice area fraction (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_tas - - id_tas - -diag_manager registered field id near-surface air temperature (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_tauu - - id_tauu - -diag_manager registered field id surface downward eastward wind stress (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_tauv - - id_tauv - -diag_manager registered field id surface downward northward wind stress (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_tos - - id_tos - -diag_manager registered field id sea surface temperature (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_ts - - id_ts - -diag_manager registered field id surface temperature (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_tslsi - - id_tslsi - -diag_manager registered field id surface temperature on land or sea ice (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_uas - - id_uas - -diag_manager registered field id eastward near-surface wind (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_vas - - id_vas - -diag_manager registered field id northward near-surface wind (for cmip) - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_evspsbl_g - - id_evspsbl_g - -diag_manager registered field id global integral of water evaporation flux - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_hfls_g - - id_hfls_g - -diag_manager registered field id global integral of surface upward sensible heat flux - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_rls_g - - id_rls_g - -diag_manager registered field id global integral of near-surface relative humidty - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_tas_g - - id_tas_g - -diag_manager registered field id global integral of near-surface air temperature - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_tasl_g - - id_tasl_g - -diag_manager registered field id global integral of near-surface air temperature on land only - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::id_ts_g - - id_ts_g - -diag_manager registered field id global integral of surface temperature - - - - - - - - logical - logical atm_land_ice_flux_exchange_mod::first_static - - first_static - = .true. - -If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer. - - - - - - - - logical - logical atm_land_ice_flux_exchange_mod::do_init - - do_init - = .true. - -true if atm_land_ice_flux_exchnge_init has been called - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::remap_method - - remap_method - = 1 - -first or second order conservative remapping onto exchange grid - - - - - - - - real, parameter - real, parameter atm_land_ice_flux_exchange_mod::d622 - - d622 - = rdgas/rvgas - - - - - - - - - - real, parameter - real, parameter atm_land_ice_flux_exchange_mod::d378 - - d378 - = 1.0-d622 - - - - - - - - - - real, parameter - real, parameter atm_land_ice_flux_exchange_mod::d608 - - d608 - = d378/d622 - - - - - - - - - - real, parameter - real, parameter atm_land_ice_flux_exchange_mod::tfreeze - - tfreeze - = 273.15 - -freezing point of water at 1 atm [K] - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::frac_precip - - frac_precip - - - - - - - - - - real - real atm_land_ice_flux_exchange_mod::z_ref_heat - - z_ref_heat - = 2. - -Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q defined through flux_exchange_nml. - - - - - - - - real - real atm_land_ice_flux_exchange_mod::z_ref_mom - - z_ref_mom - = 10. - -Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m defined through flux_exchange_nml. - - - - - - - - logical - logical atm_land_ice_flux_exchange_mod::do_forecast - - do_forecast - = .false. - -flag to do forecast, defined through flux_exchange_nml - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::nblocks - - nblocks - = 1 - -OpenMP number of threads. - - - - - - - - logical - logical atm_land_ice_flux_exchange_mod::partition_fprec_from_lprec - - partition_fprec_from_lprec - = .FALSE. - -If true, convert liquid precip to snow when t_ref < tfreeze Used for atm override experiments where liquid and frozen precip are combined. - - - - - - - - logical - logical atm_land_ice_flux_exchange_mod::scale_precip_2d - - scale_precip_2d - = .false. - -If true, scale mass of liqud preciptation. - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::my_nblocks - - my_nblocks - = 1 - -Initializing OpenMP parameter. - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_start - - block_start - -starting do loop indices for OpenMP thread - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable atm_land_ice_flux_exchange_mod::block_end - - block_end - -ending do loop indices for OpenMP thread - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_fix - - ex_albedo_fix - -used for albedo correction - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dif_fix - - ex_albedo_nir_dif_fix - -used for albedo correction - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_nir_dir_fix - - ex_albedo_nir_dir_fix - -used for albedo correction - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dif_fix - - ex_albedo_vis_dif_fix - -used for albedo correction - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_albedo_vis_dir_fix - - ex_albedo_vis_dir_fix - -used for albedo correction - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_b_star - - ex_b_star - -boyuancy scale on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_m - - ex_cd_m - -drag coefficient for momentum on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_cd_t - - ex_cd_t - -drag coefficient for heat on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_con_atm - - ex_con_atm - -deposition velocity at lowest atmospheric level on exchange grid on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf - - ex_dedt_surf - -d(water.vap.flux)/d(T canopy) on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_atm - - ex_dhdt_atm - -d(sens.heat.flux)/d(T atm) on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf - - ex_dhdt_surf - -d(sens.heat.flux)/d(T canopy) on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dqsatdt_surf - - ex_dqsatdt_surf - -d(water.vap.flux)/d(q canopy) on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_drdt_surf - - ex_drdt_surf - -d(LW flux)/d(T surf) on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudu_atm - - ex_dtaudu_atm - -d(stress)/d(u) on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dtaudv_atm - - ex_dtaudv_atm - -d(stress)/d(v) on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_q_n - - ex_e_q_n - -dt/mass * dedet_surf * gamma on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_lw - - ex_flux_lw - -longwave radiation flux on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_t - - ex_flux_t - -sensible heat flux on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_u - - ex_flux_u - -u stress on atmosphere on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_v - - ex_flux_v - -v stress on atmosphere on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_old_albedo - - ex_old_albedo - -old value of albedo for downward flux calculations, used for albedo correction - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_p_surf - - ex_p_surf - -surface pressure on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_seawater - - ex_seawater - -mask array of seaice fractions on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_slp - - ex_slp - -surface pressure on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_ca - - ex_t_ca - -near-surface (canopy) air temperature on exchange grid [K] - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf - - ex_t_surf - -surface temperature for radiation calc on exchange grid [K] - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_t_surf_miz - - ex_t_surf_miz - -used when do_forecast = .true. - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_u_star - - ex_u_star - -friction velocity on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_wind - - ex_wind - -wind speed on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_z_atm - - ex_z_atm - -height of lowest atmospheric level on exchange grid - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dhdt_surf_forland - - ex_dhdt_surf_forland - - - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedt_surf_forland - - ex_dedt_surf_forland - - - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_dedq_surf_forland - - ex_dedq_surf_forland - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_atm - - ex_dfdtr_atm - -d(tracer flux)/d(atm tracer) on exchange grid - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_dfdtr_surf - - ex_dfdtr_surf - -d(tracer flux)/d(surf tracer) on exchange grid - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_e_tr_n - - ex_e_tr_n - -coefficient in implicit scheme on exchange grid - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_f_tr_delt_n - - ex_f_tr_delt_n - -coefficient in implicit scheme on exchange grid - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_flux_tr - - ex_flux_tr - -tracer fluxes on exchange grid - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_ref - - ex_tr_con_ref - -deposition velocity at reference height on exchange grid - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_con_atm - - ex_tr_con_atm - -deposition velocity at atmospheric height on exchange grid - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable atm_land_ice_flux_exchange_mod::ex_tr_surf - - ex_tr_surf - -near-surface tracer fields on exchange grid - - - - - - - - logical, dimension(:), allocatable - logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_avail - - ex_avail - -mask where true if data on exchange grid are available - - - - - - - - logical, dimension(:), allocatable - logical, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_land - - ex_land - -mask where true if exchange grid cell is over land - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_e_t_n - - ex_e_t_n - - - - - - - - - - real, dimension(:), allocatable - real, dimension(:), allocatable atm_land_ice_flux_exchange_mod::ex_f_t_delt_n - - ex_f_t_delt_n - - - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_atm_tr - - n_atm_tr - -number of prognostic tracers in the atmos model - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_atm_tr_tot - - n_atm_tr_tot - -number of tracers in the atmos model - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_lnd_tr - - n_lnd_tr - -number of prognostic tracers in the land model - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_lnd_tr_tot - - n_lnd_tr_tot - -number of tracers in the land model - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_exch_tr - - n_exch_tr - -number of tracers exchanged between models - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_gex_atm2lnd - - n_gex_atm2lnd - -number of generic exchange fields exchanged from atmospehre to land - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::n_gex_lnd2atm - - n_gex_lnd2atm - -number of generic exchange fields exchanged from land to atmosphere - - - - - - - - type(tracer_ind_type), dimension(:), allocatable - type(tracer_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table - - tr_table - -table of tracers passed through flux exchange - - - - - - - - type(tracer_exch_ind_type), dimension(:), allocatable - type(tracer_exch_ind_type), dimension(:), allocatable atm_land_ice_flux_exchange_mod::tr_table_map - - tr_table_map - -holds tracer id in atm, ice, and land models - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::isphum - - isphum - = NO_TRACER - -tracer index for specific humidity - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::ico2 - - ico2 - = NO_TRACER - -tracer index for co2 - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::inh3 - - inh3 - = NO_TRACER - -tracer index for nh3 - - - - - - - - type(fmscoupler1dbc_type), pointer - type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_atm - - ex_gas_fields_atm - =>NULL() - -pointer to gas fields in atm, place holder for various atmospheric fields. - - - - - - - - type(fmscoupler1dbc_type), pointer - type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fields_ice - - ex_gas_fields_ice - =>NULL() - -pointer to gas fields on ice - - - - - - - - type(fmscoupler1dbc_type), pointer - type(fmscoupler1dbc_type), pointer atm_land_ice_flux_exchange_mod::ex_gas_fluxes - - ex_gas_fluxes - =>NULL() - -pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. - - - - - - - - integer, parameter - integer, parameter atm_land_ice_flux_exchange_mod::regrid - - regrid - =1 - -flag to indicate component grids for flux exchange are different, - - - - - - - - integer, parameter - integer, parameter atm_land_ice_flux_exchange_mod::redist - - redist - =2 - -component grid for flux exchange are identical but are decomposed differently, - - - - - - - - integer, parameter - integer, parameter atm_land_ice_flux_exchange_mod::redirect - - redirect - =3 - -component grid for flux exchange are identical with same domain decomposition, - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::cplclock - - cplclock - -FMS clock to profile general processes. - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::sfcclock - - sfcclock - -FMS clock id to profile sfc_boundary_layer. - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::fluxatmdnclock - - fluxatmdnclock - -FMS clock id to profile flux down from atmosphere. - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::regenclock - - regenclock - -FMS clock to profile exchange grid generation. - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::fluxatmupclock - - fluxatmupclock - -FMS clock to profile flux up to atmosphere. - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::x1_grid_atm - - x1_grid_atm - -=1, exchange grid index for xgrid_stock_move - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::x1_grid_ice - - x1_grid_ice - -=2, exchange grid index for xgrid_stock_move - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::x1_grid_lnd - - x1_grid_lnd - -=3 exchange grid index for xgrid_stock_move - - - - - - - - real - real atm_land_ice_flux_exchange_mod::dt_atm - - dt_atm - -atmospheric timestep [s] - - - - - - - - real - real atm_land_ice_flux_exchange_mod::dt_cpl - - dt_cpl - -coupled timestep [s] - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::ni_atm - - ni_atm - -number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::nj_atm - - nj_atm - -number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::nxc_ice - - nxc_ice - =0 - -number of x points in ice compute domain - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::nyc_ice - - nyc_ice - =0 - -number of y points in ice compute domain - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::nk_ice - - nk_ice - =0 - -number of vertical levels in ice - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::nxc_lnd - - nxc_lnd - =0 - -number of x points in land compute domain - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::nyc_lnd - - nyc_lnd - =0 - -number of y points in land compute domain - - - - - - - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::atm_land_ice_flux_exchange_init - (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in) - atm_land_ice_flux_exchange_init - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - atmos_ice_boundary - atmos_ice_boundary - - - land_ice_atmos_boundary - land_ice_atmos_boundary - - - Dt_atm_in - Dt_atm_in - - - Dt_cpl_in - Dt_cpl_in - - - z_ref_heat_in - z_ref_heat_in - - - z_ref_mom_in - z_ref_mom_in - - - do_area_weighted_flux_in - do_area_weighted_flux_in - - - do_forecast_in - do_forecast_in - - - partition_fprec_from_lprec_in - partition_fprec_from_lprec_in - - - scale_precip_2d_in - scale_precip_2d_in - - - nblocks_in - nblocks_in - - - cplClock_in - cplClock_in - - - ex_gas_fields_atm_in - ex_gas_fields_atm_in - - - ex_gas_fields_ice_in - ex_gas_fields_ice_in - - - ex_gas_fluxes_in - ex_gas_fluxes_in - - -module initialization routine. Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and module level variables. The subroutine must be called before calling public subroutines in this module - - - -time - - -model's current time - - - -atm - - -derived data type to specify atmosphere boundary data - - - -land - - -derived data type to specify land boundary data - - - -ice - - -derived data type to specify ice boundary data - - - -atmos_ice_boundary - - -derived type to specify properties and fluxes passed from atmosphere to ice - - - -land_ice_atmos_boundary - - -derived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice - - - -dt_atm_in - - -atmosphere time step in seconds - - - -dt_cpl_in - - -coupled time step in seconds - - - -z_ref_heat_in - - -reference height for temperature and relative humidity diagnostics [m] - - - -z_ref_mom_in - - -reference height for momentum diagnostics [m] - - - -scale_precip_2d_in - - -if true, rescale Atmlprec by a field from diag_table - - - -do_area_weighted_flux_in - - -if true, divide flux by area - - - -do_forecast_in - - -if true, put atmsurf_diffsst_miz on the exchange grid if AM3_physics is used - - - -partition_fprec_from_lprec_in - - -if true, will convert liquid precip to snow when t_ref < tfreeze - - - -nblocks_in - - -divide the surface exchange grid to nblocks for OpenMP parallelizatio - - - -cplclock_in - - -clock to measure processes, mainly used for development and debugging - - - -ex_gas_fields_atm_in - - -gas fields in Atm. Contains atmospheric surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters - - - -ex_gas_fields_ice_in - - -gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used to compute atmosphere-ocean gas fluxes and flux-regulating parameters - - - -ex_gas_fluxes_in - - -gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between the atmosphere and ocean. Values defined from the field table or computed during model run - - - - -INITIALIZE MODULE LEVEL VARIABLESGET FILE UNIT FOR STDOUT AND STDLOGFROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND SPECIFIC HUMDITY FOR ATMOSPHERE AND LANDASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERSGET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND HELP: WHAT IS GENERIC EXCHANGE?SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFERGET THE TRACER INDEX OF SPECIFIC HUMIDITYINITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUESET UP THE EXCHANGE GRIDINITIALIZE SURFACE_FLUXINITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGERGET THE SIZE OF THE ATM GRIDALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZEROALLOCATE FIELDS FOR EXTRA FLUXESALLOCATE LAND_ICE_ATMOS_BOUNDARYALLOCATE FIELDS FOR EXTRA TRACERSGET DIMENSION OF THE DECOMPOSED ICE DOMAINGET DIMENSION OF THE DECOMPOSED LAND DOMAININITIALIZE CLOCKS FOR PROFILING - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::sfc_boundary_layer - (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary) - sfc_boundary_layer - - dt - dt - - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Land_Ice_Atmos_Boundary - Land_Ice_Atmos_Boundary - - -Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. - - - t_surf_atm: surface temperature used for radiation [K] - albedo_atm: surface albedo used for radiation [dimensionless] - rough_mom_atm: surface roughness for momentum [m] - land_frac_atm: fractional area of land beneath an atmospheric grid box - dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)] - flux_u_atm: zonal wind stress [Pa] - flux_v_atm: meridional wind stress [Pa] - u_star_atm: friction velocity [m/s] - b_star_atm: buoyancy scale [m2/s] - Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data between one component grid to another component grid. Computed fluxes can also be overwritten with calls to data_override. Note, data_override will not override data if the tracers u_star and b_star are defined so that u_star**2 is the magnitude of surface stress divided by density of air at the surface, and u_star*b_star is the buoyancy flux at the surface. - - -dt - - -timestep - - - -time - - -current model time - - - -atm - - -derived type to specify atmosphere boundary data - - - -land - - -derived type to specify land boundary data - - - -ice - - -derived data type to specify ice boundary data - - - -land_ice_atmos_boundary - - -derived data type to specify properties and fluxes passed between land and ice to atmos - - - - -Initialize clocks for profilingALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOSALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARYALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHREALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDSSET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDSOVERRIDE ATM ATMT_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLECONVERT CO2 TRACER UNITS to WET_MMR UNITSOVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLEOVERRIDE ICET_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. OVERRIDE LANDT_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLEMAP ATM FIELDS ONTO THE EXCHANGE GRIDINITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYERMAP ICE FIELDS ONTO THE EXCHANGE GRIDGENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRIDINITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRIDMAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRIDCALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRIDCOMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRIDCALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRIDCOMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRIDCOMPUTE EXPLICIT OCEAN FLUXESOVERRIDE LAND AND ICE TRACER FLUXES DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLECOMPUTE T_SURF**4 - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::flux_down_from_atmos - (Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary) - flux_down_from_atmos - - Time - Time - - - Atm - Atm - - - Atmos_boundary - Atmos_boundary - - - Land_boundary - Land_boundary - - - Ice_boundary - Ice_boundary - - -Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] In the subroutine, if override specifications are found in data_table atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data to the exchange grid. Next, corrections are computed on the exchange grid and the corrected values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid and ice grid will be overwritten with data_override if the override specifications are found in data table. The subroutine ends by computing, stock exchanges between the components and sending zonal and meridonal wind stress data to the diag_manager buffer that will output data at the end of the simulation. - - - -time - - -Current model time - - - -atm - - -A derived data type holding atmosphere boundary data - - - -atmos_boundary - - -A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice - - - -land_boundary - - -A derived data type to specify properties and fluxes passed from atmosphere to land - - - -ice_boundary - - -A derived data type to specify properties and fluxes passed from atmosphere to ice - - - - -start clocks for profilinginitialize reusable flag. data_override will return ov=.true. if data was overwrittenupdate Atm fields with override values. Note, data_override will only overwrite data if the field is specified in the data_tablescale liquid precipitation by frac_precip if scale_precip_2d is true scale_precip_2d is set during module initialization call to atm_land_ice_flux_exchange_init frac_precip is set with data_overridepartition preciptation to liquid precipitation and frozen precipitation if partition_fprec_from_lprec = .true. partiion_fprec_from_lprec is set as part of module initialization call in atm_land_ice_flux_exchange Note, the partitioning only occurs on mpi ranks for atmosphereupdate more Atm fields with override values. Note, data_override will only overwriteMap atmosphere quantities onto the exchange grid in order to exchange quantities with other componentsupdate u and v stress on the exchange gridfix shortwave radiation flux of visible light on the exchange gridAdjust fluxes for implicit dependence (TOM HELP, this sounds awkward)map fluxes from the exchange grid to the land gridoverride land fluxes only if the field is specified in the data_tableMap ice fields from the exchange grid to the Ice gridoverride Ice fields only if the field is specified in the data tableCompute stock changes between componentssend data to diag_manager buffer where if the field is specified in the diag_table, data will be outputted at the end of the simulationend clock for profiling - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::generate_sfc_xgrid - (Land, Ice) - generate_sfc_xgrid - - Land - Land - - - Ice - Ice - - -Update fractional area of the exchange grid between land and ice (see link to xgrid for details) Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) - - - -land - - -A derived data type to specify land boundary data - - - -ice - - -A derived data type to specify ice boundary data - - - - -update fractional areas of ice and land on the exchange gridreset the number of exchange grid cells saved in the module - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::flux_up_to_atmos - (Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary) - flux_up_to_atmos - - Time - Time - - - Land - Land - - - Ice - Ice - - - Land_Ice_Atmos_Boundary - Land_Ice_Atmos_Boundary - - - Land_boundary - Land_boundary - - - Ice_boundary - Ice_boundary - - -Corrects the fluxes for consistency with the new surface temperatures in land and ice models. - -Corrects the fluxes for consistency with the new surface temperatures in land and ice models. Final increments for temperature and specific humidity in the lowest atmospheric layer are computed and returned to the atmospheric model so that it can finalize the increments in the rest of the atmosphere.The following elements of the land_ice_atmos_boundary_type are computed: - dt_t = temperature change at the lowest - atmospheric level (deg k) - dt_q = specific humidity change at the lowest - atmospheric level (kg/kg) - - -time - - -current model time - - - -land - - -derived data type holding land boundary data - - - -ice - - -derived data type holding ice boundary data - - - -land_ice_atmos_boundary - - -A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice - - - -land_boundary - - -A derived data type to specify properties and fluxes passed from atmosphere to land - - - -ice_boundary - - -A derived data type to specify properties and fluxes passed from atmosphere to ice - - - - -override Ice and Land temperature fields. Note, data_override will only overwrite data if the field is specified in the data_tableCOMPUTE CHANGE IN SURFACE TEMPERATUREUPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATUREUPDATE TRACER TENDENCIES IN THE ATMOSPHEREMAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRIDSEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUNCOMPUTE STOCK EXCHANGE BETWEEN COMPONENTS - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::flux_ex_arrays_dealloc - () - flux_ex_arrays_dealloc - -Internal subroutine to deallocate exchange fields. - - - - - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::flux_atmos_to_ocean - (Time, Atm, Ice_boundary, Ice) - flux_atmos_to_ocean - - Time - Time - - - Atm - Atm - - - Ice_boundary - Ice_boundary - - - Ice - Ice - - -Computes deposition gas fluxes between atmosphere and ocean. - - - -time - - -Current time - - - -atm - - -A derived data type to specify atmosphere boundary data - - - -ice_boundary - - -A derived data type to specify properties and fluxes passed from atmosphere to ice - - - - -MAP ATMOSPHERE FIELDS TO THE EXCHANGE MAP FOR FLUX EXCHANGE WITH OCEANCALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRIDMAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRIDUPDATE AIR_SEA_DEPOSITION FLUXES - - - - subroutine - subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_sg - (mask, id, ex_mask, xmap) - put_logical_to_real_sg - - mask - mask - - - id - id - - - ex_mask - ex_mask - - - xmap - xmap - - -Converts 3D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when using USE_LEGACY_LAND - - - -mask - - -land/ice mask to map to exchange grid - - - -ex_mask - - -converted mask on exchange grid - - - - - - - - - subroutine - subroutine atm_land_ice_flux_exchange_mod::put_logical_to_real_ug - (mask, id, ex_mask, xmap) - put_logical_to_real_ug - - mask - mask - - - id - id - - - ex_mask - ex_mask - - - xmap - xmap - - -Converts 2D logical mask arrays to real arrays with values of 1.0 for true and 0.0 for false before mapping the mask to the exchange grid Internally used subroutine to convert Landmask when not using USE_LEGACY_LAND - - - -mask - - -mask on component grid - - - -ex_mask - - -converted mask on exchange grid - - - - - - - - - subroutine - subroutine atm_land_ice_flux_exchange_mod::diag_field_init - (Time, atmos_axes, land_axes, land_pe) - diag_field_init - - Time - Time - - - atmos_axes - atmos_axes - - - land_axes - land_axes - - - land_pe - land_pe - - -Initializes diagnostic fields in diag_manager All diagnostics must be registered in diag_manager and all diagnostics must be specified in the diag_table in order for the data to be outputted to a NetCDF file at the end of the model run. - - - -Convert diagnostic labels from integers to strings - - - - subroutine - subroutine atm_land_ice_flux_exchange_mod::divide_by_area - (data, area) - divide_by_area - - data - data - - - area - area - - -Divide data by area where grid cell area is not zero. - - - -check the size of data and area are the samedivide data in each grid cell by grid cell area - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::send_ice_mask_sic - (Time) - send_ice_mask_sic - - Time - Time - - -compute and send fractional amount of sea ice to diag_manager buffer - - - -time - - -Current time - - - - -initialize ice_frac - - - remap ice_mask (fractional amount of sea ice) to the atm gridsend ice_mask to diag_manager buffer - compute sea ice area fraction for cells on atm grid that are over ocean normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean - - - - subroutine, public - subroutine, public atm_land_ice_flux_exchange_mod::atm_stock_integrate - (Atm, res) - atm_stock_integrate - - Atm - Atm - - - res - res - - -integrate the total precipitation in atmosphere and multipy by dt - - - -atm - - -derived type to holding atmosphere boundary data - - - -res - - -integrated value - - - - - - - - - - - - - - - diff --git a/docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml b/docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml deleted file mode 100644 index f2825098..00000000 --- a/docs/xml/namespaceatmos__ocean__dep__fluxes__calc__mod.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - atmos_ocean_dep_fluxes_calc_mod - - - character(len= *), parameter - character(len=*), parameter atmos_ocean_dep_fluxes_calc_mod::mod_name - - mod_name - = "aodfc" - - - - - - - - - - - - subroutine - subroutine atmos_ocean_dep_fluxes_calc_mod::atmos_ocean_dep_fluxes_calc - (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater) - atmos_ocean_dep_fluxes_calc - - gas_fields_atm - gas_fields_atm - - - gas_fields_ice - gas_fields_ice - - - gas_fluxes - gas_fluxes - - - seawater - seawater - - -atmos_ocean_dep_fluxes_calc - - - -gas_fields_atm - - -Structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. - - - -gas_fields_ice - - -Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. - - - -gas_fluxes - - -Structure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes. - - - -seawater - - -1 for the open water category, 0 if ice or land. - - - - - - - - - - - - - - - diff --git a/docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml b/docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml deleted file mode 100644 index 6e17c368..00000000 --- a/docs/xml/namespaceatmos__ocean__fluxes__calc__mod.xml +++ /dev/null @@ -1,533 +0,0 @@ - - - - atmos_ocean_fluxes_calc_mod - - - character(len= *), parameter - character(len=*), parameter atmos_ocean_fluxes_calc_mod::mod_name - - mod_name - = "cdwfe" - - - - - - - - - - real, parameter - real, parameter atmos_ocean_fluxes_calc_mod::epsln - - epsln - =1.0e-30 - - - - - - - - - - - - subroutine, public - subroutine, public atmos_ocean_fluxes_calc_mod::atmos_ocean_fluxes_calc - (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater, tsurf, ustar, cd_m) - atmos_ocean_fluxes_calc - - gas_fields_atm - gas_fields_atm - - - gas_fields_ice - gas_fields_ice - - - gas_fluxes - gas_fluxes - - - seawater - seawater - - - tsurf - tsurf - - - ustar - ustar - - - cd_m - cd_m - - -Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive. - - - -gas_fields_atm - - -Structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. - - - -gas_fields_ice - - -Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes. - - - -gas_fluxes - - -Structure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes. - - - -seawater - - -1 for the open water category, 0 if ice or land. - - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::calc_kw - (tk, p, u10, h, vb, mw, sc_w, ustar, cd_m) - calc_kw - - tk - tk - - - p - p - - - u10 - u10 - - - h - h - - - vb - vb - - - mw - mw - - - sc_w - sc_w - - - ustar - ustar - - - cd_m - cd_m - - -Calculate $k_w$. - -Taken from Johnson, Ocean Science, 2010. (http://doi.org/10.5194/os-6-913-2010)Uses equations defined in Liss[1974], \[ F = K_g(c_g - H C_l) = K_l(c_g/H - C_l) \] where $c_g$ and $C_l$ are the bulk gas and liquid concentrations, $H$ is the Henry's law constant ( $H = c_{sg}/C_{sl}$, where $c_{sg}$ is the equilibrium concentration in gas phase ( $g/cm^3$ of air) and $C_{sl}$ is the equilibrium concentration of unionised dissolved gas in liquid phase ( $g/cm^3$ of water)), \[ 1/K_g = 1/k_g + H/k_l \] and \[ 1/K_l = 1/k_l + 1/{Hk_g} \] where $k_g$ and $k_l$ are the exchange constants for the gas and liquid phases, respectively. - -tk - - -temperature at surface in kelvin - - - -p - - -pressure at surface in pa - - - -u10 - - -wind speed at 10m above the surface in m/s - - - -h - - -Henry's law constant ( $H=c_sg/C_sl$) (unitless) - - - -vb - - -Molar volume - - - -mw - - -molecular weight (g/mol) - - - -ustar - - -Friction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$. - - - -cd_m - - -Drag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$ - - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::calc_ka - (t, p, mw, vb, u10, ustar, cd_m) - calc_ka - - t - t - - - p - p - - - mw - mw - - - vb - vb - - - u10 - u10 - - - ustar - ustar - - - cd_m - cd_m - - -Calculate $k_a$. - -See calc_kw - -t - - -temperature at surface in C - - - -p - - -pressure at surface in pa - - - -mw - - -molecular weight (g/mol) - - - -vb - - -molar volume - - - -u10 - - -wind speed at 10m above the surface in m/s - - - -ustar - - -Friction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$. - - - -cd_m - - -Drag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$ - - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::calc_kl - (t, v, sc) - calc_kl - - t - t - - - v - v - - - sc - sc - - -Calculate $k_l$. - -See calc_kw, and Nightingale, Global Biogeochemical Cycles, 2000 (https://doi.org/10.1029/1999GB900091) - -t - - -temperature at surface in C - - - -v - - -wind speed at surface in m/s - - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::schmidt_g - (t, p, mw, vb) - schmidt_g - - t - t - - - p - p - - - mw - mw - - - vb - vb - - -Schmidt number of the gas in air. - - - -t - - -temperature at surface in C - - - -p - - -pressure at surface in pa - - - -mw - - -molecular weight (g/mol) - - - -vb - - -molar volume - - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::d_air - (t, p, mw, vb) - d_air - - t - t - - - p - p - - - mw - mw - - - vb - vb - - -From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007) - - - -t - - -temperature in c - - - -p - - -pressure in pa - - - -mw - - -molecular weight (g/mol) - - - -vb - - -diffusion coefficient ( $cm3/mol$) - - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::p_air - (t) - p_air - - t - t - - -kinematic viscosity in air - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::v_air - (t) - v_air - - t - t - - -Kinematic viscosity in air ( $m^2/s$. - - - -t - - -temperature in C - - - - - - - - - real function - real function atmos_ocean_fluxes_calc_mod::n_air - (t) - n_air - - t - t - - -dynamic viscosity in air - - - -t - - -temperature in C - - - - - - - - - - - - - - - diff --git a/docs/xml/namespaceflux__exchange__mod.xml b/docs/xml/namespaceflux__exchange__mod.xml deleted file mode 100644 index 8fd4b6c6..00000000 --- a/docs/xml/namespaceflux__exchange__mod.xml +++ /dev/null @@ -1,2438 +0,0 @@ - - - - flux_exchange_mod - - - character(len=128) - character(len=128) flux_exchange_mod::version - - version - = '$Id$' - - - - - - - - - - character(len=128) - character(len=128) flux_exchange_mod::tag - - tag - = '$Name$' - - - - - - - - - - logical - logical flux_exchange_mod::do_init - - do_init - = .true. - - - - - - - - - - real, parameter - real, parameter flux_exchange_mod::bound_tol - - bound_tol - = 1e-7 - - - - - - - - - - real, parameter - real parameter flux_exchange_mod::d622 - - d622 - = rdgas/rvgas - - - - - - - - - - real, parameter - real parameter flux_exchange_mod::d378 - - d378 - = 1.0-d622 - - - - - - - - - - real - real flux_exchange_mod::z_ref_heat - - z_ref_heat - = 2. - -Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) - - - - - - - - real - real flux_exchange_mod::z_ref_mom - - z_ref_mom - = 10. - -Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) - - - - - - - - logical - logical flux_exchange_mod::do_area_weighted_flux - - do_area_weighted_flux - = .FALSE. - - - - - - - - - - logical - logical flux_exchange_mod::debug_stocks - - debug_stocks - = .FALSE. - - - - - - - - - - logical - logical flux_exchange_mod::divert_stocks_report - - divert_stocks_report - = .FALSE. - - - - - - - - - - logical - logical flux_exchange_mod::do_runoff - - do_runoff - = .TRUE. - -Turns on/off the land runoff interpolation to the ocean. - - - - - - - - logical - logical flux_exchange_mod::do_forecast - - do_forecast - = .false. - - - - - - - - - - integer - integer flux_exchange_mod::nblocks - - nblocks - = 1 - - - - - - - - - - logical - logical flux_exchange_mod::partition_fprec_from_lprec - - partition_fprec_from_lprec - = .FALSE. - -option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter - - - - - - - - real, parameter - real, parameter flux_exchange_mod::tfreeze - - tfreeze - = 273.15 - - - - - - - - - - logical - logical flux_exchange_mod::scale_precip_2d - - scale_precip_2d - = .false. - - - - - - - - - - logical - logical flux_exchange_mod::gas_fluxes_initialized - - gas_fluxes_initialized - = .false. - - - - - - - - - - type(fmscoupler1dbc_type), target - type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_atm - - ex_gas_fields_atm - -Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. - - - - - - - - type(fmscoupler1dbc_type), target - type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fields_ice - - ex_gas_fields_ice - -Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. - - - - - - - - type(fmscoupler1dbc_type), target - type(fmscoupler1dbc_type), target flux_exchange_mod::ex_gas_fluxes - - ex_gas_fluxes - -A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. - - - - - - - - integer - integer flux_exchange_mod::ni_atm - - ni_atm - - - - - - - - - - integer - integer flux_exchange_mod::nj_atm - - nj_atm - -to do atmos diagnostic from flux_ocean_to_ice - - - - - - - - real, dimension(3) - real, dimension(3) flux_exchange_mod::ccc - - ccc - -for conservation checks - - - - - - - - integer - integer flux_exchange_mod::cplclock - - cplclock - - - - - - - - - - real - real flux_exchange_mod::dt_atm - - dt_atm - - - - - - - - - - real - real flux_exchange_mod::dt_cpl - - dt_cpl - - - - - - - - - - real - real flux_exchange_mod::atm_precip_new - - atm_precip_new - - - - - - - - - - character(len=14), parameter - character(len=14), parameter flux_exchange_mod::mod_name - - mod_name - = 'flux' - - - - - - - - - - integer - integer flux_exchange_mod::id_drag_moist - - id_drag_moist - - - - - - - - - - integer - integer flux_exchange_mod::id_drag_heat - - id_drag_heat - - - - - - - - - - integer - integer flux_exchange_mod::id_drag_mom - - id_drag_mom - - - - - - - - - - integer - integer flux_exchange_mod::id_rough_moist - - id_rough_moist - - - - - - - - - - integer - integer flux_exchange_mod::id_rough_heat - - id_rough_heat - - - - - - - - - - integer - integer flux_exchange_mod::id_rough_mom - - id_rough_mom - - - - - - - - - - integer - integer flux_exchange_mod::id_u_star - - id_u_star - - - - - - - - - - integer - integer flux_exchange_mod::id_b_star - - id_b_star - - - - - - - - - - integer - integer flux_exchange_mod::id_q_star - - id_q_star - - - - - - - - - - integer - integer flux_exchange_mod::id_u_flux - - id_u_flux - - - - - - - - - - integer - integer flux_exchange_mod::id_v_flux - - id_v_flux - - - - - - - - - - integer - integer flux_exchange_mod::id_t_surf - - id_t_surf - - - - - - - - - - integer - integer flux_exchange_mod::id_t_flux - - id_t_flux - - - - - - - - - - integer - integer flux_exchange_mod::id_q_flux - - id_q_flux - - - - - - - - - - integer - integer flux_exchange_mod::id_r_flux - - id_r_flux - - - - - - - - - - integer - integer flux_exchange_mod::id_t_atm - - id_t_atm - - - - - - - - - - integer - integer flux_exchange_mod::id_u_atm - - id_u_atm - - - - - - - - - - integer - integer flux_exchange_mod::id_v_atm - - id_v_atm - - - - - - - - - - integer - integer flux_exchange_mod::id_wind - - id_wind - - - - - - - - - - integer - integer flux_exchange_mod::id_thv_atm - - id_thv_atm - - - - - - - - - - integer - integer flux_exchange_mod::id_thv_surf - - id_thv_surf - - - - - - - - - - integer - integer flux_exchange_mod::id_t_ref - - id_t_ref - - - - - - - - - - integer - integer flux_exchange_mod::id_rh_ref - - id_rh_ref - - - - - - - - - - integer - integer flux_exchange_mod::id_u_ref - - id_u_ref - - - - - - - - - - integer - integer flux_exchange_mod::id_v_ref - - id_v_ref - - - - - - - - - - integer - integer flux_exchange_mod::id_q_ref - - id_q_ref - - - - - - - - - - integer - integer flux_exchange_mod::id_del_h - - id_del_h - - - - - - - - - - integer - integer flux_exchange_mod::id_del_m - - id_del_m - - - - - - - - - - integer - integer flux_exchange_mod::id_del_q - - id_del_q - - - - - - - - - - integer - integer flux_exchange_mod::id_albedo - - id_albedo - - - - - - - - - - integer - integer flux_exchange_mod::id_gust - - id_gust - - - - - - - - - - integer - integer flux_exchange_mod::id_t_ca - - id_t_ca - - - - - - - - - - integer - integer flux_exchange_mod::id_q_surf - - id_q_surf - - - - - - - - - - integer - integer flux_exchange_mod::id_q_atm - - id_q_atm - - - - - - - - - - integer - integer flux_exchange_mod::id_z_atm - - id_z_atm - - - - - - - - - - integer - integer flux_exchange_mod::id_p_atm - - id_p_atm - - - - - - - - - - integer - integer flux_exchange_mod::id_land_mask - - id_land_mask - - - - - - - - - - integer - integer flux_exchange_mod::id_ice_mask - - id_ice_mask - - - - - - - - - - integer - integer flux_exchange_mod::id_rough_scale - - id_rough_scale - - - - - - - - - - integer - integer flux_exchange_mod::id_albedo_vis_dir - - id_albedo_vis_dir - - - - - - - - - - integer - integer flux_exchange_mod::id_albedo_nir_dir - - id_albedo_nir_dir - - - - - - - - - - integer - integer flux_exchange_mod::id_albedo_vis_dif - - id_albedo_vis_dif - - - - - - - - - - integer - integer flux_exchange_mod::id_albedo_nir_dif - - id_albedo_nir_dif - - - - - - - - - - integer - integer flux_exchange_mod::id_tas - - id_tas - - - - - - - - - - integer - integer flux_exchange_mod::id_uas - - id_uas - - - - - - - - - - integer - integer flux_exchange_mod::id_vas - - id_vas - - - - - - - - - - integer - integer flux_exchange_mod::id_ts - - id_ts - - - - - - - - - - integer - integer flux_exchange_mod::id_psl - - id_psl - - - - - - - - - - integer - integer flux_exchange_mod::id_sfcwind - - id_sfcwind - - - - - - - - - - integer - integer flux_exchange_mod::id_tauu - - id_tauu - - - - - - - - - - integer - integer flux_exchange_mod::id_tauv - - id_tauv - - - - - - - - - - integer - integer flux_exchange_mod::id_hurs - - id_hurs - - - - - - - - - - integer - integer flux_exchange_mod::id_huss - - id_huss - - - - - - - - - - integer - integer flux_exchange_mod::id_evspsbl - - id_evspsbl - - - - - - - - - - integer - integer flux_exchange_mod::id_hfls - - id_hfls - - - - - - - - - - integer - integer flux_exchange_mod::id_hfss - - id_hfss - - - - - - - - - - integer - integer flux_exchange_mod::id_height2m - - id_height2m - - - - - - - - - - integer - integer flux_exchange_mod::id_height10m - - id_height10m - - - - - - - - - - logical - logical flux_exchange_mod::first_static - - first_static - = .true. - - - - - - - - - - logical - logical flux_exchange_mod::do_read_nml - - do_read_nml - = .true. - - - - - - - - - - integer - integer flux_exchange_mod::isphum - - isphum - - - - - - - - - - integer - integer flux_exchange_mod::n_atm_tr_tot - - n_atm_tr_tot - - - - - - - - - - integer - integer flux_exchange_mod::n_atm_tr - - n_atm_tr - - - - - - - - - - logical - logical flux_exchange_mod::use_existing_grid_spec - - use_existing_grid_spec - = .false. - - - - - - - - - - logical - logical flux_exchange_mod::all_ocean - - all_ocean - = .true. - - - - - - - - - - logical - logical flux_exchange_mod::all_land - - all_land - = .false. - - - - - - - - - - integer - integer flux_exchange_mod::is - - is - - - - - - - - - - integer - integer flux_exchange_mod::ie - - ie - - - - - - - - - - integer - integer flux_exchange_mod::js - - js - - - - - - - - - - integer - integer flux_exchange_mod::je - - je - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::t_surf - - t_surf - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::t_ca - - t_ca - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::q_surf - - q_surf - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::p_surf - - p_surf - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::e_t_n - - e_t_n - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::f_t_delt_n - - f_t_delt_n - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::e_q_n - - e_q_n - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::f_q_delt_n - - f_q_delt_n - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::dhdt_surf - - dhdt_surf - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::dedt_surf - - dedt_surf - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::dedq_surf - - dedq_surf - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::drdt_surf - - drdt_surf - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::dhdt_atm - - dhdt_atm - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::dedq_atm - - dedq_atm - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::flux_t - - flux_t - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::flux_q - - flux_q - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::flux_lw - - flux_lw - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::flux_u - - flux_u - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::flux_v - - flux_v - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::drag_q - - drag_q - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::dtaudu_atm - - dtaudu_atm - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::dtaudv_atm - - dtaudv_atm - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::cd_t - - cd_t - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::cd_m - - cd_m - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::b_star - - b_star - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::u_star - - u_star - - - - - - - - - - real, dimension(:,:), allocatable - real, dimension(:,:), allocatable flux_exchange_mod::wind - - wind - - - - - - - - - - logical - logical flux_exchange_mod::used - - used - - - - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::gas_exchange_init - (gas_fields_atm, gas_fields_ice, gas_fluxes) - gas_exchange_init - - gas_fields_atm - gas_fields_atm - - - gas_fields_ice - gas_fields_ice - - - gas_fluxes - gas_fluxes - - -Gas and tracer exchange initialization routine. - -This routine causes the field table to be read to determine which fields will be needed for the exchanges of gasses and tracers between the atmosphere and ocean. The metadata for these fields are stored in the ex_gas_fluxes and ex_gas_fields arrays, although the data is not allocated yet. This is intended to be called (optionally) prior to flux_exchange_init. - -gas_fields_atm - - -Pointer to a structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. - - - -gas_fields_ice - - -Pointer to a structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. - - - -gas_fluxes - - -Pointer to a s structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::flux_exchange_init - (Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld) - flux_exchange_init - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Ocean - Ocean - - - Ocean_state - Ocean_state - - - atmos_ice_boundary - atmos_ice_boundary - - - land_ice_atmos_boundary - land_ice_atmos_boundary - - - land_ice_boundary - land_ice_boundary - - - ice_ocean_boundary - ice_ocean_boundary - - - ocean_ice_boundary - ocean_ice_boundary - - - do_ocean - do_ocean - - - slow_ice_ocean_pelist - slow_ice_ocean_pelist - - - dt_atmos - dt_atmos - - - dt_cpld - dt_cpld - - -Initialization routine. - -Initializes the interpolation routines,diagnostics and boundary data - -FATAL -grid_spec.nc incompatible with atmosphere resolution - - -The atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere resolution from atmosphere model. - - - -FATAL -grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat) - - -The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model. - - - -FATAL -grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat) - - -The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model. - - - -FATAL -grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc) - - -The latitude from file grid_spec.nc is different from the latitude from atmosphere model. - - - - -time - - -The model's current time - - - -atm - - -A derived data type to specify atmosphere boundary data - - - -land - - -A derived data type to specify land boundary data - - - -ice - - -A derived data type to specify ice boundary data - - - -ocean - - -A derived data type to specify ocean boundary data - - - -atmos_ice_boundary - - -A derived data type to specify properties and fluxes passed from atmosphere to ice - - - -land_ice_atmos_boundary - - -A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice - - - -land_ice_boundary - - -A derived data type to specify properties and fluxes passed from land to ice - - - -ice_ocean_boundary - - -A derived data type to specify properties and fluxes passed from ice to ocean - - - -ocean_ice_boundary - - -A derived data type to specify properties and fluxes passed from ocean to ice - - - -dt_atmos - - -Atmosphere time step in seconds - - - -dt_cpld - - -Coupled time step in seconds - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::flux_check_stocks - (Time, Atm, Lnd, Ice, Ocn_state) - flux_check_stocks - - Time - Time - - - Atm - Atm - - - Lnd - Lnd - - - Ice - Ice - - - Ocn_state - Ocn_state - - -Check stock values. - -Will print out any difference between the integrated flux (in time and space) feeding into a component, and the stock stored in that component. - - - - - - subroutine, public - subroutine, public flux_exchange_mod::flux_init_stocks - (Time, Atm, Lnd, Ice, Ocn_state) - flux_init_stocks - - Time - Time - - - Atm - Atm - - - Lnd - Lnd - - - Ice - Ice - - - Ocn_state - Ocn_state - - -Initialize stock values. - -This will call the various component stock_pe routines to store the the initial stock values. - - - - - - subroutine - subroutine flux_exchange_mod::check_atm_grid - (Atm, grid_file) - check_atm_grid - - Atm - Atm - - - grid_file - grid_file - - - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::sfc_boundary_layer - (dt, Time, Atm, Land, Ice, Boundary) - sfc_boundary_layer - - dt - dt - - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Boundary - Boundary - - - - - - -dt - - -Time step - - - -time - - -Current time - - - -atm - - -A derived data type to specify atmospheric boundary data - - - -land - - -A derived data type to specify land boundary data - - - -ice - - -A derived data type to specify ice boundary data - - - -boundary - - -A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::flux_down_from_atmos - (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary) - flux_down_from_atmos - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Atmos_boundary - Atmos_boundary - - - Land_boundary - Land_boundary - - - Ice_boundary - Ice_boundary - - - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::flux_up_to_atmos - (Time, Land, Ice, Boundary) - flux_up_to_atmos - - Time - Time - - - Land - Land - - - Ice - Ice - - - Boundary - Boundary - - - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::flux_exchange_init - (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary) - flux_exchange_init - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - atmos_ice_boundary - atmos_ice_boundary - - - land_ice_atmos_boundary - land_ice_atmos_boundary - - - - - - - - - - - subroutine - subroutine flux_exchange_mod::read_namelist - - read_namelist - - - - - - - - - - subroutine - subroutine flux_exchange_mod::diag_field_init - (Time, atmos_axes) - diag_field_init - - Time - Time - - - atmos_axes - atmos_axes - - - - - - - - - - - subroutine, public - subroutine, public flux_exchange_mod::flux_exchange_end - (Atm) - flux_exchange_end - - Atm - Atm - - - - - - - - - - - subroutine - subroutine flux_exchange_mod::surface_flux_2d - (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) - surface_flux_2d - - t_atm - t_atm - - - q_atm_in - q_atm_in - - - u_atm - u_atm - - - v_atm - v_atm - - - p_atm - p_atm - - - z_atm - z_atm - - - p_surf - p_surf - - - t_surf - t_surf - - - t_ca - t_ca - - - q_surf - q_surf - - - u_surf - u_surf - - - v_surf - v_surf - - - rough_mom - rough_mom - - - rough_heat - rough_heat - - - rough_moist - rough_moist - - - rough_scale - rough_scale - - - gust - gust - - - flux_t - flux_t - - - flux_q - flux_q - - - flux_r - flux_r - - - flux_u - flux_u - - - flux_v - flux_v - - - cd_m - cd_m - - - cd_t - cd_t - - - cd_q - cd_q - - - w_atm - w_atm - - - u_star - u_star - - - b_star - b_star - - - q_star - q_star - - - thv_atm - thv_atm - - - thv_surf - thv_surf - - - dhdt_surf - dhdt_surf - - - dedt_surf - dedt_surf - - - dedq_surf - dedq_surf - - - drdt_surf - drdt_surf - - - dhdt_atm - dhdt_atm - - - dedq_atm - dedq_atm - - - dtaudu_atm - dtaudu_atm - - - dtaudv_atm - dtaudv_atm - - - dt - dt - - - land - land - - - seawater - seawater - - - avail - avail - - - - - - - - - - - - - - - - - diff --git a/docs/xml/namespacefull__coupler__mod.xml b/docs/xml/namespacefull__coupler__mod.xml deleted file mode 100644 index 3e77df1b..00000000 --- a/docs/xml/namespacefull__coupler__mod.xml +++ /dev/null @@ -1,2749 +0,0 @@ - - - - full_coupler_mod - full_coupler_mod::coupler_chksum_type - full_coupler_mod::coupler_clock_type - full_coupler_mod::coupler_components_type - - - integer, dimension(6), public - integer, dimension(6), public full_coupler_mod::restart_interval - - restart_interval - = (/ 0, 0, 0, 0, 0, 0/) - -namelist interface - -The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out - - - - - - integer, dimension(6) - integer, dimension(6) full_coupler_mod::current_date - - current_date - = (/ 0, 0, 0, 0, 0, 0 /) - -The date that the current integration starts with. (See force_date_from_namelist.) - -The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' cannot be used because the time_manager's date functions are used. All values must be lower case. - - - - - - character(len=17) - character(len=17) full_coupler_mod::calendar - - calendar - = ' ' - - - - - - - - - - logical - logical full_coupler_mod::force_date_from_namelist - - force_date_from_namelist - = .false. - -Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has no effect, the value of current_date will be used. - - - - - - - - integer, public - integer, public full_coupler_mod::months - - months - =0 - -Number of months the current integration will be run. - - - - - - - - integer, public - integer, public full_coupler_mod::days - - days - =0 - -Number of days the current integration will be run. - - - - - - - - integer, public - integer, public full_coupler_mod::hours - - hours - =0 - -Number of hours the current integration will be run. - - - - - - - - integer, public - integer, public full_coupler_mod::minutes - - minutes - =0 - -Number of minutes the current integration will be run. - - - - - - - - integer, public - integer, public full_coupler_mod::seconds - - seconds - =0 - -Number of seconds the current integration will be run. - - - - - - - - integer, public - integer, public full_coupler_mod::dt_atmos - - dt_atmos - = 0 - -Atmospheric model time step in seconds, including the fast coupling with land and sea ice. - - - - - - - - integer, public - integer, public full_coupler_mod::dt_cpld - - dt_cpld - = 0 - -Time step in seconds for coupling between ocean and atmospheric models. This must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep. - - - - - - - - integer, public - integer, public full_coupler_mod::atmos_npes - - atmos_npes - =0 - -The number of MPI tasks to use for the atmosphere. - - - - - - - - integer, public - integer, public full_coupler_mod::ocean_npes - - ocean_npes - =0 - -The number of MPI tasks to use for the ocean. - - - - - - - - integer, public - integer, public full_coupler_mod::ice_npes - - ice_npes - =0 - -The number of MPI tasks to use for the ice. - - - - - - - - integer, public - integer, public full_coupler_mod::land_npes - - land_npes - =0 - -The number of MPI tasks to use for the land. - - - - - - - - integer, public - integer, public full_coupler_mod::atmos_nthreads - - atmos_nthreads - =1 - -Number of OpenMP threads to use in the atmosphere. - - - - - - - - integer, public - integer, public full_coupler_mod::ocean_nthreads - - ocean_nthreads - =1 - -Number of OpenMP threads to use in the ocean. - - - - - - - - integer, public - integer, public full_coupler_mod::radiation_nthreads - - radiation_nthreads - =1 - -Number of threads to use for the radiation. - - - - - - - - logical, public - logical, public full_coupler_mod::do_atmos - - do_atmos - =.true. - -Indicates if this component should be executed. If .FALSE., then execution is skipped. This is used when ALL the output fields sent by this component to the coupler have been overridden using the data_override feature. This is for advanced users only. - - - - - - - - logical, public - logical, public full_coupler_mod::do_land - - do_land - =.true. - -See do_atmos. - - - - - - - - logical, public - logical, public full_coupler_mod::do_ice - - do_ice - =.true. - -See do_atmos. - - - - - - - - logical, public - logical, public full_coupler_mod::do_ocean - - do_ocean - =.true. - -See do_atmos. - - - - - - - - logical, public - logical, public full_coupler_mod::do_flux - - do_flux - =.true. - -See do_atmos. - - - - - - - - logical, public - logical, public full_coupler_mod::concurrent - - concurrent - =.FALSE. - -If .TRUE., the ocean executes concurrently with the atmosphere-land-ice on a separate set of PEs. Concurrent should be .TRUE. if concurrent_ice is .TRUE. If .FALSE., the execution is serial: call atmos... followed by call ocean... - - - - - - - - logical, public - logical, public full_coupler_mod::do_concurrent_radiation - - do_concurrent_radiation - =.FALSE. - -If .TRUE. then radiation is done concurrently. - - - - - - - - logical, public - logical, public full_coupler_mod::use_lag_fluxes - - use_lag_fluxes - =.TRUE. - -If .TRUE., the ocean is forced with SBCs from one coupling timestep ago. If .FALSE., the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable. - - - - - - - - logical, public - logical, public full_coupler_mod::concurrent_ice - - concurrent_ice - =.FALSE. - -If .TRUE., the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=.TRUE., this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities. - - - - - - - - logical, public - logical, public full_coupler_mod::slow_ice_with_ocean - - slow_ice_with_ocean - =.FALSE. - -If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice. - -If true, there is a single call from the coupler to advance both the slow sea-ice and the ocean. slow_ice_with_ocean and concurrent_ice must both be true if combined_ice_and_ocean is true. - - - - - - logical, public - logical, public full_coupler_mod::combined_ice_and_ocean - - combined_ice_and_ocean - =.FALSE. - - - - - - - - - - logical, public - logical, public full_coupler_mod::do_chksum - - do_chksum - =.FALSE. - -If .TRUE., do multiple checksums throughout the execution of the model. - - - - - - - - logical, public - logical, public full_coupler_mod::do_endpoint_chksum - - do_endpoint_chksum - =.TRUE. - -If .TRUE., do checksums of the initial and final states. - - - - - - - - logical, public - logical, public full_coupler_mod::do_debug - - do_debug - =.FALSE. - -If .TRUE. print additional debugging messages. - - - - - - - - integer, public - integer, public full_coupler_mod::check_stocks - - check_stocks - = 0 - --1: never 0: at end of run only n>0: every n coupled steps - - - - - - - - logical, public - logical, public full_coupler_mod::use_hyper_thread - - use_hyper_thread - = .false. - - - - - - - - - - character(len=80) - character(len=80) full_coupler_mod::text - - text - - - - - - - - - - character(len=48), parameter - character(len=48), parameter full_coupler_mod::mod_name - - mod_name - = 'coupler_main_mod' - - - - - - - - - - integer - integer full_coupler_mod::calendar_type - - calendar_type - = INVALID_CALENDAR - - - - - - - - - - integer, dimension(6) - integer, dimension(6) full_coupler_mod::date_init - - date_init - = (/ 0, 0, 0, 0, 0, 0 /) - -coupled model initial date - - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_init - (Atm, Ocean, Land, Ice, Ocean_state, Atmos_land_boundary, Atmos_ice_boundary, Ocean_ice_boundary, Ice_ocean_boundary, Land_ice_atmos_boundary, Land_ice_boundary, Ice_ocean_driver_CS, Ice_bc_restart, Ocn_bc_restart, ensemble_pelist, slow_ice_ocean_pelist, conc_nthreads, coupler_clocks, coupler_components_obj, coupler_chksum_obj, Time_step_cpld, Time_step_atmos, Time_atmos, Time_ocean, num_cpld_calls, num_atmos_calls, Time, Time_start, Time_end, Time_restart, Time_restart_current) - coupler_init - - Atm - Atm - - - Ocean - Ocean - - - Land - Land - - - Ice - Ice - - - Ocean_state - Ocean_state - - - Atmos_land_boundary - Atmos_land_boundary - - - Atmos_ice_boundary - Atmos_ice_boundary - - - Ocean_ice_boundary - Ocean_ice_boundary - - - Ice_ocean_boundary - Ice_ocean_boundary - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - Land_ice_boundary - Land_ice_boundary - - - Ice_ocean_driver_CS - Ice_ocean_driver_CS - - - Ice_bc_restart - Ice_bc_restart - - - Ocn_bc_restart - Ocn_bc_restart - - - ensemble_pelist - ensemble_pelist - - - slow_ice_ocean_pelist - slow_ice_ocean_pelist - - - conc_nthreads - conc_nthreads - - - coupler_clocks - coupler_clocks - - - coupler_components_obj - coupler_components_obj - - - coupler_chksum_obj - coupler_chksum_obj - - - Time_step_cpld - Time_step_cpld - - - Time_step_atmos - Time_step_atmos - - - Time_atmos - Time_atmos - - - Time_ocean - Time_ocean - - - num_cpld_calls - num_cpld_calls - - - num_atmos_calls - num_atmos_calls - - - Time - Time - - - Time_start - Time_start - - - Time_end - Time_end - - - Time_restart - Time_restart - - - Time_restart_current - Time_restart_current - - -Initialize all defined exchange grids and all boundary maps. - - - -The pelists need to be set before initializing the clocksInitialize coupler_components_obj memebers to point to model componentsInitialize coupler_chksum_obj - - - - subroutine - subroutine full_coupler_mod::initialize_coupler_components_obj - (this, Atm, Land, Ice, Ocean, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Land_ice_boundary, Ice_ocean_boundary, Ocean_ice_boundary) - initialize_coupler_components_obj - - this - this - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Ocean - Ocean - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - Atmos_land_boundary - Atmos_land_boundary - - - Atmos_ice_boundary - Atmos_ice_boundary - - - Land_ice_boundary - Land_ice_boundary - - - Ice_ocean_boundary - Ice_ocean_boundary - - - Ocean_ice_boundary - Ocean_ice_boundary - - -This subroutine associates the pointer in an object of coupler_components_type to the model components. - - - -this - - -self - - - - - - - - - subroutine - subroutine full_coupler_mod::get_component - (this, retrieve_component) - get_component - - this - this - - - retrieve_component - retrieve_component - - -Function get_component returns the requested component in the coupler_components_type object Users are required to provide the component to be retrieved as an input argument. For example, coupler_components_objget_component(Atm) will return Atm = coupler_components_objAtm. - - - -this - - -the coupler_components_type object - - - -retrieve_component - - -requested component to be retrieve. retrieve_component can be of type atmos_data_type, land_data_type, ice_data_type, ocean_public_type, land_ice_atmos_boundary_type, atmos_land_boundary_type, atmos_ice_boundary_type, land_ice_boundary_type, ice_ocean_boundary_type, ocean_ice_boundary_type - - - - - - - - - subroutine - subroutine full_coupler_mod::initialize_coupler_chksum_obj - (this, components_obj) - initialize_coupler_chksum_obj - - this - this - - - components_obj - components_obj - - -This subroutine associates the pointer in an object of coupler_chksum_type to the component models. - - - - - - - - subroutine - subroutine full_coupler_mod::get_components_obj - (this, components_obj) - get_components_obj - - this - this - - - components_obj - components_obj - - -This subroutine retrieves coupler_chksum_objcomponents_obj. - - - -this - - -coupler_chksum_type - - - -components_obj - - -coupler_components_type to be returned - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_end - (Atm, Land, Ice, Ocean, Ocean_state, Land_ice_atmos_boundary, Atmos_ice_boundary, Atmos_land_boundary, Ice_ocean_boundary, Ocean_ice_boundary, Ocn_bc_restart, Ice_bc_restart, current_timestep, Time_current, Time_start, Time_end, Time_restart_current, coupler_chksum_obj, coupler_clocks) - coupler_end - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Ocean - Ocean - - - Ocean_state - Ocean_state - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - Atmos_ice_boundary - Atmos_ice_boundary - - - Atmos_land_boundary - Atmos_land_boundary - - - Ice_ocean_boundary - Ice_ocean_boundary - - - Ocean_ice_boundary - Ocean_ice_boundary - - - Ocn_bc_restart - Ocn_bc_restart - - - Ice_bc_restart - Ice_bc_restart - - - current_timestep - current_timestep - - - Time_current - Time_current - - - Time_start - Time_start - - - Time_end - Time_end - - - Time_restart_current - Time_restart_current - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine finalizes the run including a final call to get_coupler_chksums if do_chksum = .True. Coupler_restart is called for the final time. - - - -land_ice_atmos_boundary - - -Land_ice_boundary - - - -ocn_bc_restart - - -required for coupler_restart - - - -ice_bc_restart - - -required for coupler_restart - - - -current_timestep - - -current_timestep (nc) - - - -coupler_chksum_obj - - -required for chksum computations - - - -time_current - - -Current timestep - - - -time_start - - -model starting time - - - -time_end - - -model run time - - - -time_restart_current - - -Time corresponding to last restart time - - - - - - - - - subroutine - subroutine full_coupler_mod::add_domain_dimension_data - (fileobj) - add_domain_dimension_data - - fileobj - fileobj - - -Register the axis data as a variable in the netcdf file and add some dummy data. This is needed so the combiner can work correctly when the io_layout is not 1,1. - - - -fileobj - - -Fms2io domain decomposed fileobj - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_restart - (Atm, Ice, Ocean, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart_current, Time_start, time_stamp) - coupler_restart - - Atm - Atm - - - Ice - Ice - - - Ocean - Ocean - - - Ocn_bc_restart - Ocn_bc_restart - - - Ice_bc_restart - Ice_bc_restart - - - Time_current - Time_current - - - Time_restart_current - Time_restart_current - - - Time_start - Time_start - - - time_stamp - time_stamp - - -Writing restart file that contains running time and restart file writing time. - - - -ocn_bc_restart - - -required for restarts - - - -ice_bc_restart - - -required for restarts - - - -time_current - - -current model runtime (Time) - - - -time_restart_current - - -current restart time - - - -time_start - - -model start time - - - -time_stamp - - -time_stamp for restart - - - - - - - - - subroutine - subroutine full_coupler_mod::get_coupler_chksums - (this, id, timestep) - get_coupler_chksums - - this - this - - - id - id - - - timestep - timestep - - -Print out checksums for several atm, land and ice variables. - - - -this - - -self - - - -id - - -id to label CHECKSUMS in stdout - - - - - - - - - subroutine - subroutine full_coupler_mod::get_atmos_ice_land_ocean_chksums - (this, id, timestep) - get_atmos_ice_land_ocean_chksums - - this - this - - - id - id - - - timestep - timestep - - -This subroutine calls coupler_chksum as well as atmos_ice_land_chksum and ocean_chksum. - - - -this - - -self - - - -id - - -ID labelling the set of checksums - - - - - - - - - subroutine - subroutine full_coupler_mod::get_atmos_ice_land_chksums - (this, id, timestep) - get_atmos_ice_land_chksums - - this - this - - - id - id - - - timestep - timestep - - -This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way. if(atm%pe)then -callmpp_set_current_pelist(atm%pelist) -callatmos_ice_land_chksum('MAIN_LOOP-',nc) -endif - If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking callmpp_set_current_pelist() - after you exit. This is only necessary if you need to return to the global pelist. - - - -this - - -self - - - -id - - -id to label CHECKSUMS in stdout - - - - - - - - - subroutine - subroutine full_coupler_mod::get_slow_ice_chksums - (this, id, timestep) - get_slow_ice_chksums - - this - this - - - id - id - - - timestep - timestep - - -This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way. if(ice%slow_ice_pe)then -callmpp_set_current_pelist(ice%slow_pelist) -callslow_ice_chksum('MAIN_LOOP-',nc) -endif - If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking callmpp_set_current_pelist() - after you exit. This is only necessary if you need to return to the global pelist. - - - -this - - -self - - - -id - - -id to label CHECKSUMS in stdout - - - - - - - - - subroutine - subroutine full_coupler_mod::get_ocean_chksums - (this, id, timestep) - get_ocean_chksums - - this - this - - - id - id - - - timestep - timestep - - -This subroutine calls subroutine that will print out checksums of the elements of the appropriate type. For coupled models typically these types are not defined on all processors. It is assumed that the appropriate pelist has been set before entering this routine. This can be achieved in the following way. if(ocean%is_ocean_pe)then -callmpp_set_current_pelist(ocean%pelist) -callocean_chksum('MAIN_LOOP-',nc) -endif - If you are on the global pelist before you enter this routine using the above call, you can return to the global pelist by invoking callmpp_set_current_pelist() - after you exit. This is only necessary if you need to return to the global pelist. - - - -this - - -self - - - -id - - -ID labelling the set of CHECKSUMS - - - - - - - - - subroutine - subroutine full_coupler_mod::coupler_set_clock_ids - (coupler_clocks, Atm, Land, Ice, Ocean, ensemble_pelist, slow_ice_ocean_pelist, ensemble_id) - coupler_set_clock_ids - - coupler_clocks - coupler_clocks - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Ocean - Ocean - - - ensemble_pelist - ensemble_pelist - - - slow_ice_ocean_pelist - slow_ice_ocean_pelist - - - ensemble_id - ensemble_id - - -This subroutine sets the ID for clocks used in coupler_main. - - - -atm - - -Atm, required to retrieve pe information - - - -land - - -Land, required to retrieve pe information - - - -ocean - - -Ocean, required to retrieve pe information - - - -ice - - -Ice, required to retrieve pe information - - - -slow_ice_ocean_pelist - - -slow_ice_oean_pelist - - - -ensemble_id - - -ensemble_id used as index in ensemble_pelist - - - - -initialization clock - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_init_finish_stocks - (Time, Atm, Land, Ice, Ocean_state, coupler_clocks, init_stocks, finish_stocks) - coupler_flux_init_finish_stocks - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Ocean_state - Ocean_state - - - coupler_clocks - coupler_clocks - - - init_stocks - init_stocks - - - finish_stocks - finish_stocks - - -This subroutine calls flux_init_stocks or does the final call to flux_check_stocks. - - - -time - - -current Time - - - -finish_stocks - - -control flags to either call flux_init_stocks or the final flux_check_stocks - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_check_stocks - (nc, Time, Atm, Land, Ice, Ocean_state, coupler_clocks) - coupler_flux_check_stocks - - nc - nc - - - Time - Time - - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Ocean_state - Ocean_state - - - coupler_clocks - coupler_clocks - - -This subroutine calls flux_check_stocks. Clocks and pelists are set before and after call to flux_check_stocks. - - - -nc - - -current outerloop timestep - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_ocean_to_ice - (Ocean, Ice, Ocean_ice_boundary, coupler_clocks, slow_ice_ocean_pelist) - coupler_flux_ocean_to_ice - - Ocean - Ocean - - - Ice - Ice - - - Ocean_ice_boundary - Ocean_ice_boundary - - - coupler_clocks - coupler_clocks - - - slow_ice_ocean_pelist - slow_ice_ocean_pelist - - -This subroutine calls flux_ocean_to_ice. Clocks and pelists are set before and after call flux_ocean_to_ice. - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_ice_to_ocean - (Ice, Ocean, Ice_ocean_boundary, coupler_clocks, slow_ice_ocean_pelist, set_current_slow_ice_ocean_pelist) - coupler_flux_ice_to_ocean - - Ice - Ice - - - Ocean - Ocean - - - Ice_ocean_boundary - Ice_ocean_boundary - - - coupler_clocks - coupler_clocks - - - slow_ice_ocean_pelist - slow_ice_ocean_pelist - - - set_current_slow_ice_ocean_pelist - set_current_slow_ice_ocean_pelist - - -This subroutine calls flux_ocean_to_ice Clocks are set before and after call flux_ice_to_ocean. Current pelist is set when optional arguments are present and set_current_slow_ice_ocean_pelist=.True. - - - -set_current_slow_ice_ocean_pelist - - -if true, will call mpp_set_current_pelist(slow_ice_ocean_pelist) - - - - -mpp_set_current_pelist(slow_ice_ocean_pelist) is not required if coupler_flux_ice_to_ocean is being called after coupler_flux_ocean_to_ice: mpp_set_current_pelist(slow_ice_ocean_pelist) is called in coupler_flux_ocean_to_ice - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_unpack_ocean_ice_boundary - (nc, Time_flux_ocean_to_ice, Ice, Ocean_ice_boundary, coupler_clocks, coupler_chksum_obj) - coupler_unpack_ocean_ice_boundary - - nc - nc - - - Time_flux_ocean_to_ice - Time_flux_ocean_to_ice - - - Ice - Ice - - - Ocean_ice_boundary - Ocean_ice_boundary - - - coupler_clocks - coupler_clocks - - - coupler_chksum_obj - coupler_chksum_obj - - -This subroutine calls flux_ocean_to_ice_finish and unpack_ocean_ice_boundary. Clocks and pelists are set before/after the calls. Checksum is computed if do_chksum=.True. - - - -nc - - -Current outer loop timestep - - - -time_flux_ocean_to_ice - - -Time flux_ocean_to_ice - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_exchange_slow_to_fast_ice - (Ice, coupler_clocks) - coupler_exchange_slow_to_fast_ice - - Ice - Ice - - - coupler_clocks - coupler_clocks - - -This subroutine calls exchange_slow_to_fast_ice Clocks and pelists are set before/after the calls. - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_exchange_fast_to_slow_ice - (Ice, coupler_clocks, set_ice_current_pelist) - coupler_exchange_fast_to_slow_ice - - Ice - Ice - - - coupler_clocks - coupler_clocks - - - set_ice_current_pelist - set_ice_current_pelist - - -This subroutine calls exchange_fast_to_slow_ice. Clocks are set before and after the call. The current pelist is set if the optional argument set_ice_current_pelist is set to true. - - - -set_ice_current_pelist - - -If true, call mpp_set_current_pelist(Icepelist) - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_set_ice_surface_fields - (Ice, coupler_clocks) - coupler_set_ice_surface_fields - - Ice - Ice - - - coupler_clocks - coupler_clocks - - -This subroutine calls set_ice_surface_fields. Clocks and pelist are set before/after the call. - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_generate_sfc_xgrid - (Land, Ice, coupler_clocks) - coupler_generate_sfc_xgrid - - Land - Land - - - Ice - Ice - - - coupler_clocks - coupler_clocks - - -This subroutine calls generate_sfc_xgrid. Clocks are set and before the call. - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_atmos_tracer_driver_gather_data - (Atm, coupler_clocks) - coupler_atmos_tracer_driver_gather_data - - Atm - Atm - - - coupler_clocks - coupler_clocks - - -This subroutine calls atmo_tracer_driver_gather_data. Clocks are set before and after the call. - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_sfc_boundary_layer - (Atm, Land, Ice, Land_ice_atmos_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_sfc_boundary_layer - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - Time_atmos - Time_atmos - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls coupler_sfc_boundary_layer. Chksums are computed if do_chksum = .True. Clocks are set for runtime statistics. - - - -time_atmos - - -Atmos time - - - -current_timestep - - -(nc-1)*num_atmos_cal + na - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_atmos_model_dynamics - (Atm, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_update_atmos_model_dynamics - - Atm - Atm - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls update_atmos_model_dynamics. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. - - - -current_timestep - - -Current timestep - - - -coupler_chksum_obj - - -coupler_chksum_obj pointing to component types - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_atmos_model_radiation - (Atm, Land_ice_atmos_boundary, coupler_clocks, current_timestep, coupler_chksum_obj) - coupler_update_atmos_model_radiation - - Atm - Atm - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - coupler_clocks - coupler_clocks - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - -This subroutine calls update_atmos_model_radiation. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. and do_concurrent_radiation is .False.. Memory usage is computed if do_debug is .True. - - - -current_timestep - - -Current timestep - - - -coupler_chksum_obj - - -points to component types - - - - -cannot put mpp_chksum for concurrent_radiation as it requires the ability to have two different OpenMP threads inside of MPI at the same time which is not currently allowed - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_atmos_model_down - (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_update_atmos_model_down - - Atm - Atm - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls update_atmos_model_down. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. - - - -land_ice_atmos_boundary - - -Land ice_atmos_boundary - - - -current_timestep - - -Current timestep - - - -coupler_chksum_obj - - -coupler_chksum_obj pointing to component types - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_down_from_atmos - (Atm, Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_clocks, coupler_chksum_obj) - coupler_flux_down_from_atmos - - Atm - Atm - - - Land - Land - - - Ice - Ice - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - Atmos_land_boundary - Atmos_land_boundary - - - Atmos_ice_boundary - Atmos_ice_boundary - - - Time_atmos - Time_atmos - - - current_timestep - current_timestep - - - coupler_clocks - coupler_clocks - - - coupler_chksum_obj - coupler_chksum_obj - - -This subroutine calls flux_down_from_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum = .True. - - - -time_atmos - - -Time_atmos FmsTime_type containing time in seconds - - - -coupler_chksum_obj - - -used to compute chksum - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_land_model_fast - (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_update_land_model_fast - - Land - Land - - - Atmos_land_boundary - Atmos_land_boundary - - - atm_pelist - atm_pelist - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls update_land_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. - - - -atm_pelist - - -Atmpelist to reset the pelist to Atmpelist - - - -current_timestep - - -current timestep - - - -coupler_chksum_obj - - -points to component types - - - -coupler_clocks - - -current pelist=Atmpelist - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_ice_model_fast - (Ice, Atmos_ice_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_update_ice_model_fast - - Ice - Ice - - - Atmos_ice_boundary - Atmos_ice_boundary - - - atm_pelist - atm_pelist - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls update_ice_model_fast. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. - - - -atm_pelist - - -Atmpelist to reset the pelist to Atmpelist - - - -coupler_chksum_obj - - -points to component types - - - -coupler_clocks - - -current pelist = Atmpelist - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_up_to_atmos - (Land, Ice, Land_ice_atmos_boundary, Atmos_land_boundary, Atmos_ice_boundary, Time_atmos, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_flux_up_to_atmos - - Land - Land - - - Ice - Ice - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - Atmos_land_boundary - Atmos_land_boundary - - - Atmos_ice_boundary - Atmos_ice_boundary - - - Time_atmos - Time_atmos - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls flux_up_to_atmos. Clocks are set for runtime statistics. Chksums are computed if do_chksum is .True. - - - -time_atmos - - -Time_atmos, time in seconds - - - -current_timestep - - -current timestep - - - -coupler_chksum_obj - - -points to component types - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_atmos_model_up - (Atm, Land_ice_atmos_boundary, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_update_atmos_model_up - - Atm - Atm - - - Land_ice_atmos_boundary - Land_ice_atmos_boundary - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls update_atmos_model_up. Clocks are set for runtime statistics. Chksums and memory usage are computed if do_chksum and do_debug are .True. - - - -coupler_chksum_obj - - -points to component types - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_atmos_to_ocean - (Atm, Atmos_ice_boundary, Ice, Time_atmos) - coupler_flux_atmos_to_ocean - - Atm - Atm - - - Atmos_ice_boundary - Atmos_ice_boundary - - - Ice - Ice - - - Time_atmos - Time_atmos - - -This subroutine calls flux_atmos_to_ocean and calls flux_ex_arrays_dealloc. - - - -time_atmos - - -Time in seconds - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_atmos_model_state - (Atm, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_update_atmos_model_state - - Atm - Atm - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls update_atmos_model_state. Chksums are mem usage are computed if do_chksum and do_debug are .True. respectively. - - - -coupler_chksum_obj - - -used to compute chksums - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_land_model_slow - (Land, Atmos_land_boundary, atm_pelist, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_update_land_model_slow - - Land - Land - - - Atmos_land_boundary - Atmos_land_boundary - - - atm_pelist - atm_pelist - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -In this subroutine, update_land model_slow is called by the Landpes. The atm_pelist are only required to set the clocks. Chksums are computed if do_chksum = .True. - - - -atm_pelist - - -atm_pelist used for clocks - - - -current_timestep - - -current timestep - - - -coupler_chksum_obj - - -coupler_chksum_obj for chksum computation - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_flux_land_to_ice - (Land, Ice, Land_ice_boundary, Time, current_timestep, coupler_chksum_obj, coupler_clocks) - coupler_flux_land_to_ice - - Land - Land - - - Ice - Ice - - - Land_ice_boundary - Land_ice_boundary - - - Time - Time - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - - coupler_clocks - coupler_clocks - - -This subroutine calls flux_land_to_ice. Chksums are computed if do_chksum = .True. - - - -time - - -Time (in seconds) - - - -current_timestep - - -current timestep - - - -coupler_chksum_obj - - -coupler_chksum_obj to compute chksums - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_unpack_land_ice_boundary - (Ice, Land_ice_boundary, coupler_clocks) - coupler_unpack_land_ice_boundary - - Ice - Ice - - - Land_ice_boundary - Land_ice_boundary - - - coupler_clocks - coupler_clocks - - -This subroutine calls ice_model_fast_cleanup and unpack_land_ice_boundary. - - - -These two calls occur on whichever PEs handle the fast ice processess. - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_ice_model_slow_and_stocks - (Ice, coupler_clocks) - coupler_update_ice_model_slow_and_stocks - - Ice - Ice - - - coupler_clocks - coupler_clocks - - -This subroutine calls update_ice_model_slow and flux_ice_to_ocean_stocks. - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_update_ocean_model - (Ocean, Ocean_state, Ice_ocean_boundary, Time_ocean, Time_step_cpld, current_timestep, coupler_chksum_obj) - coupler_update_ocean_model - - Ocean - Ocean - - - Ocean_state - Ocean_state - - - Ice_ocean_boundary - Ice_ocean_boundary - - - Time_ocean - Time_ocean - - - Time_step_cpld - Time_step_cpld - - - current_timestep - current_timestep - - - coupler_chksum_obj - coupler_chksum_obj - - -This subroutine calls update_ocean_model. Chksums are computed if do_chksum = .True. - - - -time_step_cpld - - -total number of timesteps - - - -current_timestep - - -current timestep - - - -coupler_chksum_obj - - -used for checksum computation - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_intermediate_restart - (Atm, Ice, Ocean, Ocean_state, Ocn_bc_restart, Ice_bc_restart, Time_current, Time_restart, Time_restart_current, Time_start) - coupler_intermediate_restart - - Atm - Atm - - - Ice - Ice - - - Ocean - Ocean - - - Ocean_state - Ocean_state - - - Ocn_bc_restart - Ocn_bc_restart - - - Ice_bc_restart - Ice_bc_restart - - - Time_current - Time_current - - - Time_restart - Time_restart - - - Time_restart_current - Time_restart_current - - - Time_start - Time_start - - -Thie subroutine calls component restarts and coupler_restart where the intermediate restart files is produced in the latter calls. Time_restart is the next timestep where the intermediate restart file will be written out. Time_restart_current records the current restart time. - - - -ocn_bc_restart - - -used for coupler type restarts - - - -ice_bc_restart - - -used for coupler type restarts - - - -time_start - - -current Timestep and model start time - - - -time_restart - - -Restart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart. - - - -time_restart_current - - -Restart files will be written when Time=>Time_restart. Time_restart is incremented by restart_interval Time_restart_current records the current timestep the restart file is being written. Time_restart_current does not necessary = Time_restart. - - - - - - - - - subroutine, public - subroutine, public full_coupler_mod::coupler_summarize_timestep - (current_timestep, num_cpld_calls, coupler_chksum_obj, is_atmos_pe, omp_sec, imb_sec) - coupler_summarize_timestep - - current_timestep - current_timestep - - - num_cpld_calls - num_cpld_calls - - - coupler_chksum_obj - coupler_chksum_obj - - - is_atmos_pe - is_atmos_pe - - - omp_sec - omp_sec - - - imb_sec - imb_sec - - -This subroutine mainly prints out the current timestep in the stdout. Chksum is computed if do_chksum = .True. - - - -current_timestep - - -current_timestep, nc - - - -num_cpld_calls - - -total number of outerloop timestep - - - -is_atmos_pe - - -Atmpe - - - -imb_sec - - -from omp computation - - - - - - - - - - - - - - - diff --git a/docs/xml/namespaceice__model__mod.xml b/docs/xml/namespaceice__model__mod.xml deleted file mode 100644 index 176925c9..00000000 --- a/docs/xml/namespaceice__model__mod.xml +++ /dev/null @@ -1,786 +0,0 @@ - - - - ice_model_mod - ice_model_mod::atmos_ice_boundary_type - ice_model_mod::ice_data_type - - - real - real ice_model_mod::cmin - - cmin - - - - - - - - - - real - real ice_model_mod::cmax - - cmax - - - - - - - - - - real - real ice_model_mod::diff - - diff - = 2.092 - - - - - - - - - - real - real ice_model_mod::thickness_min - - thickness_min - = 0.10 - - - - - - - - - - real - real ice_model_mod::specified_ice_thickness - - specified_ice_thickness - = 2.0 - - - - - - - - - - real - real ice_model_mod::heat_capacity_ocean - - heat_capacity_ocean - = 1.e07 - - - - - - - - - - real - real ice_model_mod::temp_ice_freeze - - temp_ice_freeze - = -1.66 - - - - - - - - - - real - real ice_model_mod::roughness_ice - - roughness_ice - = 1.e-4 - - - - - - - - - - logical - logical ice_model_mod::mixed_layer_ocean - - mixed_layer_ocean - = .false. - - - - - - - - - - logical - logical ice_model_mod::use_climo_ice - - use_climo_ice - = .false. - - - - - - - - - - logical - logical ice_model_mod::use_annual_ice - - use_annual_ice - = .false. - - - - - - - - - - logical - logical ice_model_mod::use_climo_sst - - use_climo_sst - = .false. - - - - - - - - - - logical - logical ice_model_mod::use_annual_sst - - use_annual_sst - = .false. - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::ice_method - - ice_method - = 'prognostic' - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::sst_method - - sst_method - = 'specified' - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::specified - - specified - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::uniform - - uniform - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::or - - or - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::mixed_layer - - mixed_layer - - - - - - - - - - real - real ice_model_mod::temp_ice - - temp_ice - = 270. - - - - - - - - - - real - real ice_model_mod::temp_sst - - temp_sst - = 280. - - - - - - - - - - real - real ice_model_mod::sst_anom - - sst_anom - = 0. - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::interp_method - - interp_method - = "bilinear" - - - - - - - - - - logical - logical ice_model_mod::do_netcdf_restart - - do_netcdf_restart - = .true. - - - - - - - - - - integer - integer ice_model_mod::is - - is - - - - - - - - - - integer - integer ice_model_mod::ie - - ie - - - - - - - - - - integer - integer ice_model_mod::js - - js - - - - - - - - - - integer - integer ice_model_mod::je - - je - - - - - - - - - - type(fmsamipinterp_type), save - type(fmsamipinterp_type), save ice_model_mod::amip_ice - - amip_ice - - - - - - - - - - type(fmsamipinterp_type), save - type(fmsamipinterp_type), save ice_model_mod::amip_sst - - amip_sst - - - - - - - - - - logical - logical ice_model_mod::module_is_initialized - - module_is_initialized - = .false. - - - - - - - - - - character(len=64) - character(len=64) ice_model_mod::fname - - fname - = 'INPUT/ice_model.res.nc' - - - - - - - - - - character(len=128) - character(len=128) ice_model_mod::version - - version - = '$Id$' - - - - - - - - - - character(len=128) - character(len=128) ice_model_mod::tagname - - tagname - = '$Name$' - - - - - - - - - - real, parameter - real, parameter ice_model_mod::latent - - latent - = HLV + HLF - - - - - - - - - - - - subroutine, public - subroutine, public ice_model_mod::update_ice_model_fast - (Atmos_boundary, Ice) - update_ice_model_fast - - Atmos_boundary - Atmos_boundary - - - Ice - Ice - - - - - - - - - - - subroutine, public - subroutine, public ice_model_mod::update_ice_model_slow - (Atmos_boundary, Ice) - update_ice_model_slow - - Atmos_boundary - Atmos_boundary - - - Ice - Ice - - - - - - - - - - - subroutine - subroutine ice_model_mod::prognostic_ice - (Ice) - prognostic_ice - - Ice - Ice - - - - - - - - - - - subroutine - subroutine ice_model_mod::prognostic_sst - (Ice) - prognostic_sst - - Ice - Ice - - - - - - - - - - - subroutine, public - subroutine, public ice_model_mod::ice_model_init - (Ice, Time_Init, Time, Time_step_fast, Time_step_slow, glon_bnd, glat_bnd, Atmos_domain) - ice_model_init - - Ice - Ice - - - Time_Init - Time_Init - - - Time - Time - - - Time_step_fast - Time_step_fast - - - Time_step_slow - Time_step_slow - - - glon_bnd - glon_bnd - - - glat_bnd - glat_bnd - - - Atmos_domain - Atmos_domain - - - - - - - - - - - subroutine - subroutine ice_model_mod::ice_register_restart - (fileobj, Ice) - ice_register_restart - - fileobj - fileobj - - - Ice - Ice - - - - - - -fileobj - - -Ice restart domain decomposed fileobj - - - -ice - - -Ice data type - - - - - - - - - subroutine, public - subroutine, public ice_model_mod::ice_model_end - (Ice) - ice_model_end - - Ice - Ice - - - - - - - - - - - subroutine - subroutine ice_model_mod::add_domain_dimension_data - (fileobj) - add_domain_dimension_data - - fileobj - fileobj - - - - - - -fileobj - - -Fms2io domain decomposed fileobj - - - - - - - - - logical function - logical function ice_model_mod::is_latlon - (lon, lat) - is_latlon - - lon - lon - - - lat - lat - - - - - - - - - - - subroutine - subroutine ice_model_mod::get_cell_center - (lonb, latb, lon, lat) - get_cell_center - - lonb - lonb - - - latb - latb - - - lon - lon - - - lat - lat - - - - - - - - - - - subroutine - subroutine ice_model_mod::latlon2xyz - (sph_coor, xyz_coor) - latlon2xyz - - sph_coor - sph_coor - - - xyz_coor - xyz_coor - - - - - - - - - - - subroutine - subroutine ice_model_mod::xyz2latlon - (xyz_coor, sph_coor) - xyz2latlon - - xyz_coor - xyz_coor - - - sph_coor - sph_coor - - - - - - - - - - - - - - - - - diff --git a/docs/xml/namespaceice__ocean__flux__exchange__mod.xml b/docs/xml/namespaceice__ocean__flux__exchange__mod.xml deleted file mode 100644 index c75609e4..00000000 --- a/docs/xml/namespaceice__ocean__flux__exchange__mod.xml +++ /dev/null @@ -1,578 +0,0 @@ - - - - ice_ocean_flux_exchange_mod - - - integer, parameter - integer, parameter ice_ocean_flux_exchange_mod::regrid - - regrid - =1 - - - - - - - - - - integer, parameter - integer, parameter ice_ocean_flux_exchange_mod::redist - - redist - =2 - - - - - - - - - - integer, parameter - integer, parameter ice_ocean_flux_exchange_mod::direct - - direct - =3 - - - - - - - - - - logical - logical ice_ocean_flux_exchange_mod::debug_stocks - - debug_stocks - = .false. - - - - - - - - - - logical - logical ice_ocean_flux_exchange_mod::do_area_weighted_flux - - do_area_weighted_flux - = .false. - - - - - - - - - - integer - integer ice_ocean_flux_exchange_mod::cplocnclock - - cplocnclock - - - - - - - - - - integer - integer ice_ocean_flux_exchange_mod::fluxoceaniceclock - - fluxoceaniceclock - - - - - - - - - - integer - integer ice_ocean_flux_exchange_mod::fluxiceoceanclock - - fluxiceoceanclock - - - - - - - - - - real - real ice_ocean_flux_exchange_mod::dt_cpl - - dt_cpl - - - - - - - - - - integer, dimension(:), allocatable - integer, dimension(:), allocatable ice_ocean_flux_exchange_mod::slow_ice_ocean_pelist - - slow_ice_ocean_pelist - - - - - - - - - - - - subroutine, public - subroutine, public ice_ocean_flux_exchange_mod::ice_ocean_flux_exchange_init - (Time, Ice, Ocean, Ocean_state, ice_ocean_boundary, ocean_ice_boundary, Dt_cpl_in, debug_stocks_in, do_area_weighted_flux_in, ex_gas_fields_ice, ex_gas_fluxes, do_ocean, slow_ice_ocean_pelist_in) - ice_ocean_flux_exchange_init - - Time - Time - - - Ice - Ice - - - Ocean - Ocean - - - Ocean_state - Ocean_state - - - ice_ocean_boundary - ice_ocean_boundary - - - ocean_ice_boundary - ocean_ice_boundary - - - Dt_cpl_in - Dt_cpl_in - - - debug_stocks_in - debug_stocks_in - - - do_area_weighted_flux_in - do_area_weighted_flux_in - - - ex_gas_fields_ice - ex_gas_fields_ice - - - ex_gas_fluxes - ex_gas_fluxes - - - do_ocean - do_ocean - - - slow_ice_ocean_pelist_in - slow_ice_ocean_pelist_in - - - - - - -time - - -The model's current time - - - -ice - - -A derived data type to specify ice boundary data - - - -ocean - - -A derived data type to specify ocean boundary data - - - -ice_ocean_boundary - - -A derived data type to specify properties and fluxes passed from ice to ocean - - - -ocean_ice_boundary - - -A derived data type to specify properties and fluxes passed from ocean to ice - - - - - - - - - subroutine, public - subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean - (Ice, Ocean, Ice_Ocean_Boundary) - flux_ice_to_ocean - - Ice - Ice - - - Ocean - Ocean - - - Ice_Ocean_Boundary - Ice_Ocean_Boundary - - - - - - -ice - - -A derived data type to specify ice boundary data - - - -ocean - - -A derived data type to specify ocean boundary data - - - -ice_ocean_boundary - - -A derived data type to specify properties and fluxes passed from ice to ocean - - - - - - - - - subroutine, public - subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_finish - (Time, Ice_Ocean_Boundary) - flux_ice_to_ocean_finish - - Time - Time - - - Ice_Ocean_Boundary - Ice_Ocean_Boundary - - -flux_ice_to_ocean_finish carrries out a final set of tasks that should only occur on the ocean processors, including data override and perhaps saving diagnostics. - - - -time - - -Current time - - - -ice_ocean_boundary - - -A derived data type to specify properties and fluxes passed from ice to ocean - - - - - - - - - subroutine, public - subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice - (Ocean, Ice, Ocean_Ice_Boundary) - flux_ocean_to_ice - - Ocean - Ocean - - - Ice - Ice - - - Ocean_Ice_Boundary - Ocean_Ice_Boundary - - -Takes the ocean model state and interpolates it onto the bottom of the ice. - -The following quantities are transferred from the Ocean to the ocean_ice_boundary_type: - t_surf = surface temperature (deg K) - frazil = frazil fluxes since the last coupling step (J/m2) - u_surf = zonal ocean current/ice motion (m/s) - v_surf = meridional ocean current/ice motion (m/s) - v_surf = meridional ocean current/ice motion (m/s) - sea_lev = sea level used to drive ice accelerations (m) - - -FATAL -Ocean_Ice_Boundary%xtype must be DIRECT or REDIST. - - -The value of variable xtype of ice_ocean_boundary_type data must be DIRECT or REDIST. - - - - -ocean - - -A derived data type to specify ocean boundary data - - - -ice - - -A derived data type to specify ice boundary data - - - -ocean_ice_boundary - - -A derived data type to specify properties and fluxes passed from ocean to ice - - - - - - - - - subroutine, public - subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_to_ice_finish - (Time, Ice, Ocean_Ice_Boundary) - flux_ocean_to_ice_finish - - Time - Time - - - Ice - Ice - - - Ocean_Ice_Boundary - Ocean_Ice_Boundary - - -flux_ocean_to_ice_finish carrries out a final set of tasks that should only occur on the slow-ice processors, including data override and perhaps saving diagnostics. - - - -time - - -Current time - - - -ice - - -A derived data type to specify ice boundary data - - - -ocean_ice_boundary - - -A derived data type to specify properties and fluxes passed from ocean to ice - - - - - - - - - subroutine, public - subroutine, public ice_ocean_flux_exchange_mod::flux_ice_to_ocean_stocks - (Ice) - flux_ice_to_ocean_stocks - - Ice - Ice - - -Updates Ice and Ocean stocks. - -Integrate the fluxes over the surface and in time. - -ice - - -A derived data type to specify ice boundary data - - - - - - - - - subroutine, public - subroutine, public ice_ocean_flux_exchange_mod::flux_ocean_from_ice_stocks - (ocean_state, Ocean, Ice_Ocean_boundary) - flux_ocean_from_ice_stocks - - ocean_state - ocean_state - - - Ocean - Ocean - - - Ice_Ocean_boundary - Ice_Ocean_boundary - - -Updates Ocean stocks due to input that the Ocean model gets. - -This subroutine updates the stocks of Ocean by the amount of input that the Ocean gets from Ice component. Unlike subroutine flux_ice_to_ocean_stocks() that uses Icefluxes to update the stocks due to the amount of output from Ice,this subroutine uses Ice_Ocean_boundaryfluxes to calculate the amount of input to the Ocean. These fluxes are the ones that Ocean model uses internally to calculate its budgets. Hence there should be no difference between this input and what Ocean model internal diagnostics uses. This bypasses the possible mismatch in cell areas between Ice and Ocean in diagnosing the stocks of Ocean and should report a conserving Ocean component regardless of the glitches in fluxes.The use of this subroutine in conjunction with subroutine flux_ice_to_ocean_stocks() will also allow to directly diagnose the amount "stocks lost in exchange" between Ice and Ocean - - - - - - subroutine - subroutine ice_ocean_flux_exchange_mod::flux_ice_to_ocean_redistribute - (ice, ocean, ice_data, ocn_bnd_data, type, do_area_weighted) - flux_ice_to_ocean_redistribute - - ice - ice - - - ocean - ocean - - - ice_data - ice_data - - - ocn_bnd_data - ocn_bnd_data - - - type - type - - - do_area_weighted - do_area_weighted - - -Performs a globally conservative flux redistribution across ICE/OCN. Assumes that the ice/ocn grids are the same. If ocean is present, then assume different mpp domans and redistribute. - -Should be invoked by all PEs - - - - - - - subroutine - subroutine ice_ocean_flux_exchange_mod::divide_by_area - (data, area) - divide_by_area - - data - data - - - area - area - - -Divide data by area while avoiding zero area elements. - - - - - - - - subroutine - subroutine ice_ocean_flux_exchange_mod::check_flux_conservation - (Ice, Ocean, Ice_Ocean_Boundary) - check_flux_conservation - - Ice - Ice - - - Ocean - Ocean - - - Ice_Ocean_Boundary - Ice_Ocean_Boundary - - -Check flux conservation for routine flux_ice_to_ocean_redistribute when do_area_weighted_flux = false and true. - - - - - - - - - - - - - - diff --git a/docs/xml/namespaceiso__fortran__env.xml b/docs/xml/namespaceiso__fortran__env.xml deleted file mode 100644 index 67c332cf..00000000 --- a/docs/xml/namespaceiso__fortran__env.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - iso_fortran_env - - - - - - - diff --git a/docs/xml/namespaceland__ice__flux__exchange__mod.xml b/docs/xml/namespaceland__ice__flux__exchange__mod.xml deleted file mode 100644 index 1ea775f8..00000000 --- a/docs/xml/namespaceland__ice__flux__exchange__mod.xml +++ /dev/null @@ -1,240 +0,0 @@ - - - - land_ice_flux_exchange_mod - - - type(fmsxgridxmap_type), save - type(fmsxgridxmap_type), save land_ice_flux_exchange_mod::xmap_runoff - - xmap_runoff - - - - - - - - - - integer - integer land_ice_flux_exchange_mod::n_xgrid_runoff - - n_xgrid_runoff - =0 - - - - - - - - - - integer - integer land_ice_flux_exchange_mod::x2_grid_lnd - - x2_grid_lnd - - - - - - - - - - integer - integer land_ice_flux_exchange_mod::x2_grid_ice - - x2_grid_ice - - - - - - - - - - integer - integer land_ice_flux_exchange_mod::cplclock - - cplclock - - - - - - - - - - integer - integer land_ice_flux_exchange_mod::fluxlandiceclock - - fluxlandiceclock - - - - - - - - - - logical - logical land_ice_flux_exchange_mod::do_runoff - - do_runoff - - - - - - - - - - real - real land_ice_flux_exchange_mod::dt_cpl - - dt_cpl - - - - - - - - - - - - subroutine, public - subroutine, public land_ice_flux_exchange_mod::land_ice_flux_exchange_init - (Land, Ice, land_ice_boundary, Dt_cpl_in, do_runoff_in, cplClock_in) - land_ice_flux_exchange_init - - Land - Land - - - Ice - Ice - - - land_ice_boundary - land_ice_boundary - - - Dt_cpl_in - Dt_cpl_in - - - do_runoff_in - do_runoff_in - - - cplClock_in - cplClock_in - - - - - - -land - - -A derived data type to specify land boundary data - - - -ice - - -A derived data type to specify ice boundary data - - - -land_ice_boundary - - -A derived data type to specify properties and fluxes passed from land to ice - - - - - - - - - subroutine, public - subroutine, public land_ice_flux_exchange_mod::flux_land_to_ice - (Time, Land, Ice, Land_Ice_Boundary) - flux_land_to_ice - - Time - Time - - - Land - Land - - - Ice - Ice - - - Land_Ice_Boundary - Land_Ice_Boundary - - -Conservative transfer of water and snow discharge from the land model to sea ice/ocean model. - -The following elements are transferred from the Land to the Land_ice_boundary: - discharge --> runoff (kg/m2) - discharge_snow --> calving (kg/m2) - - -time - - -Current time - - - -land - - -A derived data type to specify land boundary data - - - -ice - - -A derived data type to specify ice boundary data - - - -land_ice_boundary - - -A derived data type to specify properties and fluxes passed from land to ice - - - - - - - - - - - - - - - diff --git a/docs/xml/namespaceomp__lib.xml b/docs/xml/namespaceomp__lib.xml deleted file mode 100644 index 651331d5..00000000 --- a/docs/xml/namespaceomp__lib.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - omp_lib - - - - - - - diff --git a/docs/xml/namespacesurface__flux__mod.xml b/docs/xml/namespacesurface__flux__mod.xml deleted file mode 100644 index ef93be1c..00000000 --- a/docs/xml/namespacesurface__flux__mod.xml +++ /dev/null @@ -1,1451 +0,0 @@ - - - - surface_flux_mod - surface_flux_mod::surface_flux - - - character(len= *), parameter - character(len=*), parameter surface_flux_mod::version - - version - = '$Id$' - - - - - - - - - - character(len= *), parameter - character(len=*), parameter surface_flux_mod::tagname - - tagname - = '$Name$' - - - - - - - - - - logical - logical surface_flux_mod::module_is_initialized - - module_is_initialized - = .false. - - - - - - - - - - real, parameter - real, parameter surface_flux_mod::d622 - - d622 - = rdgas/rvgas - - - - - - - - - - real, parameter - real, parameter surface_flux_mod::d378 - - d378 - = 1.-d622 - - - - - - - - - - real, parameter - real, parameter surface_flux_mod::hlars - - hlars - = hlv/rvgas - - - - - - - - - - real, parameter - real, parameter surface_flux_mod::gcp - - gcp - = grav/cp_air - - - - - - - - - - real, parameter - real, parameter surface_flux_mod::kappa - - kappa - = rdgas/cp_air - - - - - - - - - - real - real surface_flux_mod::d608 - - d608 - = d378/d622 - - - - - - - - - - character(len=32) - character(len=32) surface_flux_mod::rough_scheme_ocean - - rough_scheme_ocean - -ocean roughness length scheme to be read from ocean_rough_nml - - - - - - - - logical - logical surface_flux_mod::no_neg_q - - no_neg_q - = .false. - -If a_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0.0. - - - - - - - - logical - logical surface_flux_mod::use_virtual_temp - - use_virtual_temp - = .true. - -If .TRUE., use virtual potential temp to calculate the stability of the surface layer. If .FALSE., use potential temp. - - - - - - - - logical - logical surface_flux_mod::alt_gustiness - - alt_gustiness - = .false. - -An alternaive formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations,with the bound equal to gust_const. - - - - - - - - logical - logical surface_flux_mod::old_dtaudv - - old_dtaudv - = .false. - -The derivative of surface wind stress with respect to the zonal wind and meridional wind are approximated by the same tendency. - - - - - - - - logical - logical surface_flux_mod::use_mixing_ratio - - use_mixing_ratio - = .false. - -An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). - - - - - - - - real - real surface_flux_mod::gust_const - - gust_const - = 1.0 - -Constant for alternative gustiness calculation. - - - - - - - - real - real surface_flux_mod::gust_min - - gust_min - = 0.0 - -Minimum gustiness used when alt_gustiness is .FALSE. - - - - - - - - logical - logical surface_flux_mod::ncar_ocean_flux - - ncar_ocean_flux - = .false. - -Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. - - - - - - - - logical - logical surface_flux_mod::ncar_ocean_flux_orig - - ncar_ocean_flux_orig - = .false. - -Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. - - - - - - - - logical - logical surface_flux_mod::ncar_ocean_flux_multilevel - - ncar_ocean_flux_multilevel - = .false. - -Use NCAR climate model turbulent flux calculation described by Large and Yeager, allows for different reference height for wind, temp and spec. hum. - - - - - - - - logical - logical surface_flux_mod::do_iter_monin_obukhov - - do_iter_monin_obukhov - = .false. - -If .TRUE, call monin obukhov funtcions a couple of times to update rough_mom, rough_heat, rough_moist, cd, ch, b_star, u_star. - - - - - - - - logical - logical surface_flux_mod::use_u10_neutral - - use_u10_neutral - = .false. - -If .TRUE., use 10m neutral wind rather than the standard 10m wind to obtain rough_mom, rough_heat, rough_moist. - - - - - - - - real - real surface_flux_mod::bulk_zu - - bulk_zu - = 10. - -Reference height for wind speed (meters) - - - - - - - - real - real surface_flux_mod::bulk_zt - - bulk_zt - = 10. - -Reference height for atm temperature (meters) - - - - - - - - real - real surface_flux_mod::bulk_zq - - bulk_zq - = 10. - -Reference height for atm humidity (meters) - - - - - - - - logical - logical surface_flux_mod::raoult_sat_vap - - raoult_sat_vap - = .false. - -Reduce saturation vapor pressure to account for seawater. - - - - - - - - logical - logical surface_flux_mod::do_simple - - do_simple - = .false. - - - - - - - - - - integer - integer surface_flux_mod::niter_monin_obukhov - - niter_monin_obukhov - = 5 - -iteration times to call iter_monin_obukhov_ocean. Typically 3-5 times should converge - - - - - - - - - - subroutine - subroutine surface_flux_mod::surface_flux_1d - (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) - surface_flux_1d - - t_atm - t_atm - Air temp lowest atmospheric level. - - - q_atm_in - q_atm_in - Mixing ratio at lowest atmospheric level (kg/kg). - - - u_atm - u_atm - Zonal wind velocity at lowest atmospheric level. - - - v_atm - v_atm - Meridional wind velocity at lowest atmospheric level. - - - p_atm - p_atm - Pressure lowest atmospheric level. - - - z_atm - z_atm - Height lowest atmospheric level. - - - p_surf - p_surf - Pressure at the Earth's surface - - - t_surf - t_surf - Temp at the Earth's surface - - - t_ca - t_ca - Air temp at the canopy - - - q_surf - q_surf - Mixing ratio at the Earth's surface (kg/kg) - - - u_surf - u_surf - Zonal wind velocity at the Earth's surface - - - v_surf - v_surf - Meridional wind velocity at the Earth's surface - - - rough_mom - rough_mom - Momentum roughness length - - - rough_heat - rough_heat - Heat roughness length - - - rough_moist - rough_moist - - - rough_scale - rough_scale - Scale factor used to topographic roughness calculation - - - gust - gust - - - flux_t - flux_t - Sensible heat flux - - - flux_q - flux_q - Evaporative water flux - - - flux_r - flux_r - Radiative energy flux - - - flux_u - flux_u - Zonal momentum flux - - - flux_v - flux_v - Meridional momentum flux - - - cd_m - cd_m - Momentum exchange coefficient - - - cd_t - cd_t - - - cd_q - cd_q - - - w_atm - w_atm - Absolute wind at the lowest atmospheric level - - - u_star - u_star - Turbulent velocity scale - - - b_star - b_star - Turbulent buoyant scale - - - q_star - q_star - Turbulent moisture scale - - - thv_atm - thv_atm - - - thv_surf - thv_surf - - - dhdt_surf - dhdt_surf - Sensible heat flux temperature sensitivity - - - dedt_surf - dedt_surf - Moisture flux temperature sensitivity - - - dedq_surf - dedq_surf - Moisture flux humidity sensitivity - - - drdt_surf - drdt_surf - Radiative energy flux temperature sensitivity - - - dhdt_atm - dhdt_atm - Derivative of sensible heat flux over temp at the lowest atmos level - - - dedq_atm - dedq_atm - Derivative of water vapor flux over temp at the lowest atmos level - - - dtaudu_atm - dtaudu_atm - Derivative of zonal wind stress with respect to the lowest level - - - dtaudv_atm - dtaudv_atm - Derivative of meridional wind stress with respect to the lowest - - - dt - dt - - - land - land - Indicates where land exists (.TRUE. if exchange cell is on land - - - seawater - seawater - Indicates where liquid ocean water exists - - - avail - avail - - - - - - -avail - - -.TRUE. where the exchange cell is active - - - -gust - - -Gustiness factor - - - -cd_q - - -Moisture exchange coefficient - - - -rough_moist - - -Moisture roughness length - - - -dt - - -Time step (it is not used presently) - - - - - - - - - subroutine - subroutine surface_flux_mod::surface_flux_0d - (t_atm_0, q_atm_0, u_atm_0, v_atm_0, p_atm_0, z_atm_0, p_surf_0, t_surf_0, t_ca_0, q_surf_0, u_surf_0, v_surf_0, rough_mom_0, rough_heat_0, rough_moist_0, rough_scale_0, gust_0, flux_t_0, flux_q_0, flux_r_0, flux_u_0, flux_v_0, cd_m_0, cd_t_0, cd_q_0, w_atm_0, u_star_0, b_star_0, q_star_0, thv_atm_0, thv_surf_0, dhdt_surf_0, dedt_surf_0, dedq_surf_0, drdt_surf_0, dhdt_atm_0, dedq_atm_0, dtaudu_atm_0, dtaudv_atm_0, dt, land_0, seawater_0, avail_0) - surface_flux_0d - - t_atm_0 - t_atm_0 - Air temp lowest atmospheric level. - - - q_atm_0 - q_atm_0 - Mixing ratio at lowest atmospheric level (kg/kg). - - - u_atm_0 - u_atm_0 - Zonal wind velocity at lowest atmospheric level. - - - v_atm_0 - v_atm_0 - Meridional wind velocity at lowest atmospheric level. - - - p_atm_0 - p_atm_0 - Pressure lowest atmospheric level. - - - z_atm_0 - z_atm_0 - Height lowest atmospheric level. - - - p_surf_0 - p_surf_0 - Pressure at the Earth's surface - - - t_surf_0 - t_surf_0 - Temp at the Earth's surface - - - t_ca_0 - t_ca_0 - Air temp at the canopy - - - q_surf_0 - q_surf_0 - - - u_surf_0 - u_surf_0 - Zonal wind velocity at the Earth's surface - - - v_surf_0 - v_surf_0 - Meridional wind velocity at the Earth's surface - - - rough_mom_0 - rough_mom_0 - Momentum roughness length - - - rough_heat_0 - rough_heat_0 - Heat roughness length - - - rough_moist_0 - rough_moist_0 - Moisture roughness length - - - rough_scale_0 - rough_scale_0 - Scale factor used to topographic roughness calculation - - - gust_0 - gust_0 - - - flux_t_0 - flux_t_0 - Sensible heat flux - - - flux_q_0 - flux_q_0 - Evaporative water flux - - - flux_r_0 - flux_r_0 - Radiative energy flux - - - flux_u_0 - flux_u_0 - Zonal momentum flux - - - flux_v_0 - flux_v_0 - Meridional momentum flux - - - cd_m_0 - cd_m_0 - Momentum exchange coefficient - - - cd_t_0 - cd_t_0 - - - cd_q_0 - cd_q_0 - - - w_atm_0 - w_atm_0 - Absolute wind at the lowest atmospheric level - - - u_star_0 - u_star_0 - Turbulent velocity scale - - - b_star_0 - b_star_0 - Turbulent buoyant scale - - - q_star_0 - q_star_0 - Turbulent moisture scale - - - thv_atm_0 - thv_atm_0 - - - thv_surf_0 - thv_surf_0 - - - dhdt_surf_0 - dhdt_surf_0 - Sensible heat flux temperature sensitivity - - - dedt_surf_0 - dedt_surf_0 - Moisture flux temperature sensitivity - - - dedq_surf_0 - dedq_surf_0 - Moisture flux humidity sensitivity - - - drdt_surf_0 - drdt_surf_0 - Radiative energy flux temperature sensitivity - - - dhdt_atm_0 - dhdt_atm_0 - Derivative of sensible heat flux over temp at the lowest atmos level - - - dedq_atm_0 - dedq_atm_0 - Derivative of water vapor flux over temp at the lowest atmos level - - - dtaudu_atm_0 - dtaudu_atm_0 - Derivative of zonal wind stress with respect to the lowest level zonal wind - - - dtaudv_atm_0 - dtaudv_atm_0 - Derivative of meridional wind stress with respect to the lowest level - - - dt - dt - - - land_0 - land_0 - Indicates where land exists (.TRUE. if exchange cell is on land - - - seawater_0 - seawater_0 - Indicates where liquid ocean water exists - - - avail_0 - avail_0 - - - - - - -avail_0 - - -.TRUE. where the exchange cell is active - - - -gust_0 - - -Gustiness factor - - - -cd_q_0 - - -Moisture exchange coefficient - - - -q_surf_0 - - -Mixing ratio at the Earth's surface (kg/kg) - - - -dt - - -Time step (it is not used presently) - - - - - - - - - subroutine - subroutine surface_flux_mod::surface_flux_2d - (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) - surface_flux_2d - - t_atm - t_atm - Air temp lowest atmospheric level. - - - q_atm_in - q_atm_in - Mixing ratio at lowest atmospheric level (kg/kg). - - - u_atm - u_atm - Zonal wind velocity at lowest atmospheric level. - - - v_atm - v_atm - Meridional wind velocity at lowest atmospheric level. - - - p_atm - p_atm - Pressure lowest atmospheric level. - - - z_atm - z_atm - Height lowest atmospheric level. - - - p_surf - p_surf - Pressure at the Earth's surface - - - t_surf - t_surf - Temp at the Earth's surface - - - t_ca - t_ca - Air temp at the canopy - - - q_surf - q_surf - Mixing ratio at the Earth's surface (kg/kg) - - - u_surf - u_surf - Zonal wind velocity at the Earth's surface - - - v_surf - v_surf - Meridional wind velocity at the Earth's surface - - - rough_mom - rough_mom - Momentum roughness length - - - rough_heat - rough_heat - Heat roughness length - - - rough_moist - rough_moist - - - rough_scale - rough_scale - Scale factor used to topographic roughness calculation - - - gust - gust - - - flux_t - flux_t - Sensible heat flux - - - flux_q - flux_q - Evaporative water flux - - - flux_r - flux_r - Radiative energy flux - - - flux_u - flux_u - Zonal momentum flux - - - flux_v - flux_v - Meridional momentum flux - - - cd_m - cd_m - Momentum exchange coefficient - - - cd_t - cd_t - - - cd_q - cd_q - - - w_atm - w_atm - Absolute wind at the lowest atmospheric level - - - u_star - u_star - Turbulent velocity scale - - - b_star - b_star - Turbulent buoyant scale - - - q_star - q_star - Turbulent moisture scale - - - thv_atm - thv_atm - - - thv_surf - thv_surf - - - dhdt_surf - dhdt_surf - Sensible heat flux temperature sensitivity - - - dedt_surf - dedt_surf - Moisture flux temperature sensitivity - - - dedq_surf - dedq_surf - Moisture flux humidity sensitivity - - - drdt_surf - drdt_surf - Radiative energy flux temperature sensitivity - - - dhdt_atm - dhdt_atm - Derivative of sensible heat flux over temp at the lowest - - - dedq_atm - dedq_atm - Derivative of water vapor flux over temp at the lowest atmos level - - - dtaudu_atm - dtaudu_atm - Derivative of zonal wind stress with respect to the lowest level - - - dtaudv_atm - dtaudv_atm - Derivative of meridional wind stress with respect to the lowest - - - dt - dt - - - land - land - Indicates where land exists (.TRUE. if exchange cell is on land - - - seawater - seawater - Indicates where liquid ocean water exists - - - avail - avail - - - - - - -avail - - -.TRUE. where the exchange cell is active - - - -gust - - -Gustiness factor - - - -cd_q - - -Moisture exchange coefficient - - - -rough_moist - - -Moisture roughness length - - - -dt - - -Time step (it is not used presently) - - - - - - - - - subroutine, public - subroutine, public surface_flux_mod::surface_flux_init - - surface_flux_init - -Initialization of the surface flux modulereads the nml. - - - - - - - - subroutine - subroutine surface_flux_mod::ncar_ocean_fluxes - (u_del, t, ts, q, qs, z, avail, cd, ch, ce, ustar, bstar) - ncar_ocean_fluxes - - u_del - u_del - - - t - t - - - ts - ts - - - q - q - - - qs - qs - - - z - z - - - avail - avail - - - cd - cd - - - ch - ch - - - ce - ce - - - ustar - ustar - - - bstar - bstar - - -Over-ocean fluxes following Large and Yeager (used in NCAR models) ! - -Original code: GFDL.Climate.Model.Info@noaa.gov <br > Update Jul2007: GFDL.Climate.Model.Info@noaa.gov (ch and ce exchange coeff bugfix) - - - - - - subroutine - subroutine surface_flux_mod::ncar_ocean_fluxes_multilevel - (u_del, t, ts, q, qs, zu, zt, zq, avail, cd, ch, ce, ustar, bstar) - ncar_ocean_fluxes_multilevel - - u_del - u_del - - - t - t - - - ts - ts - - - q - q - - - qs - qs - - - zu - zu - - - zt - zt - - - zq - zq - - - avail - avail - - - cd - cd - - - ch - ch - - - ce - ce - - - ustar - ustar - - - bstar - bstar - - -Over-ocean fluxes following Large and Yeager (used in NCAR models) ! - -Original code: Multi-level capable LY2004, R. Dussin 2020 <br > - - - - - - subroutine - subroutine surface_flux_mod::iter_monin_obukhov_ocean - (z_atm, u_atm, v_atm, w_atm, thv_atm, q_atm, u_surf, v_surf, thv_surf, q_surf0, rough_mom, rough_heat, rough_moist, cd_m, cd_t, cd_q, u_star, b_star, avail, seawater) - iter_monin_obukhov_ocean - - z_atm - z_atm - Height at the lowest atmospheric level - - - u_atm - u_atm - Zonal wind velocity at the lowest atmospheric level - - - v_atm - v_atm - Meridional wind velocity at the lowest atmospheric level - - - w_atm - w_atm - Absolute wind at the lowest atmospheric level - - - thv_atm - thv_atm - Surface air theta_v - - - q_atm - q_atm - Mixing ratio at lowest atmospheric level (kg/kg) - - - u_surf - u_surf - Zonal wind velocity at the Earth's surface - - - v_surf - v_surf - Meridional wind velocity at the Earth's surface - - - thv_surf - thv_surf - Surface theta_v - - - q_surf0 - q_surf0 - - - rough_mom - rough_mom - Momentum roughness length - - - rough_heat - rough_heat - Heat roughness length - - - rough_moist - rough_moist - Moisture roughness length - - - cd_m - cd_m - Momentum exchange coefficient - - - cd_t - cd_t - Heat exchange coefficient - - - cd_q - cd_q - Moisture exchange coefficient - - - u_star - u_star - Turbulent velocity scale - - - b_star - b_star - - - avail - avail - .TRUE. where the exchange cell is active - - - seawater - seawater - - -Update air-sea flux variables to be consistent with the concurrent atmospheric states. - -Right now, it is only effective when ocean_rough = 'hwrf17', but this can be expanded if necessarily to incorporate other roughness schemies contact: Kun.Gao@noaa.gov; Baoqiang.Xiang@noaa.gov - - -q_surf0 - - -Surface air humidity - - - -b_star - - -Turbulent buoyant scale - - - -seawater - - -Indicates where liquid ocean water exists (.TRUE. if exchange cell is on liquid ocean water) - - - - - - - - - -Module for the calculation of fluxes on the exchange grids. - - - - - diff --git a/docs/xml/simple_2coupler__main_8_f90.xml b/docs/xml/simple_2coupler__main_8_f90.xml deleted file mode 100644 index aec76008..00000000 --- a/docs/xml/simple_2coupler__main_8_f90.xml +++ /dev/null @@ -1,672 +0,0 @@ - - - - coupler_main.F90 - - - program - program coupler_main - - coupler_main - - - - - - - - - - subroutine - subroutine coupler_main::coupler_init - - coupler_init - -reads namelist and restart files, initializes all defined exchange grids and all boundary maps - - - - - - - - subroutine - subroutine coupler_main::coupler_end - - coupler_end - -Finalizes a run and writes restart files. - - - - - - - - subroutine - subroutine coupler_main::coupler_chksum - (id, timestep) - coupler_chksum - - id - id - - - timestep - timestep - - -Print out checksums for several atm, land and ice variables. - - - - - - - - -Couples component models for the atmosphere, ocean (amip), land, and sea-ice using the exchange module. Simplified version of full/coupler_main.F90 - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -programcoupler_main - -!----------------------------------------------------------------------- -! -! -!----------------------------------------------------------------------- - -!---F90moduleforOpenMP -useomp_lib - -!---modelcomponentmodules -useatmos_model_mod,only:atmos_model_init,atmos_model_end,& -update_atmos_model_dynamics,& -update_atmos_model_radiation,& -update_atmos_model_down,& -update_atmos_model_up,& -update_atmos_model_state,& -atmos_data_type,& -land_ice_atmos_boundary_type - -useland_model_mod,only:land_model_init,land_model_end,& -update_land_model_fast,& -update_land_model_slow,& -land_data_type,& -atmos_land_boundary_type - -useice_model_mod,only:ice_model_init,ice_model_end,& -update_ice_model_fast,& -update_ice_model_slow,& -ice_data_type,& -atmos_ice_boundary_type -!land_ice_boundary_type - -useflux_exchange_mod,only:flux_exchange_init,& -sfc_boundary_layer,& -flux_down_from_atmos,& -flux_up_to_atmos!,& -!flux_exchange_end!maynotbeused? -!---FMSmodules -usefms -usefmsconstants,only:fmsconstants_init - -!---FMSoldio -#ifdefuse_deprecated_io -usefms_io_mod,only:fms_io_exit!<thiscan'tberemoveduntilfms_ioisnotusedatall -#endif - -implicitnone - -!----------------------------------------------------------------------- - -character(len=128)::version='unknown' -character(len=128)::tag='fmscoupler_simple' - -!----------------------------------------------------------------------- -!----modeldefined-types---- - -type(atmos_data_type)::Atm -type(land_data_type)::Land -type(ice_data_type)::Ice - -type(atmos_land_boundary_type)::Atmos_land_boundary -type(atmos_ice_boundary_type)::Atmos_ice_boundary -type(land_ice_atmos_boundary_type)::Land_ice_atmos_boundary - -!----------------------------------------------------------------------- -!----storageforfluxes---- - -real,allocatable,dimension(:,:)::& -t_surf_atm,albedo_atm,land_frac_atm,dt_t_atm,dt_q_atm,& -flux_u_atm,flux_v_atm,dtaudv_atm,u_star_atm,b_star_atm,& -rough_mom_atm - -!----------------------------------------------------------------------- -!-----coupledmodeltime----- - -type(FmsTime_type)::Time_atmos,Time_init,Time_end,& -Time_step_atmos,Time_step_ocean -integer::num_cpld_calls,num_atmos_calls,nc,na - -!-----coupledmodelinitialdate----- - -integer::date_init(6) -integer::calendar_type=-99 - -!-----timingflags----- - -integer::initClock,mainClock,termClock -integer,parameter::timing_level=1 - -!----------------------------------------------------------------------- - -integer,dimension(6)::current_date=(/0,0,0,0,0,0/)!<Thedatethatthecurrentintegrationstarts -!!with.(Seeforce_date_from_namelist.) -character(len=17)::calendar=''!<Thecalendartypeusedbythecurrentintegration. -!!Validvaluesareconsistentwiththetime_managermodule: -!!'gregorian','julian','noleap',or'thirty_day'. -!!Thevalue'no_calendar'cannotbeusedbecausethe -!!time_manager'sdatefunctionsareused. -!!Allvaluesmustbelowercase. -logical::force_date_from_namelist=.false. -integer::months=0 -integer::days=0 -integer::hours=0 -integer::minutes=0 -integer::seconds=0 -integer::dt_atmos=0 -integer::dt_ocean=0 -integer::atmos_nthreads=1 - -logical::do_chksum=.false. -logical::do_land=.false. -logical::use_hyper_thread=.false. - -namelist/coupler_nml/current_date,calendar,force_date_from_namelist,& -months,days,hours,minutes,seconds,& -dt_atmos,dt_ocean,atmos_nthreads,& -do_chksum,do_land,use_hyper_thread - -!####################################################################### - -callfms_init() -callfms_mpp_init() -initclock=fms_mpp_clock_id('Initialization') -mainclock=fms_mpp_clock_id('Mainloop') -termclock=fms_mpp_clock_id('Termination') -callfms_mpp_clock_begin(initclock) - -callfms_init -callfmsconstants_init -callfms_affinity_init -callfms_gex_init - -callcoupler_init -if(do_chksum)callcoupler_chksum('coupler_init+',0) - -callfms_mpp_clock_end(initclock)!endinitialization -callfms_mpp_clock_begin(mainclock)!beginmainloop - - -!------ocean/slow-iceintegrationloop------ -donc=1,num_cpld_calls -if(do_chksum)callcoupler_chksum('top_of_coupled_loop+',nc) - -!------atmos/fast-land/fast-iceintegrationloop------- -dona=1,num_atmos_calls -if(do_chksum)callcoupler_chksum('top_of_atm_loop+',na) - -time_atmos=time_atmos+time_step_atmos - -callsfc_boundary_layer(real(dt_atmos),Time_atmos,Atm,Land,Ice,& -Land_ice_atmos_boundary) -if(do_chksum)callcoupler_chksum('sfc+',na) - -!---atmosphericdynamicalcore -callupdate_atmos_model_dynamics(atm) -if(do_chksum)callcoupler_chksum('model_dynamics+',na) - -!---atmosphericradiation -callupdate_atmos_model_radiation(land_ice_atmos_boundary,atm) -if(do_chksum)callcoupler_chksum('update_radiation+',na) - -!---atmosphericphyiscalparameterizations-downphase -callupdate_atmos_model_down(land_ice_atmos_boundary,atm) -if(do_chksum)callcoupler_chksum('atmos_model_down+',nc) - -!---exchangefluxesdownfromatmospheretosurface -callflux_down_from_atmos(time_atmos,atm,land,ice,& -land_ice_atmos_boundary,& -atmos_land_boundary,& -atmos_ice_boundary) -if(do_chksum)callcoupler_chksum('flux_down+',nc) - -!---fastphaseland -if(do_land)then -callupdate_land_model_fast(atmos_land_boundary,land) -if(do_chksum)callcoupler_chksum('update_land+',na) -endif - -!---fastphaseice -callupdate_ice_model_fast(atmos_ice_boundary,ice) -if(do_chksum)callcoupler_chksum('update_ice+',na) - -!---exchangefluxesupfromsurfacetoatmosphere -callflux_up_to_atmos(time_atmos,land,ice,land_ice_atmos_boundary) -if(do_chksum)callcoupler_chksum('flux_up+',na) - -!---atmosphericphyiscalparameterizations-upphase -callupdate_atmos_model_up(land_ice_atmos_boundary,atm) -if(do_chksum)callcoupler_chksum('update_atmos_model_up+',na) - -!---updateatmosphericstate -callupdate_atmos_model_state(atm) -if(do_chksum)callcoupler_chksum('update_model_state+',na) - -enddo - -!---slowphaseland -if(do_land)then -callupdate_land_model_slow(atmos_land_boundary,land) -if(do_chksum)callcoupler_chksum('land_slow_diag+',nc) -endif - -!needfluxcalltoputrunoffandp_surfonicegrid -!callflux_land_to_ice(Time_atmos,Land,Ice,Land_ice_boundary) - -!---slowphaseiceandproscribedoceanstate -callupdate_ice_model_slow(atmos_ice_boundary,ice) -if(do_chksum)callcoupler_chksum('ice_model_slow+',nc) - -enddo - -!----------------------------------------------------------------------- - -callfms_mpp_clock_end(mainclock) -callfms_mpp_clock_begin(termclock) - -callcoupler_end -callfms_mpp_clock_end(termclock) - -callfms_end - -!----------------------------------------------------------------------- - -contains - -!####################################################################### - -subroutinecoupler_init - -integer::total_days,total_seconds,ierr,io -integer::n,gnlon,gnlat -integer::date(6),flags -type(fmstime_type)::run_length -character(len=9)::month -logical::use_namelist - -character(len=:),dimension(:),allocatable::restart_file -integer::time_stamp_unit -integer::ascii_unit - -logical,allocatable,dimension(:,:)::mask -real,allocatable,dimension(:,:)::glon_bnd,glat_bnd -!----------------------------------------------------------------------- -!-----initializationtimingidentifiers---- - -!-----readnamelist------- -!-----forbackwardscompatibiltyreadfromfilecoupler.nml----- - -read(fms_mpp_input_nml_file,nml=coupler_nml,iostat=io) -ierr=fms_check_nml_error(io,'coupler_nml') - -!-----writenamelisttologfile----- - -callfms_write_version_number(version,tag) -if(fms_mpp_pe()==fms_mpp_root_pe())write(fms_mpp_stdlog(),nml=coupler_nml) - -!-----allocateandsetthepelist(totheglobalpelist)----- -allocate(atm%pelist(fms_mpp_npes())) -callfms_mpp_get_current_pelist(atm%pelist) - -!-----readrestartfile----- - -if(fms2_io_file_exists('INPUT/coupler.res'))then -callfms2_io_ascii_read('INPUT/coupler.res',restart_file) -read(restart_file(1),*)calendar_type -read(restart_file(2),*)date_init -read(restart_file(3),*)date -deallocate(restart_file) -else -force_date_from_namelist=.true. -endif - -!-----usenamelistvalue(eithernorestartoroverrideflagon)--- - -if(force_date_from_namelist)then - -if(sum(current_date)<=0)then -callfms_error_mesg('programcoupler',& -'nonamelistvalueforcurrent_date',fatal) -else -date=current_date -endif - -!-----overridecalendartypewithnamelistvalue----- - -selectcase(fms_mpp_uppercase(trim(calendar))) -case('GREGORIAN') -calendar_type=gregorian -case('JULIAN') -calendar_type=julian -case('NOLEAP') -calendar_type=noleap -case('THIRTY_DAY') -calendar_type=thirty_day_months -case('NO_CALENDAR') -calendar_type=no_calendar -casedefault -callfms_mpp_error(fatal,'COUPLER_MAIN:coupler_nmlentrycalendarmust'//& -'beoneofGREGORIAN|JULIAN|NOLEAP|THIRTY_DAY|NO_CALENDAR.') -endselect - -endif - -callfms_time_manager_set_calendar_type(calendar_type) - -!-----writecurrent/initialdateactuallyusedtologfilefile----- - -if(fms_mpp_pe()==fms_mpp_root_pe())then -write(fms_mpp_stdlog(),16)date(1),trim(fms_time_manager_month_name(date(2))),date(3:6) -endif - -16format('currentdateused=',i4,1x,a,2i3,2(':',i2.2),'gmt') - -!---settingaffinity -!$callfms_affinity_set('ATMOS',use_hyper_thread,atmos_nthreads) -!$callomp_set_num_threads(atmos_nthreads) - -!----------------------------------------------------------------------- -!------initializediagnosticsmanager------ - -callfms_diag_init - -!-----alwaysoverrideinitial/basedatewithdiag_managervalue----- - -callfms_diag_get_base_date(date_init(1),date_init(2),date_init(3),& -date_init(4),date_init(5),date_init(6)) - -!-----usecurrentdateifnobasedate------ - -if(date_init(1)==0)date_init=date - -!-----setinitialandcurrenttimetypes------ - -time_init=fms_time_manager_set_date(date_init(1),date_init(2),date_init(3),& -date_init(4),date_init(5),date_init(6)) - -time_atmos=fms_time_manager_set_date(date(1),date(2),date(3),& -date(4),date(5),date(6)) - -!----------------------------------------------------------------------- -!-----computetheendingtime(computedaysineachmonthfirst)----- -! -!(NOTE:ifrunlengthinmonthsthenstartingdaymustbe<=28) - -if(months>0.and.date(3)>28)& -callfms_error_mesg('programcoupler',& -'ifrunlengthinmonthsthenstartingdaymustbe<=28',fatal) - -time_end=time_atmos -total_days=0 -don=1,months -total_days=total_days+fms_time_manager_days_in_month(time_end) -time_end=time_atmos+fms_time_manager_set_time(0,total_days) -enddo - -total_days=total_days+days -total_seconds=hours*3600+minutes*60+seconds -run_length=fms_time_manager_set_time(total_seconds,total_days) -time_end=time_atmos+run_length - -!NeedtopassTime_endintodiag_managerformultiplethreadcase. -callfms_diag_set_time_end(time_end) - - -!----------------------------------------------------------------------- -!-----writetimestamps(forstarttimeandendtime)------ -if(fms_mpp_pe().EQ.fms_mpp_root_pe())& -open(newunit=time_stamp_unit,file='time_stamp.out',status='replace',form='formatted') - -month=fms_time_manager_month_name(date(2)) -if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) - -callfms_time_manager_get_date(time_end,date(1),date(2),date(3),& -date(4),date(5),date(6)) -month=fms_time_manager_month_name(date(2)) -if(fms_mpp_pe()==fms_mpp_root_pe())write(time_stamp_unit,20)date,month(1:3) - -if(fms_mpp_pe().EQ.fms_mpp_root_pe())close(time_stamp_unit) - -20format(6i4,2x,a3) - -!----------------------------------------------------------------------- -!-----computethetimesteps------ - -time_step_atmos=fms_time_manager_set_time(dt_atmos,0) -time_step_ocean=fms_time_manager_set_time(dt_ocean,0) -num_cpld_calls=run_length/time_step_ocean -num_atmos_calls=time_step_ocean/time_step_atmos - -!----------------------------------------------------------------------- -!-------------------someerrorchecks--------------------------------- - -!-----initialtimecannotbegreaterthancurrenttime------- - -if(time_init>time_atmos)callfms_error_mesg('programcoupler',& -'initialtimeisgreaterthancurrenttime',fatal) - -!-----makesurerunlengthisamultipleofoceantimestep------ - -if(num_cpld_calls*time_step_ocean/=run_length)& -callfms_error_mesg('programcoupler',& -'runlengthmustbemultipleofoceantimestep',fatal) - -!----makesurecpldtimestepisamultipleofatmostimestep---- - -if(num_atmos_calls*time_step_atmos/=time_step_ocean)& -callfms_error_mesg('programcoupler',& -'atmostimestepisnotamultipleoftheoceantimestep',fatal) - - -!------initializecomponentmodels------ - -callatmos_model_init(atm,time_init,time_atmos,time_step_atmos,& -.false.)!do_concurrent_radiation - -callfms_mpp_domains_get_global_domain(atm%Domain,xsize=gnlon,ysize=gnlat) -allocate(glon_bnd(gnlon+1,gnlat+1),glat_bnd(gnlon+1,gnlat+1)) -callfms_mpp_domains_set_domain_symmetry(atm%Domain,.true.) -callfms_mpp_domains_global_field(atm%Domain,atm%lon_bnd,glon_bnd,position=corner) -callfms_mpp_domains_global_field(atm%Domain,atm%lat_bnd,glat_bnd,position=corner) -callfms_mpp_domains_set_domain_symmetry(atm%Domain,.false.) - -callland_model_init(atmos_land_boundary,land,& -time_init,time_atmos,time_step_atmos,time_step_ocean,& -#ifdefLAND_LAD -glon_bnd,glat_bnd,atmos_domain=atm%Domain) -#else -glon_bnd,glat_bnd,domain_in=atm%Domain) -#endif -callice_model_init(ice,time_init,time_atmos,time_step_atmos,time_step_ocean,& -glon_bnd,glat_bnd,atmos_domain=atm%Domain) - -!------initializedata_override----- -callfms_data_override_init(atm_domain_in=atm%domain) -callfms_data_override_init(ice_domain_in=ice%domain) -callfms_data_override_init(land_domain_in=land%domain) - -!------------------------------------------------------------------------ -!----setupallocatablestorageforfluxesexchangedbetweenmodels---- -!----uselocalgrids----- - -callflux_exchange_init(time_atmos,atm,land,ice,& -!!!!!atmos_land_boundary,& -atmos_ice_boundary,& -land_ice_atmos_boundary) - -!----------------------------------------------------------------------- -!----openandclosedummyfileinrestartdirtocheckifdirexists-- -if(fms_mpp_pe().EQ.fms_mpp_root_pe())then -open(newunit=ascii_unit,file='RESTART/file',status='replace',form='formatted') -close(ascii_unit,status="delete") -endif - -!----------------------------------------------------------------------- - -endsubroutinecoupler_init - -!####################################################################### -subroutinecoupler_end - -integer::date(6) -integer::restart_unit -!----------------------------------------------------------------------- - -!-----computecurrentdate------ - -callfms_time_manager_get_date(time_atmos,date(1),date(2),date(3),& -date(4),date(5),date(6)) - -!-----checktimeversusexpectedendingtime---- - -if(time_atmos/=time_end)callfms_error_mesg('programcoupler',& -'finaltimedoesnotmatchexpectedendingtime',warning) - -!-----writerestartfile------ - -if(fms_mpp_pe()==fms_mpp_root_pe())then -open(newunit=restart_unit,file='RESTART/coupler.res',status='replace',form='formatted') -write(restart_unit,'(i6,8x,a)')calendar_type,& -'(Calendar:no_calendar=0,thirty_day_months=1,julian=2,gregorian=3,noleap=4)' - -write(restart_unit,'(6i6,8x,a)')date_init,& -'Modelstarttime:year,month,day,hour,minute,second' -write(restart_unit,'(6i6,8x,a)')date,& -'Currentmodeltime:year,month,day,hour,minute,second' -close(restart_unit) -endif - - -!-----finalizemodelcomponents,andoutputofdiagnosticfields---- -callatmos_model_end(atm) -callland_model_end(atmos_land_boundary,land) -callice_model_end(ice) - -callfms_diag_end(time_atmos) -#ifdefuse_deprecated_io -callfms_io_exit -#endif - -!callflux_exchange_end(Atm) - - -!----------------------------------------------------------------------- - -endsubroutinecoupler_end - -subroutinecoupler_chksum(id,timestep) - -character(len=*),intent(in)::id -integer,intent(in)::timestep - -type::tracer_ind_type -integer::atm,ice,lnd!indicesofthetracerintherespectivemodels -endtypetracer_ind_type -integer::n_atm_tr,n_lnd_tr,n_exch_tr -integer::n_atm_tr_tot,n_lnd_tr_tot -integer::i,tr,n,m,outunit -type(tracer_ind_type),allocatable::tr_table(:) -character(32)::tr_name - -callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,& -num_prog=n_atm_tr) -callfms_tracer_manager_get_number_tracers(model_land,num_tracers=n_lnd_tr_tot,& -num_prog=n_lnd_tr) - -!Assemblethetableoftracernumbertranslationbymatchingnamesof -!prognostictracersintheatmosphereandsurfacemodels;skipallatmos. -!tracersthathavenocorrespondingsurfacetracers. -allocate(tr_table(n_atm_tr)) -n=1 -doi=1,n_atm_tr -callfms_tracer_manager_get_tracer_names(model_atmos,i,tr_name) -tr_table(n)%atm=i -tr_table(n)%ice=fms_tracer_manager_get_tracer_index(model_ice,tr_name) -tr_table(n)%lnd=fms_tracer_manager_get_tracer_index(model_land,tr_name) -if(tr_table(n)%ice/=no_tracer.or.tr_table(n)%lnd/=no_tracer)n=n+1 -enddo -n_exch_tr=n-1 - -100FORMAT("CHECKSUM::",a32,"=",z20) -101FORMAT("CHECKSUM::",a16,a,'%',a,"=",z20) - - -outunit=fms_mpp_stdout() -write(outunit,*)'BEGINCHECKSUM(Atm)::',id,timestep -write(outunit,100)'atm%t_bot',fms_mpp_chksum(atm%t_bot) -write(outunit,100)'atm%z_bot',fms_mpp_chksum(atm%z_bot) -write(outunit,100)'atm%p_bot',fms_mpp_chksum(atm%p_bot) -write(outunit,100)'atm%u_bot',fms_mpp_chksum(atm%u_bot) -write(outunit,100)'atm%v_bot',fms_mpp_chksum(atm%v_bot) -write(outunit,100)'atm%p_surf',fms_mpp_chksum(atm%p_surf) -write(outunit,100)'atm%gust',fms_mpp_chksum(atm%gust) -dotr=1,n_exch_tr -n=tr_table(tr)%atm -if(n/=no_tracer)then -callfms_tracer_manager_get_tracer_names(model_atmos,tr_table(tr)%atm,tr_name) -write(outunit,100)'atm%'//trim(tr_name),fms_mpp_chksum(atm%tr_bot(:,:,n)) -endif -enddo - -write(outunit,100)'ice%t_surf',fms_mpp_chksum(ice%t_surf) -write(outunit,100)'ice%rough_mom',fms_mpp_chksum(ice%rough_mom) -write(outunit,100)'ice%rough_heat',fms_mpp_chksum(ice%rough_heat) -write(outunit,100)'ice%rough_moist',fms_mpp_chksum(ice%rough_moist) -write(outunit,*)'STOPCHECKSUM(Atm)::',id,timestep - -deallocate(tr_table) - - -endsubroutinecoupler_chksum - - - -!####################################################################### - -endprogramcoupler_main - - - - - diff --git a/docs/xml/simple_2flux__exchange_8_f90.xml b/docs/xml/simple_2flux__exchange_8_f90.xml deleted file mode 100644 index 8c72aa61..00000000 --- a/docs/xml/simple_2flux__exchange_8_f90.xml +++ /dev/null @@ -1,1240 +0,0 @@ - - - - flux_exchange.F90 - flux_exchange_mod - -Routines to handle flux exchanges through exchange grids for the simple coupler. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** -moduleflux_exchange_mod - -!----------------------------------------------------------------------- -!!Components -useatmos_model_mod,only:atmos_data_type,land_ice_atmos_boundary_type -useland_model_mod,only:land_data_type,atmos_land_boundary_type -useice_model_mod,only:ice_data_type,atmos_ice_boundary_type -#ifndefuse_AM3_physics -useatmos_cmip_diag_mod,only:register_cmip_diag_field_2d -#endif -usesurface_flux_mod,only:surface_flux,surface_flux_init - -!!FMS -usefms -usefmsconstants,only:rdgas,rvgas,cp_air,hlv,hlf,pi - -implicitnone -private - -public::flux_exchange_init,& -sfc_boundary_layer,& -flux_down_from_atmos,& -flux_up_to_atmos,& -flux_exchange_end - -!----------------------------------------------------------------------- -character(len=128)::version='$Id$' -character(len=128)::tag='$Name$' - -!----------------------------------------------------------------------- -!--------namelist(fordiagnostics)------ - -character(len=14),parameter::mod_name='flux' - -integer::id_drag_moist,id_drag_heat,id_drag_mom,& -id_rough_moist,id_rough_heat,id_rough_mom,& -id_u_star,id_b_star,id_q_star,id_u_flux,id_v_flux,& -id_t_surf,id_t_flux,id_q_flux,id_r_flux,& -id_t_atm,id_u_atm,id_v_atm,id_wind,& -id_thv_atm,id_thv_surf,& -id_t_ref,id_rh_ref,id_u_ref,id_v_ref,id_q_ref,& -id_del_h,id_del_m,id_del_q,id_albedo,id_gust,& -id_t_ca,id_q_surf,id_q_atm,id_z_atm,id_p_atm,& -id_land_mask,id_ice_mask,id_rough_scale,& -id_albedo_vis_dir,id_albedo_nir_dir,& -id_albedo_vis_dif,id_albedo_nir_dif - -!t_ref(tas),u_ref,v_ref,t_surf,id_wind(check) -!v_flux(windstress?check) -!q_ref(huss),t_flux(hfss) - -!Atm%slpcanbesavedaspsl - -!probablydon'tneedid_tos,id_tslsibutcheckdatarequest - -!lgsid'sforcmipspecificfieldsforaquaplanet -integer::id_tas,id_uas,id_vas,id_ts,id_psl,& -id_sfcWind,id_tauu,id_tauv,& -id_hurs,id_huss,id_evspsbl,id_hfls,id_hfss,& -!id_sftlf,id_tos,id_tslsi,id_sic,& -id_height2m,id_height10m - -logical::first_static=.true. -logical::do_init=.true. -logical::do_read_nml=.true. - -!indexintracerarrayforwatervapor -integer::isphum,n_atm_tr_tot,n_atm_tr - -!----------------------------------------------------------------------- - -real::z_ref_heat=2.,& -z_ref_mom=10. - -logical::use_existing_grid_spec=.false. -logical::all_ocean=.true. -logical::all_land=.false.!note:ifbothall_ocean=all_land=.true. -!thenall_ocean=.true.willbeused - -namelist/flux_exchange_nml/z_ref_heat,z_ref_mom,& -use_existing_grid_spec,& -all_ocean,all_land - -!----------------------------------------------------------------------- - -!----gridindices---- - -integer::is,ie,js,je - -!----allocatablemodulestorage------ - -real,allocatable,dimension(:,:)::t_surf,t_ca,q_surf,p_surf - -real,allocatable,dimension(:,:)::e_t_n,f_t_delt_n,& -e_q_n,f_q_delt_n - -real,allocatable,dimension(:,:)::dhdt_surf,dedt_surf,dedq_surf,& -drdt_surf,dhdt_atm,dedq_atm,& -flux_t,flux_q,flux_lw - -real,allocatable,dimension(:,:)::flux_u,flux_v,drag_q,& -dtaudu_atm,dtaudv_atm - -real,allocatable,dimension(:,:)::cd_t,cd_m,b_star,u_star,wind - -!----------------------------------------------------------------------- - -real,parameter::d622=rdgas/rvgas -real,parameter::d378=1.0-d622 - -logical::used - -!----------------------------------------------------------------------- - -contains - -!####################################################################### - -subroutinesfc_boundary_layer(dt,Time,Atm,Land,Ice,Boundary) - -real,intent(in)::dt -type(fmstime_type),intent(in)::time -type(atmos_data_type),intent(in)::atm -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(land_ice_atmos_boundary_type),intent(inout)::Boundary - -real,dimension(is:ie,js:je)::u_surf,v_surf,rough_heat,rough_moist,& -rough_mom,rough_scale,q_star,cd_q,& -albedo,albedo_vis_dir,albedo_nir_dir,& -albedo_vis_dif,albedo_nir_dif,& -del_m,del_h,del_q,land_frac,& -ref,ref2,t_ref,qs_ref,qs_ref_cmip,& -thv_atm,thv_surf - -logical,dimension(is:ie,js:je)::mask,seawater,avail -real::zrefm,zrefh - - -!----------------------------------------------------------------------- - -if(do_init)callfms_error_mesg('sfc_boundary_layer',& -'mustcallsimple_surface_initfirst',fatal) - -!----------------------------------------------------------------------- -!------allocatestoragealsoneededinflux_up_to_atmos----- - -allocate(e_t_n(is:ie,js:je),& -e_q_n(is:ie,js:je),& -f_t_delt_n(is:ie,js:je),& -f_q_delt_n(is:ie,js:je),& -dhdt_surf(is:ie,js:je),& -dedt_surf(is:ie,js:je),& -dedq_surf(is:ie,js:je),& -drdt_surf(is:ie,js:je),& -dhdt_atm(is:ie,js:je),& -dedq_atm(is:ie,js:je),& -flux_t(is:ie,js:je),& -flux_q(is:ie,js:je),& -flux_lw(is:ie,js:je),& -flux_u(is:ie,js:je),& -flux_v(is:ie,js:je),& -dtaudu_atm(is:ie,js:je),& -dtaudv_atm(is:ie,js:je),& -drag_q(is:ie,js:je),& -t_surf(is:ie,js:je),& -t_ca(is:ie,js:je),& -p_surf(is:ie,js:je),& -q_surf(is:ie,js:je)) - -allocate(cd_t(is:ie,js:je),& -cd_m(is:ie,js:je),& -b_star(is:ie,js:je),& -u_star(is:ie,js:je),& -wind(is:ie,js:je)) - - -u_surf=0.0 -v_surf=0.0 - -!----donotuseifrelaxtime/=0---- -cd_t=0.0 -cd_m=0.0 -cd_q=0.0 - -avail=.true. - -!----atmospherequantities---- - -p_surf=atm%p_surf - -!----icequantities---- - -where(ice%mask) -t_surf=ice%t_surf -t_ca=ice%t_surf!todefinevaluesovertheice/ocean -rough_mom=ice%rough_mom -rough_heat=ice%rough_heat -rough_moist=ice%rough_moist -rough_scale=rough_mom -albedo=ice%albedo -albedo_vis_dir=ice%albedo_vis_dir -albedo_nir_dir=ice%albedo_nir_dir -albedo_vis_dif=ice%albedo_vis_dif -albedo_nir_dif=ice%albedo_nir_dif -land_frac=0.0 -endwhere - -!----landquantities---- - -where(land%mask(:,:,1)) -t_surf=land%t_surf(:,:,1) -t_ca=land%t_ca(:,:,1) -q_surf=land%tr(:,:,1,1) -rough_mom=land%rough_mom(:,:,1) -rough_heat=land%rough_heat(:,:,1) -rough_moist=land%rough_heat(:,:,1) -rough_scale=land%rough_scale(:,:,1) -albedo=land%albedo(:,:,1) -albedo_vis_dir=land%albedo_vis_dir(:,:,1) -albedo_nir_dir=land%albedo_nir_dir(:,:,1) -albedo_vis_dif=land%albedo_vis_dif(:,:,1) -albedo_nir_dif=land%albedo_nir_dif(:,:,1) -land_frac=1.0 -endwhere - -!---computeexplicitfluxesandtendenciesatallavailablepoints--- - -avail=.true. -callsurface_flux_2d(atm%t_bot,atm%tr_bot(:,:,isphum),atm%u_bot,atm%v_bot,& -atm%p_bot,atm%z_bot,& -p_surf,t_surf,t_ca,q_surf,u_surf,v_surf,& -rough_mom,rough_heat,rough_moist,rough_scale,& -atm%gust,& -flux_t,flux_q,flux_lw,flux_u,flux_v,& -cd_m,cd_t,cd_q,wind,& -u_star,b_star,q_star,& -thv_atm,thv_surf,& -dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& -dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& -dt,land%mask(:,:,1),seawater,avail) - -!additionalcalculationtoavoidpassingextra -!argumentoutofsurface_flux(dataduplication) -drag_q=wind*cd_q - -!putrelevantquantitiesontoatmosphericboundary - -boundary%t=t_surf -boundary%albedo=albedo -boundary%albedo_vis_dir=albedo_vis_dir -boundary%albedo_nir_dir=albedo_nir_dir -boundary%albedo_vis_dif=albedo_vis_dif -boundary%albedo_nir_dif=albedo_nir_dif -boundary%rough_mom=rough_mom -boundary%land_frac=land_frac -boundary%u_flux=flux_u -boundary%v_flux=flux_v -boundary%dtaudu=dtaudu_atm -boundary%dtaudv=dtaudv_atm -boundary%u_star=u_star -boundary%b_star=b_star -boundary%q_star=q_star - -!additionalboundaryvariablesforuseinncep-edmf -boundary%shflx=flux_t -boundary%lhflx=flux_q -boundary%wind=wind -boundary%thv_atm=thv_atm -boundary%thv_surf=thv_surf - - -!======================================================================= -!--------------------diagnosticssection------------------------------ - -if(first_static)then -if(id_land_mask>0)used=fms_diag_send_data(id_land_mask,boundary%land_frac,time) -!near-surfaceheights -if(id_height2m>0)used=fms_diag_send_data(id_height2m,z_ref_heat,time) -if(id_height10m>0)used=fms_diag_send_data(id_height10m,z_ref_mom,time) - -first_static=.false. -endif -if(id_wind>0)used=fms_diag_send_data(id_wind,wind,time) -if(id_drag_moist>0)used=fms_diag_send_data(id_drag_moist,cd_q,time) -if(id_drag_heat>0)used=fms_diag_send_data(id_drag_heat,cd_t,time) -if(id_drag_mom>0)used=fms_diag_send_data(id_drag_mom,cd_m,time) -if(id_rough_moist>0)used=fms_diag_send_data(id_rough_moist,rough_moist,time) -if(id_rough_heat>0)used=fms_diag_send_data(id_rough_heat,rough_heat,time) -if(id_rough_mom>0)used=fms_diag_send_data(id_rough_mom,rough_mom,time) -if(id_u_star>0)used=fms_diag_send_data(id_u_star,u_star,time) -if(id_b_star>0)used=fms_diag_send_data(id_b_star,b_star,time) -if(id_q_star>0)used=fms_diag_send_data(id_q_star,q_star,time) -if(id_thv_atm>0)used=fms_diag_send_data(id_thv_atm,thv_atm,time) -if(id_thv_surf>0)used=fms_diag_send_data(id_thv_surf,thv_surf,time) -if(id_t_atm>0)used=fms_diag_send_data(id_t_atm,atm%t_bot,time) -if(id_u_atm>0)used=fms_diag_send_data(id_u_atm,atm%u_bot,time) -if(id_v_atm>0)used=fms_diag_send_data(id_v_atm,atm%v_bot,time) -if(id_q_atm>0)used=fms_diag_send_data(id_q_atm,atm%tr_bot(:,:,isphum),time) -if(id_p_atm>0)used=fms_diag_send_data(id_p_atm,atm%p_bot,time) -if(id_z_atm>0)used=fms_diag_send_data(id_z_atm,atm%z_bot,time) -if(id_gust>0)used=fms_diag_send_data(id_gust,atm%gust,time) -if(id_u_flux>0)used=fms_diag_send_data(id_u_flux,flux_u,time) -if(id_v_flux>0)used=fms_diag_send_data(id_v_flux,flux_v,time) -if(id_albedo>0)used=fms_diag_send_data(id_albedo,albedo,time) -if(id_albedo_vis_dir>0)used=fms_diag_send_data(id_albedo_vis_dir,albedo_vis_dir,time) -if(id_albedo_nir_dir>0)used=fms_diag_send_data(id_albedo_nir_dir,albedo_nir_dir,time) -if(id_albedo_vis_dif>0)used=fms_diag_send_data(id_albedo_vis_dif,albedo_vis_dif,time) -if(id_albedo_nir_dif>0)used=fms_diag_send_data(id_albedo_nir_dif,albedo_nir_dif,time) - -!----icefraction---- -if(id_ice_mask>0)then -where(ice%ice_mask) -ref=1.0 -elsewhere -ref=0.0 -endwhere -used=fms_diag_send_data(id_ice_mask,ref,time) -endif - -!diagnosticsforfieldsatreferencelevel - -if(id_t_ref>0.or.id_rh_ref>0.or.& -id_u_ref>0.or.id_v_ref>0.or.& -id_q_ref>0)then - -zrefm=z_ref_mom -zrefh=z_ref_heat -!----optimizecalculation---- -if(id_t_ref<=0)zrefh=zrefm - -callfms_monin_obukhov_mo_profile(zrefm,zrefh,atm%z_bot,& -rough_mom,rough_heat,rough_moist,& -u_star,b_star,q_star,& -del_m,del_h,del_q) - -!----referencerelativehumidity---- -if(id_rh_ref>0.or.id_q_ref>0.or.id_hurs>0.or.id_huss>0)then -ref=q_surf+(atm%tr_bot(:,:,isphum)-q_surf)*del_q -if(id_q_ref>0)used=fms_diag_send_data(id_q_ref,ref,time) -if(id_huss>0)used=fms_diag_send_data(id_huss,ref,time) - -t_ref=t_ca+(atm%t_bot-t_ca)*del_h -!callescomp(t_ref,qs_ref) -callfms_sat_vapor_pres_compute_qs(t_ref,p_surf,qs_ref,q=ref) -callfms_sat_vapor_pres_compute_qs(t_ref,p_surf,qs_ref_cmip,& -q=ref,es_over_liq_and_ice=.true.) -qs_ref=d622*qs_ref/(p_surf-d378*qs_ref) - -ref=100.*ref/qs_ref -ref2=100.*ref/qs_ref_cmip - -if(id_rh_ref>0)used=fms_diag_send_data(id_rh_ref,ref,time) -if(id_hurs>0)used=fms_diag_send_data(id_hurs,ref2,time) -endif - -!----referencetemperature---- -if(id_t_ref>0)then -ref=t_ca+(atm%t_bot-t_ca)*del_h -used=fms_diag_send_data(id_t_ref,ref,time) -endif - -!----referenceucomp---- -if(id_u_ref>0.or.id_uas>0)then -ref=u_surf+(atm%u_bot-u_surf)*del_m -used=fms_diag_send_data(id_u_ref,ref,time) -endif -if(id_uas>0)used=fms_diag_send_data(id_uas,ref,time) - -!----referencevcomp---- -if(id_v_ref>0.or.id_vas>0)then -ref=v_surf+(atm%v_bot-v_surf)*del_m -used=fms_diag_send_data(id_v_ref,ref,time) -endif -if(id_vas>0)used=fms_diag_send_data(id_vas,ref,time) - -!-------reference-levelabsolutewind----------- -if(id_sfcwind>0)then -ref=sqrt((u_surf+(atm%u_bot-u_surf)*del_m)**2& -+(v_surf+(atm%v_bot-v_surf)*del_m)**2) -if(id_sfcwind>0)used=fms_diag_send_data(id_sfcwind,ref,time) -endif - - -!----interpfactors---- -if(id_del_h>0)used=fms_diag_send_data(id_del_h,del_h,time) -if(id_del_m>0)used=fms_diag_send_data(id_del_m,del_m,time) -if(id_del_q>0)used=fms_diag_send_data(id_del_q,del_q,time) - -endif - -!topographicroughnessscale -if(id_rough_scale>0)then -ref=(log(atm%z_bot/rough_mom+1)/log(atm%z_bot/rough_scale+1))**2 -used=fms_diag_send_data(id_rough_scale,ref,time) -endif - -!lgslinebelowisfromatm_land_ice_flux_exchange.F90whatshoulddiag_atmbe? -!if(id_tas>0)used=fms_diag_send_data(id_tas,diag_atm,Time) -if(id_tas>0)used=fms_diag_send_data(id_tas,t_ref,time) -if(id_psl>0)used=fms_diag_send_data(id_psl,atm%slp,time) - - -!======================================================================= - -endsubroutinesfc_boundary_layer - -!####################################################################### - -subroutineflux_down_from_atmos(Time,Atm,Land,Ice,& -Atmos_boundary,Land_boundary,Ice_boundary) - -type(fmstime_type),intent(in)::time -type(atmos_data_type),intent(in)::atm -type(land_data_type),intent(in)::land -type(ice_data_type),intent(in)::ice -type(land_ice_atmos_boundary_type),intent(in)::Atmos_boundary -type(atmos_land_boundary_type),intent(inout)::Land_boundary -type(atmos_ice_boundary_type),intent(inout)::Ice_boundary - -!real,dimension(:,:),intent(out)::dt_t_atm,dt_q_atm - -real,dimension(is:ie,js:je)::gamma,dtmass,delta_t,delta_q,& -dflux_t,dflux_q,flux,deriv,dt_t_surf - -real,parameter::CP_INV=1./cp_air - -!updatestressesusingatmosdelta's - -flux_u=flux_u+atm%Surf_Diff%delta_u*dtaudu_atm -flux_v=flux_v+atm%Surf_Diff%delta_v*dtaudv_atm - -!-----computenetlongwaveflux(down-up)----- -!(note:lwupalreadyinflux_lw) - -flux_lw=atm%flux_lw-flux_lw - -!-----adjustfluxesforimplicitdependenceonatmosphere---- - -dtmass=atm%Surf_Diff%dtmass -delta_t=atm%Surf_Diff%delta_t -delta_q=atm%Surf_Diff%delta_tr(:,:,isphum) -dflux_t=atm%Surf_Diff%dflux_t -dflux_q=atm%Surf_Diff%dflux_tr(:,:,isphum) - -!temperature - -gamma=1./(1.0-dtmass*(dflux_t+dhdt_atm*cp_inv)) -e_t_n=dtmass*dhdt_surf*cp_inv*gamma -f_t_delt_n=(delta_t+dtmass*flux_t*cp_inv)*gamma - -flux_t=flux_t+dhdt_atm*f_t_delt_n -dhdt_surf=dhdt_surf+dhdt_atm*e_t_n - -!moisture - -gamma=1./(1.0-dtmass*(dflux_q+dedq_atm)) -e_q_n=dtmass*(dedt_surf+dedq_surf)*gamma -f_q_delt_n=(delta_q+dtmass*flux_q)*gamma - -flux_q=flux_q+dedq_atm*f_q_delt_n -dedt_surf=dedt_surf+dedq_atm*e_q_n -dedq_surf=dedq_surf+dedq_atm*e_q_n - -!----------------------------------------------------------------------- -!----outputfieldsonthelandgrid------- - -land_boundary%lprec(:,:,1)=0.0 -land_boundary%fprec(:,:,1)=0.0 - -where(land%mask(:,:,1)) -land_boundary%t_flux(:,:,1)=flux_t -land_boundary%tr_flux(:,:,1,1)=flux_q -land_boundary%sw_flux(:,:,1)=atm%flux_sw -land_boundary%sw_flux_down_vis_dir(:,:,1)=atm%flux_sw_down_vis_dir -land_boundary%sw_flux_down_total_dir(:,:,1)=atm%flux_sw_down_total_dir -land_boundary%sw_flux_down_vis_dif(:,:,1)=atm%flux_sw_down_vis_dif -land_boundary%sw_flux_down_total_dif(:,:,1)=atm%flux_sw_down_total_dif -land_boundary%lw_flux(:,:,1)=flux_lw -land_boundary%dhdt(:,:,1)=dhdt_surf -!Land_boundary%dedt(:,:,1)=dedt_surf -land_boundary%dfdtr(:,:,1,1)=dedq_surf -land_boundary%drdt(:,:,1)=drdt_surf -land_boundary%lprec(:,:,1)=atm%lprec -land_boundary%fprec(:,:,1)=atm%fprec -!Land_boundary%drag_q(:,:,1)=drag_q -land_boundary%p_surf(:,:,1)=p_surf - -!----------------------------------------------------------------------- -!----outputfieldsontheicegrid------- - -elsewhere -ice_boundary%t_flux=flux_t -ice_boundary%q_flux=flux_q -ice_boundary%sw_flux=atm%flux_sw -ice_boundary%lw_flux=flux_lw -ice_boundary%dhdt=dhdt_surf -ice_boundary%dedt=dedt_surf -ice_boundary%drdt=drdt_surf -ice_boundary%lprec=atm%lprec -ice_boundary%fprec=atm%fprec -ice_boundary%u_star=atmos_boundary%u_star -ice_boundary%coszen=atm%coszen -endwhere - -if(associated(land_boundary%drag_q))then -where(land%mask(:,:,1))land_boundary%drag_q(:,:,1)=drag_q -endif -if(associated(land_boundary%lwdn_flux))then -where(land%mask(:,:,1))land_boundary%lwdn_flux(:,:,1)=atm%flux_lw -endif -if(associated(land_boundary%cd_m))then -where(land%mask(:,:,1))land_boundary%cd_m(:,:,1)=cd_m -endif -if(associated(land_boundary%cd_t))then -where(land%mask(:,:,1))land_boundary%cd_t(:,:,1)=cd_t -endif -if(associated(land_boundary%bstar))then -where(land%mask(:,:,1))land_boundary%bstar(:,:,1)=b_star -endif -if(associated(land_boundary%ustar))then -where(land%mask(:,:,1))land_boundary%ustar(:,:,1)=u_star -endif -if(associated(land_boundary%wind))then -where(land%mask(:,:,1))land_boundary%wind(:,:,1)=wind -endif -if(associated(land_boundary%z_bot))then -where(land%mask(:,:,1))land_boundary%z_bot(:,:,1)=atm%z_bot -endif - -deallocate(flux_u,flux_v,dtaudu_atm,dtaudv_atm) - -!----------------------------------------------------------------------- -!--------------------diagnosticssection------------------------------ - -if(id_u_flux>0)used=fms_diag_send_data(id_u_flux,atmos_boundary%u_flux,time) -if(id_tauu>0)used=fms_diag_send_data(id_tauu,-atmos_boundary%u_flux,time) -if(id_v_flux>0)used=fms_diag_send_data(id_v_flux,atmos_boundary%v_flux,time) -if(id_tauv>0)used=fms_diag_send_data(id_tauv,-atmos_boundary%v_flux,time) - -!----------------------------------------------------------------------- - -endsubroutineflux_down_from_atmos - -!####################################################################### - -subroutineflux_up_to_atmos(Time,Land,Ice,Boundary) - -type(FmsTime_type),intent(in)::Time -type(land_data_type),intent(inout)::Land -type(ice_data_type),intent(inout)::Ice -type(land_ice_atmos_boundary_type),intent(inout)::Boundary - - -real,dimension(is:ie,js:je)::t_surf_new,dt_t_surf,& -q_surf_new,dt_q_surf,& -delta_t_n,delta_q_n,& -t_ca_new,dt_t_ca - -!computesurfacetemperaturechange - -where(land%mask(:,:,1)) -t_surf_new=land%t_surf(:,:,1) -t_ca_new=land%t_ca(:,:,1) -elsewhere -t_surf_new=ice%t_surf -t_ca_new=t_surf_new -endwhere - -!???????shouldthisbedoneinlandmodel?????? -callfms_sat_vapor_pres_escomp(t_surf_new,q_surf_new) -where(land%mask(:,:,1)) -q_surf_new=land%tr(:,:,1,1) -elsewhere -q_surf_new=d622*q_surf_new/(p_surf-d378*q_surf_new) -endwhere - -dt_t_ca=t_ca_new-t_ca!changesinnear-surfaceT -dt_t_surf=t_surf_new-t_surf!changesinradiativeT -dt_q_surf=q_surf_new-q_surf!changesinnear-surfaceq - -!adjustfluxesandatmosphericincrementsfor -!implicitdependenceonsurfacetemperature - -flux_t=flux_t+dt_t_ca*dhdt_surf -flux_lw=flux_lw-dt_t_surf*drdt_surf -boundary%dt_t=f_t_delt_n+dt_t_ca*e_t_n - -where(land%mask(:,:,1)) -flux_q=flux_q+dt_q_surf*dedq_surf -boundary%dt_tr(:,:,isphum)=f_q_delt_n+dt_q_surf*e_q_n -elsewhere -flux_q=flux_q+dt_t_surf*dedt_surf -boundary%dt_tr(:,:,isphum)=f_q_delt_n+dt_t_surf*e_q_n -endwhere - - -!======================================================================= -!--------------------diagnosticssection------------------------------ - -if(id_t_surf>0)used=fms_diag_send_data(id_t_surf,t_surf_new,time) -if(id_t_ca>0)used=fms_diag_send_data(id_t_ca,t_ca_new,time) -if(id_q_surf>0)used=fms_diag_send_data(id_q_surf,q_surf_new,time) -if(id_t_flux>0)used=fms_diag_send_data(id_t_flux,flux_t,time) -if(id_r_flux>0)used=fms_diag_send_data(id_r_flux,flux_lw,time) -if(id_q_flux>0)used=fms_diag_send_data(id_q_flux,flux_q,time) -if(id_evspsbl>0)used=fms_diag_send_data(id_evspsbl,flux_q,time) -if(id_hfls>0)used=fms_diag_send_data(id_hfls,hlv*flux_q,time) -if(id_hfss>0)used=fms_diag_send_data(id_hfss,flux_t,time) -if(id_ts>0)used=fms_diag_send_data(id_ts,t_surf_new,time) - -callfms_sum_diag_integral_field('evap',flux_q*86400.) - -!======================================================================= -!----deallocatemodulestorage---- - - -deallocate(f_t_delt_n,f_q_delt_n,e_t_n,e_q_n) -deallocate(dhdt_surf,dedt_surf,dedq_surf,& -drdt_surf,dhdt_atm,dedq_atm,& -flux_t,flux_q,flux_lw,drag_q) -deallocate(t_surf,p_surf,t_ca,q_surf) -deallocate(cd_t,cd_m,b_star,u_star,wind) - -!----------------------------------------------------------------------- - -endsubroutineflux_up_to_atmos - -!####################################################################### - -subroutineflux_exchange_init(Time,Atm,Land,Ice,& -!atmos_land_boundary,& -atmos_ice_boundary,& -land_ice_atmos_boundary) - -type(fmstime_type),intent(in)::time -type(atmos_data_type),intent(in)::atm -type(land_data_type),intent(in)::land -type(ice_data_type),intent(in)::ice -!type(atmos_land_boundary_type),intent(inout)::atmos_land_boundary -type(atmos_ice_boundary_type),intent(inout)::atmos_ice_boundary -type(land_ice_atmos_boundary_type),intent(inout)::land_ice_atmos_boundary - - -integer::j,kd -integer::isc,iec,jsc,jec -real::xx,lat - -!----------------------------------------------------------------------- -!------readnamelist------ - -if(do_read_nml)callread_namelist - -!----------------------------------------------------------------------- -!-----savethegridindices----- - -callfms_mpp_domains_get_compute_domain(atm%Domain,is,ie,js,je) - -!---------writeversionnumberandnamelist------------------ - -callfms_write_version_number(version,tag) -if(fms_mpp_pe()==fms_mpp_root_pe())write(fms_mpp_stdlog(),nml=flux_exchange_nml) - - -callfms_diag_integral_field_init('evap','f6.3') -calldiag_field_init(time,atm%axes(1:2)) - -!-----findoutnumberofatmosphericprognostictracersandindexofspecific -!humidityinthetracertable -callfms_tracer_manager_get_number_tracers(model_atmos,num_tracers=n_atm_tr_tot,& -num_prog=n_atm_tr) -isphum=fms_tracer_manager_get_tracer_index(model_atmos,'sphum') -if(isphum==no_tracer)& -callfms_error_mesg('flux_exchange_mod','CannotfindwatervaporinATMtracertable',fatal) -!----------------------------------------------------------------------- -!------allocateatmos_land_boundary------ - -callfms_mpp_domains_get_compute_domain(land%Domain,isc,iec,jsc,jec) -if(isc/=is.or.iec/=ie.or.jsc/=js.or.jec/=je)& -callfms_error_mesg('flux_exchange_init','landmodel'//& -'domaindoesnotmatchatmospheredomain',fatal) -kd=size(land%mask,3)!mustbe1(shouldcheck) -!allocate(atmos_land_boundary%t_flux(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%q_flux(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%lw_flux(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%sw_flux(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%sw_flux_down_vis_dir(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%sw_flux_down_total_dir(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%sw_flux_down_vis_dif(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%sw_flux_down_total_dif(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%lprec(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%fprec(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%dhdt(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%dedt(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%dedq(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%drdt(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%drag_q(is:ie,js:je,kd)) -!allocate(atmos_land_boundary%p_surf(is:ie,js:je,kd)) - -!------initializeboundaryvalues------ - -!atmos_land_boundary%t_flux=0.0 -!atmos_land_boundary%q_flux=0.0 -!atmos_land_boundary%lw_flux=0.0 -!atmos_land_boundary%sw_flux=0.0 -!atmos_land_boundary%sw_flux_down_vis_dir=0.0 -!atmos_land_boundary%sw_flux_down_total_dir=0.0 -!atmos_land_boundary%sw_flux_down_vis_dif=0.0 -!atmos_land_boundary%sw_flux_down_total_dif=0.0 -!atmos_land_boundary%lprec=0.0 -!atmos_land_boundary%fprec=0.0 -!atmos_land_boundary%dhdt=0.0 -!atmos_land_boundary%dedt=0.0 -!atmos_land_boundary%dedq=0.0 -!atmos_land_boundary%drdt=0.0 -!atmos_land_boundary%drag_q=0.0 -!atmos_land_boundary%p_surf=0.0 - -!----------------------------------------------------------------------- -!------allocateatmosiceboundary------ - -callfms_mpp_domains_get_compute_domain(ice%Domain,isc,iec,jsc,jec) -if(isc/=is.or.iec/=ie.or.jsc/=js.or.jec/=je)& -callfms_error_mesg('flux_exchange_init','icemodel'//& -'domaindoesnotmatchatmospheredomain',fatal) - -allocate(atmos_ice_boundary%u_star(is:ie,js:je)) -allocate(atmos_ice_boundary%t_flux(is:ie,js:je)) -allocate(atmos_ice_boundary%q_flux(is:ie,js:je)) -allocate(atmos_ice_boundary%lw_flux(is:ie,js:je)) -allocate(atmos_ice_boundary%sw_flux(is:ie,js:je)) -allocate(atmos_ice_boundary%lprec(is:ie,js:je)) -allocate(atmos_ice_boundary%fprec(is:ie,js:je)) -allocate(atmos_ice_boundary%dhdt(is:ie,js:je)) -allocate(atmos_ice_boundary%dedt(is:ie,js:je)) -allocate(atmos_ice_boundary%drdt(is:ie,js:je)) -allocate(atmos_ice_boundary%coszen(is:ie,js:je)) - -!------initializeboundaryvalues------ - -atmos_ice_boundary%u_star=0.0 -atmos_ice_boundary%t_flux=0.0 -atmos_ice_boundary%q_flux=0.0 -atmos_ice_boundary%lw_flux=0.0 -atmos_ice_boundary%sw_flux=0.0 -atmos_ice_boundary%lprec=0.0 -atmos_ice_boundary%fprec=0.0 -atmos_ice_boundary%dhdt=0.0 -atmos_ice_boundary%dedt=0.0 -atmos_ice_boundary%drdt=0.0 -atmos_ice_boundary%coszen=0.0 - -!----------------------------------------------------------------------- -!------allocateland-ice-atmosboundary - -allocate(land_ice_atmos_boundary%t(is:ie,js:je)) -allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je)) -allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je)) -allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je)) -allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je)) -allocate(land_ice_atmos_boundary%albedo(is:ie,js:je)) -allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je)) -allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je)) -allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je)) -allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je)) -allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je)) -allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je)) -allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr)) -allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je)) -allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je)) -allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je)) -allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je)) -allocate(land_ice_atmos_boundary%u_star(is:ie,js:je)) -allocate(land_ice_atmos_boundary%b_star(is:ie,js:je)) -allocate(land_ice_atmos_boundary%q_star(is:ie,js:je)) -#ifndefuse_AM3_physics -allocate(land_ice_atmos_boundary%shflx(is:ie,js:je))!miz -allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je))!miz -#endif -allocate(land_ice_atmos_boundary%wind(is:ie,js:je)) -allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je)) -allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je)) -allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je)) -allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je)) - -!------initializeboundaryvalues------ - -land_ice_atmos_boundary%t=273.0 -land_ice_atmos_boundary%t_ref=273.0!cjg:PBLdepthmods -land_ice_atmos_boundary%q_ref=0.0!cjg:PBLdepthmods -land_ice_atmos_boundary%albedo=0.0 -land_ice_atmos_boundary%albedo_vis_dir=0.0 -land_ice_atmos_boundary%albedo_nir_dir=0.0 -land_ice_atmos_boundary%albedo_vis_dif=0.0 -land_ice_atmos_boundary%albedo_nir_dif=0.0 -land_ice_atmos_boundary%land_frac=0.0 -land_ice_atmos_boundary%dt_t=0.0 -land_ice_atmos_boundary%dt_tr=0.0 -land_ice_atmos_boundary%u_flux=0.0 -land_ice_atmos_boundary%v_flux=0.0 -land_ice_atmos_boundary%dtaudu=0.0 -land_ice_atmos_boundary%dtaudv=0.0 -land_ice_atmos_boundary%u_star=0.0 -land_ice_atmos_boundary%b_star=0.0 -land_ice_atmos_boundary%q_star=0.0 -#ifndefuse_AM3_physics -land_ice_atmos_boundary%shflx=0.0 -land_ice_atmos_boundary%lhflx=0.0 -#endif -land_ice_atmos_boundary%wind=0.0 -land_ice_atmos_boundary%thv_atm=0.0 -land_ice_atmos_boundary%thv_surf=0.0 -land_ice_atmos_boundary%rough_mom=0.01 -land_ice_atmos_boundary%frac_open_sea=0.0 - -callsurface_flux_init() -!----------------------------------------------------------------------- - -do_init=.false. - -!----------------------------------------------------------------------- - -endsubroutineflux_exchange_init - -!####################################################################### - -subroutineread_namelist - -integer::ierr,io - -read(fms_mpp_input_nml_file,nml=flux_exchange_nml,iostat=io) -ierr=fms_check_nml_error(io,'flux_exchange_nml') - -do_read_nml=.false. - -endsubroutineread_namelist - -!####################################################################### - -subroutinediag_field_init(Time,atmos_axes) - -type(FmsTime_type),intent(in)::Time -integer,intent(in)::atmos_axes(2) - -integer::iref -character(len=6)::label_zm,label_zh -real,dimension(2)::trange=(/100.,400./),& -vrange=(/-400.,400./),& -frange=(/-0.01,1.01/) -integer::area_id -!----------------------------------------------------------------------- -!initializesdiagnosticfieldsthatmaybeoutputfromthismodule -!(theidnumbersmaybereferencedanywhereinthismodule) -!----------------------------------------------------------------------- - -!------labelsfordiagnostics------- -!(z_ref_mom,z_ref_heatarenamelistvariables) - -iref=int(z_ref_mom+0.5) -if(real(iref)==z_ref_mom)then -write(label_zm,105)iref -if(iref<10)write(label_zm,100)iref -else -write(label_zm,110)z_ref_mom -endif - -iref=int(z_ref_heat+0.5) -if(real(iref)==z_ref_heat)then -write(label_zh,105)iref -if(iref<10)write(label_zh,100)iref -else -write(label_zh,110)z_ref_heat -endif - -100format(i1,'m',3x) -105format(i2,'m',2x) -110format(f4.1,'m') - -!---------initializestaticdiagnosticfields-------------------- - -id_land_mask=& -fms_diag_register_static_field(mod_name,'land_mask',atmos_axes,& -'fractionalamountofland','none',& -range=frange) - -!---------initializediagnosticfields-------------------- - -id_ice_mask=& -fms_diag_register_diag_field(mod_name,'ice_mask',atmos_axes,time,& -'fractionalamountofseaice','none',& -range=frange) - -id_wind=& -fms_diag_register_diag_field(mod_name,'wind',atmos_axes,time,& -'windspeedforfluxcalculations','m/s',& -range=(/0.,vrange(2)/)) - -id_drag_moist=& -fms_diag_register_diag_field(mod_name,'drag_moist',atmos_axes,time,& -'dragcoeffformoisture','none') - -id_drag_heat=& -fms_diag_register_diag_field(mod_name,'drag_heat',atmos_axes,time,& -'dragcoeffforheat','none') - -id_drag_mom=& -fms_diag_register_diag_field(mod_name,'drag_mom',atmos_axes,time,& -'dragcoeffformomentum','none') - -id_rough_moist=& -fms_diag_register_diag_field(mod_name,'rough_moist',atmos_axes,time,& -'surfaceroughnessformoisture','m') - -id_rough_heat=& -fms_diag_register_diag_field(mod_name,'rough_heat',atmos_axes,time,& -'surfaceroughnessforheat','m') - -id_rough_mom=& -fms_diag_register_diag_field(mod_name,'rough_mom',atmos_axes,time,& -'surfaceroughnessformomentum','m') - -id_u_star=& -fms_diag_register_diag_field(mod_name,'u_star',atmos_axes,time,& -'frictionvelocity','m/s') - -id_b_star=& -fms_diag_register_diag_field(mod_name,'b_star',atmos_axes,time,& -'buoyancyscale','m/s2') - -id_q_star=& -fms_diag_register_diag_field(mod_name,'q_star',atmos_axes,time,& -'moisturescale','kgwater/kgair') - -id_thv_atm=& -fms_diag_register_diag_field(mod_name,'thv_atm',atmos_axes,time,& -'surfaceairvirtualpotentialtemperature','K') - -id_thv_surf=& -fms_diag_register_diag_field(mod_name,'thv_surf',atmos_axes,time,& -'surfacevirtualpotentialtemperature','K') - -id_u_flux=& -fms_diag_register_diag_field(mod_name,'tau_x',atmos_axes,time,& -'zonalwindstress','pa') - -id_v_flux=& -fms_diag_register_diag_field(mod_name,'tau_y',atmos_axes,time,& -'meridionalwindstress','pa') - -id_t_surf=& -fms_diag_register_diag_field(mod_name,'t_surf',atmos_axes,time,& -'surfacetemperature','deg_k',& -range=trange) - -id_t_ca=& -fms_diag_register_diag_field(mod_name,'t_ca',atmos_axes,time,& -'canopyairtemperature','deg_k',& -range=trange) - -id_q_atm=& -fms_diag_register_diag_field(mod_name,'q_atm',atmos_axes,time,& -'specifichumidityatbtmlevel','kg/kg') - -id_q_surf=& -fms_diag_register_diag_field(mod_name,'q_surf',atmos_axes,time,& -'surfacespecifichumidity','kg/kg') - -id_z_atm=& -fms_diag_register_diag_field(mod_name,'z_atm',atmos_axes,time,& -'heightofbtmlevel','m') - -id_p_atm=& -fms_diag_register_diag_field(mod_name,'p_atm',atmos_axes,time,& -'pressureatbtmlevel','pa') - -id_gust=& -fms_diag_register_diag_field(mod_name,'gust',atmos_axes,time,& -'gustscale','m/s') - -id_t_flux=& -fms_diag_register_diag_field(mod_name,'shflx',atmos_axes,time,& -'sensibleheatflux','w/m2') - -id_q_flux=& -fms_diag_register_diag_field(mod_name,'evap',atmos_axes,time,& -'evaporationrate','kg/m2/s') - -id_r_flux=& -fms_diag_register_diag_field(mod_name,'lwflx',atmos_axes,time,& -'net(down-up)longwaveflux','w/m2') - -id_t_atm=& -fms_diag_register_diag_field(mod_name,'t_atm',atmos_axes,time,& -'temperatureatbtmlevel','deg_k',& -range=trange) - -id_u_atm=& -fms_diag_register_diag_field(mod_name,'u_atm',atmos_axes,time,& -'uwindcomponentatbtmlevel','m/s',& -range=vrange) - -id_v_atm=& -fms_diag_register_diag_field(mod_name,'v_atm',atmos_axes,time,& -'vwindcomponentatbtmlevel','m/s',& -range=vrange) - -id_t_ref=& -fms_diag_register_diag_field(mod_name,'t_ref',atmos_axes,time,& -'temperatureat'//label_zh,'deg_k',& -range=trange) - -id_rh_ref=& -fms_diag_register_diag_field(mod_name,'rh_ref',atmos_axes,time,& -'relativehumidityat'//label_zh,'percent') - -id_u_ref=& -fms_diag_register_diag_field(mod_name,'u_ref',atmos_axes,time,& -'zonalwindcomponentat'//label_zm,'m/s',& -range=vrange) - -id_v_ref=& -fms_diag_register_diag_field(mod_name,'v_ref',atmos_axes,time,& -'meridionalwindcomponentat'//label_zm,'m/s',& -range=vrange) -id_q_ref=& -fms_diag_register_diag_field(mod_name,'q_ref',atmos_axes,time,& -'specifichumidityat'//trim(label_zh),'kg/kg',missing_value=-1.0) - -id_del_h=& -fms_diag_register_diag_field(mod_name,'del_h',atmos_axes,time,& -'refheightinterpfactorforheat','none') -id_del_m=& -fms_diag_register_diag_field(mod_name,'del_m',atmos_axes,time,& -'refheightinterpfactorformomentum','none') -id_del_q=& -fms_diag_register_diag_field(mod_name,'del_q',atmos_axes,time,& -'refheightinterpfactorformoisture','none') -id_albedo=& -fms_diag_register_diag_field(mod_name,'albedo',atmos_axes,time,& -'surfacealbedo','none') -id_albedo_vis_dir=& -fms_diag_register_diag_field(mod_name,'albedo_vis_dir',atmos_axes,time,& -'VISdirectsurfacealbedo','none') -id_albedo_nir_dir=& -fms_diag_register_diag_field(mod_name,'albedo_nir_dir',atmos_axes,time,& -'NIRdirectsurfacealbedo','none') -id_albedo_vis_dif=& -fms_diag_register_diag_field(mod_name,'albedo_vis_dif',atmos_axes,time,& -'VISdiffusesurfacealbedo','none') -id_albedo_nir_dif=& -fms_diag_register_diag_field(mod_name,'albedo_nir_dif',atmos_axes,time,& -'NIRdiffusesurfacealbedo','none') - -!-------------------------------------------------------------------- -!retrievethediag_manageridfortheareadiagnostic, -!neededforcmorizingvariousdiagnostics. -!-------------------------------------------------------------------- -area_id=fms_diag_get_field_id('dynamics','area') -if(area_id.eq.diag_field_not_found)callfms_error_mesg& -('diag_field_initinatm_land_ice_flux_exchange_mod',& -'diagnosticfield"dynamics","area"isnotinthediag_table',note) -!----------------------------------------------------------------------- -!registercmipvariablenames -!----------------------------------------------------------------------- -#ifndefuse_AM3_physics -id_tas=register_cmip_diag_field_2d(mod_name,'tas',time,& -'Near-SurfaceAirTemperature','K',& -standard_name='air_temperature') -if(id_tas>0.and.id_height2m>0)& -callfms_diag_field_add_attribute(id_tas,'coordinates','height2m') -!indiagtableincludeheight2mwherevertasisincluded - -id_evspsbl=register_cmip_diag_field_2d(mod_name,'evspsbl',time,& -'Evaporation','kgm-2s-1',& -standard_name='water_evaporation_flux') - -id_uas=register_cmip_diag_field_2d(mod_name,'uas',time,& -'EastwardNear-SurfaceWind','ms-1',& -standard_name='eastward_wind') -if(id_uas>0.and.id_height10m>0)& -callfms_diag_field_add_attribute(id_uas,'coordinates','height10m') - -id_vas=register_cmip_diag_field_2d(mod_name,'vas',time,& -'NorthwardNear-SurfaceWind','ms-1',& -standard_name='northward_wind') -if(id_vas>0.and.id_height10m>0)& -callfms_diag_field_add_attribute(id_vas,'coordinates','height10m') - -id_sfcwind=register_cmip_diag_field_2d(mod_name,'sfcWind',time,& -'Near-SurfaceWindSpeed','ms-1',& -standard_name='wind_speed') -if(id_sfcwind>0.and.id_height10m>0)& -callfms_diag_field_add_attribute(id_sfcwind,'coordinates','height10m') - -id_huss=register_cmip_diag_field_2d(mod_name,'huss',time,& -'Near-SurfaceSpecificHumidity','1.0',& -standard_name='specific_humidity') -if(id_huss>0.and.id_height2m>0)& -callfms_diag_field_add_attribute(id_huss,'coordinates','height2m') - -id_hurs=register_cmip_diag_field_2d(mod_name,'hurs',time,& -'Near-SurfaceRelativeHumidity','%',& -standard_name='relative_humidity') -if(id_hurs>0.and.id_height2m>0)& -callfms_diag_field_add_attribute(id_hurs,'coordinates','height2m') - -id_ts=register_cmip_diag_field_2d(mod_name,'ts',time,& -'SurfaceTemperature','K',& -standard_name='surface_temperature') - -id_psl=register_cmip_diag_field_2d(mod_name,'psl',time,& -'SeaLevelPressure','Pa',& -standard_name='air_pressure_at_sea_level') - -id_tauu=register_cmip_diag_field_2d(mod_name,'tauu',time,& -'SurfaceDownwardEastwardWindStress','Pa',& -standard_name='surface_downward_eastward_stress') - -id_tauv=register_cmip_diag_field_2d(mod_name,'tauv',time,& -'SurfaceDownwardNorthwardWindStress','Pa',& -standard_name='surface_downward_northward_stress') - -id_hfls=register_cmip_diag_field_2d(mod_name,'hfls',time,& -'SurfaceUpwardLatentHeatFlux','Wm-2',& -standard_name='surface_upward_latent_heat_flux') -if(id_hfls>0)& -callfms_diag_field_add_attribute(id_hfls,'comment','Lv*evap') - -id_hfss=register_cmip_diag_field_2d(mod_name,'hfss',time,& -'SurfaceUpwardSensibleHeatFlux','Wm-2',& -standard_name='surface_upward_sensible_heat_flux') -#endif - -!----------------------------------------------------------------------- - -endsubroutinediag_field_init - - -!######################################################################## - -subroutineflux_exchange_end(Atm) - -type(atmos_data_type),intent(in)::atm -integer::unit - -endsubroutineflux_exchange_end - -!############################################################################ -!copiedfromsurface_flux_mod - -subroutinesurface_flux_2d(& -t_atm,q_atm_in,u_atm,v_atm,p_atm,z_atm,& -p_surf,t_surf,t_ca,q_surf,& -u_surf,v_surf,& -rough_mom,rough_heat,rough_moist,rough_scale,gust,& -flux_t,flux_q,flux_r,flux_u,flux_v,& -cd_m,cd_t,cd_q,& -w_atm,u_star,b_star,q_star,& -thv_atm,thv_surf,& -dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& -dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& -dt,land,seawater,avail) - - -!----arguments----------------------------------------------------------- -logical,intent(in),dimension(:,:)::land,seawater,avail -real,intent(in),dimension(:,:)::& -t_atm,q_atm_in,u_atm,v_atm,& -p_atm,z_atm,t_ca,& -p_surf,t_surf,u_surf,v_surf,& -rough_scale,gust -real,intent(out),dimension(:,:)::& -flux_t,flux_q,flux_r,flux_u,flux_v,& -dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& -dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& -w_atm,u_star,b_star,q_star,& -thv_atm,thv_surf,& -cd_m,cd_t,cd_q -real,intent(inout),dimension(:,:)::q_surf,rough_mom,& -rough_heat,rough_moist -real,intent(in)::dt - -!----localvars----------------------------------------------------------- -integer::j - -doj=1,size(t_atm,2) -callsurface_flux(& -t_atm(:,j),q_atm_in(:,j),u_atm(:,j),v_atm(:,j),p_atm(:,j),z_atm(:,j),& -p_surf(:,j),t_surf(:,j),t_ca(:,j),q_surf(:,j),& -u_surf(:,j),v_surf(:,j),& -rough_mom(:,j),rough_heat(:,j),rough_moist(:,j),rough_scale(:,j),gust(:,j),& -flux_t(:,j),flux_q(:,j),flux_r(:,j),flux_u(:,j),flux_v(:,j),& -cd_m(:,j),cd_t(:,j),cd_q(:,j),& -w_atm(:,j),u_star(:,j),b_star(:,j),q_star(:,j),& -thv_atm(:,j),thv_surf(:,j),& -dhdt_surf(:,j),dedt_surf(:,j),dedq_surf(:,j),drdt_surf(:,j),& -dhdt_atm(:,j),dedq_atm(:,j),dtaudu_atm(:,j),dtaudv_atm(:,j),& -dt,land(:,j),seawater(:,j),avail(:,j)) -enddo - -endsubroutinesurface_flux_2d - - -!############################################################################ - -endmoduleflux_exchange_mod - - - - - diff --git a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml deleted file mode 100644 index 0bf246c9..00000000 --- a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__exch__ind__type.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - atm_land_ice_flux_exchange_mod::tracer_exch_ind_type - - - integer - integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::exch - - exch - = 0 - -exchange grid index - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::ice - - ice - = 0 - -ice model index - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::tracer_exch_ind_type::lnd - - lnd - = 0 - -land model index - - - - - - - - - - - - - - atm_land_ice_flux_exchange_mod::tracer_exch_ind_typeexch - atm_land_ice_flux_exchange_mod::tracer_exch_ind_typeice - atm_land_ice_flux_exchange_mod::tracer_exch_ind_typelnd - - - diff --git a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml b/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml deleted file mode 100644 index c22ad6b2..00000000 --- a/docs/xml/structatm__land__ice__flux__exchange__mod_1_1tracer__ind__type.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - atm_land_ice_flux_exchange_mod::tracer_ind_type - - - integer - integer atm_land_ice_flux_exchange_mod::tracer_ind_type::atm - - atm - -tracer index in atm model - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::tracer_ind_type::ice - - ice - -tracer index in ice model - - - - - - - - integer - integer atm_land_ice_flux_exchange_mod::tracer_ind_type::lnd - - lnd - -tracer index in lnd model - - - - - - - - - - - - - - atm_land_ice_flux_exchange_mod::tracer_ind_typeatm - atm_land_ice_flux_exchange_mod::tracer_ind_typeice - atm_land_ice_flux_exchange_mod::tracer_ind_typelnd - - - diff --git a/docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml b/docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml deleted file mode 100644 index 1827e99d..00000000 --- a/docs/xml/structfull__coupler__mod_1_1coupler__chksum__type.xml +++ /dev/null @@ -1,204 +0,0 @@ - - - - full_coupler_mod::coupler_chksum_type - - - type(coupler_components_type), pointer - type(coupler_components_type), pointer full_coupler_mod::coupler_chksum_type::components - - components - - - - - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_chksum_type::initialize_coupler_chksum_obj - - initialize_coupler_chksum_obj - -associates the pointers above to model components - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_chksum_type::get_components_obj - - get_components_obj - -subroutine to retrieve the requested component of an object of this type - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_ocean_chksums - - get_atmos_ice_land_ocean_chksums - -subroutine to compute chksums for atmos - ocean - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_chksum_type::get_atmos_ice_land_chksums - - get_atmos_ice_land_chksums - -subroutine to compute chksums for atmos_ice_land - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_chksum_type::get_slow_ice_chksums - - get_slow_ice_chksums - -subroutine to compute chskums for slow_ice - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_chksum_type::get_ocean_chksums - - get_ocean_chksums - -subroutine to compute chksums for ocean - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_chksum_type::get_coupler_chksums - - get_coupler_chksums - -subroutine to compute chksums for select fields - - - - - - - - -The purpose of objects of coupler_chksum_type is to simplify the list of arguments required for chksum related subroutines in full_coupler_mod. The members of this type point to the model components. - - - - - - - - - - - - - - components - - - - - - - - - - land_ice_boundary - - - land - - - atmos_ice_boundary - - - land_ice_atmos_boundary - - - ocean - - - ice_ocean_boundary - - - atmos_land_boundary - - - ice - - - atm - - - ocean_ice_boundary - - - - - - - - - - - - - - - - - - - - - - - - - - - - - full_coupler_mod::coupler_chksum_typecomponents - full_coupler_mod::coupler_chksum_typeget_atmos_ice_land_chksums - full_coupler_mod::coupler_chksum_typeget_atmos_ice_land_ocean_chksums - full_coupler_mod::coupler_chksum_typeget_components_obj - full_coupler_mod::coupler_chksum_typeget_coupler_chksums - full_coupler_mod::coupler_chksum_typeget_ocean_chksums - full_coupler_mod::coupler_chksum_typeget_slow_ice_chksums - full_coupler_mod::coupler_chksum_typeinitialize_coupler_chksum_obj - - - diff --git a/docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml b/docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml deleted file mode 100644 index 2207d719..00000000 --- a/docs/xml/structfull__coupler__mod_1_1coupler__clock__type.xml +++ /dev/null @@ -1,547 +0,0 @@ - - - - full_coupler_mod::coupler_clock_type - - - integer - integer full_coupler_mod::coupler_clock_type::initialization - - initialization - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::main - - main - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::generate_sfc_xgrid - - generate_sfc_xgrid - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_ocean_to_ice - - flux_ocean_to_ice - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean - - flux_ice_to_ocean - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::atm - - atm - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::atmos_loop - - atmos_loop - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::atmos_tracer_driver_gather_data - - atmos_tracer_driver_gather_data - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::sfc_boundary_layer - - sfc_boundary_layer - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_atmos_model_dynamics - - update_atmos_model_dynamics - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_atmos_model_down - - update_atmos_model_down - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_down_from_atmos - - flux_down_from_atmos - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_land_model_fast - - update_land_model_fast - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_ice_model_fast - - update_ice_model_fast - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_up_to_atmos - - flux_up_to_atmos - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_atmos_model_up - - update_atmos_model_up - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::radiation - - radiation - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::concurrent_atmos - - concurrent_atmos - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_atmos_model_state - - update_atmos_model_state - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_land_model_slow - - update_land_model_slow - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_land_to_ice - - flux_land_to_ice - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::set_ice_surface_fast - - set_ice_surface_fast - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_fast - - update_ice_model_slow_fast - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::set_ice_surface_slow - - set_ice_surface_slow - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_slow - - update_ice_model_slow_slow - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_ice_to_ocean_stocks - - flux_ice_to_ocean_stocks - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::set_ice_surface_exchange - - set_ice_surface_exchange - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::update_ice_model_slow_exchange - - update_ice_model_slow_exchange - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::ocean - - ocean - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_check_stocks - - flux_check_stocks - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::intermediate_restart - - intermediate_restart - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::final_flux_check_stocks - - final_flux_check_stocks - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::termination - - termination - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::atmos_model_init - - atmos_model_init - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::land_model_init - - land_model_init - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::ice_model_init - - ice_model_init - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::ocean_model_init - - ocean_model_init - - - - - - - - - - integer - integer full_coupler_mod::coupler_clock_type::flux_exchange_init - - flux_exchange_init - - - - - - - - - - -coupler_clock_type derived type consist of all clock ids that will be set and used in full coupler_main. - - - - - full_coupler_mod::coupler_clock_typeatm - full_coupler_mod::coupler_clock_typeatmos_loop - full_coupler_mod::coupler_clock_typeatmos_model_init - full_coupler_mod::coupler_clock_typeatmos_tracer_driver_gather_data - full_coupler_mod::coupler_clock_typeconcurrent_atmos - full_coupler_mod::coupler_clock_typefinal_flux_check_stocks - full_coupler_mod::coupler_clock_typeflux_check_stocks - full_coupler_mod::coupler_clock_typeflux_down_from_atmos - full_coupler_mod::coupler_clock_typeflux_exchange_init - full_coupler_mod::coupler_clock_typeflux_ice_to_ocean - full_coupler_mod::coupler_clock_typeflux_ice_to_ocean_stocks - full_coupler_mod::coupler_clock_typeflux_land_to_ice - full_coupler_mod::coupler_clock_typeflux_ocean_to_ice - full_coupler_mod::coupler_clock_typeflux_up_to_atmos - full_coupler_mod::coupler_clock_typegenerate_sfc_xgrid - full_coupler_mod::coupler_clock_typeice_model_init - full_coupler_mod::coupler_clock_typeinitialization - full_coupler_mod::coupler_clock_typeintermediate_restart - full_coupler_mod::coupler_clock_typeland_model_init - full_coupler_mod::coupler_clock_typemain - full_coupler_mod::coupler_clock_typeocean - full_coupler_mod::coupler_clock_typeocean_model_init - full_coupler_mod::coupler_clock_typeradiation - full_coupler_mod::coupler_clock_typeset_ice_surface_exchange - full_coupler_mod::coupler_clock_typeset_ice_surface_fast - full_coupler_mod::coupler_clock_typeset_ice_surface_slow - full_coupler_mod::coupler_clock_typesfc_boundary_layer - full_coupler_mod::coupler_clock_typetermination - full_coupler_mod::coupler_clock_typeupdate_atmos_model_down - full_coupler_mod::coupler_clock_typeupdate_atmos_model_dynamics - full_coupler_mod::coupler_clock_typeupdate_atmos_model_state - full_coupler_mod::coupler_clock_typeupdate_atmos_model_up - full_coupler_mod::coupler_clock_typeupdate_ice_model_fast - full_coupler_mod::coupler_clock_typeupdate_ice_model_slow_exchange - full_coupler_mod::coupler_clock_typeupdate_ice_model_slow_fast - full_coupler_mod::coupler_clock_typeupdate_ice_model_slow_slow - full_coupler_mod::coupler_clock_typeupdate_land_model_fast - full_coupler_mod::coupler_clock_typeupdate_land_model_slow - - - diff --git a/docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml b/docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml deleted file mode 100644 index f75cd5a4..00000000 --- a/docs/xml/structfull__coupler__mod_1_1coupler__components__type.xml +++ /dev/null @@ -1,253 +0,0 @@ - - - - full_coupler_mod::coupler_components_type - - - type(atmos_data_type), pointer - type(atmos_data_type), pointer full_coupler_mod::coupler_components_type::atm - - atm - -pointer to Atm - - - - - - - - type(land_data_type), pointer - type(land_data_type), pointer full_coupler_mod::coupler_components_type::land - - land - -pointer to Land - - - - - - - - type(ice_data_type), pointer - type(ice_data_type), pointer full_coupler_mod::coupler_components_type::ice - - ice - -pointer to Ice - - - - - - - - type(ocean_public_type), pointer - type(ocean_public_type), pointer full_coupler_mod::coupler_components_type::ocean - - ocean - -pointer to Ocean - - - - - - - - type(land_ice_atmos_boundary_type), pointer - type(land_ice_atmos_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_atmos_boundary - - land_ice_atmos_boundary - -pointer to Land_ice_atmos_boundary - - - - - - - - type(atmos_land_boundary_type), pointer - type(atmos_land_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_land_boundary - - atmos_land_boundary - -pointer to Atmos_land_boundary - - - - - - - - type(atmos_ice_boundary_type), pointer - type(atmos_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::atmos_ice_boundary - - atmos_ice_boundary - -pointer to Atmos_ice_boundary - - - - - - - - type(land_ice_boundary_type), pointer - type(land_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::land_ice_boundary - - land_ice_boundary - -pointer to Land_ice_boundary - - - - - - - - type(ice_ocean_boundary_type), pointer - type(ice_ocean_boundary_type), pointer full_coupler_mod::coupler_components_type::ice_ocean_boundary - - ice_ocean_boundary - -pointer to Ice_ocean_boundary - - - - - - - - type(ocean_ice_boundary_type), pointer - type(ocean_ice_boundary_type), pointer full_coupler_mod::coupler_components_type::ocean_ice_boundary - - ocean_ice_boundary - -pointer to Ocean_ice_boundary - - - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_components_type::initialize_coupler_components_obj - - initialize_coupler_components_obj - - - - - - - - - - procedure, public - procedure, public full_coupler_mod::coupler_components_type::get_component - - get_component - -subroutine to retrieve the requested component of an object of this type - - - - - - - - - - - - - - - - - - - - - - - - - - land_ice_boundary - - - land - - - atmos_ice_boundary - - - land_ice_atmos_boundary - - - ocean - - - ice_ocean_boundary - - - atmos_land_boundary - - - ice - - - atm - - - ocean_ice_boundary - - - - - - - - - - - - - - - - - - - - - - - - - - - - - full_coupler_mod::coupler_components_typeatm - full_coupler_mod::coupler_components_typeatmos_ice_boundary - full_coupler_mod::coupler_components_typeatmos_land_boundary - full_coupler_mod::coupler_components_typeget_component - full_coupler_mod::coupler_components_typeice - full_coupler_mod::coupler_components_typeice_ocean_boundary - full_coupler_mod::coupler_components_typeinitialize_coupler_components_obj - full_coupler_mod::coupler_components_typeland - full_coupler_mod::coupler_components_typeland_ice_atmos_boundary - full_coupler_mod::coupler_components_typeland_ice_boundary - full_coupler_mod::coupler_components_typeocean - full_coupler_mod::coupler_components_typeocean_ice_boundary - - - diff --git a/docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml b/docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml deleted file mode 100644 index af09b4d0..00000000 --- a/docs/xml/structice__model__mod_1_1atmos__ice__boundary__type.xml +++ /dev/null @@ -1,209 +0,0 @@ - - - - ice_model_mod::atmos_ice_boundary_type - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::u_star - - u_star - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::t_flux - - t_flux - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::q_flux - - q_flux - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lw_flux - - lw_flux - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::sw_flux - - sw_flux - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::lprec - - lprec - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::fprec - - fprec - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dhdt - - dhdt - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::dedt - - dedt - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::drdt - - drdt - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::coszen - - coszen - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::atmos_ice_boundary_type::data - - data - =>NULL() - - - - - - - - - - integer - integer ice_model_mod::atmos_ice_boundary_type::xtype - - xtype - - - - - - - - - - - - - - - - ice_model_mod::atmos_ice_boundary_typecoszen - ice_model_mod::atmos_ice_boundary_typedata - ice_model_mod::atmos_ice_boundary_typededt - ice_model_mod::atmos_ice_boundary_typedhdt - ice_model_mod::atmos_ice_boundary_typedrdt - ice_model_mod::atmos_ice_boundary_typefprec - ice_model_mod::atmos_ice_boundary_typelprec - ice_model_mod::atmos_ice_boundary_typelw_flux - ice_model_mod::atmos_ice_boundary_typeq_flux - ice_model_mod::atmos_ice_boundary_typesw_flux - ice_model_mod::atmos_ice_boundary_typet_flux - ice_model_mod::atmos_ice_boundary_typeu_star - ice_model_mod::atmos_ice_boundary_typextype - - - diff --git a/docs/xml/structice__model__mod_1_1ice__data__type.xml b/docs/xml/structice__model__mod_1_1ice__data__type.xml deleted file mode 100644 index ef887500..00000000 --- a/docs/xml/structice__model__mod_1_1ice__data__type.xml +++ /dev/null @@ -1,400 +0,0 @@ - - - - ice_model_mod::ice_data_type - - - type(fmsmppdomain2d), pointer - type(fmsmppdomain2d), pointer ice_model_mod::ice_data_type::domain - - domain - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon_bnd - - glon_bnd - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat_bnd - - glat_bnd - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon_bnd - - lon_bnd - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat_bnd - - lat_bnd - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::glon - - glon - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::glat - - glat - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::lon - - lon - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::lat - - lat - =>NULL() - - - - - - - - - - logical, dimension(:,:), pointer - logical, dimension(:,:), pointer ice_model_mod::ice_data_type::gmask - - gmask - =>NULL() - - - - - - - - - - logical, dimension(:,:), pointer - logical, dimension(:,:), pointer ice_model_mod::ice_data_type::mask - - mask - =>NULL() - - - - - - - - - - logical, dimension(:,:), pointer - logical, dimension(:,:), pointer ice_model_mod::ice_data_type::ice_mask - - ice_mask - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::t_surf - - t_surf - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo - - albedo - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dir - - albedo_vis_dir - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dir - - albedo_nir_dir - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_vis_dif - - albedo_vis_dif - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::albedo_nir_dif - - albedo_nir_dif - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_mom - - rough_mom - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_heat - - rough_heat - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::rough_moist - - rough_moist - =>NULL() - - - - - - - - - - real, dimension(:,:), pointer - real, dimension(:,:), pointer ice_model_mod::ice_data_type::thickness - - thickness - =>NULL() - - - - - - - - - - type(fmstime_type) - type (fmstime_type) ice_model_mod::ice_data_type::time_init - - time_init - - - - - - - - - - type(fmstime_type) - type (fmstime_type) ice_model_mod::ice_data_type::time - - time - - - - - - - - - - type(fmstime_type) - type (fmstime_type) ice_model_mod::ice_data_type::time_step_fast - - time_step_fast - - - - - - - - - - type(fmstime_type) - type (fmstime_type) ice_model_mod::ice_data_type::time_step_slow - - time_step_slow - - - - - - - - - - - - - - - - ice_model_mod::ice_data_typealbedo - ice_model_mod::ice_data_typealbedo_nir_dif - ice_model_mod::ice_data_typealbedo_nir_dir - ice_model_mod::ice_data_typealbedo_vis_dif - ice_model_mod::ice_data_typealbedo_vis_dir - ice_model_mod::ice_data_typedomain - ice_model_mod::ice_data_typeglat - ice_model_mod::ice_data_typeglat_bnd - ice_model_mod::ice_data_typeglon - ice_model_mod::ice_data_typeglon_bnd - ice_model_mod::ice_data_typegmask - ice_model_mod::ice_data_typeice_mask - ice_model_mod::ice_data_typelat - ice_model_mod::ice_data_typelat_bnd - ice_model_mod::ice_data_typelon - ice_model_mod::ice_data_typelon_bnd - ice_model_mod::ice_data_typemask - ice_model_mod::ice_data_typerough_heat - ice_model_mod::ice_data_typerough_moist - ice_model_mod::ice_data_typerough_mom - ice_model_mod::ice_data_typet_surf - ice_model_mod::ice_data_typethickness - ice_model_mod::ice_data_typetime - ice_model_mod::ice_data_typetime_init - ice_model_mod::ice_data_typetime_step_fast - ice_model_mod::ice_data_typetime_step_slow - - - diff --git a/docs/xml/surface__flux_8_f90.xml b/docs/xml/surface__flux_8_f90.xml deleted file mode 100644 index bd97c76a..00000000 --- a/docs/xml/surface__flux_8_f90.xml +++ /dev/null @@ -1,1025 +0,0 @@ - - - - surface_flux.F90 - surface_flux_mod::surface_flux - surface_flux_mod - -Handles calculation of fluxes on the exchange grids, see module page for more information. - - - -!*********************************************************************** -!*GNULesserGeneralPublicLicense -!* -!*ThisfileispartoftheGFDLFlexibleModelingSystem(FMS)Coupler. -!* -!*FMSCouplerisfreesoftware:youcanredistributeitand/ormodify -!*itunderthetermsoftheGNULesserGeneralPublicLicenseas -!*publishedbytheFreeSoftwareFoundation,eitherversion3ofthe -!*License,or(atyouroption)anylaterversion. -!* -!*FMSCouplerisdistributedinthehopethatitwillbeuseful,but -!*WITHOUTANYWARRANTY;withouteventheimpliedwarrantyof -!*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU -!*GeneralPublicLicenseformoredetails. -!* -!*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic -!*LicensealongwithFMSCoupler. -!*Ifnot,see<http://www.gnu.org/licenses/>. -!*********************************************************************** - - -modulesurface_flux_mod - -usefms -usefmsconstants,only:cp_air,hlv,stefan,rdgas,rvgas,grav,vonkarm -useocean_rough_mod,only:cal_z0_hwrf17,cal_zt_hwrf17,read_ocean_rough_scheme -useconstants_mod,only:vonkarm -usefms_mod,only:mpp_pe,mpp_root_pe,stdout - - -implicitnone -private - -!====publicinterface====================================================== -publicsurface_flux,surface_flux_init -!====endofpublicinterface=============================================== - -interfacesurface_flux -!moduleproceduresurface_flux_0d -moduleproceduresurface_flux_1d -moduleproceduresurface_flux_2d -endinterface - - -!----------------------------------------------------------------------- - -character(len=*),parameter::version='$Id$' -character(len=*),parameter::tagname='$Name$' - -logical::module_is_initialized=.false. - -real,parameter::d622=rdgas/rvgas -real,parameter::d378=1.-d622 -real,parameter::hlars=hlv/rvgas -real,parameter::gcp=grav/cp_air -real,parameter::kappa=rdgas/cp_air -real::d608=d378/d622 -!d608settozeroatinitializationiftheuseof -!virtualtemperaturesisturnedoffinnamelist -character(len=32)::rough_scheme_ocean - -!----namelistwithdefaultvalues------------------------------------------ -logical::no_neg_q=.false. -logical::use_virtual_temp=.true. -logical::alt_gustiness=.false. -logical::old_dtaudv=.false. -logical::use_mixing_ratio=.false. -real::gust_const=1.0 -real::gust_min=0.0 -logical::ncar_ocean_flux=.false. -logical::ncar_ocean_flux_orig=.false. -logical::ncar_ocean_flux_multilevel=.false. -logical::do_iter_monin_obukhov=.false. -logical::use_u10_neutral=.false. -real::bulk_zu=10. -real::bulk_zt=10. -real::bulk_zq=10. -logical::raoult_sat_vap=.false. -logical::do_simple=.false. -integer::niter_monin_obukhov=5 - -namelist/surface_flux_nml/no_neg_q,& -use_virtual_temp,& -alt_gustiness,& -gust_const,& -gust_min,& -old_dtaudv,& -use_mixing_ratio,& -ncar_ocean_flux,& -ncar_ocean_flux_orig,& -ncar_ocean_flux_multilevel,& -bulk_zu,& -bulk_zt,& -bulk_zq,& -raoult_sat_vap,& -do_simple,& -do_iter_monin_obukhov,& -use_u10_neutral,& -niter_monin_obukhov - -contains - - -!============================================================================ -subroutinesurface_flux_1d(& -t_atm,q_atm_in,u_atm,v_atm,p_atm,z_atm,& -p_surf,t_surf,t_ca,q_surf,& -u_surf,v_surf,& -rough_mom,rough_heat,rough_moist,rough_scale,gust,& -flux_t,flux_q,flux_r,flux_u,flux_v,& -cd_m,cd_t,cd_q,& -w_atm,u_star,b_star,q_star,& -thv_atm,thv_surf,& -dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& -dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& -dt,land,seawater,avail) -!----arguments----------------------------------------------------------- -logical,intent(in),dimension(:)::land,&!<Indicateswherelandexists(.TRUE.ifexchangecellisonland -seawater,&!<Indicateswhereliquidoceanwaterexists -!!(.TRUE.ifexchangecellisonliquidoceanwater) -avail -real,intent(in),dimension(:)::t_atm,&!<Airtemplowestatmosphericlevel. -q_atm_in,&!<Mixingratioatlowestatmosphericlevel(kg/kg). -u_atm,&!<Zonalwindvelocityatlowestatmosphericlevel. -v_atm,&!<Meridionalwindvelocityatlowestatmosphericlevel. -p_atm,&!<Pressurelowestatmosphericlevel. -z_atm,&!<Heightlowestatmosphericlevel. -t_ca,&!<Airtempatthecanopy -p_surf,&!<PressureattheEarth'ssurface -t_surf,&!<TempattheEarth'ssurface -u_surf,&!<ZonalwindvelocityattheEarth'ssurface -v_surf,&!<MeridionalwindvelocityattheEarth'ssurface -rough_scale,&!<Scalefactorusedtotopographicroughnesscalculation -gust -real,intent(out),dimension(:)::flux_t,&!<Sensibleheatflux -flux_q,&!<Evaporativewaterflux -flux_r,&!<Radiativeenergyflux -flux_u,&!<Zonalmomentumflux -flux_v,&!<Meridionalmomentumflux -dhdt_surf,&!<Sensibleheatfluxtemperaturesensitivity -dedt_surf,&!<Moisturefluxtemperaturesensitivity -dedq_surf,&!<Moisturefluxhumiditysensitivity -drdt_surf,&!<Radiativeenergyfluxtemperaturesensitivity -dhdt_atm,&!<Derivativeofsensibleheatfluxovertempatthelowestatmoslevel -dedq_atm,&!<Derivativeofwatervaporfluxovertempatthelowestatmoslevel -dtaudu_atm,&!<Derivativeofzonalwindstresswithrespecttothelowestlevel -!!zonalwindspeedoftheatmos -dtaudv_atm,& -w_atm,& -u_star,& -b_star,& -q_star,& -thv_atm,&!Surfaceairtheta_v -thv_surf,&!Surfacetheta_v -cd_m,& -cd_t,&!Heatexchangecoefficient -cd_q -real,intent(inout),dimension(:)::q_surf,&!<MixingratioattheEarth'ssurface(kg/kg) -rough_mom,&!<Momentumroughnesslength -rough_heat,&!<Heatroughnesslength -rough_moist!<Moistureroughnesslength -real,intent(in)::dt!<Timestep(itisnotusedpresently) - -!----localconstants----------------------------------------------------- -!temperatureincrementanditsreciprocalvalueforcomp.ofderivatives -real,parameter::del_temp=0.1,del_temp_inv=1.0/del_temp - -!----localvars---------------------------------------------------------- -real,dimension(size(t_atm(:)))::& -th_atm,tv_atm,&!thv_atmandthv_surfaremovedtooutput -e_sat,e_sat1,q_sat,q_sat1,p_ratio,& -t_surf0,t_surf1,u_dif,v_dif,& -rho_drag,drag_t,drag_m,drag_q,rho,& -q_atm,q_surf0,dw_atmdu,dw_atmdv,w_gust,& -zu,zt,zq - -integer::i,nbad - - -.not.if(module_is_initialized)& -callfms_mpp_error(FATAL,"surface_flux_1d:surface_flux_initisnotcalled") - -!----uselocalvalueofsurftemp---- - -t_surf0=200.!avoidsout-of-boundsineslookup -where(avail) -where(land) -t_surf0=t_ca -elsewhere -t_surf0=t_surf -endwhere -endwhere - -t_surf1=t_surf0+del_temp - -callfms_sat_vapor_pres_escomp(t_surf0,e_sat)!saturationvaporpressure -callfms_sat_vapor_pres_escomp(t_surf1,e_sat1)!perturbedvaporpressure - -if(use_mixing_ratio)then -!surfacemixingratioatsaturation -q_sat=d622*e_sat/(p_surf-e_sat) -q_sat1=d622*e_sat1/(p_surf-e_sat1) -elseif(do_simple)then!rif:(09/02/09) -q_sat=d622*e_sat/p_surf -q_sat1=d622*e_sat1/p_surf -else -!surfacespecifichumidityatsaturation -q_sat=d622*e_sat/(p_surf-d378*e_sat) -q_sat1=d622*e_sat1/(p_surf-d378*e_sat1) -endif - -!initilaizesurfaceairhumidityaccordingtosurfacetype -where(land) -q_surf0=q_surf!landcalculatesit -elsewhere -q_surf0=q_sat!everythingelseassumessaturatedsfchumidity -endwhere - -if(raoult_sat_vap)where(seawater)q_surf0=0.98*q_surf0 - -!checkfornegativeatmospherichumidities -where(avail)q_atm=q_atm_in -if(no_neg_q)then -.and.where(availq_atm_in<0.0)q_atm=0.0 -endif - -!generateinformationneededbymonin_obukhov -where(avail) -p_ratio=(p_surf/p_atm)**kappa - -tv_atm=t_atm*(1.0+d608*q_atm)!virtualtemperature -th_atm=t_atm*p_ratio!potentialT,usingp_surfasrefernce -thv_atm=tv_atm*p_ratio!virt.potentialT,usingp_surfasreference -thv_surf=t_surf0*(1.0+d608*q_surf0)!surfacevirtual(potential)T -!thv_surf=t_surf0!surfacevirtual(potential)T--justfortestingtunofftheq_surf - -u_dif=u_surf-u_atm!velocitycomponentsrelativetosurface -v_dif=v_surf-v_atm -endwhere - -if(alt_gustiness)then -doi=1,size(avail) -.not.if(avail(i))cycle -w_atm(i)=max(sqrt(u_dif(i)**2+v_dif(i)**2),gust_const) -!derivativesofsurfacewindw.r.t.atm.windcomponents -if(w_atm(i)>gust_const)then -dw_atmdu(i)=u_dif(i)/w_atm(i) -dw_atmdv(i)=v_dif(i)/w_atm(i) -else -dw_atmdu(i)=0.0 -dw_atmdv(i)=0.0 -endif -enddo -else -if(gust_min>0.0)then -where(avail) -w_gust=max(gust,gust_min)!minimumgustiness -endwhere -else -where(avail) -w_gust=gust -endwhere -endif - -where(avail) -w_atm=sqrt(u_dif*u_dif+v_dif*v_dif+w_gust*w_gust) -!derivativesofsurfacewindw.r.t.atm.windcomponents -dw_atmdu=u_dif/w_atm -dw_atmdv=v_dif/w_atm -endwhere -endif - -!monin-obukhovsimilaritytheory -callfms_monin_obukhov_mo_drag(thv_atm,thv_surf,z_atm,& -rough_mom,rough_heat,rough_moist,w_atm,& -cd_m,cd_t,cd_q,u_star,b_star,avail) - -!-iteratemonin-obukhovoveroceanwithupdatedroughnesslength -!-thefollowingfields,cd_m,cd_g,cd_q,u_star,b_starwillbeoverrideen -!-onlyeffectivewhentherough_scheme_oceanishwrf17 -if(do_iter_monin_obukhov)then -calliter_monin_obukhov_ocean(& -z_atm,u_atm,v_atm,w_atm,thv_atm,q_atm,& -u_surf,v_surf,thv_surf,q_surf0,& -rough_mom,rough_heat,rough_moist,& -cd_m,cd_t,cd_q,u_star,b_star,avail,seawater) -endif - -!overridewithoceanfluxesfromNCARcalculation -.or..and..not.if((ncar_ocean_fluxncar_ocean_flux_orig)(ncar_ocean_flux_multilevel))then -callncar_ocean_fluxes(w_atm,th_atm,t_surf0,q_atm,q_surf0,z_atm,& -seawater,cd_m,cd_t,cd_q,u_star,b_star) -endif - -if(ncar_ocean_flux_multilevel)then -zu(:)=bulk_zu!usingconstantvaluefromnamelist -zt(:)=bulk_zt!butallowsforvariableheights -zq(:)=bulk_zq!ifneededinthefuture -callncar_ocean_fluxes_multilevel(w_atm,th_atm,t_surf0,q_atm,q_surf0,zu,zt,zq,& -seawater,cd_m,cd_t,cd_q,u_star,b_star) -!atthispointth_atmandq_atmhavebeenupdatedtothe10mvalues -!tobeconsistentwiththetransfercoef.whencomputingfluxes -endif - -where(avail) -!scalemomentumdragcoefficientonorographicroughness -.not.where(seawater) -cd_m=cd_m*(log(z_atm/rough_mom+1)/log(z_atm/rough_scale+1))**2 -endwhere -!surfacelayerdragcoefficients -drag_t=cd_t*w_atm -drag_q=cd_q*w_atm -drag_m=cd_m*w_atm - -!density -rho=p_atm/(rdgas*tv_atm) - -!sensibleheatflux -rho_drag=cp_air*drag_t*rho -flux_t=rho_drag*(t_surf0-th_atm)!fluxofsensibleheat(W/m**2) -dhdt_surf=rho_drag!d(sensibleheatflux)/d(surfacetemperature) -dhdt_atm=-rho_drag*p_ratio!d(sensibleheatflux)/d(atmostemperature) - -!evaporation -rho_drag=drag_q*rho -flux_q=rho_drag*(q_surf0-q_atm)!fluxofwatervapor(Kg/(m**2s)) - -where(land) -dedq_surf=rho_drag -dedt_surf=0 -elsewhere -dedq_surf=0 -dedt_surf=rho_drag*(q_sat1-q_sat)*del_temp_inv -endwhere - -dedq_atm=-rho_drag!d(latentheatflux)/d(atmosphericmixingratio) - -q_star=flux_q/(u_star*rho)!moisturescale -!askChrisandSteveKifwestillwanttokeepthisfordiagnostics -q_surf=q_atm+flux_q/(rho*cd_q*w_atm)!surfacespecifichumidity - -!upwardlongwaveradiation -flux_r=stefan*t_surf**4!(W/m**2) -drdt_surf=4*stefan*t_surf**3!d(upwardlongwave)/d(surfacetemperature) - -!stresses -rho_drag=drag_m*rho -flux_u=rho_drag*u_dif!zonalcomponentofstress(Nt/m**2) -flux_v=rho_drag*v_dif!meridionalcomponentofstress - -elsewhere -!zero-outun-availabledatainoutputonlyfields -flux_t=0.0 -flux_q=0.0 -flux_r=0.0 -flux_u=0.0 -flux_v=0.0 -dhdt_surf=0.0 -dedt_surf=0.0 -dedq_surf=0.0 -drdt_surf=0.0 -dhdt_atm=0.0 -dedq_atm=0.0 -u_star=0.0 -b_star=0.0 -q_star=0.0 -q_surf=0.0 -w_atm=0.0 -thv_atm=0.0 -thv_surf=0.0 -endwhere - -!calculated(stresscomponent)/d(atmoswindcomponent) -dtaudu_atm=0.0 -dtaudv_atm=0.0 -if(old_dtaudv)then -where(avail) -dtaudv_atm=-rho_drag -dtaudu_atm=-rho_drag -endwhere -else -where(avail) -dtaudu_atm=-cd_m*rho*(dw_atmdu*u_dif+w_atm) -dtaudv_atm=-cd_m*rho*(dw_atmdv*v_dif+w_atm) -endwhere -endif - -endsubroutinesurface_flux_1d - - -!####################################################################### -subroutinesurface_flux_0d(& -t_atm_0,q_atm_0,u_atm_0,v_atm_0,p_atm_0,z_atm_0,& -p_surf_0,t_surf_0,t_ca_0,q_surf_0,& -u_surf_0,v_surf_0,& -rough_mom_0,rough_heat_0,rough_moist_0,rough_scale_0,gust_0,& -flux_t_0,flux_q_0,flux_r_0,flux_u_0,flux_v_0,& -cd_m_0,cd_t_0,cd_q_0,& -w_atm_0,u_star_0,b_star_0,q_star_0,& -thv_atm_0,thv_surf_0,& -dhdt_surf_0,dedt_surf_0,dedq_surf_0,drdt_surf_0,& -dhdt_atm_0,dedq_atm_0,dtaudu_atm_0,dtaudv_atm_0,& -dt,land_0,seawater_0,avail_0) - -!----arguments----------------------------------------------------------- -logical,intent(in)::land_0,&!<Indicateswherelandexists(.TRUE.ifexchangecellisonland -seawater_0,&!<Indicateswhereliquidoceanwaterexists -!!(.TRUE.ifexchangecellisonliquidoceanwater) -avail_0!<.TRUE.wheretheexchangecellisactive -real,intent(in)::t_atm_0,&!<Airtemplowestatmosphericlevel. -q_atm_0,&!<Mixingratioatlowestatmosphericlevel(kg/kg). -u_atm_0,&!<Zonalwindvelocityatlowestatmosphericlevel. -v_atm_0,&!<Meridionalwindvelocityatlowestatmosphericlevel. -p_atm_0,&!<Pressurelowestatmosphericlevel. -z_atm_0,&!<Heightlowestatmosphericlevel. -t_ca_0,&!<Airtempatthecanopy -p_surf_0,&!<PressureattheEarth'ssurface -t_surf_0,&!<TempattheEarth'ssurface -u_surf_0,&!<ZonalwindvelocityattheEarth'ssurface -v_surf_0,&!<MeridionalwindvelocityattheEarth'ssurface -rough_mom_0,&!<Momentumroughnesslength -rough_heat_0,&!<Heatroughnesslength -rough_moist_0,&!<Moistureroughnesslength -rough_scale_0,&!<Scalefactorusedtotopographicroughnesscalculation -gust_0!<Gustinessfactor -real,intent(out)::flux_t_0,&!<Sensibleheatflux -flux_q_0,&!<Evaporativewaterflux -flux_r_0,&!<Radiativeenergyflux -flux_u_0,&!<Zonalmomentumflux -flux_v_0,&!<Meridionalmomentumflux -dhdt_surf_0,&!<Sensibleheatfluxtemperaturesensitivity -dedt_surf_0,&!<Moisturefluxtemperaturesensitivity -dedq_surf_0,&!<Moisturefluxhumiditysensitivity -drdt_surf_0,&!<Radiativeenergyfluxtemperaturesensitivity -dhdt_atm_0,&!<Derivativeofsensibleheatfluxovertempatthelowestatmoslevel -dedq_atm_0,&!<Derivativeofwatervaporfluxovertempatthelowestatmoslevel -dtaudu_atm_0,&!<Derivativeofzonalwindstresswithrespecttothelowestlevelzonalwind -!!speedoftheatmos -dtaudv_atm_0,&!<Derivativeofmeridionalwindstresswithrespecttothelowestlevel -!!meridionalwindspeedoftheatmos -w_atm_0,&!<Absolutewindatthelowestatmosphericlevel -u_star_0,&!<Turbulentvelocityscale -b_star_0,&!<Turbulentbuoyantscale -q_star_0,&!<Turbulentmoisturescale -thv_atm_0,&!Surfaceairtheta_v -thv_surf_0,&!Surfacetheta_v -cd_m_0,&!<Momentumexchangecoefficient -cd_t_0,&!Heatexchangecoefficient -cd_q_0!<Moistureexchangecoefficient -real,intent(inout)::q_surf_0!<MixingratioattheEarth'ssurface(kg/kg) -real,intent(in)::dt - -!----localvars---------------------------------------------------------- -logical,dimension(1)::land,seawater,avail -real,dimension(1)::& -t_atm,q_atm,u_atm,v_atm,& -p_atm,z_atm,t_ca,& -p_surf,t_surf,u_surf,v_surf,& -rough_mom,rough_heat,rough_moist,rough_scale,gust -real,dimension(1)::& -flux_t,flux_q,flux_r,flux_u,flux_v,& -dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& -dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& -w_atm,u_star,b_star,q_star,& -thv_atm,thv_surf,& -cd_m,cd_t,cd_q -real,dimension(1)::q_surf - - -avail=.true. - -t_atm(1)=t_atm_0 -q_atm(1)=q_atm_0 -u_atm(1)=u_atm_0 -v_atm(1)=v_atm_0 -p_atm(1)=p_atm_0 -z_atm(1)=z_atm_0 -t_ca(1)=t_ca_0 -p_surf(1)=p_surf_0 -t_surf(1)=t_surf_0 -u_surf(1)=u_surf_0 -v_surf(1)=v_surf_0 -rough_mom(1)=rough_mom_0 -rough_heat(1)=rough_heat_0 -rough_moist(1)=rough_moist_0 -rough_scale(1)=rough_scale_0 -gust(1)=gust_0 -q_surf(1)=q_surf_0 -land(1)=land_0 -seawater(1)=seawater_0 -avail(1)=avail_0 - -callsurface_flux_1d(& -t_atm,q_atm,u_atm,v_atm,p_atm,z_atm,& -p_surf,t_surf,t_ca,q_surf,& -u_surf,v_surf,& -rough_mom,rough_heat,rough_moist,rough_scale,gust,& -flux_t,flux_q,flux_r,flux_u,flux_v,& -cd_m,cd_t,cd_q,& -w_atm,u_star,b_star,q_star,& -thv_atm,thv_surf,& -dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& -dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& -dt,land,seawater,avail) - -flux_t_0=flux_t(1) -flux_q_0=flux_q(1) -flux_r_0=flux_r(1) -flux_u_0=flux_u(1) -flux_v_0=flux_v(1) -dhdt_surf_0=dhdt_surf(1) -dedt_surf_0=dedt_surf(1) -dedq_surf_0=dedq_surf(1) -drdt_surf_0=drdt_surf(1) -dhdt_atm_0=dhdt_atm(1) -dedq_atm_0=dedq_atm(1) -dtaudu_atm_0=dtaudu_atm(1) -dtaudv_atm_0=dtaudv_atm(1) -w_atm_0=w_atm(1) -u_star_0=u_star(1) -b_star_0=b_star(1) -q_star_0=q_star(1) -q_surf_0=q_surf(1) -thv_atm_0=thv_atm(1) -thv_surf_0=thv_surf(1) -cd_m_0=cd_m(1) -cd_t_0=cd_t(1) -cd_q_0=cd_q(1) - -endsubroutinesurface_flux_0d - -subroutinesurface_flux_2d(& -t_atm,q_atm_in,u_atm,v_atm,p_atm,z_atm,& -p_surf,t_surf,t_ca,q_surf,& -u_surf,v_surf,& -rough_mom,rough_heat,rough_moist,rough_scale,gust,& -flux_t,flux_q,flux_r,flux_u,flux_v,& -cd_m,cd_t,cd_q,& -w_atm,u_star,b_star,q_star,& -thv_atm,thv_surf,& -dhdt_surf,dedt_surf,dedq_surf,drdt_surf,& -dhdt_atm,dedq_atm,dtaudu_atm,dtaudv_atm,& -dt,land,seawater,avail) - -!----arguments----------------------------------------------------------- -logical,intent(in),dimension(:,:)::land,&!<Indicateswherelandexists(.TRUE.ifexchangecellisonland -seawater,&!<Indicateswhereliquidoceanwaterexists -!!(.TRUE.ifexchangecellisonliquidoceanwater) -avail -real,intent(in),dimension(:,:)::t_atm,&!<Airtemplowestatmosphericlevel. -q_atm_in,&!<Mixingratioatlowestatmosphericlevel(kg/kg). -u_atm,&!<Zonalwindvelocityatlowestatmosphericlevel. -v_atm,&!<Meridionalwindvelocityatlowestatmosphericlevel. -p_atm,&!<Pressurelowestatmosphericlevel. -z_atm,&!<Heightlowestatmosphericlevel. -t_ca,&!<Airtempatthecanopy -p_surf,&!<PressureattheEarth'ssurface -t_surf,&!<TempattheEarth'ssurface -u_surf,&!<ZonalwindvelocityattheEarth'ssurface -v_surf,&!<MeridionalwindvelocityattheEarth'ssurface -rough_scale,&!<Scalefactorusedtotopographicroughnesscalculation -gust -real,intent(out),dimension(:,:)::flux_t,&!<Sensibleheatflux -flux_q,&!<Evaporativewaterflux -flux_r,&!<Radiativeenergyflux -flux_u,&!<Zonalmomentumflux -flux_v,&!<Meridionalmomentumflux -dhdt_surf,&!<Sensibleheatfluxtemperaturesensitivity -dedt_surf,&!<Moisturefluxtemperaturesensitivity -dedq_surf,&!<Moisturefluxhumiditysensitivity -drdt_surf,&!<Radiativeenergyfluxtemperaturesensitivity -dhdt_atm,&!<Derivativeofsensibleheatfluxovertempatthelowest -!!atmoslevel -dedq_atm,& -dtaudu_atm,& -dtaudv_atm,& -w_atm,& -u_star,& -b_star,& -q_star,& -thv_atm,&!Surfaceairtheta_v -thv_surf,&!Surfacetheta_v -cd_m,& -cd_t,&!Heatexchangecoefficient -cd_q -real,intent(inout),dimension(:,:)::q_surf,&!<MixingratioattheEarth'ssurface(kg/kg) -rough_mom,&!<Momentumroughnesslength -rough_heat,&!<Heatroughnesslength -rough_moist!<Moistureroughnesslength -real,intent(in)::dt!<Timestep(itisnotusedpresently) - -!----localvars----------------------------------------------------------- -integer::j - -doj=1,size(t_atm,2) -callsurface_flux_1d(& -t_atm(:,j),q_atm_in(:,j),u_atm(:,j),v_atm(:,j),p_atm(:,j),z_atm(:,j),& -p_surf(:,j),t_surf(:,j),t_ca(:,j),q_surf(:,j),& -u_surf(:,j),v_surf(:,j),& -rough_mom(:,j),rough_heat(:,j),rough_moist(:,j),rough_scale(:,j),gust(:,j),& -flux_t(:,j),flux_q(:,j),flux_r(:,j),flux_u(:,j),flux_v(:,j),& -cd_m(:,j),cd_t(:,j),cd_q(:,j),& -w_atm(:,j),u_star(:,j),b_star(:,j),q_star(:,j),& -thv_atm(:,j),thv_surf(:,j),& -dhdt_surf(:,j),dedt_surf(:,j),dedq_surf(:,j),drdt_surf(:,j),& -dhdt_atm(:,j),dedq_atm(:,j),dtaudu_atm(:,j),dtaudv_atm(:,j),& -dt,land(:,j),seawater(:,j),avail(:,j)) -enddo -endsubroutinesurface_flux_2d - - -!============================================================================ -!>\briefInitializationofthesurfacefluxmodule--readsthenml. -subroutinesurface_flux_init - -!----localvars---------------------------------------------------------- -integer::unit,ierr,io,outunit - -outunit=stdout() - -!readnamelist -read(fms_mpp_input_nml_file,surface_flux_nml,iostat=io) -ierr=fms_check_nml_error(io,'surface_flux_nml') - -!readrough_scheme_oceanfromocean_roughnamelist -!Notethatweshouldnotusethevariable'rough_scheme'directlyfromocean_rough, -!becausetheintializationofocean_roughislaterthanthesurface_flux_init. -if(do_iter_monin_obukhov)then -callread_ocean_rough_scheme(rough_scheme_ocean) -if(mpp_pe()==mpp_root_pe())then -write(outunit,*)'oceanroughnessscheme:',rough_scheme_ocean -write(outunit,*)'Warning:ifoceanroughnessschemeisnothwrf17,& -iter_monin_obukhov_oceanisnoteffective' -endif -endif - -!writeversionnumber -callfms_write_version_number(version,tagname) - -unit=fms_mpp_stdlog() -if(fms_mpp_pe()==fms_mpp_root_pe())write(unit,nml=surface_flux_nml) - -.not.if(use_virtual_temp)d608=0.0 - -callfms_monin_obukhov_init() - -module_is_initialized=.true. - -endsubroutinesurface_flux_init - - - -!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! -!>\briefOver-oceanfluxesfollowingLargeandYeager(usedinNCARmodels)! -!! -!!Originalcode:GFDL.Climate.Model.Info@noaa.gov<br\> -!!UpdateJul2007:GFDL.Climate.Model.Info@noaa.gov(chandceexchangecoeffbugfix) -!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! -! -subroutinencar_ocean_fluxes(u_del,t,ts,q,qs,z,avail,& -cd,ch,ce,ustar,bstar) -real,intent(in),dimension(:)::u_del,t,ts,q,qs,z -logical,intent(in),dimension(:)::avail -real,intent(inout),dimension(:)::cd,ch,ce,ustar,bstar - -real::cd_n10,ce_n10,ch_n10,cd_n10_rt!neutral10mdragcoefficients -real::cd_rt!fulldragcoefficients@z -real::zeta,x2,x,psi_m,psi_h!stabilityparameters -real::u,u10,tv,tstar,qstar,z0,xx,stab -integer,parameter::n_itts=2 -integeri,j - -if(ncar_ocean_flux_orig)then - -doi=1,size(u_del(:)) -if(avail(i))then -tv=t(i)*(1+0.608*q(i)); -u=max(u_del(i),0.5);!0.5m/sflooronwind(undocumentedNCAR) -u10=u;!firstguess10mwind - -cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6a -cd_n10_rt=sqrt(cd_n10); -ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6b -stab=0.5+sign(0.5,t(i)-ts(i)) -ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6c - -cd(i)=cd_n10;!firstguessforexchangecoeff'satz -ch(i)=ch_n10; -ce(i)=ce_n10; -doj=1,n_itts!Monin-Obukhoviteration -cd_rt=sqrt(cd(i)); -ustar(i)=cd_rt*u;!L-Yeqn.7a -tstar=(ch(i)/cd_rt)*(t(i)-ts(i));!L-Yeqn.7b -qstar=(ce(i)/cd_rt)*(q(i)-qs(i));!L-Yeqn.7c -bstar(i)=grav*(tstar/tv+qstar/(q(i)+1/0.608)); -zeta=vonkarm*bstar(i)*z(i)/(ustar(i)*ustar(i));!L-Yeqn.8a -zeta=sign(min(abs(zeta),10.0),zeta);!undocumentedNCAR -x2=sqrt(abs(1-16*zeta));!L-Yeqn.8b -x2=max(x2,1.0);!undocumentedNCAR -x=sqrt(x2); - -if(zeta>0)then -psi_m=-5*zeta;!L-Yeqn.8c -psi_h=-5*zeta;!L-Yeqn.8c -else -psi_m=log((1+2*x+x2)*(1+x2)/8)-2*(atan(x)-atan(1.0));!L-Yeqn.8d -psi_h=2*log((1+x2)/2);!L-Yeqn.8e -endif - -u10=u/(1+cd_n10_rt*(log(z(i)/10)-psi_m)/vonkarm);!L-Yeqn.9 -cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6aagain -cd_n10_rt=sqrt(cd_n10); -ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6bagain -stab=0.5+sign(0.5,zeta) -ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6cagain -z0=10*exp(-vonkarm/cd_n10_rt);!diagnostic - -xx=(log(z(i)/10)-psi_m)/vonkarm; -cd(i)=cd_n10/(1+cd_n10_rt*xx)**2;!L-Y10a -xx=(log(z(i)/10)-psi_h)/vonkarm; -ch(i)=ch_n10/(1+ch_n10*xx/cd_n10_rt)**2;!10b(thiscodeiswrong) -ce(i)=ce_n10/(1+ce_n10*xx/cd_n10_rt)**2;!10c(thiscodeiswrong) -enddo -endif -enddo - -else - -doi=1,size(u_del(:)) -if(avail(i))then -tv=t(i)*(1+0.608*q(i)); -u=max(u_del(i),0.5);!0.5m/sflooronwind(undocumentedNCAR) -u10=u;!firstguess10mwind - -cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6a -cd_n10_rt=sqrt(cd_n10); -ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6b -stab=0.5+sign(0.5,t(i)-ts(i)) -ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6c - -cd(i)=cd_n10;!firstguessforexchangecoeff'satz -ch(i)=ch_n10; -ce(i)=ce_n10; -doj=1,n_itts!Monin-Obukhoviteration -cd_rt=sqrt(cd(i)); -ustar(i)=cd_rt*u;!L-Yeqn.7a -tstar=(ch(i)/cd_rt)*(t(i)-ts(i));!L-Yeqn.7b -qstar=(ce(i)/cd_rt)*(q(i)-qs(i));!L-Yeqn.7c -bstar(i)=grav*(tstar/tv+qstar/(q(i)+1/0.608)); -zeta=vonkarm*bstar(i)*z(i)/(ustar(i)*ustar(i));!L-Yeqn.8a -zeta=sign(min(abs(zeta),10.0),zeta);!undocumentedNCAR -x2=sqrt(abs(1-16*zeta));!L-Yeqn.8b -x2=max(x2,1.0);!undocumentedNCAR -x=sqrt(x2); - -if(zeta>0)then -psi_m=-5*zeta;!L-Yeqn.8c -psi_h=-5*zeta;!L-Yeqn.8c -else -psi_m=log((1+2*x+x2)*(1+x2)/8)-2*(atan(x)-atan(1.0));!L-Yeqn.8d -psi_h=2*log((1+x2)/2);!L-Yeqn.8e -endif - -u10=u/(1+cd_n10_rt*(log(z(i)/10)-psi_m)/vonkarm);!L-Yeqn.9 -cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3;!L-Yeqn.6aagain -cd_n10_rt=sqrt(cd_n10); -ce_n10=34.6*cd_n10_rt/1e3;!L-Yeqn.6bagain -stab=0.5+sign(0.5,zeta) -ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3;!L-Yeqn.6cagain -z0=10*exp(-vonkarm/cd_n10_rt);!diagnostic - -xx=(log(z(i)/10)-psi_m)/vonkarm; -cd(i)=cd_n10/(1+cd_n10_rt*xx)**2;!L-Y10a -xx=(log(z(i)/10)-psi_h)/vonkarm; -ch(i)=ch_n10/(1+ch_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10b(correctedcode) -ce(i)=ce_n10/(1+ce_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10c(correctedcode) -enddo -endif -enddo - -endif - -endsubroutinencar_ocean_fluxes - -!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! -!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! -! -subroutinencar_ocean_fluxes_multilevel(u_del,t,ts,q,qs,zu,zt,zq,avail,& -cd,ch,ce,ustar,bstar) -real,intent(in),dimension(:)::u_del!windspeedatz=zu -real,intent(inout),dimension(:)::t!atmtempatz=zt,willbeupdatedtozuinoutput -real,intent(in),dimension(:)::ts!surfacetemp(SST) -real,intent(inout),dimension(:)::q!atspec.hum.atz=zq,willbeupdatedtozuinoutput -real,intent(in),dimension(:)::qs!saturationhumidity -real,intent(in),dimension(:)::zu!refheightforwind -real,intent(in),dimension(:)::zt!refheightforatmtemp -real,intent(in),dimension(:)::zq!refheightforatmspec.hum. -logical,intent(in),dimension(:)::avail!ispointoversea -real,intent(out),dimension(:)::cd!momentumtransfercoef. -real,intent(out),dimension(:)::ch!heattransfercoef. -real,intent(out),dimension(:)::ce!evaporationtransfercoef. -real,intent(out),dimension(:)::ustar!turbulentscaleformomentum -real,intent(out),dimension(:)::bstar!turbulentscaleforbuoyancy? - -real::cd_n10,ce_n10,ch_n10,cd_n10_rt!neutral10mdragcoefficients -real::cd_rt!sqrtdragcoefficientsforz=zu -real::zeta_zu,x2_zu,x_zu,psi_m_zu,psi_h_zu!stabilityparametersforz=zu -real::zeta_zt,x2_zt,x_zt,psi_m_zt,psi_h_zt!stabilityparametersforz=zt -real::zeta_zq,x2_zq,x_zq,psi_m_zq,psi_h_zq!stabilityparametersforz=zq -real::u!windspeed>0.5m/s -real::u10!neutralwindat10m -real::t10!temperatureat10m -real::q10!humidityat10m -real::tv!virtualtemperature -real::tstar!turbulentscaleforheat -real::qstar!turbulentscaleforevap/latent -real::xx!cosmetics -real::stab!stabilityflag -integer,parameter::n_itts=2!numberofiterations -integer::i -integer::kiter - -doi=1,size(u_del(:)) -if(avail(i))then -u=max(u_del(i),0.5)!0.5m/sflooronwind(undocumentedNCAR) -u10=u!firstguess10mwind -t10=t(i)!firstguess:T(z=10)=T(zt) -q10=q(i)!firstguess:Q(z=10)=Q(zq) - -cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3!L-Yeqn.6a -cd_n10_rt=sqrt(cd_n10) -ce_n10=34.6*cd_n10_rt/1e3!L-Yeqn.6b -stab=0.5+sign(0.5,t10-ts(i)) -ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3!L-Yeqn.6c - -cd(i)=cd_n10!firstguessforexchangecoeff'satz -ch(i)=ch_n10 -ce(i)=ce_n10 -dokiter=1,n_itts!looptwice -!computevirtualtemperature: -!infirstiterationitwilluseT(zt)andQ(zq) -!inseconditerationitwilluseT(zu)andQ(zu) -tv=t10*(1+0.608*q10) - -cd_rt=sqrt(cd(i)) -ustar(i)=cd_rt*u!L-Yeqn.7a -!samegoesforT(zt),Q(zq)updatedtoT(zu),Q(zu) -!usedintheturbulentscalescomputation -tstar=(ch(i)/cd_rt)*(t10-ts(i))!L-Yeqn.7b -qstar=(ce(i)/cd_rt)*(q10-qs(i))!L-Yeqn.7c -bstar(i)=grav*(tstar/tv+qstar/(q10+1/0.608)) -!stabilityparametersforthedifferentheights -zeta_zu=vonkarm*bstar(i)*zu(i)/(ustar(i)*ustar(i))!L-Yeqn.8a -zeta_zt=vonkarm*bstar(i)*zt(i)/(ustar(i)*ustar(i))!L-Yeqn.8a -zeta_zq=vonkarm*bstar(i)*zq(i)/(ustar(i)*ustar(i))!L-Yeqn.8a -!ensurethatabs(zeta)<10.,lookslikealimiterbutunsureif -!forstableorunstableconditions -zeta_zu=sign(min(abs(zeta_zu),10.0),zeta_zu)!undocumentedNCAR -zeta_zt=sign(min(abs(zeta_zt),10.0),zeta_zt)!undocumentedNCAR -zeta_zq=sign(min(abs(zeta_zq),10.0),zeta_zq)!undocumentedNCAR - -x2_zu=sqrt(abs(1-16*zeta_zu))!L-Yeqn.8b -x2_zt=sqrt(abs(1-16*zeta_zt))!L-Yeqn.8b -x2_zq=sqrt(abs(1-16*zeta_zq))!L-Yeqn.8b - -!anotherlimiter -x2_zu=max(x2_zu,1.0) -x2_zt=max(x2_zt,1.0) -x2_zq=max(x2_zq,1.0) - -x_zu=sqrt(x2_zu) -x_zt=sqrt(x2_zt) -x_zq=sqrt(x2_zq) - -!fluxprofiles -!Idoubtzeta_Xhavedifferentstabilitiesbutlet'sdoitanyway -if(zeta_zu>=0)then -psi_m_zu=-5*zeta_zu!L-Yeqn.8c -psi_h_zu=-5*zeta_zu!L-Yeqn.8c -else -psi_m_zu=log((1+2*x_zu+x2_zu)*(1+x2_zu)/8)-2*(atan(x_zu)-atan(1.0))!L-Yeqn.8d -psi_h_zu=2*log((1+x2_zu)/2)!L-Yeqn.8e -endif - -if(zeta_zt>=0)then -psi_m_zt=-5*zeta_zt!L-Yeqn.8c -psi_h_zt=-5*zeta_zt!L-Yeqn.8c -else -psi_m_zt=log((1+2*x_zt+x2_zt)*(1+x2_zt)/8)-2*(atan(x_zt)-atan(1.0))!L-Yeqn.8d -psi_h_zt=2*log((1+x2_zt)/2)!L-Yeqn.8e -endif - -if(zeta_zq>=0)then -psi_m_zq=-5*zeta_zq!L-Yeqn.8c -psi_h_zq=-5*zeta_zq!L-Yeqn.8c -else -psi_m_zq=log((1+2*x_zq+x2_zq)*(1+x2_zq)/8)-2*(atan(x_zq)-atan(1.0))!L-Yeqn.8d -psi_h_zq=2*log((1+x2_zq)/2)!L-Yeqn.8e -endif - -!attheendofthefirstiteration,computetherealneutralwindat10m -!andupdatetempandspec.hum.towindheight -u10=u/(1+cd_n10_rt*(log(zu(i)/10.)-psi_m_zu)/vonkarm)!L-Yeqn.9a -t10=t(i)-(tstar/vonkarm)*(log(zt(i)/zu(i))+psi_h_zu-psi_h_zt)!L-Yeqn.9b -q10=q(i)-(qstar/vonkarm)*(log(zq(i)/zu(i))+psi_h_zu-psi_h_zq)!L-Yeqn.9c - -!updateneutral10mtransfercoeficients -cd_n10=(2.7/u10+0.142+0.0764*u10)/1e3!L-Yeqn.6aagain -cd_n10_rt=sqrt(cd_n10) -ce_n10=34.6*cd_n10_rt/1e3!L-Yeqn.6bagain -stab=0.5+sign(0.5,zeta_zu)!needtopickazeta -ch_n10=(18.0*stab+32.7*(1-stab))*cd_n10_rt/1e3!L-Yeqn.6cagain - -xx=(log(zu(i)/10.)-psi_m_zu)/vonkarm -cd(i)=cd_n10/(1+cd_n10_rt*xx)**2!L-Y10a -xx=(log(zu(i)/10.)-psi_h_zu)/vonkarm -ch(i)=ch_n10/(1+ch_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10b(correctedcode) -ce(i)=ce_n10/(1+ce_n10*xx/cd_n10_rt)*sqrt(cd(i)/cd_n10)!10c(correctedcode) - -enddo -!updateT,Qforfluxcomputationoutsideofroutine -t(i)=t10 -q(i)=q10 -endif -enddo - -endsubroutinencar_ocean_fluxes_multilevel - -subroutineiter_monin_obukhov_ocean(& -z_atm,u_atm,v_atm,w_atm,thv_atm,q_atm,& -u_surf,v_surf,thv_surf,q_surf0,& -rough_mom,rough_heat,rough_moist,& -cd_m,cd_t,cd_q,u_star,b_star,avail,seawater) - -real,intent(in),dimension(:)::& -z_atm,&!<Heightatthelowestatmosphericlevel -u_atm,&!<Zonalwindvelocityatthelowestatmosphericlevel -v_atm,&!<Meridionalwindvelocityatthelowestatmosphericlevel -w_atm,&!<Absolutewindatthelowestatmosphericlevel -thv_atm,&!<Surfaceairtheta_v -q_atm,&!<Mixingratioatlowestatmosphericlevel(kg/kg) -u_surf,&!<ZonalwindvelocityattheEarth'ssurface -v_surf,&!<MeridionalwindvelocityattheEarth'ssurface -thv_surf,&!<Surfacetheta_v -q_surf0 - -real,intent(inout),dimension(:)::& -rough_mom,&!<Momentumroughnesslength -rough_heat,&!<Heatroughnesslength -rough_moist,&!<Moistureroughnesslength -cd_m,&!<Momentumexchangecoefficient -cd_t,&!<Heatexchangecoefficient -cd_q,&!<Moistureexchangecoefficient -u_star,&!<Turbulentvelocityscale -b_star -logical,intent(in),dimension(:)::& -avail,&!<.TRUE.wheretheexchangecellisactive -seawater - -!----localvars----------------------------------------------------------- -real,dimension(size(z_atm(:)))::& -flux_q,q_star,& -ref_u,ref_v,u10,del_m,del_h,del_q,& -rough_mom1,rough_heat1,rough_moist1 -integeri,j - -doi=1,niter_monin_obukhov -doj=1,size(avail) -if(avail(j).and.seawater(j))then - -!getq_star(notimportantbutrequiredbymo_profile) -flux_q(j)=cd_q(j)*w_atm(j)*(q_surf0(j)-q_atm(j)) -q_star(j)=flux_q(j)/u_star(j) - -!getdel_mfordiagnosingu10 -!thisstepcanbeskippedifusingneutralwindtocalculatez0/zt -callfms_monin_obukhov_mo_profile(10.,2.,z_atm(j),& -rough_mom(j),rough_heat(j),rough_moist(j),& -u_star(j),b_star(j),q_star(j),& -del_m(j),del_h(j),del_q(j)) - -!get10mwindandthenuseittogetz0/zt -if(use_u10_neutral)then -u10(j)=u_star(j)/vonkarm*log(10./rough_mom(j)) -else -u10(j)=0. -ref_u(j)=u_surf(j)+(u_atm(j)-u_surf(j))*del_m(j) -ref_v(j)=v_surf(j)+(v_atm(j)-v_surf(j))*del_m(j) -u10(j)=sqrt(ref_u(j)**2+ref_v(j)**2) -endif - -!canexpandbelowforotherz0/ztoptions -if(rough_scheme_ocean=='hwrf17')then -callcal_z0_hwrf17(u10(j),rough_mom1(j)) -callcal_zt_hwrf17(u10(j),rough_heat1(j)) -rough_mom(j)=rough_mom1(j) -rough_heat(j)=rough_heat1(j) -rough_moist(j)=rough_heat(j) -endif -! -callfms_monin_obukhov_mo_drag(thv_atm(j),thv_surf(j),z_atm(j),& -rough_mom(j),rough_heat(j),rough_moist(j),w_atm(j),& -cd_m(j),cd_t(j),cd_q(j),u_star(j),b_star(j)) -endif -enddo -enddo - -endsubroutineiter_monin_obukhov_ocean - -endmodulesurface_flux_mod - - - - diff --git a/docs/xml/surface_flux_config.xml b/docs/xml/surface_flux_config.xml deleted file mode 100644 index 977710f7..00000000 --- a/docs/xml/surface_flux_config.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - surface_flux_config - Surface Flux Configuration - -surface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables. - -surface_flux_mod is configured via the surface_flux_nml namelist in the input.nml file. The following table are the available namelist variables. -Variable Name Type Default Value Description - -no_neg_q logical .FALSE. If q_atm_in (specific humidity) is negative (because of numerical truncation), then override with 0. - -use_virtual_temp logical .TRUE. If true, use virtual potential temp to calculate the stability of the surface layer. if false, use potential temp. - -alt_gustiness logical .FALSE. An alternative formulation for gustiness calculation. A minimum bound on the wind speed used influx calculations, with the bound equal to gust_const. - -old_dtaudv logical .FALSE. The derivative of surface wind stress w.r.t. the zonal wind and meridional wind are approximated by the same tendency. - -use_mixing_ratio logical .FALSE. An option to provide capability to run the Manabe Climate form of the surface flux (coded for legacy purposes). - -gust_const real 1.0 Constant for alternative gustiness calculation. - -gust_min real 0.0 Minimum gustiness used when alt_gustiness = false. - -ncar_ocean_flux logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004. - -ncar_ocean_flux_orig logical .FALSE. Use NCAR climate model turbulent flux calculation described by Large and Yeager, NCAR Technical Document, 2004, using the original GFDL implementation, which contains a bug in the specification of the exchange coefficient for the sensible heat. This option is available for legacy purposes, and is not recommended for new experiments. - -raoult_sat_vap logical .FALSE. Reduce saturation vapor pressures to account for seawater salinity. - -do_simple logical .FALSE. </table -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                              diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 7d0955c8..0433f6b0 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -461,10 +461,10 @@ module atm_land_ice_flux_exchange_mod !####################################################################### !> \brief module initialization routine. - !! Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and - !! boundary data, and module level variables. The subroutine must be called before calling public subroutines - !! in this module - + !! Subroutine to set up the internal tracer table to keep track of tracers in each model component, + !! register diagnostic fields in diag_manager, initialize module level variables and arrays, and initialize + !! atmos_ice_boundary and land_ice_atmos_boundary fields. The subroutine must be called before calling + !! other subroutines in this module. subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, & partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, & @@ -556,16 +556,16 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !} allocate(block_start(nblocks), block_end(nblocks)) - - !> FROM THE TRACER TABLE FROM FMS TRACER MANAGER, GET THE TOTAL NUMBER OF PROGNOSTIC TRACERS AND - !! SPECIFIC HUMDITY FOR ATMOSPHERE AND LAND + + !> GET THE TOTAL NUMBER TRACERS THAT INCLUDES SPECIFIC HUMIDITY, AND THE NUMBER PROGNOSTIC TRACERS + !! IN ATMOSPHERE AND LAND MODELS SPECIFIED IN THE TRACER_TABLE !{ call fms_tracer_manager_get_number_tracers(MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) call fms_tracer_manager_get_number_tracers(MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) !} !> ASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND - !! SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS + !! SKIP ALL ATMOS TRACERS THAT DO NOT HAVE CORRESPONDING SURFACE TRACERS !{ allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) n = 1 @@ -585,7 +585,6 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !} !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND - !! HELP: WHAT IS GENERIC EXCHANGE? !{ n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_atm2lnd @@ -655,7 +654,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound if (ico2==NO_TRACER) then call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) endif - !} + !} END GET TRACER INDEX OF SPECIFIC HUMIDITY !> INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) @@ -680,19 +679,20 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound X1_GRID_LND = 3; call generate_sfc_xgrid(Land, Ice) if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' - !} + !} END SET UP EXCHANGE GRID !> INITIALIZE SURFACE_FLUX call surface_flux_init() - !----- initialize quantities for global integral package ----- - + !> INITIALLIZE DIAG_INTEGRAL FIELDS FOR GLOBAL INTEGRAL QUANTITIES + !{ !! call diag_integral_field_init ('prec', 'f6.3') call fms_diag_integral_field_init ('evap', 'f6.3') #ifndef use_AM3_physics call fms_diag_integral_field_init ('t_surf', 'f10.3') !miz call fms_diag_integral_field_init ('t_ref', 'f10.3') !miz #endif + !} !> INITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGER ! all fields will be output on the atmospheric grid @@ -731,7 +731,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate(atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0) !} - !> ALLOCATE FIELDS FOR EXTRA FLUXES + !> ALLOCATE ADDITIONAL FIELDS ON EXCHANGE GRID FOR GAS FLUX CALCULATIONS !{ ! Copying initialized gas fluxes from exchange grid to atmosphere_ice boundary call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & @@ -796,11 +796,14 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) nk_ice = size(Ice%part_size,3) endif + !} !> GET DIMENSION OF THE DECOMPOSED LAND DOMAIN + !{ if( Land%pe) then call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) endif + !} !> INITIALIZE CLOCKS FOR PROFILING @@ -830,10 +833,11 @@ end subroutine atm_land_ice_flux_exchange_init !! u_star_atm: friction velocity [m/s] !! b_star_atm: buoyancy scale [m2/s] !! - !! - !! Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data + !! Tracers and and (non-tracer) generic fields are mapped onto the exchange grid to exchange data !! between one component grid to another component grid. Computed fluxes can also be overwritten - !! with calls to data_override. Note, data_override will not override data if the tracers + !! with calls to data_override where data will be overwritten only if the tracers are specified in the + !! tracer_table. + !! !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude !! of surface stress divided by density of air at the surface, !! and `u_star*b_star` is the buoyancy flux at the surface. @@ -881,9 +885,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_ref_u, & ! zonal wind component at z_ref_mom ex_ref_v, & ! meridional wind component at z_ref_mom ex_u10, & !< zonal wind speed at 10m above the surface - ex_ref2, & ! - ex_t_ref, & - ex_qs_ref, & + ex_ref2, & ! quantity on exchange grid + ex_t_ref, & ! temperature at z_ref_heat on exchange grid + ex_qs_ref, & ! quantity on exchange grid ex_qs_ref_cmip, & ! ex_del_m, & ! reference height for interpolation factor for momentum ex_del_h, & ! reference height interpolation factor for heat @@ -892,13 +896,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary real :: rho real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_atm, & !< concentration of tracer at lowest atmospheric level - ex_tr_ref !< concentration of tracer at reference height + ex_tr_atm, & ! concentration of tracer at lowest atmospheric level + ex_tr_ref ! concentration of tracer at reference height real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm - !< temporary array to hold data + ! temporary array to hold data #ifndef _USE_LEGACY_LAND_ real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2)) :: diag_land @@ -908,17 +912,18 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg integer :: k #else - real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land -#endif - real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea + real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land ! temporary array +#endif + real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea ! temporary array real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: tmp_open_sea + ! temporary array for generating ice/ocean mask real :: & zrefm, & ! reference height for computing surface fluxes from Monin-Obukhov similarity theory zrefh ! reference height for computing surface fluxes from Monin-Obukhov similarity theory - logical :: used !< returned value from data_override. if true, data was overwritten - character(32) :: tr_name, tr_units ! tracer name + logical :: used ! returned value from data_override. if true, data was overwritten + character(32) :: tr_name, tr_units ! tracer name and id integer :: tr, n, m ! tracer indices integer :: is, ie, isc, iec, jsc, jec !< domain indices @@ -927,11 +932,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm !< array holding generic, non-tracer fields on the exchange grid - ! [1] check that the module was initialized + !> CHECK MODULE INITIALIZATION if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & 'must call atm_land_ice_flux_exchange_init first', FATAL) - !> Initialize clocks for profiling + !> INITIALIZE CLOCKS FOR PROFILING !{ !Balaji call fms_mpp_clock_begin(cplClock) @@ -1212,7 +1217,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_put_to_xgrid(Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) - !} + !} END MAP ATM FIELDS ONTO THE EXCHANGE GRID ! slm, Mar 20 2002: changed order in whith the data transferred from ice and land ! grids, to fill t_ca first with t_surf over ocean and then with t_ca from @@ -1269,7 +1274,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary sea = 0.0; sea(:,:,1) = 1.0; ex_seawater = 0.0 call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) - !} + !} END GENERATE WET MASK ARRAY !Question: Why is the above ex_seawater a dynamic mask array? ! From its construction it looks like a static array of 1s and 0s ! @@ -1495,7 +1500,6 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end if end do - ! The following statement is a concise version of what's following and worth ! looking into in the future. ! ex_flux_tr(:,itracer) = ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) @@ -1584,7 +1588,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) - !} END DATAOVERRIDE + !} END DATA OVERRIDE ! NB: names of the override fields are constructed using tracer name and certain ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: @@ -1610,7 +1614,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - ! [6.2] put relevant quantities onto atmospheric boundary + !> MAP FIELDS FROM THE EXCHANGE GRID TO THE ATM GRID AND STORE MAPPED DATA IN LAND_ICE_ATMOS_BOUNDARY + !{ call fms_xgrid_get_from_xgrid(& Land_Ice_Atmos_Boundary%t_ocean, 'ATM', ex_t_surf, xmap_sfc, complete=.false.) !joseph call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.) @@ -1659,7 +1664,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) end if #endif + !} END MAP FIELDS FROM THE EXCHANGE GRID TO THE ATM GRID + !> STORE LAND_ICE_ATMOS_BOUNDARY%T AS T**1/4 + !{ call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec ) !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary) private(is,ie) do j = jsc, jec @@ -1667,16 +1675,20 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary Land_Ice_Atmos_Boundary%t(i,j) = Land_Ice_Atmos_Boundary%t(i,j) ** 0.25 enddo enddo + !} + + !> DATA OVERRIDE ATMOSPHERIC QUANTITIES IF FIELD IS SPECIFIED IN DATA_TABLE + !{ !Balaji: fms_data_override calls moved here from coupler_main - call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) - call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) + call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) + call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) - call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) - call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) - call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) - call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) + call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) + call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) + call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) + call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) call fms_data_override('ATM', 'land_frac', Land_Ice_Atmos_Boundary%land_frac, Time) - call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) + call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) do tr=1,n_atm_tr call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr, tr_name) call fms_data_override('ATM', 'dt_'//trim(tr_name), Land_Ice_Atmos_Boundary%dt_tr(:,:,tr), Time) @@ -1689,12 +1701,15 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) + !} ! [6.3] save atmos albedo fix and old albedo (for downward SW flux calculations) ! on exchange grid ! allocate ( ex_old_albedo(n_xgrid_sfc) ) ! ex_old_albedo = ex_albedo + !> INITIALIZE ARRAYS FOR FIXING THE ALBEDO ON THE EXCHANGE GRID + !{ !! STILL NEEDED ???? !! IS THIS CORRECT ?? allocate ( ex_albedo_fix(n_xgrid_sfc) ) @@ -1702,11 +1717,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary allocate ( ex_albedo_nir_dir_fix(n_xgrid_sfc) ) allocate ( ex_albedo_vis_dif_fix(n_xgrid_sfc) ) allocate ( ex_albedo_nir_dif_fix(n_xgrid_sfc) ) - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & - !$OMP ex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix ) & - !$OMP private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, & + !$OMP ex_albedo_vis_dir_fix, ex_albedo_nir_dir_fix, ex_albedo_vis_dif_fix, ex_albedo_nir_dif_fix) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -1718,8 +1731,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_albedo_nir_dif_fix(i) = 0. enddo enddo + !} - + !> MAP ALBEDO FIELDS TO THE EXCHANGE GRID + !{ call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo_fix, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & ex_albedo_vis_dir_fix, xmap_sfc, complete=.false.) @@ -1729,12 +1744,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_albedo_vis_dif_fix, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & ex_albedo_nir_dif_fix, xmap_sfc, complete=.true.) - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & - !$OMP ex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir, & - !$OMP ex_albedo_nir_dir,ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dif_fix,ex_albedo_vis_dif, & - !$OMP ex_albedo_nir_dif_fix,ex_albedo_nir_dif) & - !$OMP private(is,ie) + !} + + !> COMPUTE ALBEDO FIX ON THE EXCHANGE GRID + !{ + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, & + !$OMP ex_albedo, ex_albedo_vis_dir_fix, ex_albedo_vis_dir, ex_albedo_nir_dir, ex_albedo_nir_dir_fix, & + !$OMP ex_albedo_vis_dif_fix, ex_albedo_vis_dif, ex_albedo_nir_dif_fix, ex_albedo_nir_dif) private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -1746,6 +1762,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_albedo_nir_dif_fix(i) = (1.0-ex_albedo_nir_dif(i)) / (1.0-ex_albedo_nir_dif_fix(i)) enddo enddo + !} #ifdef SCM if (do_specified_albedo .and. do_specified_land) then @@ -1757,12 +1774,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif #endif - !======================================================================= - ! [7] diagnostics section - - !------- save static fields first time only ------ + !> SAVE STATIC FIELDS. THE STATIC FIELDS WILL BE SAVED ONLY THE FIRST TIME THIS SUBROUTINE IS CALLED if (first_static) then - !------- land fraction ------ if ( id_land_mask > 0 ) then used = fms_diag_send_data ( id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time ) @@ -1776,22 +1789,24 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary first_static = .false. endif + !} - !------- Atm fields ----------- - do n = 1, Atm%fields%num_bcs !{ - do m = 1, Atm%fields%bc(n)%num_fields !{ - if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then !{ + !> SEND ATMOSPHERE DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT. + !{ + do n = 1, Atm%fields%num_bcs + do m = 1, Atm%fields%bc(n)%num_fields + if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then if (atm%fields%bc(n)%use_10m_wind_speed .and. m .eq. fms_coupler_ind_u10 .and. & - .not. Atm%fields%bc(n)%field(m)%override) then !{ + .not. Atm%fields%bc(n)%field(m)%override) then call fms_xgrid_get_from_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc) - endif !} - if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then !{ + endif + if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then used = fms_diag_send_data(Atm%fields%bc(n)%field(m)%id_diag, Atm%fields%bc(n)%field(m)%values, Time ) - endif !} - endif !} - enddo !} m - enddo !} n + endif + endif + enddo + enddo !------- drag coeff moisture ----------- if ( id_wind > 0 ) then @@ -1901,7 +1916,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if ( id_t_ocean > 0 ) then used = fms_diag_send_data ( id_t_ocean, Land_Ice_Atmos_Boundary%t_ocean, Time ) endif - !----------------------------------------------------------------------- + !} END SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT + + !--------- diagnostics for fields at reference level --------- !cjg ! if ( id_t_ref > 0 .or. id_rh_ref > 0 .or. & @@ -1911,20 +1928,18 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! id_rh_ref_cmip >0 .or. & ! id_u_ref_land > 0 .or. id_v_ref_land > 0 ) then + !> COMPUTE DIAGNOSTICS AT REFERENCE LEVELS + !{ zrefm = z_ref_mom zrefh = z_ref_heat ! ---- optimize calculation ---- !cjg if ( id_t_ref <= 0 ) zrefh = zrefm - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm, & - !$OMP ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star, & - !$OMP ex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q, & - !$OMP ex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land, & - !$OMP ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & - !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, & - !$OMP ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum, & - !$OMP ex_flux_tr,ex_t_atm,ex_p_surf) & - !$OMP private(is,ie,rho) + + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, zrefm,zrefh, ex_z_atm, & + !$OMP ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_u_star, ex_b_star, ex_q_star, ex_del_m, ex_del_h, ex_del_q,& + !$OMP ex_tr_ref, n_exch_tr, id_tr_ref, id_tr_ref_land, ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & + !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, ex_avail, ex_ref, ex_tr_surf, ex_tr_atm, isphum, & + !$OMP ex_flux_tr, ex_t_atm, ex_p_surf) private(is,ie,rho) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -1958,6 +1973,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end if enddo enddo + !} COMPUTE DIAGNOSTICS AT REFERENCE LEVELS + + !> SEND LAND AND ATMOSPHERIC FIELDS TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT + !{ call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_ref, 'ATM', ex_ref, xmap_sfc) ! cjg if(id_q_ref > 0) then used = fms_diag_send_data(id_q_ref,Land_Ice_Atmos_Boundary%q_ref,Time) @@ -1995,11 +2014,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary #endif endif end do + !} END SEND LAND AND ATMOSPHERIC FIELDS TO DIAG_MANAGER - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail, & - !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, & - !$OMP ex_ref,ex_qs_ref_cmip,ex_ref2 ) & - !$OMP private(is,ie) + !> COMPUTE EX_T_REF, EX_REF2, AND EX_REF + !{ + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_t_ref, ex_avail, & + !$OMP ex_rough_heat, ex_t_ca, ex_t_atm, ex_p_surf, ex_qs_ref, ex_del_h, ex_ref, ex_qs_ref_cmip, ex_ref2) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -2020,7 +2041,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif enddo enddo + !} + !> MAP FIELDS FROM THE EXCHANGE GRID TO THE ATMOSPHERE OR LAND GRID AND + !! SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT + !{ call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ref, 'ATM', ex_t_ref, xmap_sfc) ! cjg if ( id_rh_ref_land > 0 ) then @@ -2166,12 +2191,14 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary (log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2, xmap_sfc) used = fms_diag_send_data(id_rough_scale, diag_atm, Time) endif + !} END SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT - !Balaji + !> END CLOCK FOR PROFILING + !{ + !Balaji call fms_mpp_clock_end(sfcClock) call fms_mpp_clock_end(cplClock) - - !======================================================================= + !} end subroutine sfc_boundary_layer @@ -2243,17 +2270,17 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo integer :: tr, n, m ! tracer indices integer :: is, ie, l, i, n_gex ! do loop indices - !> start clocks for profiling + !> START CLOCKS FOR PROFILING !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmDnClock) !} - !> initialize reusable flag. data_override will return ov=.true. if data was overwritten + !> INITIALIZE FLAG FOR OVERRIDE SPECIFICATIONS. DATA_OVERRIDE WIL RETURN TRUE IF DATA WAS OVERWRITTEN ov = .false. - !> update Atm fields with override values. Note, data_override will only overwrite - !! data if the field is specified in the data_table + !> UPDATE ATM FIELDS WITH OVERRIDE VALUES. DATA_OVERRIDE WILL ONLY OVERWRITE FIELDS IF THE FIELD IS SPECIFIED IN THE DATA_TABLE + !{ !Balaji: fms_data_override calls moved here from coupler_main call fms_data_override('ATM', 'flux_sw', Atm%flux_sw, Time) call fms_data_override('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) @@ -2267,10 +2294,11 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call fms_data_override('ATM', 'flux_sw_vis_dif', Atm%flux_sw_vis_dif, Time) call fms_data_override('ATM', 'flux_lw', Atm%flux_lw, Time) call fms_data_override('ATM', 'lprec', Atm%lprec, Time) + !} - !> scale liquid precipitation by frac_precip if scale_precip_2d is true - !! scale_precip_2d is set during module initialization call to atm_land_ice_flux_exchange_init - !! frac_precip is set with data_override + !> SCALE LIQUID PRECIPPITATION BY FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE + !! SCALE_PRECIP_2D IS SET DURING MODULE INITIALIZATION. FRAC_PRECIP IS SET WITH DATA_OVERRIDE + !{ if (scale_precip_2d) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) @@ -2280,10 +2308,12 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo enddo endif + !} - !> partition preciptation to liquid precipitation and frozen precipitation if partition_fprec_from_lprec = .true. - !! partiion_fprec_from_lprec is set as part of module initialization call in atm_land_ice_flux_exchange - !! Note, the partitioning only occurs on mpi ranks for atmosphere + !> PARTITION PRECIPITATION TO LIQUID PRECIPITATION AND FROZEN PRECIPITATION IF PARTITION_FPREC_FROM_LPREC = .TRUE. + !! PARTITION_FPREC_FROM_LPREC IS SET DURING MODULE INITIALIZATION + !! NOTE THE PARTITIONING ONLY OCCURS ON MPI RANKS FOR ATMOSPHERE + !{ if (partition_fprec_from_lprec .and. Atm%pe) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) do j=js_atm,je_atm @@ -2295,8 +2325,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo enddo endif + !} - !> update more Atm fields with override values. Note, data_override will only overwrite + !> UPDATE ATM FIELDS WITH OVERRIDE VALUES. DATA_OVERRIDE WILL ONLY OVERWRITE FIELDS IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) @@ -2310,7 +2341,7 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo !} - !> Map atmosphere quantities onto the exchange grid in order to exchange quantities with other components + !> MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID !{ !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_sw_dir, & @@ -2372,9 +2403,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call fms_xgrid_put_to_xgrid(Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & complete=.true.) - !} end map atmospheric quantities on exchange grid + !} END MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID - !> update u and v stress on the exchange grid + !> UPDATE U AND V STRESS ON EXCHANGE GRID !{ ! MOD update stresses using atmos delta's but derivatives on exchange grid !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_u, ex_delta_u, & @@ -2387,9 +2418,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ex_flux_v(i) = ex_flux_v(i) + ex_delta_v(i)*ex_dtaudv_atm(i) enddo enddo - !} end update u and v stress on the exchange grid + !} END UPDATE U AND V STRESS ON EXCHANGE GRID - !> fix shortwave radiation flux of visible light on the exchange grid + !> FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT ON THE EXCHANGE GRID !{ !---- adjust sw flux for albedo variations on exch grid ---- !---- adjust 4 categories (vis/nir dir/dif) separately ---- @@ -2434,11 +2465,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo deallocate ( ex_albedo_nir_dir_fix ) deallocate ( ex_albedo_vis_dif_fix ) deallocate ( ex_albedo_nir_dif_fix ) + !} END FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT ON THE EXCHANGE GRID - !} end fix short wavelength radiation flux on the exchange grid - - - !> Adjust fluxes for implicit dependence (TOM HELP, this sounds awkward) + !> ADJUST FLUXES FOR IMPLICIT DEPENDENCE !{ do tr = 1,n_exch_tr n = tr_table(tr)%atm @@ -2518,10 +2547,10 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo endif enddo enddo + !} END ADJUST FLUXES FOR IMPLICIT DEPENDENCE - !} end adjust fluxes for implicit dependence - - !> map fluxes from the exchange grid to the land grid + !> MAP FLUXES FROM EXCHANGE GRID TO THE LAND GRID + !{ call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) @@ -2620,9 +2649,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo endif enddo - !} map fluxes from the exchange grid to the land grid + !} END MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID - !> override land fluxes only if the field is specified in the data_table + !> OVERRIDE LAND FLUXES ONLY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ ! current time is Time: is that ok? not available in land_data_type !Balaji: data_override calls moved here from coupler_main @@ -2648,9 +2677,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) #endif enddo - !} end override land fluxes + !} END OVERRIDE LAND FLUXES - !> Map ice fields from the exchange grid to the Ice grid + !> MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID !{ call fms_xgrid_get_from_xgrid (Ice_boundary%t_flux, 'OCN', ex_flux_t, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%q_flux, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) @@ -2707,9 +2736,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo endif enddo - !} end map ice fields from the exchange grid to the ice grid + !} END MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID - !> override Ice fields only if the field is specified in the data table + !> OVERRIDE ICE FIELDS ONLY IF THE FIELD IS SPECIFIED IN THE DATA TABLE !{ !Balaji: data_override calls moved here from coupler_main call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) @@ -2740,9 +2769,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call fms_data_override('ICE', 'p', Ice_boundary%p, Time) call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) - !} end override Ice fields + !} END OVERRIDE ICE FIELDS - !> Compute stock changes between components + !> COMPOTE STOCK CHANGES BETWEEN COMPONENTS !{ ! Atm -> Lnd (precip) call FMS_XGRID_STOCK_MOVE_( & @@ -2799,13 +2828,12 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') - !} end copute stock exchange between components + !} END COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) - !> send data to diag_manager buffer where if the field is specified in the diag_table, - !! data will be outputted at the end of the simulation + !> SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT !{ !------- zonal wind stress ----------- used = fms_diag_send_data ( id_u_flux, Atmos_boundary%u_flux, Time ) @@ -2814,12 +2842,14 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo !------- meridional wind stress ----------- used = fms_diag_send_data ( id_v_flux, Atmos_boundary%v_flux, Time ) used = fms_diag_send_data ( id_tauv, -Atmos_boundary%v_flux, Time ) - !} end send data to diag_mana ger + !} END SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT - !> end clock for profiling + !> END CLOCK FOR PROFILING + !{ !Balaji call fms_mpp_clock_end(fluxAtmDnClock) call fms_mpp_clock_end(cplClock) + !} end subroutine flux_down_from_atmos @@ -2836,18 +2866,21 @@ subroutine generate_sfc_xgrid(Land, Ice) integer :: isc, iec, jsc, jec !compute domain indices !Balaji + !> START CLOCKS FOR PROFILING + !{ call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(regenClock) + !} call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) - !> update fractional areas of ice and land on the exchange grid + !> UPDATE XMAP_SFC%FRAC_AREA THAT HOLDS THE FRACTION AMOUNT OF EACH COMPONENT GRID CELL THAT ARE ICE OR LAND !{ call fms_xgrid_set_frac_area(Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) call FMS_XGRID_SET_FRAC_AREA_(Land%tile_size, 'LND', xmap_sfc) !} - !> reset the number of exchange grid cells saved in the module + !> RESET THE NUMBER OF EXCHANGE GRID CELLS AND OPENMP BLOCKS !{ n_xgrid_sfc = max(fms_xgrid_count(xmap_sfc),1) if(n_xgrid_sfc .ge. nblocks) then @@ -2860,27 +2893,25 @@ subroutine generate_sfc_xgrid(Land, Ice) endif !} + !> END CLOCKS FOR PROFILING !Balaji call fms_mpp_clock_end(regenClock) call fms_mpp_clock_end(cplClock) + !} end subroutine generate_sfc_xgrid !####################################################################### - !> \brief Corrects the fluxes for consistency with the new surface temperatures in land - !! and ice models. + !> \brief Corrects the fluxes for consistency with the new surface temperatures in land and ice models. !! - !! Corrects the fluxes for consistency with the new surface temperatures in land - !! and ice models. Final increments for temperature and specific humidity in the + !! Final increments for temperature and specific humidity in the !! lowest atmospheric layer are computed and returned to the atmospheric model !! so that it can finalize the increments in the rest of the atmosphere. !! !! The following elements of the land_ice_atmos_boundary_type are computed: !!
                                                                                                                                                                                                                                                                                                              -  !!        dt_t  = temperature change at the lowest
                                                                                                                                                                                                                                                                                                              -  !!                 atmospheric level (deg k)
                                                                                                                                                                                                                                                                                                              -  !!        dt_q  = specific humidity change at the lowest
                                                                                                                                                                                                                                                                                                              -  !!                 atmospheric level (kg/kg)
                                                                                                                                                                                                                                                                                                              +  !!        dt_t  = temperature change at the lowest atmospheric level (deg k)
                                                                                                                                                                                                                                                                                                              +  !!        dt_q  = specific humidity change at the lowest atmospheric level (kg/kg)
                                                                                                                                                                                                                                                                                                                 !! 
                                                                                                                                                                                                                                                                                                              subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary ) @@ -2900,35 +2931,35 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou real, dimension(n_xgrid_sfc) :: & ex_t_surf_new, & ! new surface temperature on the exchange grid - ex_dt_t_surf, & ! - ex_delta_t_n, & - ex_t_ca_new, & - ex_dt_t_ca, & - ex_icetemp, & - ex_land_frac, & - ex_temp + ex_dt_t_surf, & ! changes in radiative temperature on the exchange grid + ex_delta_t_n, & ! related to temperature change at the lowest atmospheric level on the exchange grid + ex_t_ca_new, & ! related to canopy air temperature on the exchange grid + ex_dt_t_ca, & ! changes in canopy air temperature on the exchange grid + ex_icetemp, & ! used to compute surface temperature for open ocean, land, and sea-ice on exchange grid + ex_land_frac, & ! land mask on the exchange grid + ex_temp ! used to compute surface temperatuer for open ocean, land, and sea-ice on exchange grid real, dimension(n_xgrid_sfc,n_exch_tr) :: & ex_tr_surf_new, & ! updated tracer values at the surface ex_dt_tr_surf, & ! tendency of tracers at the surface - ex_delta_tr_n + ex_delta_tr_n ! used to update tracer tendencies in the atmosphere ! jgj: added for co2_surf diagnostic, where co2_surf_dvmr is the updated CO2 tracer values at the surface (dry vmr) real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: & - diag_atm, & - evap_atm, & - frac_atm + diag_atm, & ! temporary array + evap_atm, & ! temporary array + frac_atm !temporary array #ifndef _USE_LEGACY_LAND_ - real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land + real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land #else real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: & - data_lnd, diag_land + data_lnd, diag_land ! temporary arrays #endif - real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice - real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid + real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice + real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid ! temporary array logical :: used integer :: tr ! tracer index @@ -2936,12 +2967,14 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou integer :: n, i, m, ier integer :: is, ie, l + !> START CLOCKS FOR PROFILING + !{ !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmUpClock) + !} - !> override Ice and Land temperature fields. Note, data_override will only overwrite data if - !! the field is specified in the data_table + !> OVERRIDE ICE AND LAND TEMPERATURE FIELDS ONLY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ !Balaji: data_override calls moved here from coupler_main call fms_data_override('ICE', 't_surf', Ice%t_surf, Time) @@ -3084,9 +3117,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou #endif !} END MAP MEAN QUANITTIES FROM THE EXCHANGE GRID TO THE ATMOSPHERE GRID - - !> SEND DATA TO DIAG_MANAGER BUFFER WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE - !! DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUN + !> MAP DATA FROM THE EXCHANGE GRID TO THE COMPONENT GRID AND SEND DATA TO DIAG_MANAGER BUFFER + !! WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE, DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUN !{ #ifdef use_AM3_physics if (id_t_surf > 0) then @@ -3291,6 +3323,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ! need this to avoid diag issues with tiling changes in update_land_slow call dump_tile_diag_fields(Time) #endif + !} END SEND DATA TO DIAG_MANAGER_BUFFER !> COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS @@ -3352,14 +3385,16 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') !} END COMPUTE STOCK EXCHANGE + !> END CLOCK FOR PROFILING + !{ !Balaji call fms_mpp_clock_end(fluxAtmUpClock) call fms_mpp_clock_end(cplClock) - end subroutine flux_up_to_atmos - + !} + end subroutine flux_up_to_atmos - !> Internal subroutine to deallocate exchange fields + !> \brief Internal subroutine to deallocate exchange fields subroutine flux_ex_arrays_dealloc() implicit none @@ -3434,7 +3469,7 @@ subroutine flux_ex_arrays_dealloc() end subroutine flux_ex_arrays_dealloc - !> Computes deposition gas fluxes between atmosphere and ocean + !> \brief Computes deposition gas fluxes between atmosphere and ocean subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) implicit none @@ -4120,10 +4155,10 @@ subroutine divide_by_area(data, area) real, intent(inout) :: data(:,:) real, intent(in) :: area(:,:) - !> check the size of data and area are the same + !> CHECK THE SHAPE OF THE DATA AND AREA ARE THE SAME if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) return - !> divide data in each grid cell by grid cell area + !> DIVIDE DATA IN EACH GRID CELL BY THE GRID CELL AREA where(area /= 0.0) data = data / area end where @@ -4144,20 +4179,20 @@ subroutine send_ice_mask_sic(Time) if(id_ice_mask > 0 .or. id_sic > 0) then - !> initialize ice_frac + !> INITIALIZE ICE_FRAC ice_frac = 1. ice_frac(:,:,1) = 0. ex_ice_frac = 0. - !> remap ice_mask (fractional amount of sea ice) to the atm grid + !> REMAP ICE_MASK (FRACTIONAL AMOUNT OF SEA ICE) TO THE ATM GRID call fms_xgrid_put_to_xgrid(ice_frac, 'OCN', ex_ice_frac, xmap_sfc) call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_ice_frac, xmap_sfc) - !> send ice_mask to diag_manager buffer + !> SEND ICE_MASK TO THE DIAG_MANAGER BUFFER if(id_ice_mask > 0) used = fms_diag_send_data(id_ice_mask, diag_atm, Time) - !> compute sea ice area fraction for cells on atm grid that are over ocean - !! normalize sea ice fraction over entire atmos grid box by the fraction of atmos grid box that is ocean + !> COMPUTE SEA ICE AREA FRACTION FOR CELLS ON ATM GRID THAT ARE OVER OCEAN + !! NORMALIZE SEA ICE FRACTION OVER ENTIRE ATMOS GRID BOX BY THE FRACTION OF ATMOS GRID BOX THAT IS OCEAN if(id_sic > 0) then ice_frac = 1. ex_ice_frac = 0. From 1105e10c49a74f444cfee1d676ad1c1cf011ceba Mon Sep 17 00:00:00 2001 From: mlee03 Date: Mon, 23 Mar 2026 10:09:56 -0400 Subject: [PATCH 23/31] good enough --- full/atm_land_ice_flux_exchange.F90 | 1149 ++++++++++++++------------- 1 file changed, 586 insertions(+), 563 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 0433f6b0..ea3054cf 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -20,6 +20,8 @@ !> \file !> \brief Performs flux calculations and exchange grid operations for atmosphere, land and ice +!! PUT HOW DATA IS EXCHANGED BETWEEN GRID VIA THE EXCHANGE GRID + #undef FMS_DATA_OVERRIDE_ #undef FMS_XGRID_PUT_TO_XGRID_ #undef FMS_XGRID_STOCK_MOVE_ @@ -50,18 +52,18 @@ module atm_land_ice_flux_exchange_mod atm_stock_pe, & ! subroutine to compute the total stock in the atmospheric model atmos_data_type, & ! derived type containing fields needed for flux exchange between components land_ice_atmos_boundary_type ! derived type containing quantities going from land and ice to atmos - + ! FMSCoupler/full use atmos_ocean_dep_fluxes_calc_mod, only: & - atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes - + atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes + ! FMSCoupler/full use atmos_ocean_fluxes_calc_mod, only: & atmos_ocean_fluxes_calc ! subroutine to computes gas fluxes for atmosphere and ocean - - ! FMS/coupler + + ! FMS/coupler use atmos_ocean_fluxes_mod, only: & - atmos_ocean_fluxes_init ! subroutine initializes gas fluxes in coupler derived types + atmos_ocean_fluxes_init ! subroutine initializes gas fluxes in coupler derived types ! am5_phys use atmos_tracer_driver_mod, only: & @@ -79,7 +81,7 @@ module atm_land_ice_flux_exchange_mod ! Land_lad2 use land_model_mod, only: & atmos_land_boundary_type, & ! derived type to pass information from atmosphere to land - land_data_type, & ! derived type to pass information from land to atmosphere + land_data_type, & ! derived type to pass information from land to atmosphere lnd_stock_pe ! subroutine to compute stocks of conservative land quantities ! If not _USE_LEGACY_LAND_, use land_lad2/land_tile_diag_mod instead of FMS/diag_manager @@ -90,13 +92,13 @@ module atm_land_ice_flux_exchange_mod send_tile_data, & ! subroutine to save data in buffer within the land model for the registered field set_default_diag_filter ! subroutine to set default tile diagnostic selector #endif - + ! MOM6 use ocean_model_mod, only: & ice_ocean_boundary_type, & !derived type containing the forcings ocean_model_init_sfc, & ! subroutine to extracts surface properties from the ocean's internal state ocean_model_data_get, & ! interface procedure to extract scalar fields from ocean surface or ocean_public type - ocean_model_flux_init, & ! subroutine to initializes the properties from air-sea fluxes + ocean_model_flux_init, & ! subroutine to initializes the properties from air-sea fluxes ocean_public_type, & ! derived type used in FMScoupler to communicate with other model components ocean_state_type, & ! derived type containing the state of the ocean Ocean_stock_pe ! subroutine to computes integrated stocks of heat, water, etc. for conservation checks @@ -104,7 +106,7 @@ module atm_land_ice_flux_exchange_mod ! FMSCoupler/shared use surface_flux_mod, only: & surface_flux, & ! subroutine to compute fluxes on exchange grids - surface_flux_init ! subroutine to initialize surface_flux_mod + surface_flux_init ! subroutine to initialize surface_flux_mod ! am5_phys #ifndef use_AM3_physics @@ -119,7 +121,7 @@ module atm_land_ice_flux_exchange_mod !function returns True of tracer sedimentation flux > 0 at bottom of the atmosphere get_atmos_tracer_surf_setl_flux, & !subroutine to retrieve tracer sedimentation flux at bottom of the atmosphere - atmos_tracer_driver_gather_data_down + atmos_tracer_driver_gather_data_down #ifndef _USE_LEGACY_LAND_ use land_model_mod, only: & send_global_land_diag ! function to save land model field on unstructured grid for global integral @@ -127,7 +129,7 @@ module atm_land_ice_flux_exchange_mod #endif ! option to override various surface boundary conditions for SCM -#ifdef SCM +#ifdef SCM use scm_forc_mod, only: & ALBEDO_OBS, & do_specified_albedo, & @@ -141,7 +143,7 @@ module atm_land_ice_flux_exchange_mod TSKIN #endif - use FMS ! mainly for calls to diag_manager, data_override, and exchange + use FMS ! mainly for calls to diag_manager, data_override, and exchange use FMSconstants, only: & cp_air, & ! RDGAS/KAPPA , specific heat capacity of dry air at constant pressure [J/kg/deg] CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] @@ -158,7 +160,7 @@ module atm_land_ice_flux_exchange_mod WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [amu] WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [amu] - + implicit none include 'netcdf.inc' private @@ -177,186 +179,189 @@ module atm_land_ice_flux_exchange_mod interface put_logical_to_real module procedure put_logical_to_real_sg module procedure put_logical_to_real_ug - end interface - - character(len=128) :: version = '$Id$' !< coupler version number - character(len=128) :: tag = '$Name$' !< coupler tag - - type(FmsXgridXmap_type), save :: xmap_sfc !< holds exchange grid between different components - - integer :: n_xgrid_sfc=0 !< total number of exchange grid cells - - character(len=4), parameter :: mod_name = 'flux' !< module name used to register diag_manager + end interface + + character(len=128) :: version = '$Id$' !< coupler version number that is set automatically during compile time + character(len=128) :: tag = '$Name$' !< coupler tag that is set automatically during compile time + + !> FmsXgridXmap_type that holds the exchange grid between different componentes + type(FmsXgridXmap_type), save :: xmap_sfc + + !> total number of exchange grid cells + integer :: n_xgrid_sfc=0 + + !> module name, used when registering variable for diag_manager + character(len=4), parameter :: mod_name = 'flux' integer :: & - id_b_star, & !< diag_manager registered field id for bouyancy scale - id_del_h, & !< diag_manager registered field id ref height interp factor for heat - id_del_m, & !< diag_manager registered field id ref height for interp factor for momentum - id_del_q, & !< diag_manager registered field id ref height interp factor for moisture - id_drag_heat, & !< diag_manager registered field id drag coefficient for heat - id_drag_moist, & !< diag_manager registered field id drag coefficient for moisture - id_drag_mom, & !< diag_manager registered field id drag coefficient for momentum - id_gust, & !< diag_manager registered field id gust scale - id_hussLut_land, & !< diag_manager registered field id near-surface specific humidity on land use tile - id_ice_mask, & !< diag_manager registered field id fractional amount of land - id_land_mask, & !< diag_manager registered field id fractional amount of sea ice - id_p_atm, & !< diag_manager registered field id pressure at lowest atmospheric level - id_q_flux, & !< diag_manager registered field id evaporation rate - id_q_flux_land, & !< diag_manager registered field id evaporation rate over land - id_q_ref, & !< diag_manager registered field id specific humidity at z_ref_heat - id_q_ref_land, & !< diag_manager registered field id specific humidity at z_ref_heat over land - id_q_star, & !< diag_manager registered field id moisture scale - id_r_flux, & !< diag_manager registered field id net (down-up) longwave flux - id_rh_ref, & !< diag_manager registered field id relative humidity at z_ref_heat - id_rh_ref_cmip, & !< diag_manager registered field id relative humidity at z_ref_heat - id_rh_ref_land, & !< diag_manager registered field id relative humidity at z_ref_heat over land - id_rough_heat, & !< diag_manager registered field id surface roughness for heat - id_rough_moist, & !< diag_manager registered field id surface roughness for moisture - id_rough_mom, & !< diag_manager registered field id surface roughness for momentum - id_rough_scale, & !< diag_manager registered field id topographic scaling fractor for momentum drag - id_slp, & !< diag_manager registered field id sea level pressure - id_t_atm, & !< diag_manager registered field id temperature at lowest atmospheric level - id_t_ca, & !< diag_manager registered field id canopy air temperature - id_t_flux, & !< diag_manager registered field id sensible heat flux - id_t_ocean, & !< diag_manager registered field id surface temperature from ocean output - id_t_ref, & !< diag_manager registered field id temperature at z_ref_heat - id_t_ref_land, & !< diag_manager registered field id temperature at z_ref_heat over land - id_t_surf, & !< diag_manager registered field id surface temperature - id_tasLut_land, & !< diag_manager registered field id near-surface air temperature z_ref_heat - !! above displacement height on land-use tile - id_thv_atm, & !< diag_manager registered field id surface air virtual potential temperature - id_thv_surf, & !< diag_manager registered field id surface virtual potential temperature - id_u_atm, & !< diag_manager registered field id u wind component at lowest atmospheric level - id_u_flux, & !< diag_manager registered field id zonal wind stress - id_u_ref, & !< diag_manager registered field id zonal wind component at z_ref_mom - id_u_ref_land, & !< diag_manager registered field id zonal wind component at z_ref_mom over land - id_u_star, & ! diag_manager registered field id friction velocity - id_v_atm, & !< diag_manager registered field id v wind component at lowest atmospheric level - id_v_flux, & !< diag_manager registered field id meridional wind stress - id_v_ref, & !< diag_manager registered field id meridional wind component at z_ref_mom - id_v_ref_land, & !< diag_manager registered field id meridional wind component at z_ref_mom over land - id_wind, & !< diag_manager registered field id wind speed for flux calculations - id_wind_ref, & !< diag_manager registered field id absolute value of wind at z_ref_mom - id_z_atm, & !< diag_manager registered field id height of lowest atmospheric level - id_co2_atm_dvmr, & !< diag_manager registered field id co2 dry volume mixing ratio at lowest atmospheric level - id_co2_surf_dvmr & !< diag_manager registered field id co2 dry volume mixing ratio at surface + id_b_star, & !< diag_manager register field id for bouyancy scale + id_del_h, & !< diag_manager register field id for ref height interp factor for heat + id_del_m, & !< diag_manager register field id for ref height for interp factor for momentum + id_del_q, & ! diag_manager register field id for ref height interp factor for moisture + id_drag_heat, & !< diag_manager register field id for drag coefficient for heat + id_drag_moist, & !< diag_manager register field id for drag coefficient for moisture + id_drag_mom, & !< diag_manager register field id for drag coefficient for momentum + id_gust, & !< diag_manager register field id for gust scale + id_hussLut_land, & ! If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer logical :: first_static = .true. - !< If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer - logical :: do_init = .true. !< true if atm_land_ice_flux_exchnge_init has been called + logical :: do_init = .true. !< true if atm_land_ice_flux_exchnge_init has been called integer :: remap_method = 1 !< first or second order conservative remapping onto exchange grid - real, parameter :: d622 = rdgas/rvgas + real, parameter :: d622 = rdgas/rvgas real, parameter :: d378 = 1.0-d622 real, parameter :: d608 = d378/d622 real, parameter :: tfreeze = 273.15 !< freezing point of water at 1 atm [K] - real, allocatable, dimension(:,:) :: frac_precip + real, allocatable, dimension(:,:) :: frac_precip + !--- the following is from flux_exchange_nml real :: z_ref_heat = 2. - !< Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q - !! defined through flux_exchange_nml + ! Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q real :: z_ref_mom = 10. - !< Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m - !! defined through flux_exchange_nml - + ! Reference height ([M] for momentum diagnostics u_ref, v_ref, and del_m - logical :: do_forecast = .false. !< flag to do forecast, defined through flux_exchange_nml - integer :: nblocks = 1 !< OpenMP number of threads - logical :: partition_fprec_from_lprec = .FALSE. !< If true, convert liquid precip to snow when t_ref < tfreeze - !! Used for atm override experiments where liquid and frozen precip are combined - logical :: scale_precip_2d = .false. !< If true, scale mass of liqud preciptation + logical :: do_area_weighted_flux = .FALSE. ! NOT USED DELETE + logical :: do_forecast = .false. ! NEED HELP + integer :: nblocks = 1 !OpenMP number of threads + logical :: partition_fprec_from_lprec = .FALSE. + ! If true, convert liquid precip to snow when t_ref < tfreeze + ! Used for atm override experiments where liquid and frozen precip are combined + logical :: scale_precip_2d = .false. ! If true, scale mass of liqud preciptation - integer :: my_nblocks = 1 !< Initializing OpenMP parameter + integer :: my_nblocks = 1 ! Initializing OpenMP parameter integer, allocatable :: & - block_start(:), & !< starting do loop indices for OpenMP thread - block_end(:) !< ending do loop indices for OpenMP thread - + block_start(:), & ! starting do loop indices for OpenMP thread + block_end(:) ! ending do loop indices for OpenMP thread + real, allocatable, dimension(:) :: & ! NOTE: T canopy is only differet from t_surf over vegetated land - ex_albedo_fix, & !< used for albedo correction - ex_albedo_nir_dif_fix, & !< used for albedo correction - ex_albedo_nir_dir_fix, & !< used for albedo correction - ex_albedo_vis_dif_fix, & !< used for albedo correction - ex_albedo_vis_dir_fix, & !< used for albedo correction - ex_b_star, & !< boyuancy scale on exchange grid - ex_cd_m, & !< drag coefficient for momentum on exchange grid - ex_cd_t, & !< drag coefficient for heat on exchange grid - ex_con_atm, & !< deposition velocity at lowest atmospheric level on exchange grid on exchange grid - ex_dedt_surf, & !< d(water.vap.flux)/d(T canopy) on exchange grid - ex_dhdt_atm, & !< d(sens.heat.flux)/d(T atm) on exchange grid - ex_dhdt_surf, & !< d(sens.heat.flux)/d(T canopy) on exchange grid - ex_dqsatdt_surf, & !< d(water.vap.flux)/d(q canopy) on exchange grid - ex_drdt_surf, & !< d(LW flux)/d(T surf) on exchange grid - ex_dtaudu_atm, & !< d(stress)/d(u) on exchange grid - ex_dtaudv_atm, & !< d(stress)/d(v) on exchange grid - ex_e_q_n, & !< dt/mass * dedet_surf * gamma on exchange grid - ex_flux_lw, & !< longwave radiation flux on exchange grid - ex_flux_t, & !< sensible heat flux on exchange grid - ex_flux_u, & !< u stress on atmosphere on exchange grid - ex_flux_v, & !< v stress on atmosphere on exchange grid - ex_old_albedo, & !< old value of albedo for downward flux calculations, used for albedo correction - ex_p_surf, & !< surface pressure on exchange grid - ex_seawater, & !< mask array of seaice fractions on exchange grid + ex_albedo_fix, & !< albedo_fix on the exchange grid + ex_albedo_nir_dif_fix, & !< albedo_nir_dif_fix on the exchange grid + ex_albedo_nir_dir_fix, & !< albedo_nir_dir_fix on the exchange grid + ex_albedo_vis_dif_fix, & !< albedo_vis_dif_fix on the exchange grid + ex_albedo_vis_dir_fix, & !< albedo_vis_dir_fix on the exchange grid + ex_b_star, & !< boyuancy scale on the exchange grid + ex_cd_m, & !< drag coefficient for momentum on the exchange grid + ex_cd_t, & !< drag coefficient for heat on the exchange grid + ex_con_atm, & !< deposition velocity at lowest atmospheric level on the exchange grid + ex_dedt_surf, & !< d(water.vap.flux)/d(T canopy) on the exchange grid + ex_dhdt_atm, & !< d(sens.heat.flux)/d(T atm) on the exchange grid + ex_dhdt_surf, & !< d(sens.heat.flux)/d(T canopy) on the exchange grid + ex_dqsatdt_surf, & !< d(water.vap.flux)/d(q canopy) on the exchange grid + ex_drdt_surf, & !< d(LW flux)/d(T surf) on the exchange grid + ex_dtaudu_atm, & !< d(stress)/d(u) on the exchange grid + ex_dtaudv_atm, & !< d(stress)/d(v) on the exchange grid + ex_e_q_n, & !< dt/mass * dedet_surf * gamma on the exchange grid + ex_flux_lw, & !< longwave radiation flux on the exchange grid + ex_flux_t, & !< sens heat flux on the exchange grid + ex_flux_u, & !< u stress on atmosphere on the exchange grid + ex_flux_v, & !< v stress on atmosphere on the exchange grid + ex_old_albedo, & !< old value of albedo for downward flux calculations on the exchange grid + ex_p_surf, & !< surface pressure on exchange grid on the exchange grid + ex_seawater, & !< mask array of seaice fractions on the exchange grid ex_slp, & !< surface pressure on exchange grid ex_t_ca, & !< near-surface (canopy) air temperature on exchange grid [K] ex_t_surf, & !< surface temperature for radiation calc on exchange grid [K] - ex_t_surf_miz, & !< used when do_forecast = .true. + ex_t_surf_miz, & !< miz on the exchange grid ex_u_star, & !< friction velocity on exchange grid - ex_wind, & !< wind speed on exchange grid + ex_wind, & !< wind speed on exchange grid ex_z_atm !< height of lowest atmospheric level on exchange grid #ifdef SCM @@ -367,29 +372,29 @@ module atm_land_ice_flux_exchange_mod #endif real, allocatable, dimension(:,:) :: & - ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) on exchange grid - ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) on exchange grid - ex_e_tr_n, & !< coefficient in implicit scheme on exchange grid - ex_f_tr_delt_n, & !< coefficient in implicit scheme on exchange grid - ex_flux_tr, & !< tracer fluxes on exchange grid - ex_tr_con_ref, & !< deposition velocity at reference height on exchange grid - ex_tr_con_atm, & !< deposition velocity at atmospheric height on exchange grid - ex_tr_surf !< near-surface tracer fields on exchange grid + ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) on the exchange grid + ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) on the exchange grid + ex_e_tr_n, & !< coefficient in implicit scheme on the exchange grid + ex_f_tr_delt_n, & !< coefficient in implicit scheme on the exchange grid + ex_flux_tr, & !< tracer fluxes on the exchange grid + ex_tr_con_ref, & !< deposition velocity at reference height on the exchange grid + ex_tr_con_atm, & !< deposition velocity at atmospheric height on the exchange grid + ex_tr_surf !< near-surface tracer fields on the exchange grid logical, allocatable, dimension(:) :: & - ex_avail, & !< mask where true if data on exchange grid are available - ex_land !< mask where true if exchange grid cell is over land + ex_avail, & !< true where data on exchange grid are available + ex_land !< true if exchange grid cell is over land real, allocatable, dimension(:) :: & - ex_e_t_n, & - ex_f_t_delt_n + ex_e_t_n, & !< temporary array on the exchange grid + ex_f_t_delt_n !< temporary array on the exchange grid integer :: n_atm_tr !< number of prognostic tracers in the atmos model - integer :: n_atm_tr_tot !< number of tracers in the atmos model + integer :: n_atm_tr_tot !< number of prognostic tracers in the atmos model integer :: n_lnd_tr !< number of prognostic tracers in the land model - integer :: n_lnd_tr_tot !< number of tracers in the land model + integer :: n_lnd_tr_tot !< number of prognostic tracers in the land model integer :: n_exch_tr !< number of tracers exchanged between models - integer :: n_gex_atm2lnd !< number of generic exchange fields exchanged from atmospehre to land - integer :: n_gex_lnd2atm !< number of generic exchange fields exchanged from land to atmosphere + integer :: n_gex_atm2lnd !< number of gex fields exchanged between land and atmosphere + integer :: n_gex_lnd2atm !< number of gex fields exchanged between atmosphere and land type :: tracer_ind_type integer :: atm !< tracer index in atm model @@ -397,43 +402,40 @@ module atm_land_ice_flux_exchange_mod integer :: lnd !< tracer index in lnd model end type tracer_ind_type type(tracer_ind_type), allocatable :: tr_table(:) !< table of tracers passed through flux exchange - + type :: tracer_exch_ind_type integer :: exch = 0 !< exchange grid index integer :: ice = 0 !< ice model index integer :: lnd = 0 !< land model index end type tracer_exch_ind_type - - type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< holds tracer id in atm, ice, and land models - + + type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< map atm tracers to exchange, ice and land variables + integer :: isphum = NO_TRACER !< tracer index for specific humidity - integer :: ico2 = NO_TRACER !< tracer index for co2 - integer :: inh3 = NO_TRACER !< tracer index for nh3 + integer :: ico2 = NO_TRACER !< tracer index for co2 + integer :: inh3 = NO_TRACER !< tracer index for nh3 type(fmscoupler1dbc_type), pointer :: ex_gas_fields_atm=>NULL() - !< pointer to gas fields in atm, place holder for various atmospheric fields. + !< gas fields in atm place holder for various atmospheric fields. type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() - !< pointer to gas fields on ice + !< gas fields on ice type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() - !< pointer to gas flux place holder of intermediate calculations such as piston velocities, etc. - + !< gas flux place holder of intermediate calculations, such as piston velocities etc. + !real, dimension(3) :: ccc !< for conservation checks !balaji, sets boundary_type%xtype integer, parameter :: & - regrid=1, & !< flag to indicate component grids for flux exchange are different, - !! exchange data via the exchange grid - redist=2, & !< component grid for flux exchange are identical but are decomposed differently, - !! exchange data by "moving it around" - redirect=3 !< component grid for flux exchange are identical with same domain decomposition, - !! exchange data by copying + regrid=1, & !< grids are physically different, pass via exchange grid + redist=2, & !< same physical grid, different decomposition, must move data around + redirect=3 !< same physical grid, same domain decomposition, can directly copy data integer :: & - cplClock, & !< FMS clock to profile general processes - sfcClock, & !< FMS clock id to profile sfc_boundary_layer - fluxAtmDnClock, & !< FMS clock id to profile flux down from atmosphere + cplClock, & !< FMS clock id for profilin general processes + sfcClock, & !< FMS clock id to profile sfc_boundary_layer + fluxAtmDnClock, & !< FMS clock id to profile flux down from atmosphere regenClock, & !< FMS clock to profile exchange grid generation - fluxAtmUpClock !< FMS clock to profile flux up to atmosphere + fluxAtmUpClock !< FMS clock to profile flux up to atmosphere integer :: & X1_GRID_ATM, & !< =1, exchange grid index for xgrid_stock_move @@ -442,29 +444,28 @@ module atm_land_ice_flux_exchange_mod real :: & Dt_atm, & !< atmospheric timestep [s] - Dt_cpl !< coupled timestep [s] + Dt_cpl !< coupled timestep [s] integer :: & ni_atm, & !< number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice nj_atm !< number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice - + integer :: & - nxc_ice=0, & !< number of x points in ice compute domain - nyc_ice=0, & !< number of y points in ice compute domain - nk_ice=0 !< number of vertical levels in ice + nxc_ice=0, & !< number of x gridpoints in ice compute domain + nyc_ice=0, & !< number of y gridpoints in ice compute domain + nk_ice=0 !< number of vertical levels in ice integer :: & - nxc_lnd=0, & !< number of x points in land compute domain - nyc_lnd=0 !< number of y points in land compute domain + nxc_lnd=0, & !< number of x gridpoints in land compute domain + nyc_lnd=0 !< number of y gridpoints in land compute domain contains !####################################################################### - !> \brief module initialization routine. - !! Subroutine to set up the internal tracer table to keep track of tracers in each model component, - !! register diagnostic fields in diag_manager, initialize module level variables and arrays, and initialize - !! atmos_ice_boundary and land_ice_atmos_boundary fields. The subroutine must be called before calling - !! other subroutines in this module. + !! Subroutine atm_land_ice_flux_exchange_init is a subroutine that needs to be called in order to initialize the + !! atm_land_ice_flux_exchange_mod module. This subroutine allocates + !! and sets default values to many of the module level variable, as well as call initialization routines + !! for FMS modules. Calling other public procedures in this module without initialization will fail. subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, & partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, & @@ -508,11 +509,11 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !! atmosphere-ocean gas fluxes and flux-regulating parameters type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_ice_in !< gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used - !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters + !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in !< gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between !! the atmosphere and ocean. Values defined from the field table or computed during model run - + character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' character(len=256), parameter :: & note_header = '==>Note from ' // trim(module_name) // '(' // trim(sub_name) // '):' @@ -532,7 +533,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound character(32) :: tr_name !< dummy variable to hold name of tracers logical :: found !< dummy variable to search through tracer index in ex_gas_fluxes - !> INITIALIZE MODULE LEVEL VARIABLES + !> INITIALIZE SUBSET OF MODULE LEVEL VARIABLES !{ Dt_atm = Dt_atm_in Dt_cpl = Dt_cpl_in @@ -547,25 +548,25 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound ex_gas_fields_atm => ex_gas_fields_atm_in ex_gas_fields_ice => ex_gas_fields_ice_in ex_gas_fluxes => ex_gas_fluxes_in - !} + !} - !> GET FILE UNIT FOR STDOUT AND STDLOG + !> GET FILE UNIT FOR STDOUT AND STDLOG FOR INTERNAL LOGGING PURPOSES !{ outunit = fms_mpp_stdout() logunit = fms_mpp_stdlog() !} allocate(block_start(nblocks), block_end(nblocks)) - - !> GET THE TOTAL NUMBER TRACERS THAT INCLUDES SPECIFIC HUMIDITY, AND THE NUMBER PROGNOSTIC TRACERS - !! IN ATMOSPHERE AND LAND MODELS SPECIFIED IN THE TRACER_TABLE + + !> FROM THE TRACER TABLE, GET THE TOTAL NUMBER TRACERS, TOTAL NUMBER OF SPECIFIC HUMIDITY TRACER, AND TOTAL NUMBER PROGNOSTIC TRACERS + !! IN ATMOSPHERE AND LAND MODELS !{ call fms_tracer_manager_get_number_tracers(MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) call fms_tracer_manager_get_number_tracers(MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) !} - !> ASSEMBLE TRACER TABLE (TR_TABLE) AND STORE THE TRACER AS INTEGER IDS FOR ATM, ICE, AND LAND - !! SKIP ALL ATMOS TRACERS THAT DO NOT HAVE CORRESPONDING SURFACE TRACERS + !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH TRACER, RECORD ITS REFERRED TRACER_INDEX IN THE + !! ATM MODEL, ICE MODEL, AND LAND MODEL. SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS !{ allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) n = 1 @@ -585,15 +586,16 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !} !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND + !! TODO: DEFINE WHAT IS A GENERIC EXCHANGE FIELD !{ n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_atm2lnd n_gex_lnd2atm = fms_gex_get_n_ex(MODEL_LAND,MODEL_ATMOS) if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_lnd2atm !} - - - !> SET UP TRACER TABLE ENTRIES FOR OCEAN-ATM GAS FLUXES + + + !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH OCEAN-ATM GAS FLUX TRACER, STORE THE TRACER INDEX !! NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER !{ do n = 1, ex_gas_fluxes%num_bcs @@ -624,7 +626,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound write(logunit,*)'Tracer field name :'//trim(tr_name) enddo !} - + !> GET THE TRACER INDEX OF SPECIFIC HUMIDITY !{ ! +fix-me-slm+ specific humidity may not be present if we are running with @@ -663,7 +665,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound frac_precip=0.0 endif - !> SET UP THE EXCHANGE GRID + !> SET UP THE EXCHANGE GRID AND SET X1_GRID_ATM = 1, X1_GRID_ICE = 2, AND X1_GRID_LAND !{ call fms_xgrid_init(remap_method) #ifndef _USE_LEGACY_LAND_ @@ -673,18 +675,18 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_xgrid_setup_xmap(xmap_sfc, ['ATM', 'OCN', 'LND'], [Atm%Domain, Ice%Domain, Land%Domain], & "INPUT/grid_spec.nc", Atm%grid) #endif - + X1_GRID_ATM = 1 X1_GRID_ICE = 2 X1_GRID_LND = 3; call generate_sfc_xgrid(Land, Ice) if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' !} END SET UP EXCHANGE GRID - - !> INITIALIZE SURFACE_FLUX + + !> INITIALIZE SURFACE_FLUX MODULE IN FMSCOUPLER/SHARED call surface_flux_init() - !> INITIALLIZE DIAG_INTEGRAL FIELDS FOR GLOBAL INTEGRAL QUANTITIES + !> INITIALLIZE FMS DIAG_INTEGRAL FIELDS FOR GLOBAL INTEGRAL QUANTITIES !{ !! call diag_integral_field_init ('prec', 'f6.3') call fms_diag_integral_field_init ('evap', 'f6.3') @@ -692,19 +694,19 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_diag_integral_field_init ('t_surf', 'f10.3') !miz call fms_diag_integral_field_init ('t_ref', 'f10.3') !miz #endif - !} - - !> INITIALIZE DIAGNOSTIC FIELDS IN DIAG_MANAGER + !} + + !> INITIALIZE FMS DIAGNOSTIC FIELDS IN DIAG_MANAGER ! all fields will be output on the atmospheric grid call diag_field_init ( Time, Atm%axes(1:2), Land%axes, Land%pe ) !> GET THE SIZE OF THE ATM GRID !{ - ni_atm = size(Atm%lon_bnd,1)-1 ! to dimension "diag_atm" - nj_atm = size(Atm%lon_bnd,2)-1 ! in flux_ocean_to_ice + ni_atm = size(Atm%lon_bnd,1) - 1 ! to dimension "diag_atm" + nj_atm = size(Atm%lon_bnd,2) - 1 ! in flux_ocean_to_ice !} - !> ALLOCATE ATMOS_ICE_BOUNDARY AND INITIALIZE FIELDS TO ZERO + !> ALLOCATE ATMOS_ICE_BOUNDARY AND SET FIELDS EQUAL TO ZERO !{ call fms_mpp_domains_get_compute_domain(Ice%domain, is, ie, js, je) kd = size(Ice%part_size,3) @@ -724,15 +726,12 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate(atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd), source=0.0) allocate(atmos_ice_boundary%lprec(is:ie,js:je,kd), source=0.0) allocate(atmos_ice_boundary%fprec(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0) + allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0) allocate(atmos_ice_boundary%dedt(is:ie,js:je,kd), source=0.0) allocate(atmos_ice_boundary%drdt(is:ie,js:je,kd), source=0.0) allocate(atmos_ice_boundary%coszen(is:ie,js:je,kd), source=0.0) allocate(atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0) - !} - !> ALLOCATE ADDITIONAL FIELDS ON EXCHANGE GRID FOR GAS FLUX CALCULATIONS - !{ ! Copying initialized gas fluxes from exchange grid to atmosphere_ice boundary call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & mod_name, Ice%axes, Time, suffix = '_atm_ice') @@ -743,9 +742,10 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, & [is,is,ie,ie], [js,js,je,je], [1, kd], suffix = '_ice') call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) - !} + !} END ALLOCATE ATMOS_ICE_BOUNDARY - !> ALLOCATE LAND_ICE_ATMOS_BOUNDARY + !> ALLOCATE LAND_ICE_ATMOS_BOUNDARY AND SET FIELDS EQUAL TO ZERO EXCEPT FOR + !! T_OCEAN, WHICH IS SET TO 200 K AND T_REF TO 273 K AND ROUGHNESS LENGTHS WHICH ARE SET TO 0.01 m !{ call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) allocate(land_ice_atmos_boundary%t(is:ie,js:je), source=273.0) @@ -782,29 +782,24 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0) !} - !> ALLOCATE FIELDS FOR EXTRA TRACERS + !> COPY EX_GAS_FIELDS_ATM TO ATM%FIELDS !{ ! The first call is no longer necessary, the fluxes will be passed by the land module ! The 2nd call is useful in the case of a ocean model only simulation - ! call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & mod_name, Atm%axes(1:2), Time, suffix = '_atm') !} - !> GET DIMENSION OF THE DECOMPOSED ICE DOMAIN + !> GET THE SIZE OF DOMAIN DECOMPOSED ICE GRID if( Ice%pe) then call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) nk_ice = size(Ice%part_size,3) endif - !} - !> GET DIMENSION OF THE DECOMPOSED LAND DOMAIN - !{ + !> GET THE SIZE OF THE DOMAIN DECOMPOSED LAND GRID if( Land%pe) then call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) endif - !} - !> INITIALIZE CLOCKS FOR PROFILING !{ @@ -814,15 +809,15 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound regenClock = fms_mpp_clock_id( 'XGrid generation', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) fluxAtmUpClock = fms_mpp_clock_id( 'Flux UP to atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) !} - + + !> SET DO_INIT = .FALSE. IN ORDER TO AVOID RE-INITIALIZATION THE MODULE + !! IF THIS SUBROUTINE IS CALLED AGAIN do_init = .false. end subroutine atm_land_ice_flux_exchange_init !####################################################################### - !> \brief Computes explicit fluxes as well as derivatives that will be used to compute an implicit flux correction. - !! - !!
                                                                                                                                                                                                                                                                                                              +  !! Subroutine sfc_boundary_layer computes the following fluxes and exchanges the fluxes between the model components
                                                                                                                                                                                                                                                                                                                 !!   t_surf_atm: surface temperature used for radiation [K]
                                                                                                                                                                                                                                                                                                                 !!   albedo_atm: surface albedo used for radiation  [dimensionless]
                                                                                                                                                                                                                                                                                                                 !!   rough_mom_atm: surface roughness for momentum [m]
                                                                                                                                                                                                                                                                                                              @@ -832,12 +827,12 @@ end subroutine atm_land_ice_flux_exchange_init
                                                                                                                                                                                                                                                                                                                 !!   flux_v_atm: meridional wind stress [Pa]
                                                                                                                                                                                                                                                                                                                 !!   u_star_atm: friction velocity [m/s]
                                                                                                                                                                                                                                                                                                                 !!   b_star_atm: buoyancy scale  [m2/s]
                                                                                                                                                                                                                                                                                                              -  !! 
                                                                                                                                                                                                                                                                                                              - !! Tracers and and (non-tracer) generic fields are mapped onto the exchange grid to exchange data - !! between one component grid to another component grid. Computed fluxes can also be overwritten + !! + !! To exchange fluxes between model components, data on one model component grid is first mapped onto + !! the exchange grid. All computation is done on the exchange grid. Then the data is mapped from the + !! exchange grid to the other model component grid. Computed/saved fields and fluxes can be overwritten !! with calls to data_override where data will be overwritten only if the tracers are specified in the !! tracer_table. - !! !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude !! of surface stress divided by density of air at the surface, !! and `u_star*b_star` is the buoyancy flux at the surface. @@ -855,54 +850,54 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary type(ice_data_type), intent(inout) :: Ice !< derived data type to specify ice boundary data type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary - !< derived data type to specify properties and fluxes passed between land and ice to atmos + !< derived data type to specify properties and fluxes passed between land and ice to atmos ! ---- local vars ---------------------------------------------------------- real, dimension(n_xgrid_sfc) :: & - ex_albedo, & ! albedo + ex_albedo, & ! albedo ex_albedo_vis_dir, & ! albedo for light with wavelength in visible region of the solar spectrum ex_albedo_nir_dir, & ! albedo for light with wavelength in near-ir region of the solar spectrum ex_albedo_vis_dif, & ! difference in albedo for light with wavelength in visible region of the solar spectrum ex_albedo_nir_dif, & ! difference in albedo for light with wavelength in near-ir region of the solar spectrum - ex_land_frac, & ! fractional area of land in grid cell + ex_land_frac, & ! fractional area of land in grid cell ex_t_atm, & ! air temperature at the lowest atmospheric level - ex_p_atm, & ! pressure at the lowest atmospheric level - ex_u_atm, & ! u wind component at the lowest atmospheric level - ex_v_atm, & ! v wind component at the lowest atmospheric level - ex_gust, & ! gust scale + ex_p_atm, & ! pressure at the lowest atmospheric level + ex_u_atm, & ! u wind component at the lowest atmospheric level + ex_v_atm, & ! v wind component at the lowest atmospheric level + ex_gust, & ! gust scale ex_t_surf4, & ! (surface temperature) ** 4 ex_u_surf, & ! u wind component at Earth's surface ex_v_surf, & ! v wind component at Earth's surface ex_rough_mom, & ! momentum roughness length ex_rough_heat, & ! heat roughness length ex_rough_moist, & ! moisture roughness length - ex_rough_scale, & ! scale factor for topographic roughness calculation + ex_rough_scale, & ! scale factor for topographic roughness calculation ex_q_star, & ! turbulent moisture scale - ex_thv_atm, & ! surface area theta_v + ex_thv_atm, & ! surface area theta_v ex_thv_surf, & ! surface theta_v ex_cd_q, & ! moisture exchange coefficient - ex_ref, &! specific humidity at z_ref_heat + ex_ref, &! specific humidity at z_ref_heat ex_ref_u, & ! zonal wind component at z_ref_mom ex_ref_v, & ! meridional wind component at z_ref_mom ex_u10, & !< zonal wind speed at 10m above the surface - ex_ref2, & ! quantity on exchange grid - ex_t_ref, & ! temperature at z_ref_heat on exchange grid - ex_qs_ref, & ! quantity on exchange grid - ex_qs_ref_cmip, & ! + ex_ref2, & !< quantity on exchange grid + ex_t_ref, & !< temperature at z_ref_heat on exchange grid + ex_qs_ref, & !< quantity on exchange grid + ex_qs_ref_cmip, & ! < quantity on exchange grid ex_del_m, & ! reference height for interpolation factor for momentum ex_del_h, & ! reference height interpolation factor for heat ex_del_q, & ! reference height interpation factor for moisture ex_frac_open_sea ! open-water mask, not used? - real :: rho + real :: rho !< quantity used to compute ex_tr_con_atm real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_atm, & ! concentration of tracer at lowest atmospheric level - ex_tr_ref ! concentration of tracer at reference height - + ex_tr_atm, & !< concentration of tracer at lowest atmospheric level + ex_tr_ref !< concentration of tracer at reference height + real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm - ! temporary array to hold data + !< temporary array to hold data #ifndef _USE_LEGACY_LAND_ real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2)) :: diag_land @@ -912,37 +907,41 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg integer :: k #else - real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land ! temporary array -#endif - real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea ! temporary array + real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land +#endif + real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea !< temporary array real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: tmp_open_sea - ! temporary array for generating ice/ocean mask + !< temporary array for generating ice/ocean mask real :: & - zrefm, & ! reference height for computing surface fluxes from Monin-Obukhov similarity theory - zrefh ! reference height for computing surface fluxes from Monin-Obukhov similarity theory - - logical :: used ! returned value from data_override. if true, data was overwritten - character(32) :: tr_name, tr_units ! tracer name and id + zrefm, & !< reference height for computing surface fluxes from Monin-Obukhov similarity theory + zrefh !< reference height for computing surface fluxes from Monin-Obukhov similarity theory + + logical :: used !< returned value from data_override. if true, data was overwritten + character(32) :: & + tr_name, !< tracer name + tr_units !< tracer id integer :: tr, n, m ! tracer indices integer :: is, ie, isc, iec, jsc, jec !< domain indices integer :: i, l, j, n_gex !< do loop indices - + real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm !< array holding generic, non-tracer fields on the exchange grid !> CHECK MODULE INITIALIZATION + ! [1] if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & 'must call atm_land_ice_flux_exchange_init first', FATAL) !> INITIALIZE CLOCKS FOR PROFILING + ! [2] !{ !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(sfcClock) !} - + !> ALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS !{ allocate ( & @@ -994,7 +993,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary #endif !} END ALLOCATION ARRAYS FOR EXCHANGE FIELDS - !> ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY + !> ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY EXCHANGE FIELDS !{ ex_p_surf = 1.0 ! Actual allocation of exchange fields for ocean_ice boundary @@ -1008,7 +1007,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR EXCHANGE WITH ATMOSPEHRE + !> ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR ATMOSPHERE EXCHANGE FIELDS !{ do n = 1, ex_gas_fields_atm%num_bcs do m = 1, ex_gas_fields_atm%bc(n)%num_fields @@ -1028,16 +1027,16 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.') endif allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) - enddo + enddo enddo !} - + ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers ! For ocean only model ! call atmos_get_fields_for_flux(Atm) - !> SET INITIAL VALUES FOR SUBSET OF EXCHANGE FIELDS + !> SET INITIAL VALUES FOR A SUBSET OF EXCHANGE FIELDS (OPENMP LOOP) !{ ! this is actually a safeguard against using undefined values !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & @@ -1068,9 +1067,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo enddo !} - - !> OVERRIDE ATM ATM%T_BOT, Z_BOT, P_BOT, U_BOT, V_BOT, P_SURF, SLP, GUST - !! DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE + + !> OVERRIDE SUBSET OF ATM FIELDS. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ !Balaji: data_override stuff moved from coupler_main call fms_data_override('ATM', 't_bot', Atm%t_bot , Time) @@ -1117,8 +1115,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND SEND DATA TO DIAG_MAANGER BUFFER IF FIELD IS - !! SPECIFIED IN THE DIAG_TABLE. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN THE DATA_TABLE + !> OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND TO THE DIAG_MAANGER BUFFER !{ ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux from moist mmr to dry vmr. do n = 1, atm%fields%num_bcs @@ -1138,7 +1135,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if(id_o2_flux_pcair_atm > 0) & used = fms_diag_send_data(id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) endif - enddo + enddo enddo do n = 1, atm%fields%num_bcs if (atm%fields%bc(n)%use_atm_pressure) then @@ -1149,9 +1146,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> OVERRIDE ICE%T_SURF, ROUGH_MOM, ROUGH_HEAT, ROUGH_MOIST, ALBEDOS, U_SURV AND V_SURF. - !! OVERRIDE LAND%T_SURF, T_CA, ROUGH_MOM, ROUGH_HEAT, ALBEDOS, AND TRACER FIELDS - !! DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE + !> OVERRIDE SUBSET OF ICE AND LAND FIELD. DATA WILL BE OVERWRITTEN ONLY IF THE FIELD IS SPECIFIED IN DATA_TABLE !{ call fms_data_override('ICE', 't_surf', Ice%t_surf, Time) call fms_data_override('ICE', 'rough_mom', Ice%rough_mom, Time) @@ -1186,7 +1181,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call FMS_DATA_OVERRIDE_('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time) call FMS_DATA_OVERRIDE_('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) !} - + !> MAP ATM FIELDS ONTO THE EXCHANGE GRID !{ #ifdef use_AM3_physics @@ -1208,7 +1203,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo endif enddo - + call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_t_atm, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%z_bot, 'ATM', ex_z_atm, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%p_bot, 'ATM', ex_p_atm, xmap_sfc, remap_method=remap_method, complete=.false.) @@ -1217,8 +1212,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_put_to_xgrid(Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.) call fms_xgrid_put_to_xgrid(Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) - !} END MAP ATM FIELDS ONTO THE EXCHANGE GRID - + !} + ! slm, Mar 20 2002: changed order in whith the data transferred from ice and land ! grids, to fill t_ca first with t_surf over ocean and then with t_ca from ! land, where it is different from t_surf. It is mostly to simplify @@ -1256,11 +1251,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary do m = 1, ice%ocean_fields%bc(n)%num_fields call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', & ex_gas_fields_ice%bc(n)%field(m)%values, xmap_sfc) - enddo + enddo enddo !} - !> GENERATE WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, GENERATE DYNAMIC WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER !{ !Generate a wet mask array on the xgrid which is: ! 1: where there is any open water in the OCN grid cell @@ -1274,8 +1269,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary sea = 0.0; sea(:,:,1) = 1.0; ex_seawater = 0.0 call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) - !} END GENERATE WET MASK ARRAY - + !} + !Question: Why is the above ex_seawater a dynamic mask array? ! From its construction it looks like a static array of 1s and 0s ! !Answer: The xmap_sfc is dynamic and changes as the model steps because it contains updated information about @@ -1302,8 +1297,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! print*,'ex_seawater !1 or 0 ' ,ex_seawater(i) ! enddo !enddo - - !> INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ON THE EXCHANGE GRID + + !> ON THE EXCHANGE GRID, INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean !> MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID @@ -1380,7 +1375,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end if #endif - !> CALL SURFACE_FLUX TO COMPUTE EXPLICIT FLUXES AND TENDENCIES ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES AND TENDENCIES !{ call fms_xgrid_some(xmap_sfc, ex_avail) !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, & @@ -1424,7 +1419,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! call mpp_clock_end(fluxClock) - !> COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS !{ zrefm = 10.0 zrefh = z_ref_heat @@ -1463,7 +1458,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end do !} - !> COMPUTE DERIVATIVES OF TRACER FLUX ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, COMPUTE DERIVATIVES OF TRACER FLUX !{ ! F = C0*u*rho*delta_q, C0*u*rho is the same for all tracers, copy from sphum do tr = 1,n_exch_tr @@ -1485,10 +1480,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! Combine explicit ocean flux and implicit land flux of extra flux fields. - !> COMPUTE EXPLICIT OCEAN FLUXES + !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES BETWEEN ATM AND OCEAN !{ call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) - + do n=1, ex_gas_fluxes%num_bcs if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch @@ -1509,11 +1504,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary is = block_start(l) ie = block_end(l) do n=1, ex_gas_fluxes%num_bcs - if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then + if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch call fms_tracer_manager_get_tracer_names(& MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, tr_name, units=tr_units) - do i=is, ie + do i=is, ie if (ex_land(i)) cycle ! over land, don't do anything ! on ocean or ice cells, flux is explicit therefore we zero derivatives. ex_dfdtr_atm(i,m) = 0.0 @@ -1543,10 +1538,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif enddo enddo - !} END COMPUTE EXPLICIT OCEAN FLUXES + !} END COMPUTE EXPLICIT FLUXES BETWEEN ATM AND OCEAN - !> OVERRIDE LAND AND ICE TRACER FLUXES - !! DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE + !> OVERRIDE LAND AND ICE TRACER FLUXES. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ ![5.2] override tracer fluxes and derivatives do tr=1, n_exch_tr @@ -1588,7 +1582,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) - !} END DATA OVERRIDE + !} END DATAOVERRIDE ! NB: names of the override fields are constructed using tracer name and certain ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: @@ -1598,7 +1592,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and ! W/(m2 degK) respectively - !> COMPUTE T_SURF**4 + !> ON THE EXCHANGE GRID, COMPUTE T_SURF**4 !{ !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_avail, & !$OMP ex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf ) private(is,ie) @@ -1614,8 +1608,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> MAP FIELDS FROM THE EXCHANGE GRID TO THE ATM GRID AND STORE MAPPED DATA IN LAND_ICE_ATMOS_BOUNDARY - !{ + !> MAP QUANTITIES FROM THE EXCHANGE GRID TO THE ATM GRID + ! put relevant quantities onto atmospheric boundary call fms_xgrid_get_from_xgrid(& Land_Ice_Atmos_Boundary%t_ocean, 'ATM', ex_t_surf, xmap_sfc, complete=.false.) !joseph call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.) @@ -1664,9 +1658,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) end if #endif - !} END MAP FIELDS FROM THE EXCHANGE GRID TO THE ATM GRID + !} END MAP FROM EXCHANGE TO ATM GRID - !> STORE LAND_ICE_ATMOS_BOUNDARY%T AS T**1/4 + !> COMPUTE T**0.25 !{ call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec ) !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary) private(is,ie) @@ -1693,33 +1687,35 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr, tr_name) call fms_data_override('ATM', 'dt_'//trim(tr_name), Land_Ice_Atmos_Boundary%dt_tr(:,:,tr), Time) enddo - call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) - call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) - call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) - call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) - call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) - call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) + call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) + call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) + call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) + call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) + call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) + call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) - !} + !} ! [6.3] save atmos albedo fix and old albedo (for downward SW flux calculations) ! on exchange grid ! allocate ( ex_old_albedo(n_xgrid_sfc) ) ! ex_old_albedo = ex_albedo - !> INITIALIZE ARRAYS FOR FIXING THE ALBEDO ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, INITIALIZE ARRAYS FOR FIXING THE ALBEDO + ! STILL NEEDED ???? + ! IS THIS CORRECT ?? !{ - !! STILL NEEDED ???? - !! IS THIS CORRECT ?? allocate ( ex_albedo_fix(n_xgrid_sfc) ) allocate ( ex_albedo_vis_dir_fix(n_xgrid_sfc) ) allocate ( ex_albedo_nir_dir_fix(n_xgrid_sfc) ) allocate ( ex_albedo_vis_dif_fix(n_xgrid_sfc) ) allocate ( ex_albedo_nir_dif_fix(n_xgrid_sfc) ) - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, & - !$OMP ex_albedo_vis_dir_fix, ex_albedo_nir_dir_fix, ex_albedo_vis_dif_fix, ex_albedo_nir_dif_fix) & - !$OMP private(is,ie) + + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & + !$OMP ex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix, & + !$OMP ex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix ) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -1746,11 +1742,14 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_albedo_nir_dif_fix, xmap_sfc, complete=.true.) !} - !> COMPUTE ALBEDO FIX ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, COMPUTE THE ALBEDO FIXING FACTORS !{ - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, & - !$OMP ex_albedo, ex_albedo_vis_dir_fix, ex_albedo_vis_dir, ex_albedo_nir_dir, ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dif_fix, ex_albedo_vis_dif, ex_albedo_nir_dif_fix, ex_albedo_nir_dif) private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & + !$OMP ex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir, & + !$OMP ex_albedo_nir_dir,ex_albedo_nir_dir_fix, & + !$OMP ex_albedo_vis_dif_fix,ex_albedo_vis_dif, & + !$OMP ex_albedo_nir_dif_fix,ex_albedo_nir_dif) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -1774,7 +1773,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif #endif + !======================================================================= + ! [7] diagnostics section + !> SAVE STATIC FIELDS. THE STATIC FIELDS WILL BE SAVED ONLY THE FIRST TIME THIS SUBROUTINE IS CALLED + !{ if (first_static) then !------- land fraction ------ if ( id_land_mask > 0 ) then @@ -1791,7 +1794,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif !} - !> SEND ATMOSPHERE DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT. + !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT. + !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ do n = 1, Atm%fields%num_bcs do m = 1, Atm%fields%bc(n)%num_fields @@ -1916,10 +1920,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if ( id_t_ocean > 0 ) then used = fms_diag_send_data ( id_t_ocean, Land_Ice_Atmos_Boundary%t_ocean, Time ) endif - !} END SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT - + !} - !--------- diagnostics for fields at reference level --------- + !> COMPUTE DIAGNOSTIC FIELDS AT REFERENCE LEVELS WITH FMS_MONIN_OBUHKOV_MO_PROFILE + !{ !cjg ! if ( id_t_ref > 0 .or. id_rh_ref > 0 .or. & ! id_u_ref > 0 .or. id_v_ref > 0 .or. id_wind_ref > 0 .or. & @@ -1928,18 +1932,20 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! id_rh_ref_cmip >0 .or. & ! id_u_ref_land > 0 .or. id_v_ref_land > 0 ) then - !> COMPUTE DIAGNOSTICS AT REFERENCE LEVELS - !{ zrefm = z_ref_mom zrefh = z_ref_heat ! ---- optimize calculation ---- !cjg if ( id_t_ref <= 0 ) zrefh = zrefm - - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, zrefm,zrefh, ex_z_atm, & - !$OMP ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_u_star, ex_b_star, ex_q_star, ex_del_m, ex_del_h, ex_del_q,& - !$OMP ex_tr_ref, n_exch_tr, id_tr_ref, id_tr_ref_land, ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & - !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, ex_avail, ex_ref, ex_tr_surf, ex_tr_atm, isphum, & - !$OMP ex_flux_tr, ex_t_atm, ex_p_surf) private(is,ie,rho) + + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm, & + !$OMP ex_rough_mom,ex_rough_heat,ex_rough_moist,ex_u_star, & + !$OMP ex_b_star,ex_q_star,ex_del_m,ex_del_h,ex_del_q, & + !$OMP ex_tr_ref,n_exch_tr,id_tr_ref,id_tr_ref_land, & + !$OMP ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & + !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, & + !$OMP ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum, & + !$OMP ex_flux_tr,ex_t_atm,ex_p_surf) & + !$OMP private(is,ie,rho) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -1973,9 +1979,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end if enddo enddo - !} COMPUTE DIAGNOSTICS AT REFERENCE LEVELS + !} - !> SEND LAND AND ATMOSPHERIC FIELDS TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT + !> MAP LAND AND ADDITIONAL ATMOSPHERIC FIELDS FROM THE EXCHANGE GRID TO THE COMPONENT GRID AND + !! SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT + !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_ref, 'ATM', ex_ref, xmap_sfc) ! cjg if(id_q_ref > 0) then @@ -2014,12 +2022,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary #endif endif end do - !} END SEND LAND AND ATMOSPHERIC FIELDS TO DIAG_MANAGER + !} - !> COMPUTE EX_T_REF, EX_REF2, AND EX_REF - !{ !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_t_ref, ex_avail, & - !$OMP ex_rough_heat, ex_t_ca, ex_t_atm, ex_p_surf, ex_qs_ref, ex_del_h, ex_ref, ex_qs_ref_cmip, ex_ref2) & + !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2) & !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) @@ -2041,11 +2047,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif enddo enddo - !} - !> MAP FIELDS FROM THE EXCHANGE GRID TO THE ATMOSPHERE OR LAND GRID AND - !! SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT - !{ call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ref, 'ATM', ex_t_ref, xmap_sfc) ! cjg if ( id_rh_ref_land > 0 ) then @@ -2191,26 +2193,19 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary (log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2, xmap_sfc) used = fms_diag_send_data(id_rough_scale, diag_atm, Time) endif - !} END SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT - !> END CLOCK FOR PROFILING - !{ - !Balaji + !> END CLOCKS FOR PROFILING + !Balaji call fms_mpp_clock_end(sfcClock) call fms_mpp_clock_end(cplClock) - !} + + !======================================================================= end subroutine sfc_boundary_layer - !> Corrects fluxes for implicit treatment of atmospheric diffisuve fluxes [link to vert_diff] - !! In the subroutine, if override specifications are found in data_table - !! atmospheric data will be overwritten with calls to data_override before mapping the atmospheric data - !! to the exchange grid. Next, corrections are computed on the exchange grid and the corrected - !! values are mapped to the land grid and to the ice grid. However, the corrected fields on land grid - !! and ice grid will be overwritten with data_override if the override specifications are found in - !! data table. The subroutine ends by computing, stock exchanges between the components and sending - !! zonal and meridonal wind stress data to the diag_manager buffer that will output data at the - !! end of the simulation + !> Subroutine flux_down_from_atmos corrects fluxes to land and ice + !! for the implicit treatment of atmospheric diffisuve fluxes + !! The subroutine also computes stock exchanges between the components subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary) implicit none @@ -2228,7 +2223,7 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ! the following variables are on the exchange grid real, dimension(n_xgrid_sfc) :: & ex_flux_sw, & ! net sfc shortwave radiation flux - ex_flux_lwd, & ! longwave radiation downward flux at surface + ex_flux_lwd, & ! longwave radiation downward flux at surface ex_flux_sw_dir, & ! direct shortwave radiation flux ex_flux_sw_dif, & ! downward diffuse visible shortwave radiation flux ar the surface ex_flux_sw_down_vis_dir, & ! downward direct visible shortwave radiation flux at the surface @@ -2238,9 +2233,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ex_flux_sw_vis, & ! net visible shortwave radiation flux at the surface ex_flux_sw_vis_dir, & ! net direct visible shortwave radiation flux at the surface ex_flux_sw_vis_dif, & ! net diffuse visible shortwave radiation flux at the surface - ex_lprec, & ! liquid precipitation + ex_lprec, & ! liquid precipitation ex_fprec, & ! frozen precitipation - ex_tprec, & ! temperature of precipitation, currently equal to atm temperature + ex_tprec, & ! temperature of precipitation, currently equal to atm temperature ex_u_star_smooth, & ! friction velocity correction #ifdef use_AM3_physics ex_coszen ! cosine of the zenith angle @@ -2249,71 +2244,68 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ex_setl_flux, & ! tracer sedimentation flux from the lowest atmophere layer (positive down) ex_dsetl_dtr ! derivative of setl_flux w.r.t. tracer concentration #endif - + real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) ! tracer seditation flux from the lowest atmospehere layer on the atm grid real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) ! derivative of setl_dtr from the lowest atmosphere layer on the atm grid - ! temporary arrays + ! temporary arrays real, dimension(n_xgrid_sfc) :: ex_gamma, ex_dtmass, ex_delta_t, ex_delta_u, ex_delta_v, ex_dflux_t - real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd ! generic exchange fields between atm and land + real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd ! generic exchange fields between atm and land real, dimension(n_xgrid_sfc,n_exch_tr) :: & ex_delta_tr, & ! tracer tendencies ex_dflux_tr ! tracer flux change real :: cp_inv ! inverse heat capacity at constant pressure - logical :: used, ov, ier ! used in calls to fms + logical :: used, ov, ier ! used in calls to fms integer :: is_atm, ie_atm, js_atm, je_atm, j ! do loop indices character(32) :: tr_name ! name of the tracer integer :: tr, n, m ! tracer indices integer :: is, ie, l, i, n_gex ! do loop indices - !> START CLOCKS FOR PROFILING + !> START CLOCKS FOR PROFILING !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmDnClock) !} - !> INITIALIZE FLAG FOR OVERRIDE SPECIFICATIONS. DATA_OVERRIDE WIL RETURN TRUE IF DATA WAS OVERWRITTEN - ov = .false. - - !> UPDATE ATM FIELDS WITH OVERRIDE VALUES. DATA_OVERRIDE WILL ONLY OVERWRITE FIELDS IF THE FIELD IS SPECIFIED IN THE DATA_TABLE - !{ - !Balaji: fms_data_override calls moved here from coupler_main - call fms_data_override('ATM', 'flux_sw', Atm%flux_sw, Time) - call fms_data_override('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) - call fms_data_override('ATM', 'flux_sw_dif', Atm%flux_sw_dif, Time) - call fms_data_override('ATM', 'flux_sw_down_vis_dir', Atm%flux_sw_down_vis_dir, Time) - call fms_data_override('ATM', 'flux_sw_down_vis_dif', Atm%flux_sw_down_vis_dif, Time) - call fms_data_override('ATM', 'flux_sw_down_total_dir', Atm%flux_sw_down_total_dir, Time) - call fms_data_override('ATM', 'flux_sw_down_total_dif', Atm%flux_sw_down_total_dif, Time) - call fms_data_override('ATM', 'flux_sw_vis', Atm%flux_sw_vis, Time) - call fms_data_override('ATM', 'flux_sw_vis_dir', Atm%flux_sw_vis_dir, Time) - call fms_data_override('ATM', 'flux_sw_vis_dif', Atm%flux_sw_vis_dif, Time) - call fms_data_override('ATM', 'flux_lw', Atm%flux_lw, Time) - call fms_data_override('ATM', 'lprec', Atm%lprec, Time) - !} - - !> SCALE LIQUID PRECIPPITATION BY FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE - !! SCALE_PRECIP_2D IS SET DURING MODULE INITIALIZATION. FRAC_PRECIP IS SET WITH DATA_OVERRIDE - !{ + !> INITIALIZE REUSABLE FLAG. DATA_OVERRIDE WILL RETURN OV=.TRUE. IF DATA WAS OVERWRITTEN + OV = .FALSE. + + !> OVERRIDE ATM SHORTWAVE AND LONGWAVE DIRECT AND DOWNWARD DIFFUSIVE FLUXES + !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE XARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE + !balaji: fms_data_override calls moved here from coupler_main + call fms_data_override('atm', 'flux_sw', atm%flux_sw, time) + call fms_data_override('atm', 'flux_sw_dir', atm%flux_sw_dir, time) + call fms_data_override('atm', 'flux_sw_dif', atm%flux_sw_dif, time) + call fms_data_override('atm', 'flux_sw_down_vis_dir', atm%flux_sw_down_vis_dir, time) + call fms_data_override('atm', 'flux_sw_down_vis_dif', atm%flux_sw_down_vis_dif, time) + call fms_data_override('atm', 'flux_sw_down_total_dir', atm%flux_sw_down_total_dir, time) + call fms_data_override('atm', 'flux_sw_down_total_dif', atm%flux_sw_down_total_dif, time) + call fms_data_override('atm', 'flux_sw_vis', atm%flux_sw_vis, time) + call fms_data_override('atm', 'flux_sw_vis_dir', atm%flux_sw_vis_dir, time) + call fms_data_override('atm', 'flux_sw_vis_dif', atm%flux_sw_vis_dif, time) + call fms_data_override('atm', 'flux_lw', atm%flux_lw, time) + call fms_data_override('atm', 'lprec', atm%lprec, time) + + !> SCALE LIQUID PRECIPITATION BY FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE + !! SCALE_PRECIP_2D IS SET DURING MODULE INITIALIZATION CALL TO ATM_LAND_ICE_FLUX_EXCHANGE_INIT + !! FRAC_PRECIP VALUES ARE SET WITH DATA_OVERRIDE if (scale_precip_2d) then - call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) - call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) + call fms_mpp_domains_get_compute_domain(atm%domain, is_atm, ie_atm, js_atm, je_atm) + call fms_data_override ('atm', 'precip_scale2d', frac_precip, Time) do j = js_atm, je_atm do i = is_atm, ie_atm Atm%lprec(i,j) = Atm%lprec(i,j)*frac_precip(i,j) enddo enddo endif - !} - !> PARTITION PRECIPITATION TO LIQUID PRECIPITATION AND FROZEN PRECIPITATION IF PARTITION_FPREC_FROM_LPREC = .TRUE. - !! PARTITION_FPREC_FROM_LPREC IS SET DURING MODULE INITIALIZATION - !! NOTE THE PARTITIONING ONLY OCCURS ON MPI RANKS FOR ATMOSPHERE - !{ + !> PARTITION PRECIPTATION TO LIQUID PRECIPITATION AND FROZEN PRECIPITATION IF PARTITION_FPREC_FROM_LPREC = .TRUE. + !! PARTIION_FPREC_FROM_LPREC IS SET AS PART OF MODULE INITIALIZATION CALL IN ATM_LAND_ICE_FLUX_EXCHANGE + !! NOTE, THE PARTITIONING ONLY OCCURS ON MPI RANKS FOR ATMOSPHERE if (partition_fprec_from_lprec .and. Atm%pe) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) do j=js_atm,je_atm @@ -2325,9 +2317,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo enddo endif - !} - !> UPDATE ATM FIELDS WITH OVERRIDE VALUES. DATA_OVERRIDE WILL ONLY OVERWRITE FIELDS IF THE FIELD IS SPECIFIED IN THE DATA_TABLE + !> OVERRIDE ATM FPREC, COZEN, AND SURF_DIFF FIELDS. + !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) @@ -2341,9 +2333,8 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo !} - !> MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID + !> MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID IN ORDER TO EXCHANGE QUANTITIES WITH OTHER COMPONENTS !{ - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_sw_dir, & !$OMP ex_flux_sw_vis_dir, ex_flux_sw_dif, ex_delta_u, ex_flux_sw_vis_dif, ex_flux_lwd, ex_delta_v, & !$OMP ex_gex_atm2lnd, n_gex_atm2lnd) private(is,ie,n_gex) @@ -2403,9 +2394,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call fms_xgrid_put_to_xgrid(Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & complete=.true.) - !} END MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID + !} END MAP ATMOSPHERIC QUANTITIES ON EXCHANGE GRID - !> UPDATE U AND V STRESS ON EXCHANGE GRID + !> ON THE EXCHANGE GRID, UPDATE U AND V STRESS !{ ! MOD update stresses using atmos delta's but derivatives on exchange grid !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_u, ex_delta_u, & @@ -2418,9 +2409,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ex_flux_v(i) = ex_flux_v(i) + ex_delta_v(i)*ex_dtaudv_atm(i) enddo enddo - !} END UPDATE U AND V STRESS ON EXCHANGE GRID + !} end update u and v stress on the exchange grid - !> FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT TO ACCOUNT FOR ALBEDO VARIATION !{ !---- adjust sw flux for albedo variations on exch grid ---- !---- adjust 4 categories (vis/nir dir/dif) separately ---- @@ -2459,13 +2450,15 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ! ! ex_flux_sw_vis = ex_flux_sw_vis_dir + ex_flux_sw_vis_dif ! legacy, remove later ! ex_flux_sw = ex_flux_sw_dir + ex_flux_sw_dif ! legacy, remove later - + deallocate ( ex_albedo_fix ) deallocate ( ex_albedo_vis_dir_fix ) deallocate ( ex_albedo_nir_dir_fix ) deallocate ( ex_albedo_vis_dif_fix ) deallocate ( ex_albedo_nir_dif_fix ) - !} END FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT ON THE EXCHANGE GRID + + !} ON THE EXCHANGE GRID, END FIX SHORT WAVELENGTH RADIATION FLUX + !> ADJUST FLUXES FOR IMPLICIT DEPENDENCE !{ @@ -2549,8 +2542,7 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo !} END ADJUST FLUXES FOR IMPLICIT DEPENDENCE - !> MAP FLUXES FROM EXCHANGE GRID TO THE LAND GRID - !{ + !> MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) @@ -2648,10 +2640,10 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo #endif endif enddo + !} MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID - !} END MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID - - !> OVERRIDE LAND FLUXES ONLY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE + !> OVERRIDE LAND FLUXES. NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE + !! ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ ! current time is Time: is that ok? not available in land_data_type !Balaji: data_override calls moved here from coupler_main @@ -2677,8 +2669,8 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) #endif enddo - !} END OVERRIDE LAND FLUXES - + !} END OVERRIDE LAND FLUXES + !> MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID !{ call fms_xgrid_get_from_xgrid (Ice_boundary%t_flux, 'OCN', ex_flux_t, xmap_sfc) @@ -2728,7 +2720,7 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ! endif ! Extra fluxes - do n = 1, Ice_boundary%fluxes%num_bcs + do n = 1, Ice_boundary%fluxes%num_bcs if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then do m = 1, Ice_boundary%fluxes%bc(n)%num_fields call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & @@ -2738,7 +2730,8 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo enddo !} END MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID - !> OVERRIDE ICE FIELDS ONLY IF THE FIELD IS SPECIFIED IN THE DATA TABLE + !> OVERRIDE ICE FIELDS. NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE + !! ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ !Balaji: data_override calls moved here from coupler_main call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) @@ -2769,9 +2762,9 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call fms_data_override('ICE', 'p', Ice_boundary%p, Time) call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) - !} END OVERRIDE ICE FIELDS + !} end override Ice fields - !> COMPOTE STOCK CHANGES BETWEEN COMPONENTS + !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS !{ ! Atm -> Lnd (precip) call FMS_XGRID_STOCK_MOVE_( & @@ -2828,59 +2821,61 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') - !} END COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS + !} END COPUTE STOCK EXCHANGE BETWEEN COMPONENTS deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) - !> SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT + !> SEND U_FLUX AND V_FLUX TO THE DIAG_MANAGER BUFFER + !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ !------- zonal wind stress ----------- used = fms_diag_send_data ( id_u_flux, Atmos_boundary%u_flux, Time ) used = fms_diag_send_data ( id_tauu, -Atmos_boundary%u_flux, Time ) - + !------- meridional wind stress ----------- used = fms_diag_send_data ( id_v_flux, Atmos_boundary%v_flux, Time ) used = fms_diag_send_data ( id_tauv, -Atmos_boundary%v_flux, Time ) - !} END SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT + !} !> END CLOCK FOR PROFILING - !{ !Balaji call fms_mpp_clock_end(fluxAtmDnClock) call fms_mpp_clock_end(cplClock) - !} end subroutine flux_down_from_atmos - !> Update fractional area of the exchange grid between land and ice (see link to xgrid for details) - !! Fractional area measures the fractional part of the exchange grid cell that correspoonds to land and to ice. + !> Subroutine generate_sfc_xgrid updates the fractional area of the exchange grid between land and ice, where + !! the fractional area measures the portion of the exchange grid cell that correspoonds to land and to ice. !! This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are - !! pure land or pure ice (i.e., elimiate side 2 tiles with fractional area value of 0.0) + !! pure land or pure ice (i.e., eliminate side 2 tiles with fractional area value of 0.0) subroutine generate_sfc_xgrid(Land, Ice) implicit none type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data Type(Ice_Data_Type), intent(in) :: Ice !< A derived data type to specify ice boundary data - + integer :: isc, iec, jsc, jec !compute domain indices !Balaji - !> START CLOCKS FOR PROFILING + !> INITIALIZE CLOCK FOR PROFILING !{ call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(regenClock) !} + !> GET ICE COMPUTE DOMAIN INDICES + !{ call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) + !} - !> UPDATE XMAP_SFC%FRAC_AREA THAT HOLDS THE FRACTION AMOUNT OF EACH COMPONENT GRID CELL THAT ARE ICE OR LAND + !> UPDATE FRACTIONAL AREAS OF THE EXCHANGE GRID THAT ARE ICE AND LAND !{ call fms_xgrid_set_frac_area(Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) call FMS_XGRID_SET_FRAC_AREA_(Land%tile_size, 'LND', xmap_sfc) !} - !> RESET THE NUMBER OF EXCHANGE GRID CELLS AND OPENMP BLOCKS + !> UPDATE THE NUMBER OF EXCHANGE GRID CELLS SAVED IN THE MODULE !{ n_xgrid_sfc = max(fms_xgrid_count(xmap_sfc),1) if(n_xgrid_sfc .ge. nblocks) then @@ -2893,8 +2888,9 @@ subroutine generate_sfc_xgrid(Land, Ice) endif !} - !> END CLOCKS FOR PROFILING + !> END CLOCK FOR PROFILING !Balaji + !{ call fms_mpp_clock_end(regenClock) call fms_mpp_clock_end(cplClock) !} @@ -2902,17 +2898,15 @@ subroutine generate_sfc_xgrid(Land, Ice) end subroutine generate_sfc_xgrid !####################################################################### - !> \brief Corrects the fluxes for consistency with the new surface temperatures in land and ice models. - !! + !! Subroutine flux_up_to_atmos corrects the fluxes to take into account + !! the new surface temperatures in land and ice models. !! Final increments for temperature and specific humidity in the !! lowest atmospheric layer are computed and returned to the atmospheric model !! so that it can finalize the increments in the rest of the atmosphere. !! !! The following elements of the land_ice_atmos_boundary_type are computed: - !!
                                                                                                                                                                                                                                                                                                              -  !!        dt_t  = temperature change at the lowest atmospheric level (deg k)
                                                                                                                                                                                                                                                                                                              -  !!        dt_q  = specific humidity change at the lowest atmospheric level (kg/kg)
                                                                                                                                                                                                                                                                                                              -  !! 
                                                                                                                                                                                                                                                                                                              + !! dt_t = temperature change at the lowest atmospheric level [K] + !! dt_q = specific humidity change at the lowest atmospheric level [kg/kg] subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary ) implicit none @@ -2925,41 +2919,41 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice type(atmos_land_boundary_type), intent(inout) :: Land_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to land + !< A derived data type to specify properties and fluxes passed from atmosphere to land type(atmos_ice_boundary_type), intent(inout) :: Ice_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to ice + !< A derived data type to specify properties and fluxes passed from atmosphere to ice real, dimension(n_xgrid_sfc) :: & ex_t_surf_new, & ! new surface temperature on the exchange grid - ex_dt_t_surf, & ! changes in radiative temperature on the exchange grid - ex_delta_t_n, & ! related to temperature change at the lowest atmospheric level on the exchange grid - ex_t_ca_new, & ! related to canopy air temperature on the exchange grid - ex_dt_t_ca, & ! changes in canopy air temperature on the exchange grid - ex_icetemp, & ! used to compute surface temperature for open ocean, land, and sea-ice on exchange grid - ex_land_frac, & ! land mask on the exchange grid - ex_temp ! used to compute surface temperatuer for open ocean, land, and sea-ice on exchange grid + ex_dt_t_surf, & ! + ex_delta_t_n, & + ex_t_ca_new, & + ex_dt_t_ca, & + ex_icetemp, & + ex_land_frac, & + ex_temp real, dimension(n_xgrid_sfc,n_exch_tr) :: & ex_tr_surf_new, & ! updated tracer values at the surface ex_dt_tr_surf, & ! tendency of tracers at the surface - ex_delta_tr_n ! used to update tracer tendencies in the atmosphere + ex_delta_tr_n ! jgj: added for co2_surf diagnostic, where co2_surf_dvmr is the updated CO2 tracer values at the surface (dry vmr) - real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr - + real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr + real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: & - diag_atm, & ! temporary array - evap_atm, & ! temporary array - frac_atm !temporary array + diag_atm, & + evap_atm, & + frac_atm #ifndef _USE_LEGACY_LAND_ - real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land + real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land #else real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: & - data_lnd, diag_land ! temporary arrays + data_lnd, diag_land #endif - real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice - real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid ! temporary array + real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice + real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid logical :: used integer :: tr ! tracer index @@ -2967,14 +2961,15 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou integer :: n, i, m, ier integer :: is, ie, l - !> START CLOCKS FOR PROFILING + !> START CLOCK FOR PROFILING !{ !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmUpClock) !} - !> OVERRIDE ICE AND LAND TEMPERATURE FIELDS ONLY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE + !> OVERRIDE ICE%T_SURF, LAND%T_CA, LAND%T_SURF AND LAND SURFACE TRACERS + !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE DATA IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ !Balaji: data_override calls moved here from coupler_main call fms_data_override('ICE', 't_surf', Ice%t_surf, Time) @@ -2990,15 +2985,19 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou enddo !} - !> COMPUTE CHANGE IN SURFACE TEMPERATURE + !> INITIALIZE EX_T_SURF_NEW = 200.0 !{ ex_t_surf_new = 200.0 + !} + !> PUT ICE%T_SURF, LAND%T_CA AND LAND%T_SURF ONTO THE EXCHANGE GRID + !{ call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf_new, xmap_sfc) ex_t_ca_new = ex_t_surf_new ! since it is the same thing over oceans call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) + !} ! call escomp(ex_t_ca_new, ex_q_surf_new) ! ex_q_surf_new = d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) @@ -3011,6 +3010,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif #endif + !> COMPUTE CHANGE IN SURFACE TEMPERATURE + !{ do l = 1, my_nblocks is = block_start(l) ie = block_end(l) @@ -3029,7 +3030,6 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif enddo end if - !} END COMPUTE CHANGE IN SURFACE TEMPERATURE !> UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE @@ -3107,18 +3107,19 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou enddo enddo !} END UPDATE TRACER TENDENCIES IN THE ATMOSPHERE - - !> MAP MEAN QUANTITIES FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID + + !> MAP DT_T, SHFLX, and LHFLX FIELDS IN LAND_ICE_ATMOS_BOUNDARY FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID !{ call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_t, 'ATM', ex_delta_t_n, xmap_sfc) #ifndef use_AM3_physics call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t , xmap_sfc) !miz call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc)!miz #endif - !} END MAP MEAN QUANITTIES FROM THE EXCHANGE GRID TO THE ATMOSPHERE GRID + !} END MAP DT_T, SHFLX, and LHFLX FIELDS IN LAND_ICE_ATMOS_BOUNDARY FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID - !> MAP DATA FROM THE EXCHANGE GRID TO THE COMPONENT GRID AND SEND DATA TO DIAG_MANAGER BUFFER - !! WHERE IF THE FIELD IS SPECIFIED IN THE DIAG_TABLE, DATA WILL BE OUTPUTTED AT THE END OF THE MODEL RUN + + !> MAP DATA FROM THE EXCHANGE GRID TO OCN/ATM/LND GRID AND SEND DATA TO THE DIAG_MANAGER BUFFER. + !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ #ifdef use_AM3_physics if (id_t_surf > 0) then @@ -3252,7 +3253,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou used = fms_diag_send_data(id_tr_con_ref(tr), diag_atm, Time) end if enddo - + #ifndef _USE_LEGACY_LAND_ if(id_t_flux_land > 0) then call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_flux_t, xmap_sfc) @@ -3323,13 +3324,12 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ! need this to avoid diag issues with tiling changes in update_land_slow call dump_tile_diag_fields(Time) #endif - !} END SEND DATA TO DIAG_MANAGER_BUFFER !> COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS !{ call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) - + ! Lnd -> Atm (evap) call FMS_XGRID_STOCK_MOVE_( & & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & @@ -3344,7 +3344,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & delta_t=Dt_atm, & & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') - + ! Lnd -> Atm (heat lost through evap) call FMS_XGRID_STOCK_MOVE_( & & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & @@ -3384,7 +3384,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') !} END COMPUTE STOCK EXCHANGE - + !> END CLOCK FOR PROFILING !{ !Balaji @@ -3394,7 +3394,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou end subroutine flux_up_to_atmos - !> \brief Internal subroutine to deallocate exchange fields + + !> Subroutine flux_ex_arrays_dealloc deallocates arrays holding fields on the exchange grid subroutine flux_ex_arrays_dealloc() implicit none @@ -3450,7 +3451,7 @@ subroutine flux_ex_arrays_dealloc() do m = 1, ex_gas_fields_ice%bc(n)%num_fields deallocate(ex_gas_fields_ice%bc(n)%field(m)%values) nullify ( ex_gas_fields_ice%bc(n)%field(m)%values) - enddo + enddo enddo do n = 1, ex_gas_fields_atm%num_bcs @@ -3466,24 +3467,24 @@ subroutine flux_ex_arrays_dealloc() nullify ( ex_gas_fluxes%bc(n)%field(m)%values ) enddo enddo - + end subroutine flux_ex_arrays_dealloc - !> \brief Computes deposition gas fluxes between atmosphere and ocean + !> Subroutine flux_atmos_to_ocean computes deposition gas fluxes between atmosphere and ocean + !! and is called only if the do_flux namelist variable is set to .True. subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) implicit none - type(FmsTime_type), intent(in) :: Time - !< Current time + type(FmsTime_type), intent(in) :: Time !< Current time type(atmos_data_type), intent(inout):: Atm !< A derived data type to specify atmosphere boundary data type(atmos_ice_boundary_type), intent(inout):: Ice_boundary !< A derived data type to specify properties and fluxes passed from atmosphere to ice type(ice_data_type), intent(inout):: Ice - + integer :: n,m logical :: used - + #ifndef use_AM3_physics call atmos_tracer_driver_gather_data_down(Atm%fields, Atm%tr_bot) #endif @@ -3503,13 +3504,16 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) endif enddo !} - + !> CALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRID !{ call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) !} - !> MAP COMPUTED FLUX FROM THE EXCHANGE GRID TO THE ICE GRID + !> MAP AIR_SEA_DEPOSITION FLUX FROM THE EXCHANGE GRID TO THE ICE GRID + !! BUT IF THE FLUX FIELD EXISTS IN DATA_TABLE, OVERWRITE DATA WITH + !! DATA_OVERRIDE. IF THE FIELD IS REGSITERED IN DIAG_MANAGER, SEND DATA + !! TO THE DIAG_MANAGER BUFFER !{ do n = 1, Ice_boundary%fluxes%num_bcs if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then @@ -3522,16 +3526,14 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) if(Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then used = fms_diag_send_data(Ice_boundary%fluxes%bc(n)%field(m)%id_diag, & Ice_boundary%fluxes%bc(n)%field(m)%values, Time) - endif + endif enddo endif enddo !} - !> UPDATE AIR_SEA_DEPOSITION FLUXES - !{ + !> UPDATE ICE FIELDS THAT ARE LABELED AS AIR_SEA_DEOOSITION FLUXES call update_ice_atm_deposition_flux(Ice_boundary, Ice) - !} end subroutine flux_atmos_to_ocean @@ -3547,18 +3549,18 @@ subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) type(FmsXgridXmap_type), intent(inout) :: xmap real, dimension(size(mask,1),size(mask,2),size(mask,3)) :: rmask - + where (mask) rmask = 1.0 elsewhere rmask = 0.0 endwhere - + call fms_xgrid_put_to_xgrid(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_sg - + !> \brief Converts 2D logical mask arrays to real arrays with values of 1.0 for true and !! 0.0 for false before mapping the mask to the exchange grid !! Internally used subroutine to convert Land%mask when not using _USE_LEGACY_LAND_ @@ -3570,7 +3572,7 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) real, intent(inout) :: ex_mask(:) !< converted mask on exchange grid type(FmsXgridXmap_type), intent(inout) :: xmap - + real, dimension(size(mask,1),size(mask,2)) :: rmask where (mask) @@ -3582,19 +3584,20 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_ug - - !> \brief Initializes diagnostic fields in diag_manager - !! All diagnostics must be registered in diag_manager and all diagnostics + + !> Subroutine diag_field_init registers the diagnostic fields in this module to the diag_manager + !! Note, All diagnostic fields must be registered in diag_manager and all diagnostics fields !! must be specified in the diag_table in order for the data to be outputted - !! to a NetCDF file at the end of the model run + !! to a NetCDF file at the end of the model run. This subroutine is called + !! during module initialization in subroutine atm_land_ice_flux_exchange_init subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) implicit none - type(FmsTime_type), intent(in) :: Time - integer, intent(in) :: atmos_axes(2) - integer, intent(in) :: land_axes(:) - logical, intent(in) :: land_pe + type(FmsTime_type), intent(in) :: Time !< Time + integer, intent(in) :: atmos_axes(2) !< array size for atmospheric diagnostic fields + integer, intent(in) :: land_axes(:) !< array size for land diagnostic fields + logical, intent(in) :: land_pe !< land pe number integer :: iref character(len=6) :: label_zm, label_zh @@ -3606,7 +3609,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) character(len=128) :: longname ! long name of the tracer integer :: tr ! tracer index integer :: area_id - + !> Convert diagnostic labels from integers to strings !{ ! (z_ref_mom, z_ref_heat are namelist variables) @@ -3631,28 +3634,28 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) 110 format (f4.1,' m') !} - + !--------- initialize static diagnostic fields -------------------- id_land_mask = & fms_diag_register_static_field ( mod_name, 'land_mask', atmos_axes, & 'fractional amount of land', 'none', & range=frange, interp_method = "conserve_order1" ) - + !--------- initialize diagnostic fields -------------------- - + id_ice_mask = fms_diag_register_diag_field(& mod_name, 'ice_mask', atmos_axes, Time, 'fractional amount of sea ice', 'none', range=frange, & interp_method = "conserve_order1") id_wind = fms_diag_register_diag_field(& mod_name, 'wind', atmos_axes, Time, 'wind speed for flux calculations', 'm/s', range=[0.,vrange(2)]) - + id_drag_moist = fms_diag_register_diag_field(& mod_name, 'drag_moist', atmos_axes, Time, 'drag coeff for moisture', 'none') - + id_drag_heat = fms_diag_register_diag_field(& mod_name, 'drag_heat', atmos_axes, Time, 'drag coeff for heat', 'none') - + id_drag_mom = fms_diag_register_diag_field(& mod_name, 'drag_mom', atmos_axes, Time, 'drag coeff for momentum', 'none') @@ -3661,22 +3664,22 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) id_rough_heat = fms_diag_register_diag_field(& mod_name, 'rough_heat', atmos_axes, Time, 'surface roughness for heat', 'm') - + id_rough_mom = fms_diag_register_diag_field(& mod_name, 'rough_mom', atmos_axes, Time, 'surface roughness for momentum', 'm') - + id_u_star = fms_diag_register_diag_field(& mod_name, 'u_star', atmos_axes, Time, 'friction velocity', 'm/s') id_b_star = fms_diag_register_diag_field(& mod_name, 'b_star', atmos_axes, Time, 'buoyancy scale', 'm/s2') - + id_q_star = fms_diag_register_diag_field(& mod_name, 'q_star', atmos_axes, Time, 'moisture scale', 'kg water/kg air') id_thv_atm = fms_diag_register_diag_field(& mod_name, 'thv_atm', atmos_axes, Time, 'surface air virtual potential temperature', 'K') - + id_thv_surf = fms_diag_register_diag_field(& mod_name, 'thv_surf', atmos_axes, Time, 'surface virtual potential temperature', 'K') @@ -3685,10 +3688,10 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) id_v_flux = fms_diag_register_diag_field(& mod_name, 'tau_y', atmos_axes, Time, 'meridional wind stress', 'pa') - + id_t_ocean = fms_diag_register_diag_field(& mod_name, 't_ocean', atmos_axes, Time, 'surface temperature from ocean output', 'deg_k', range=trange) - + id_t_surf = fms_diag_register_diag_field(& mod_name, 't_surf', atmos_axes, Time, 'surface temperature','deg_k', range=trange) @@ -3824,7 +3827,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) id_tr_con_ref_land(tr) = register_diag_field('flux_land', trim(name)//'_tot_con_ref', & Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) - + ! we skip sphum because it is already available as flux_land/q_ref if(tr .ne. isphum) then id_tr_ref_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_ref', & @@ -3900,11 +3903,11 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) ! register data calls not needed here for co2_flux_pcair_atm and o2_flux_pcair_atm as this happens elsewhere id_co2_bot = fms_diag_register_diag_field (mod_name, 'co2_bot', atmos_axes, Time, & 'co2_bot from data_override', 'ppmv') - + ! id_nh3_flux_atm0 = fms_diag_register_diag_field (mod_name, 'nh3_flux_atm0', atmos_axes, Time, & ! 'nh3 flux out of the ocean assuming not nh3 in the atmosphere', 'mol/m2/s') - + id_q_flux = fms_diag_register_diag_field(mod_name, 'evap',fatmos_axes, Time, & 'evaporation rate', 'kg/m2/s') @@ -3967,7 +3970,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) missing_value=CMOR_MISSING_VALUE) if(id_huss > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_huss, 'coordinates', 'height2m') - + id_hurs = fms_diag_register_diag_field(mod_name, 'hurs', atmos_axes, Time, & 'Near-Surface Relative Humidity', '%', standard_name = 'relative_humidity', area=area_id, & missing_value=CMOR_MISSING_VALUE) @@ -4033,7 +4036,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) 'Near-Surface Air Temperature', 'K' , standard_name='air_temperature') if(id_tas > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_tas, 'coordinates', 'height2m') - + id_uas = register_cmip_diag_field_2d(mod_name, 'uas', Time, & 'Eastward Near-Surface Wind', 'm s-1', standard_name='eastward_wind') @@ -4043,7 +4046,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) 'Northward Near-Surface Wind', 'm s-1', standard_name='northward_wind') if(id_vas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_vas, 'coordinates', 'height10m') - + id_sfcWind = register_cmip_diag_field_2d(mod_name, 'sfcWind', Time, & 'Near-Surface Wind Speed', 'm s-1', standard_name='wind_speed') @@ -4096,7 +4099,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) ! tos,sic are ocean,seaIce fields on the atmos grid ! useful for amip-type runs - + id_tos = register_cmip_diag_field_2d(mod_name, 'tos', Time, & 'Sea Surface Temperature', 'K', standard_name='sea_surface_temperature', mask_variant=.true.) @@ -4147,36 +4150,43 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) end subroutine diag_field_init - - !> \brief Divide data by area where grid cell area is not zero + !> Subroutine divide_by_area divides data on a grid by the grid cell area for cells + !! with non-zero area subroutine divide_by_area(data, area) implicit none - real, intent(inout) :: data(:,:) - real, intent(in) :: area(:,:) + real, intent(inout) :: data(:,:) !< data + real, intent(in) :: area(:,:) !< area - !> CHECK THE SHAPE OF THE DATA AND AREA ARE THE SAME + !> CHECK TO ENSURE SHAPE OF DATA IS THE SAME AS SHAPE OF AREA + !{ if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) return + !} - !> DIVIDE DATA IN EACH GRID CELL BY THE GRID CELL AREA + !> DIVIDE DATA BY GRID CELL AREA WHERE AREA /= 0.0 + !{ where(area /= 0.0) data = data / area end where + !} end subroutine divide_by_area - - !> \brief compute and send fractional amount of sea ice to diag_manager buffer - ! This was called inside flux_ocean_to_ice. Why? - subroutine send_ice_mask_sic(Time) + + !! If the ice_mask or sic variable have been registered with diag_manager, + !! this subroutine, send_ice_mask_sic, maps the fractional amount of sea ice + !! from the OCN grid to the ATM grid and sends the data to the diag_manager buffer. + ! This was called inside flux_ocean_to_ice. Why? + SUBROUTINE SEND_ICE_MASK_SIC(TIME) implicit none - type(FmsTime_type), intent(in) :: Time !< Current time + type(fmstime_type), intent(in) :: time !< current time real, dimension(nxc_ice, nyc_ice, nk_ice) :: ice_frac real, dimension(n_xgrid_sfc) :: ex_ice_frac real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac logical :: used + !> IF ID_ICE_MASK > 0 OR ID_SIC > 0 if(id_ice_mask > 0 .or. id_sic > 0) then !> INITIALIZE ICE_FRAC @@ -4184,15 +4194,24 @@ subroutine send_ice_mask_sic(Time) ice_frac(:,:,1) = 0. ex_ice_frac = 0. - !> REMAP ICE_MASK (FRACTIONAL AMOUNT OF SEA ICE) TO THE ATM GRID + !> MAP ICE_FRAC FROM THE OCN GRID TO THE EXCHANGE GRID + !{ call fms_xgrid_put_to_xgrid(ice_frac, 'OCN', ex_ice_frac, xmap_sfc) + !} + + !> MAP ICE_FRAC FROM THE EXCHANGE GRID TO THE ATM GRID + !{ call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_ice_frac, xmap_sfc) + !} - !> SEND ICE_MASK TO THE DIAG_MANAGER BUFFER + !> IF ID_ICE_MASK > 0, SEND ICE_MASK TO THE DIAG_MANAGER BUFFER + !{ if(id_ice_mask > 0) used = fms_diag_send_data(id_ice_mask, diag_atm, Time) + !} - !> COMPUTE SEA ICE AREA FRACTION FOR CELLS ON ATM GRID THAT ARE OVER OCEAN - !! NORMALIZE SEA ICE FRACTION OVER ENTIRE ATMOS GRID BOX BY THE FRACTION OF ATMOS GRID BOX THAT IS OCEAN + !> FOR CMIP, IF ID_SIC > 0, COMPUTE SEA ICE FRACTIONAL AREA FOR ATM GRID CELLS THAT ARE OVER THE OCEAN + !! AND NORMALIZE AREA BY THE FRACTION OF ATMOS GRID CELL THAT IS OCEAN + !{ if(id_sic > 0) then ice_frac = 1. ex_ice_frac = 0. @@ -4208,20 +4227,24 @@ subroutine send_ice_mask_sic(Time) used = fms_diag_send_data(id_sic, diag_atm, Time, rmask=ocean_frac) endif endif - + !} + end subroutine send_ice_mask_sic !####################################################################### - !> \brief integrate the total precipitation in atmosphere and multipy by dt + !> Subroutine atm_stock_integrate integrates over the total precipitation + !! (liquid and frozen) in the atmosphere and multiply the integrated value by + !! the timestep dt subroutine atm_stock_integrate(Atm, res) - implicit none - type(atmos_data_type), intent(in) :: Atm !< derived type to holding atmosphere boundary data - real, intent(out) :: res !< integrated value + implicit none + type(atmos_data_type), intent(in) :: Atm !< derived type holding the atmosphere boundary data + real, intent(out) :: res !< integrated value - integer :: ier !< error returned from fms_xgrid_stock_integrate_2d + integer :: ier ! error returned from fms_xgrid_stock_integrate_2d + !> CALL FMS_XGRID_STOCK_INTEGRATE call fms_xgrid_stock_integrate_2d(Atm%lprec + Atm%fprec, xmap=xmap_sfc, delta_t=Dt_atm, & & radius=Radius, res=res, ier=ier) From 5d57295592b2f932efa1f277ca1e7ec3a037e815 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Mon, 23 Mar 2026 10:10:29 -0400 Subject: [PATCH 24/31] remove old --- full/atm_land_ice_flux_exchange-old | 4086 --------------------------- 1 file changed, 4086 deletions(-) delete mode 100644 full/atm_land_ice_flux_exchange-old diff --git a/full/atm_land_ice_flux_exchange-old b/full/atm_land_ice_flux_exchange-old deleted file mode 100644 index 8c56d01a..00000000 --- a/full/atm_land_ice_flux_exchange-old +++ /dev/null @@ -1,4086 +0,0 @@ -!*********************************************************************** -!* GNU Lesser General Public License -!* -!* This file is part of the GFDL Flexible Modeling System (FMS) Coupler. -!* -!* FMS Coupler is free software: you can redistribute it and/or modify -!* it under the terms of the GNU Lesser General Public License as -!* published by the Free Software Foundation, either version 3 of the -!* License, or (at your option) any later version. -!* -!* FMS Coupler is distributed in the hope that it will be useful, but -!* WITHOUT ANY WARRANTY; without even the implied warranty of -!* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -!* General Public License for more details. -!* -!* You should have received a copy of the GNU Lesser General Public -!* License along with FMS Coupler. -!* If not, see . -!*********************************************************************** -!> \file -!> \brief Performs flux calculations and exchange grid operations for atmosphere, land and ice - -#undef FMS_DATA_OVERRIDE_ -#undef FMS_XGRID_PUT_TO_XGRID_ -#undef FMS_XGRID_STOCK_MOVE_ -#undef FMS_XGRID_SET_FRAC_AREA_ -#undef FMS_XGRID_GET_FROM_XGRID_ -#undef FMS_DIAG_REGISTER_FIELD_ - -#ifndef _USE_LEGACY_LAND_ -#define FMS_DATA_OVERRIDE_ fms_data_override_ug -#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug -#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug -#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug -#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid_ug -#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field -#else -#define FMS_DATA_OVERRIDE_ fms_data_override -#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid -#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move -#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area -#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid -#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field -#endif - -module atm_land_ice_flux_exchange_mod - - ! atmos_drivers - use atmos_model_mod, only: & - atm_stock_pe, & ! subroutine to compute the total stock in the atmospheric model - atmos_data_type, & ! derived type containing fields needed for flux exchange between components - land_ice_atmos_boundary_type ! derived type containing quantities going from land and ice to atmos - - ! FMSCoupler/full - use atmos_ocean_dep_fluxes_calc_mod, only: & - atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes - - ! FMSCoupler/full - use atmos_ocean_fluxes_calc_mod, only: & - atmos_ocean_fluxes_calc ! subroutine to computes gas fluxes for atmosphere and ocean - - ! FMS/coupler - use atmos_ocean_fluxes_mod, only: & - atmos_ocean_fluxes_init ! subroutine initializes gas fluxes in coupler derived types - - ! am5_phys - use atmos_tracer_driver_mod, only: & - atmos_tracer_flux_init ! subroutine to initialize atmos_tracer_driver_mod - - ! MOM6/SIS2 - use ice_model_mod, only: & - atmos_ice_boundary_type, & ! derived type for flux exchange between atmosphere and sea ice - ice_data_type, & ! derived type holding ice model data - ice_stock_pe, & ! subroutine to compute stocks of heat, water, etc for conservation checks - land_ice_boundary_type, & ! derived type for flux exchange between land and sea ice - ocean_ice_boundary_type, & ! derived type for flux exchange between ocean and sea ice - update_ice_atm_deposition_flux ! updates fluxes of type "air_sea_deposition" - - ! Land_lad2 - use land_model_mod, only: & - atmos_land_boundary_type, & ! derived type to pass information from atmosphere to land - land_data_type, & ! derived type to pass information from land to atmosphere - lnd_stock_pe ! subroutine to compute stocks of conservative land quantities - - ! If not _USE_LEGACY_LAND_, use land_lad2/land_tile_diag_mod instead of FMS/diag_manager -#ifndef _USE_LEGACY_LAND_ - use land_model_mod, only: & - dump_tile_diag_fields, & ! subroutine for workaround with Intel compilers and OpenMP - register_tiled_diag_field, & ! subroutine to register diag field within the land model - send_tile_data, & ! subroutine to save data in buffer within the land model for the registered field - set_default_diag_filter ! subroutine to set default tile diagnostic selector -#endif - - ! MOM6 - use ocean_model_mod, only: & - ice_ocean_boundary_type, & !derived type containing the forcings - ocean_model_init_sfc, & ! subroutine to extracts surface properties from the ocean's internal state - ocean_model_data_get, & ! interface procedure to extract scalar fields from ocean surface or ocean_public type - ocean_model_flux_init, & ! subroutine to initializes the properties from air-sea fluxes - ocean_public_type, & ! derived type used in FMScoupler to communicate with other model components - ocean_state_type, & ! derived type containing the state of the ocean - Ocean_stock_pe ! subroutine to computes integrated stocks of heat, water, etc. for conservation checks - - ! FMSCoupler/shared - use surface_flux_mod, only: & - surface_flux, & ! subroutine to compute fluxes on exchange grids - surface_flux_init ! subroutine to initialize surface_flux_mod - - ! am5_phys -#ifndef use_AM3_physics - use atmos_cmip_diag_mod, only: & - register_cmip_diag_field_2d !function to register CMIP diagnostic data - use atmos_global_diag_mod, only: & - get_global_diag_field_id, & ! function to retrieve internally-tracked id of the global diag field - register_global_diag_field, & ! function that calls FMS/register_diag_field for globally averaged data - send_global_diag ! function that calls FMS/diag_manager/send_data for global fields - use atmos_tracer_driver_mod, only & - atmos_tracer_has_surf_setl_flux, & - !function returns True of tracer sedimentation flux > 0 at bottom of the atmosphere - get_atmos_tracer_surf_setl_flux, & - !subroutine to retrieve tracer sedimentation flux at bottom of the atmosphere - atmos_tracer_driver_gather_data_down -#ifndef _USE_LEGACY_LAND_ - use land_model_mod, only: & - send_global_land_diag ! function to save land model field on unstructured grid for global integral -#endif -#endif - - ! option to override various surface boundary conditions for SCM -#ifdef SCM - use scm_forc_mod, only: & - ALBEDO_OBS, & - do_specified_albedo, & - do_specified_land, & - do_specified_rough_leng, & - do_specified_tskin, & - do_specified_flux, & - ROUGH_MOM, & - ROUGH_HEAT, & - scm_surface_flux, & - TSKIN -#endif - -use FMS -use FMSconstants, only: & - cp_air, & ! RDGAS/KAPPA , specific heat capacity of dry air at constant pressure [J/kg/deg] - CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] - EPSLN, & ! 1.0e-40, a small number to prevent divide by zero exceptions - GRAV, & ! 9.80, acceleration due to gravity [m/s^2] - HLF, & ! 3.34e5, latent heat of fusion [J/kg] - HLV, & ! 2.500e6, latent heat of evaporation [J/kg] - PI, & ! 3.14159265358979323846 - Radius, & ! 6371.0e+3, radius of the Earth [m] - rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] - rvgas, & ! 461.50, gas constant for water vapor - stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] - WTMC, & ! 12.00000, molecular weight of carbon [amu] - WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [amu] - WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] - WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [amu] - - implicit none - private - - public :: & - atm_land_ice_flux_exchange_init, & - atm_stock_integrate, & - flux_atmos_to_ocean, & - flux_down_from_atmos, & - flux_ex_arrays_dealloc,& - flux_up_to_atmos, & - generate_sfc_xgrid, & - send_ice_mask_sic, & - sfc_boundary_layer - - character(len=128) :: version = '$Id$' - character(len=128) :: tag = '$Name$' - - type(FmsXgridXmap_type), save :: xmap_sfc - integer :: n_xgrid_sfc=0 !< number of exchange grid points - - !-------- namelist (for diagnostics) ------ - - character(len=4), parameter :: mod_name = 'flux' - - ! returned ids from registering diagnostic field with diag_manager - integer :: & - id_b_star, & ! bouyancy scale - id_del_h, & ! ref height interp factor for heat - id_del_m, & ! ref height for interp factor for momentum - id_del_q, & ! ref height interp factor for moisture - id_drag_heat, & ! drag coefficient for heat - id_drag_moist, & ! drag coefficient for moisture - id_drag_mom, & ! drag coefficient for momentum - id_gust, & ! gust scale - id_hussLut_land, & ! near-surface specific humidity on land use tile - id_ice_mask, & ! fractional amount of land - id_land_mask, & ! fractional amount of sea ice - id_p_atm, & ! pressure at lowest atmospheric level - id_q_flux, & ! evaporation rate - id_q_flux_land, & ! evaporation rate over land - id_q_ref, & !specific humidity at z_ref_heat - id_q_ref_land, & ! specific humidity at z_ref_heat over land - id_q_star, & ! moisture scale - id_r_flux, & ! net (down-up) longwave flux - id_rh_ref, & ! relative humidity at z_ref_heat - id_rh_ref_cmip, & ! relative humidity at z_ref_heat - id_rh_ref_land, & ! relative humidity at z_ref_heat over land - id_rough_heat, & !surface roughness for heat - id_rough_moist, & ! surface roughness for moisture - id_rough_mom, & ! surface roughness for momentum - id_rough_scale, & ! topographic scaling fractor for momentum drag - id_slp, & ! sea level pressure - id_t_atm, & ! temperature at lowest atmospheric level - id_t_ca, & ! canopy air temperature - id_t_flux, & !sensible heat flux - id_t_ocean, & ! surface temperature from ocean output - id_t_ref, & ! temperature at z_ref_heat - id_t_ref_land, & !temperature at z_ref_heat over land - id_t_surf, & ! surface temperature - id_tasLut_land, & ! near-surface air temperature z_ref_heat above displacement height on land-use tile - id_thv_atm, & ! surface air virtual potential temperature - id_thv_surf, & ! surface virtual potential temperature - id_u_atm, & ! u wind component at lowest atmospheric level - id_u_flux, & ! zonal wind stress - id_u_ref, & ! zonal wind component at z_ref_mom - id_u_ref_land, & ! zonal wind component at z_ref_mom over land - id_u_star, & ! friction velocity - id_v_atm, & ! v wind component at lowest atmospheric level - id_v_flux, & ! meridional wind stress - id_v_ref, & ! meridional wind component at z_ref_mom - id_v_ref_land, & ! meridional wind component at z_ref_mom over land - id_wind, & ! wind speed for flux calculations - id_wind_ref, & ! absolute value of wind at z_ref_mom - id_z_atm, & ! height of lowest atmospheric level - id_co2_atm_dvmr, & ! co2 dry volume mixing ratio at lowest atmospheric level - id_co2_surf_dvmr & ! c02 dry volume mixing ratio at surface - ! 2017/08/15 jgj added - id_co2_bot, & ! concentration of co2 to be passed to land/photosynthesis - id_co2_flux_pcair_atm, & ! concentration of co2 to be passed to ocean NEED HELP - id_o2_flux_pcair_atm ! concentration of o2 to be passed to to ocean NEED HELP - - ! arrays for holding ids returned from registering diag_fields with diag_manager for tracers - integer, allocatable :: & - id_tr_atm(:), & ! value of tracer at lowest atmospheric level NEED HELP - id_tr_surf(:), & ! value of tracer at surface NEED HELP - id_tr_flux(:), & ! tracer fluxes - id_tr_mol_flux(:), & ! flux of co2 concentration in [mol/m2*s] - id_tr_ref(:), & ! value of tracer at z_ref_heat - id_tr_ref_land(:), & ! tracer flux at z_ref_heat over land NEED HELP - !f1p - id_tr_mol_flux0(:), & ! gross flux of tracer concentration over land in [mol/m2*s] - id_tr_flux_land(:), & ! flux of tracer concentration over land in [kg/m2*s] - id_tr_mol_flux_land(:), & ! flux of tracer concentration over land in [mol/m2*s] - ! used with _USE_LEGACY_LAND_ - id_tr_con_atm(:), & ! deposition velocity at lowest atmospheric level (atm) - id_tr_con_atm_land(:), & ! deposition velocity at lowest atmospheric level over land - id_tr_con_ref(:), & ! deposition velocity at reference height (atm) - id_tr_con_ref_land(:) ! deposition velocity at reference height over land - - ! id's for cmip specific fields - integer :: & - id_evspsbl, & ! water evaporation flux - id_height10m, & ! near surface height - id_height2m, & ! near surface height - id_hfls, & ! surface upward latent heat flux - id_hfss, & ! surface upward sensible heat flux - id_hurs, & ! near-surface relative humidty - id_huss, & ! near-surface specific humidity - id_psl, & ! air pressure at sea level - id_rhs, & ! near-surface relative humidty - id_sfcWind, & ! near-surface wind speed - id_sftlf, & ! fraction of the grid cell occupied by land - id_sic, & ! sea ice area fraction - id_tas, & ! near-surface air temperature - id_tauu, & ! surface downward eastward wind stress - id_tauv, & ! surface downward northward wind stress - id_tos, & ! sea surface temperature - id_ts, & ! surface temperature - id_tslsi, & ! surface temperature on land or sea ice - id_uas, & ! eastward near-surface wind - id_vas !northward near-surface wind - - ! globally averaged diagnostics - integer :: & - id_evspsbl_g, & ! global integral of water evaporation flux - id_hfls_g, & ! global integral of surface upward latent heat flux - id_hfss_g, & ! global integral of surface upward sensible heat flux - id_rls_g, & ! global integral of near-surface relative humidty - id_tas_g, & ! global integral of near-surface air temperature - id_tasl_g, & ! global integral of near-surface air temperature on land only - id_ts_g ! global integral of surface temperature - - logical :: first_static = .true. ! If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer - logical :: do_init = .true. ! true if atm_land_ice_flux_exchnge_init has been called - integer :: remap_method = 1 ! first or second order conservative remapping onto exchange grid - - real, parameter :: bound_tol = 1e-7 ! NOT USED DELETE - - real, parameter :: d622 = rdgas/rvgas ! NOT USED DELETE - real, parameter :: d378 = 1.0-d622 ! NOT USED DELETE - real, parameter :: d608 = d378/d622 ! CHANGE TO 1.0-d622/(rdgas/rvgas) - real, parameter :: tfreeze = 273.15 ! freezing point of water at 1 atm [K] - real, allocatable, dimension(:,:) :: frac_precip ! NEED HELP - - !--- the following is from flux_exchange_nml - real :: z_ref_heat = 2. - ! Reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q - real :: z_ref_mom = 10. - ! Reference height [m] for momentum diagnostics u_ref, v_ref, and del_m - - logical :: do_area_weighted_flux = .FALSE. ! NOT USED DELETE - logical :: do_forecast = .false. ! NEED HELP - integer :: nblocks = 1 !OpenMP number of threads - logical :: partition_fprec_from_lprec = .FALSE. - ! If true, convert liquid precip to snow when t_ref < tfreeze - ! Used for atm override experiments where liquid and frozen precip are combined - logical :: scale_precip_2d = .false. ! If true, scale mass of liqud preciptation - - integer :: my_nblocks = 1 ! Initializing OpenMP parameter - integer, allocatable :: & - block_start(:), & ! starting do loop indices for OpenMP thread - block_end(:) ! ending do loop indices for OpenMP thread - - real, allocatable, dimension(:) :: & - ! NOTE: T canopy is only differet from t_surf over vegetated land - ex_albedo_fix, & ! NEED HELP - ex_albedo_nir_dif_fix, & ! NEED HELP - ex_albedo_nir_dir_fix, & ! NEED HELP - ex_albedo_vis_dif_fix, & ! NEED HELP - ex_albedo_vis_dir_fix, & ! NEED HELP - ex_b_star, & ! boyuancy scale on exchange grid - ex_cd_m, & ! drag coefficient for momentum on exchange grid - ex_cd_t, & !< drag coefficient for heat on exchange grid - ex_con_atm, & !< deposition velocity at lowest atmospheric level on exchange grid - ex_dedt_surf, & ! d(water.vap.flux)/d(T canopy) - ex_dhdt_atm, & ! d(sens.heat.flux)/d(T atm) - ex_dhdt_surf, & ! d(sens.heat.flux)/d(T canopy) - ex_dqsatdt_surf, & ! d(water.vap.flux)/d(q canopy) - ex_drdt_surf, & ! d(LW flux)/d(T surf) - ex_dtaudu_atm, & ! d(stress)/d(u) - ex_dtaudv_atm, & ! d(stress)/d(v) - ex_e_q_n, & ! dt/mass * dedet_surf * gamma - ex_flux_lw, & ! longwave radiation flux - ex_flux_t, & ! sens heat flux - ex_flux_u, & ! u stress on atmosphere - ex_flux_v, & ! v stress on atmosphere - ex_old_albedo, & ! old value of albedo for downward flux calculations - ex_p_surf, & ! surface pressure on exchange grid - ex_seawater, & ! mask array of seaice fractions - ex_slp, & ! surface pressure on exchange grid - ex_t_ca, & ! near-surface (canopy) air temperature on exchange grid [K] - ex_t_surf, & ! surface temperature for radiation calc on exchange grid [K] - ex_t_surf_miz, & !< miz NEED HELP - ex_u_star, & ! friction velocity on exchange grid - ex_wind, & ! wind speed on exchange grid - ex_z_atm ! height of lowest atmospheric level on exchange grid - -#ifdef SCM - real, allocatable, dimension(:) :: & - ex_dhdt_surf_forland, & - ex_dedt_surf_forland, & - ex_dedq_surf_forland -#endif - - real, allocatable, dimension(:,:) :: & - ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) - ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) - ex_e_tr_n, & !< coefficient in implicit scheme - ex_f_tr_delt_n, & !< coefficient in implicit scheme - ex_flux_tr, & !< tracer fluxes - ex_tr_con_ref, & !< deposition velocity at reference height - ex_tr_con_atm, & !< deposition velocity at atmospheric height - ex_tr_surf !< near-surface tracer fields - - logical, allocatable, dimension(:) :: & - ex_avail, & !< true where data on exchange grid are available - ex_land !< true if exchange grid cell is over land - real, allocatable, dimension(:) :: & - ex_e_t_n, & - ex_f_t_delt_n - - integer :: n_atm_tr !< number of prognostic tracers in the atmos model - integer :: n_atm_tr_tot !< number of prognostic tracers in the atmos model - integer :: n_lnd_tr !< number of prognostic tracers in the land model - integer :: n_lnd_tr_tot !< number of prognostic tracers in the land model - integer :: n_exch_tr !< number of tracers exchanged between models - integer :: n_gex_atm2lnd !< number of gex fields exchanged between land and atmosphere - integer :: n_gex_lnd2atm !< number of gex fields exchanged between atmosphere and land - - type :: tracer_ind_type - integer :: atm !< tracer index in atm model - integer :: ice !< tracer index in ice model - integer :: lnd !< tracer index in lnd model - end type tracer_ind_type - type(tracer_ind_type), allocatable :: tr_table(:) !< table of tracers passed through flux exchange - - type :: tracer_exch_ind_type - integer :: exch = 0 !< exchange grid index - integer :: ice = 0 !< ice model index - integer :: lnd = 0 !< land model index - end type tracer_exch_ind_type - - type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< map atm tracers to exchange, ice and land variables - - integer :: isphum = NO_TRACER !< tracer index for specific humidity - integer :: ico2 = NO_TRACER !< tracer index for co2 - integer :: inh3 = NO_TRACER !< tracer index for nh3 - - type(fmscoupler1dbc_type), pointer :: ex_gas_fields_atm=>NULL() - !< gas fields in atm place holder for various atmospheric fields. - type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() - !< gas fields on ice - type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() - !< gas flux place holder of intermediate calculations, such as piston velocities etc. - - interface put_logical_to_real - module procedure put_logical_to_real_sg - module procedure put_logical_to_real_ug - end interface put_logical_to_real - - real, dimension(3) :: ccc !< for conservation checks !< NOT USED DELETE - - !balaji, sets boundary_type%xtype - integer, parameter :: & - regrid=1, & !< grids are physically different, pass via exchange grid - redist=2, & !< same physical grid, different decomposition, must move data around - redirect=3 !< same physical grid, same domain decomposition, can directly copy data - - integer :: & - cplClock, & - sfcClock, & !< FMS clock id to profile sfc_boundary_layer - fluxAtmDnClock, & !< FMS clock id to profile flux down from atmosphere - regenClock, & !< FMS clock to profile exchange grid generation - fluxAtmUpClock !< FMS clock to profile flux up to atmosphere - - integer :: & - X1_GRID_ATM, & !< 1, exchange grid index for xgrid_stock_move - X1_GRID_ICE, & !< 2, exchange grid index for xgrid_stock_move - X1_GRID_LND !< 3, !< exchange grid index for xgrid_stock_move - - real :: & - Dt_atm, & !< atmospheric timestep [s] - Dt_cpl !< coupled timestep [s] - - integer :: & - ni_atm, & !< number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice - nj_atm !< number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice - - integer :: & - nxc_ice=0, & !< number of x points in ice compute domain - nyc_ice=0, & !< number of y points in ice compute domain - nk_ice=0 !< number of vertical levels in ice - - integer :: & - nxc_lnd=0, & !< number of x points in land compute domain - nyc_lnd=0 !< number of y points in land compute domain - -contains - - !####################################################################### - !> \brief Initialization routine - !! - !! Subroutine to initialize FMS modules (diag_integral_mod), the interpolation routines, diagnostics and boundary data, and - !! module level variables. The subroutine must be called before calling public subroutines - !! in this module. - - subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & - Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, & - do_forecast_in, partition_fprec_from_lprec_in, scale_precip_2d_in, & - nblocks_in, cplClock_in, ex_gas_fields_atm_in, ex_gas_fields_ice_in, ex_gas_fluxes_in) - - implicit none - type(FmsTime_type), intent(in) :: Time - !< model's current time - type(atmos_data_type), intent(inout) :: Atm - !< derived data type to specify atmosphere boundary data - type(land_data_type), intent(in) :: Land - !< derived data type to specify land boundary data - type(ice_data_type), intent(inout) :: Ice - !< derived data type to specify ice boundary data - type(atmos_ice_boundary_type), intent(inout) :: atmos_ice_boundary - !< derived type to specify properties and fluxes passed from atmosphere to ice - type(land_ice_atmos_boundary_type), intent(inout) :: land_ice_atmos_boundary - !< derived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice - real, intent(in) :: Dt_atm_in - !< atmosphere time step in seconds - real, intent(in) :: Dt_cpl_in - !< coupled time step in seconds - real, intent(in) :: z_ref_heat_in - !< reference height for temperature and relative humidity diagnostics [m] - real, intent(in) :: z_ref_mom_in - !< reference height for momentum diagnostics [m] - logical, intent(in) :: scale_precip_2d_in - !< if true, rescale Atm%lprec by a field from diag_table - logical, intent(in) :: do_area_weighted_flux_in - !< if true, divide flux by area - logical, intent(in) :: do_forecast_in - !< if true, put atm%surf_diff%sst_miz on the exchange grid if AM3_physics is used - logical, intent(in) :: partition_fprec_from_lprec_in - !! if true, will convert liquid precip to snow when t_ref < tfreeze - integer, intent(in) :: nblocks_in - !! divide the surface exchange grid to nblocks for OpenMP parallelizatio - integer, intent(in) :: cplClock_in - !! clock to measure processes, mainly used for development and debugging - type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in - !! gas fields in Atm. Contains atmospheric surface variables that are used to compute - !! atmosphere-ocean gas fluxes and flux-regulating parameters - type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_ice_in - !! gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used - !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters - type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in - !! gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between - !! the atmosphere and ocean. Values defined from the field table or computed during model run - - character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' - character(len=256), parameter :: & - note_header = '==>Note from '//trim(module_name)//'(atm_land_ice_flux_exchange_init):' - - integer :: & - i, & !< temporary index do loop - n !< temporary index for counting - integer :: & - outunit, & !< ! returned value from fms_mpp_stdout() - logunit !< returned value from fms_mpp_stdlog() - integer :: & - is, & !< starting x-index on compute domain - ie, & !< ending x-index on compute domain - js, & !< starting y-index on compute domain - je, & !< ending y-index on compute domain - kd !< number of levels in the z direction - character(32) :: tr_name !< dummy variable to hold name of tracers - logical :: found !< dummy variable to search through tracer index in ex_gas_fluxes - - !> Initialize module level variables - Dt_atm = Dt_atm_in - Dt_cpl = Dt_cpl_in - z_ref_heat = z_ref_heat_in - z_ref_mom = z_ref_mom_in - do_area_weighted_flux = do_area_weighted_flux_in - do_forecast = do_forecast_in - partition_fprec_from_lprec = partition_fprec_from_lprec_in - scale_precip_2d = scale_precip_2d_in - nblocks = nblocks_in - cplClock = cplClock_in - ex_gas_fields_atm => ex_gas_fields_atm_in - ex_gas_fields_ice => ex_gas_fields_ice_in - ex_gas_fluxes => ex_gas_fluxes_in - - !> get file unit for stdout and stdlog - outunit = fms_mpp_stdout() - logunit = fms_mpp_stdlog() - - allocate(block_start(nblocks), block_end(nblocks)) - - !> get the number ofatmospheric prognostic tracers and specific humidity tracer index from the tracer table - call fms_tracer_manager_get_number_tracers (MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) - - !> get the total number of land tracers and the number of prognostic tracers from the tracer table - call fms_tracer_manager_get_number_tracers (MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) - - ! assemble the table of tracer number translation by matching names of - ! prognostic tracers in the atmosphere and surface models; skip all atmos. - ! tracers that have no corresponding surface tracers. - - !> Populate tr_table and tr_table_map. Atm, land, and ice models will have its - !! own tracer index for the same tracer. - allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) - n = 1 - do i = 1,n_atm_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, i, tr_name ) - tr_table(n)%atm = i - tr_table(n)%ice = fms_tracer_manager_get_tracer_index ( MODEL_ICE, tr_name ) - tr_table_map(i)%ice = tr_table(n)%ice - tr_table(n)%lnd = fms_tracer_manager_get_tracer_index ( MODEL_LAND, tr_name ) - tr_table_map(i)%lnd = tr_table(n)%lnd - if(tr_table(n)%ice/=NO_TRACER.or.tr_table(n)%lnd/=NO_TRACER) then - tr_table_map(i)%exch = n - n = n + 1 - endif - enddo - - !> Set the number of tracers that will be exchanged between the models - n_exch_tr = n - 1 - - - !> Populate tracer table for ocean-atm gas fluxes where the tracer name in atm and ocean models may differ - - n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) - if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_atm2lnd - - n_gex_lnd2atm = fms_gex_get_n_ex(MODEL_LAND,MODEL_ATMOS) - if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_lnd2atm - - do n = 1, ex_gas_fluxes%num_bcs - if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then - found = .false. - do i = 1, n_exch_tr - if (ex_gas_fluxes%bc(n)%atm_tr_index .eq. tr_table(i)%atm) then - found = .true. - exit - endif - enddo - if (.not. found) then - n_exch_tr = n_exch_tr + 1 - tr_table(n_exch_tr)%atm = ex_gas_fluxes%bc(n)%atm_tr_index - tr_table(n_exch_tr)%ice = NO_TRACER ! because ocean-atm gas fluxes are not held in the ice model as tracers - tr_table(n_exch_tr)%lnd = NO_TRACER ! because this would have been found above - tr_table_map(n_exch_tr)%exch = n_exch_tr - tr_table_map(n_exch_tr)%ice = tr_table(n_exch_tr)%ice - tr_table_map(n_exch_tr)%lnd = tr_table(n_exch_tr)%lnd - endif - endif - enddo - write(outunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr - write(logunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr - - do i = 1,n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) - write(outunit,*)'Tracer field name :'//trim(tr_name) - write(logunit,*)'Tracer field name :'//trim(tr_name) - enddo - - ! REMOVE - ! +fix-me-slm+ specific humidity may not be present if we are running with - ! dry atmosphere. Besides, model may use mixing ratio ('mix_rat') (?). However, - ! some atmos code also assumes 'sphum' is present, so for now the following - ! code may be good enough. - - !> Get tracer index for specific humidity, co2, and nh3 - do i = 1,n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) - if(fms_mpp_lowercase(tr_name)=='sphum') then - isphum = i - endif - ! jgj: get tracer index for co2 REMOVE - if(fms_mpp_lowercase(tr_name)=='co2') then - ico2 = i - write(outunit,*)'Exchange tracer index for '//trim(tr_name),' : ',ico2 - endif - if(fms_mpp_lowercase(tr_name)=='nh3') then - inh3 = i - write(outunit,*)'Exchange tracer index for '//trim(tr_name),' : ',inh3 - endif - enddo - - if (isphum==NO_TRACER) call fms_error_mesg(module_name, 'tracer "sphum" must be present in the atmosphere', FATAL) - if (ico2==NO_TRACER) call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) - - call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) - - if (scale_precip_2d) allocate(frac_precip(is:ie,js:je), source=0.0) - - call fms_xgrid_init(remap_method) - - call fms_xgrid_setup_xmap( & - xmap_sfc, & - ['ATM', 'OCN', 'LND'], & - [Atm%Domain, Ice%Domain, Land%Domain], & - "INPUT/grid_spec.nc", & - Atm%grid, & -#ifndef _USE_LEGACY_LAND_ - lnd_ug_domain=Land%ug_domain, & -#endif - ) - - !> Assign exchange grid type and Generate surface exchange grid - X1_GRID_ATM = 1 - X1_GRID_ICE = 2 - X1_GRID_LND = 3 - call generate_sfc_xgrid( Land, Ice ) - - if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' - - call surface_flux_init() - - !> Initialize fms_diag_integral for global integral quantities - !! call diag_integral_field_init ('prec', 'f6.3') - call fms_diag_integral_field_init ('evap', 'f6.3') -#ifndef use_AM3_physics - call fms_diag_integral_field_init ('t_surf', 'f10.3') !miz - call fms_diag_integral_field_init ('t_ref', 'f10.3') !miz -#endif - - !----------------------------------------------------------------------- - !----- initialize diagnostic fields ----- - !----- all fields will be output on the atmospheric grid ----- - - call diag_field_init ( Time, Atm%axes(1:2), Land%axes, Land%pe ) - ni_atm = size(Atm%lon_bnd,1)-1 ! to dimension "diag_atm" - nj_atm = size(Atm%lon_bnd,2)-1 ! in flux_ocean_to_ice - - !Balaji - - !> Initialize atmos_ice_boundary - call fms_mpp_domains_get_compute_domain( Ice%domain, is, ie, js, je ) - kd = size(Ice%part_size,3) - allocate( atmos_ice_boundary%u_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%v_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%u_star(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%t_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%q_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%lw_flux(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%lprec(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%fprec(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%dedt(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%drdt(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%coszen(is:ie,js:je,kd), source=0.0 ) - allocate( atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0 ) - ! initialize boundary values for override experiments (mjh) - - !> Copy gas fluxes from exchange grid to atmosphere_ice boundary - call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & - mod_name, Ice%axes, Time, suffix = '_atm_ice') - - ! Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two - ! coupler_type_copy calls are moved from ice_ocean_flux_init to here. - if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) then - call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, [is,is,ie,ie], [js,js,je,je], [1, kd], & - suffix = '_ice') - end if - - call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) - - !> Initialize land_ice_atmos_boundary - call fms_mpp_domains_get_compute_domain( Atm%domain, is, ie, js, je ) - allocate( land_ice_atmos_boundary%t(is:ie,js:je), source=273.0 ) - allocate( land_ice_atmos_boundary%t_ocean(is:ie,js:je), source=200.0 )! Joseph: surf ocean temp - allocate( land_ice_atmos_boundary%u_ref(is:ie,js:je), source=0.0 )! bqx - allocate( land_ice_atmos_boundary%v_ref(is:ie,js:je), source=0.0 ) ! bqx - allocate( land_ice_atmos_boundary%t_ref(is:ie,js:je), source=273.0 ) ! cjg: PBL depth mods - allocate( land_ice_atmos_boundary%q_ref(is:ie,js:je), source=0.0 ) ! cjg: PBL depth mods - allocate( land_ice_atmos_boundary%albedo(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%land_frac(is:ie,js:je, source=0.0) ) - allocate( land_ice_atmos_boundary%dt_t(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr), source=0.0 ) - allocate( land_ice_atmos_boundary%u_flux(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%v_flux(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%dtaudu(is:ie,js:je), source=0.0) - allocate( land_ice_atmos_boundary%dtaudv(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%u_star(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%b_star(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%q_star(is:ie,js:je), source=0.0 ) -#ifndef use_AM3_physics - allocate( land_ice_atmos_boundary%shflx(is:ie,js:je), source=0.0 )!miz - allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je), source=0.0 )!miz -#endif - allocate( land_ice_atmos_boundary%wind(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%thv_atm(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%thv_surf(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%rough_mom(is:ie,js:je), source=0.01 ) - allocate( land_ice_atmos_boundary%rough_heat(is:ie,js:je), surce=0.01 ) ! Kun - allocate( land_ice_atmos_boundary%frac_open_sea(is:ie,js:je), source=0.0 ) - allocate( land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0 ) - - - !> Allocate fields for extra tracers - call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & - mod_name, Atm%axes(1:2), Time, suffix = '_atm') - - !> Set nxc_ice and nyc_ice - if( Ice%pe) then - call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) - nk_ice = size(Ice%part_size,3) - endif - - !> Set nxc_land nyc_land - if( Land%pe) then - call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) - endif - - !Balaji: clocks on atm%pe only - sfcClock = fms_mpp_clock_id( 'SFC boundary layer', flags=fms_clock_flag_default, grain=CLOCK_SUBCOMPONENT ) - fluxAtmDnClock = fms_mpp_clock_id( 'Flux DN from atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) - regenClock = fms_mpp_clock_id( 'XGrid generation', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) - fluxAtmUpClock = fms_mpp_clock_id( 'Flux UP to atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) - - do_init = .false. - - end subroutine atm_land_ice_flux_exchange_init - - !####################################################################### - !> \brief Computes the following explicit fluxes and derivatives that will be used to compute an implicit flux correction. - !! - !!
                                                                                                                                                                                                                                                                                                              -  !!   t_surf_atm: surface temperature used for radiation [K]
                                                                                                                                                                                                                                                                                                              -  !!   albedo_atm: surface albedo used for radiation  [dimensionless]
                                                                                                                                                                                                                                                                                                              -  !!   rough_mom_atm: surface roughness for momentum [m]
                                                                                                                                                                                                                                                                                                              -  !!   land_frac_atm: fractional area of land beneath an atmospheric grid box
                                                                                                                                                                                                                                                                                                              -  !!   dtaudu_atm, dtaudv_atm: derivatives of wind stress wrt the lowest level wind speed [Pa/(m/s)]
                                                                                                                                                                                                                                                                                                              -  !!   flux_u_atm: zonal wind stress  [Pa]
                                                                                                                                                                                                                                                                                                              -  !!   flux_v_atm: meridional wind stress [Pa]
                                                                                                                                                                                                                                                                                                              -  !!   u_star_atm: friction velocity [m/s]
                                                                                                                                                                                                                                                                                                              -  !!   b_star_atm: buoyancy scale  [m2/s]
                                                                                                                                                                                                                                                                                                              -  !! 
                                                                                                                                                                                                                                                                                                              - !! - !! Tracers and and non-tracer, generic fields are remapped to the exchange grid to exchange data - !! between one component grid to another component grid. Computed fluxes can also be overwritten - !! with calls to data_override. Note, data_override will not override data if the tracers - !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude - !! of surface stress divided by density of air at the surface, - !! and `u_star*b_star` is the buoyancy flux at the surface. - subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ) - - implicit none - real, intent(in) :: dt - !< timestep - type(FmsTime_type), intent(in) :: Time - !< current model time - type(atmos_data_type), intent(inout) :: Atm - !< derived type to specify atmosphere boundary data - type(land_data_type), intent(inout) :: Land - !< derived type to specify land boundary data - type(ice_data_type), intent(inout) :: Ice - !< derived data type to specify ice boundary data - type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary - !< derived data type to specify properties and fluxes passed between land and ice to atmos - - !> quantities on exchange grid - real, dimension(n_xgrid_sfc) :: & - ex_albedo, & ! albedo - ex_albedo_vis_dir, & ! albedo for light with wavelength in visible region of the solar spectrum - ex_albedo_nir_dir, & ! albedo for light with wavelength in near-ir region of the solar spectrum - ex_albedo_vis_dif, & ! difference in albedo for light with wavelength in visible region of the solar spectrum - ex_albedo_nir_dif, & ! difference in albedo for light with wavelength in near-ir region of the solar spectrum - ex_land_frac, & ! fractional area of land in grid cell - ex_t_atm, & ! air temperature at the lowest atmospheric level - ex_p_atm, & ! pressure at the lowest atmospheric level - ex_u_atm, & ! u wind component at the lowest atmospheric level - ex_v_atm, & ! v wind component at the lowest atmospheric level - ex_gust, & ! gust scale - ex_t_surf4, & ! (surface temperature) ** 4 - ex_u_surf, & ! u wind component at Earth's surface - ex_v_surf, & ! v wind component at Earth's surface - ex_rough_mom, & ! momentum roughness length - ex_rough_heat, & ! heat roughness length - ex_rough_moist, & ! moisture roughness length - ex_rough_scale, & ! scale factor for topographic roughness calculation - ex_q_star, & ! turbulent moisture scale - ex_thv_atm, & ! surface area theta_v - ex_thv_surf, & ! surface theta_v - ex_cd_q, & ! moisture exchange coefficient - ex_ref, &! specific humidity at z_ref_heat - ex_ref_u, & ! zonal wind component at z_ref_mom - ex_ref_v, & ! meridional wind component at z_ref_mom - ex_u10, & !< zonal wind speed at 10m above the surface - ex_ref2, & ! - ex_t_ref, & - ex_qs_ref, & - ex_qs_ref_cmip, & ! - ex_del_m, & ! reference height for interpolation factor for momentum - ex_del_h, & ! reference height interpolation factor for heat - ex_del_q, & ! reference height interpation factor for moisture - ex_frac_open_sea ! open-water mask, not used? - - real :: rho - - real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_atm, & !< amount of tracer [mol?] at lowest atmospheric level on exchange grid - ex_tr_ref !< amount of tracer [mol?] at reference height on exchange grid - - real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic - - !> temporary array to hold data - real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm - -#ifndef _USE_LEGACY_LAND_ - real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2)) :: diag_land - real, dimension(size(Land%t_ca, 1)) :: diag_land_ug, tile_size_ug - real, dimension(nxc_lnd, nyc_lnd) :: diag_land_sg, tile_size_sg - logical, dimension(size(Land%t_ca, 1)) :: mask_ug - logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg - integer :: k -#else - !> temporary array to hold data - real, dimension(size(Land%t_ca, 1), size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land -#endif - - !> temporary array to hold data - real, dimension(size(Ice%t_surf,1), size(Ice%t_surf,2), size(Ice%t_surf,3)) :: sea - real, dimension(size(Ice%albedo,1), size(Ice%albedo,2), size(Ice%albedo,3)) :: tmp_open_sea - - real :: & - zrefm, & ! reference height for computing surface fluxes from Monin-Obukhov similarity theory - zrefh ! reference height for computing surface fluxes from Monin-Obukhov similarity theory - - logical :: used !< returned value from data_override. if true, data was overwritten - - character(32) :: & - tr_name, & !< tracer name as stored in tracer_manager (from tracer_table) - tr_units ! tracer unit as stored in tracer_manager - - integer :: tr, n, m ! tracer indices - - integer :: is, ie, isc, iec, jsc, jec !< domain indices - integer :: l, j, i, n_gex !< counters - - !> array holding generic, non-tracer fields on exchange grid - real, dimension(n_xgrid_sfc, n_gex_lnd2atm) :: ex_gex_lnd2atm - - !> check if module was initialized - if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & - 'must call atm_land_ice_flux_exchange_init first', FATAL) - - !Balaji, start clocks for profiling - call fms_mpp_clock_begin(cplClock) - call fms_mpp_clock_begin(sfcClock) - - !> allocate module level arrays to hold data on the exchange grid (deallocated in flux_up_to_atmos) - allocate ( & - ex_t_surf(n_xgrid_sfc), & - ex_t_surf_miz(n_xgrid_sfc), & - ex_p_surf(n_xgrid_sfc), & - ex_slp(n_xgrid_sfc), & - ex_t_ca(n_xgrid_sfc), & - ex_dhdt_surf(n_xgrid_sfc), & - ex_dedt_surf(n_xgrid_sfc), & - ex_dqsatdt_surf(n_xgrid_sfc), & - ex_drdt_surf(n_xgrid_sfc), & - ex_dhdt_atm(n_xgrid_sfc), & - ex_flux_t(n_xgrid_sfc), & - ex_flux_lw(n_xgrid_sfc), & - ex_drag_q(n_xgrid_sfc), & - ex_avail(n_xgrid_sfc), & - ex_f_t_delt_n(n_xgrid_sfc), & - ex_tr_surf(n_xgrid_sfc, n_exch_tr), & - ex_dfdtr_surf(n_xgrid_sfc, n_exch_tr), & - ex_dfdtr_atm(n_xgrid_sfc, n_exch_tr), & - ex_flux_tr(n_xgrid_sfc, n_exch_tr), & - ex_f_tr_delt_n(n_xgrid_sfc, n_exch_tr), & - ex_e_tr_n(n_xgrid_sfc, n_exch_tr), & - ex_con_atm(n_xgrid_sfc), & - ex_tr_con_ref(n_xgrid_sfc, n_exch_tr), & - ex_tr_con_atm(n_xgrid_sfc, n_exch_tr), & - ex_flux_u(n_xgrid_sfc), & - ex_flux_v(n_xgrid_sfc), & - ex_dtaudu_atm(n_xgrid_sfc), & - ex_dtaudv_atm(n_xgrid_sfc), & - ex_seawater(n_xgrid_sfc), & - ! values added for LM3 - !{ - ex_cd_t(n_xgrid_sfc), & - ex_cd_m(n_xgrid_sfc), & - ex_b_star(n_xgrid_sfc), & - ex_u_star(n_xgrid_sfc), & - ex_wind(n_xgrid_sfc), & - ex_z_atm(n_xgrid_sfc), & - ex_e_t_n(n_xgrid_sfc), & - ex_e_q_n(n_xgrid_sfc), & - ex_land(n_xgrid_sfc) & - !} - ) - -#ifdef SCM - allocate ( & - ex_dhdt_surf_forland(n_xgrid_sfc), & - ex_dedt_surf_forland(n_xgrid_sfc), & - ex_dedq_surf_forland(n_xgrid_sfc) & - ) -#endif - - !> Initialize allocated arrays (does this need to be done in an OpenMP block? Can it be set during - !! allocation?) - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & - !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, ex_albedo_vis_dif,ex_albedo_nir_dif,& - !$OMP ex_cd_t,ex_cd_m, ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) private(is,ie,n_gex) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - ex_t_surf(i) = 200. - ex_u_surf(i) = 0. - ex_v_surf(i) = 0. - ex_albedo(i) = 0. ! bw - ex_albedo_vis_dir(i) = 0. - ex_albedo_nir_dir(i) = 0. - ex_albedo_vis_dif(i) = 0. - ex_albedo_nir_dif(i) = 0. - - ! do not use if relax time /= 0 - !{ - ex_cd_t(i) = 0.0 - ex_cd_m(i) = 0.0 - ex_cd_q(i) = 0.0 - ex_frac_open_sea(i) = 0. - !} - end do - do n_gex = 1, n_gex_lnd2atm - do i = is, ie - ex_gex_lnd2atm(i,n_gex) = 0.0 - enddo - enddo - enddo - - - !> initialize surface pressure on exchange grid - ex_p_surf = 1.0 - - - !> Allocate fms/coupler type for gas field exchange between ocean and ice - do n = 1, ex_gas_fields_ice%num_bcs - do m = 1, ex_gas_fields_ice%bc(n)%num_fields - if(associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then - call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.') - endif - allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) - enddo - enddo - - !> Allocate fms/coupler type for gas field exchange with atmosphere - do n = 1, ex_gas_fields_atm%num_bcs - do m = 1, ex_gas_fields_atm%bc(n)%num_fields - if (associated(ex_gas_fields_atm%bc(n)%field(m)%values)) then - call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.') - endif - allocate(ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) - enddo - enddo - - !> Allocate additional gas flux fields for intermediate calculations - do n = 1, ex_gas_fluxes%num_bcs - do m = 1, ex_gas_fluxes%bc(n)%num_fields - if (associated(ex_gas_fluxes%bc(n)%field(m)%values)) then - call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.') - endif - allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) - enddo - enddo - - !> override atm fields only if the field is specified in data_table - !{ - call fms_data_override ('ATM', 't_bot', Atm%t_bot , Time) - call fms_data_override ('ATM', 'z_bot', Atm%z_bot , Time) - call fms_data_override ('ATM', 'p_bot', Atm%p_bot , Time) - call fms_data_override ('ATM', 'u_bot', Atm%u_bot , Time) - call fms_data_override ('ATM', 'v_bot', Atm%v_bot , Time) - call fms_data_override ('ATM', 'p_surf', Atm%p_surf, Time) - call fms_data_override ('ATM', 'slp', Atm%slp, Time) - call fms_data_override ('ATM', 'gust', Atm%gust, Time) - - do tr = 1, n_atm_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr, tr_name ) - call fms_data_override('ATM', trim(tr_name)//'_bot', Atm%tr_bot(:,:,tr), Time, override=used) - if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then - ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units for atmosphere-land exchange - if(id_co2_bot > 0) used = fms_diag_send_data(id_co2_bot, Atm%tr_bot(:,:,tr), Time) - - isc = lbound(Atm%tr_bot,1); iec = ubound(Atm%tr_bot,1) - jsc = lbound(Atm%tr_bot,2); jec = ubound(Atm%tr_bot,2) - !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Atm,tr,isphum) - do j = jsc, jec - do i = isc, iec - ! After overriding co2 tracer data, convert units from - ! volume mixing ratio [mol of co2]/[mol of air] to mass mixing ratio [kg of co2]/[kg of air] - ! and convert from dry mass mixing ratio to wet mas mixing ratio via - ! co2mmr = (wco2/wair) * co2vmr and wet_mmr = dry_mmr * (1-Q) where Q is specific humidity - Atm%tr_bot(i,j,tr) = Atm%tr_bot(i,j,tr) * (WTMCO2/WTMAIR) * & - (1.0 - Atm%tr_bot(i,j,isphum)) - enddo - enddo - end if - enddo - - do n = 1, atm%fields%num_bcs - do m = 1, atm%fields%bc(n)%num_fields - - call fms_data_override('ATM', atm%fields%bc(n)%field(m)%name, & - atm%fields%bc(n)%field(m)%values, Time, override = atm%fields%bc(n)%field(m)%override) - - ex_gas_fields_atm%bc(n)%field(m)%override = atm%fields%bc(n)%field(m)%override - - ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before - ! atmosphere-ocean exchange - if(atm%fields%bc(n)%field(m)%override .and. & - fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'co2_flux_pcair_atm') then - if(id_co2_flux_pcair_atm > 0) & - used = fms_diag_send_data(id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) - endif - - ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic, note units are converted in atmos_co2.F90 before - ! atmosphere-ocean exchange - if(atm%fields%bc(n)%field(m)%override .and. & - fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'o2_flux_pcair_atm') then - if(id_o2_flux_pcair_atm > 0) & - used = fms_diag_send_data(id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) - endif - enddo - enddo - - do n = 1, atm%fields%num_bcs - if (atm%fields%bc(n)%use_atm_pressure) then - if (.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then - atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values = Atm%p_surf - endif - endif - enddo - !} - - !> override ice fields where data is overwritten only if the field is specified in the data_table - !{ - call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time) - call fms_data_override ('ICE', 'rough_mom', Ice%rough_mom, Time) - call fms_data_override ('ICE', 'rough_heat', Ice%rough_heat, Time) - call fms_data_override ('ICE', 'rough_moist',Ice%rough_moist, Time) - call fms_data_override ('ICE', 'albedo', Ice%albedo, Time) - call fms_data_override ('ICE', 'albedo_vis_dir', Ice%albedo_vis_dir, Time) - call fms_data_override ('ICE', 'albedo_nir_dir', Ice%albedo_nir_dir, Time) - call fms_data_override ('ICE', 'albedo_vis_dif', Ice%albedo_vis_dif, Time) - call fms_data_override ('ICE', 'albedo_nir_dif', Ice%albedo_nir_dif, Time) - call fms_data_override ('ICE', 'u_surf', Ice%u_surf, Time) - call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time) - call fms_coupler_type_data_override('ICE', Ice%ocean_fields, Time) - call fms_coupler_type_send_data(Ice%ocean_fields, Time) - !} - - !> override land fields where data is overwritten only if the field is specified in the data_table - !{ - call FMS_DATA_OVERRIDE_ ('LND', 't_surf', Land%t_surf, Time) - call FMS_DATA_OVERRIDE_ ('LND', 't_ca', Land%t_ca, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'rough_mom', Land%rough_mom, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'rough_heat', Land%rough_heat, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo', Land%albedo, Time) - do tr = 1, n_lnd_tr - call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) -#ifndef _USE_LEGACY_LAND_ - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) -#else - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) -#endif - enddo - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dir', Land%albedo_vis_dir, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dir', Land%albedo_nir_dir, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time) - call FMS_DATA_OVERRIDE_ ('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) - !} - - !> map atmospheric fields onto the exchange grid - !{ -#ifdef use_AM3_physics - if (do_forecast) then - call fms_xgrid_put_to_xgrid (Atm%Surf_diff%sst_miz, 'ATM', ex_t_surf_miz, & - xmap_sfc, remap_method=remap_method, complete=.false.) - endif -#endif - - do tr = 1,n_exch_tr - call fms_xgrid_put_to_xgrid (Atm%tr_bot(:,:,tr_table(tr)%atm), 'ATM', ex_tr_atm(:,tr), xmap_sfc, & - remap_method=remap_method, complete=.false.) - enddo - - do n = 1, Atm%fields%num_bcs - if(ex_gas_fields_atm%bc(n)%flux_type .ne. 'air_sea_deposition') then - do m = 1, Atm%fields%bc(n)%num_fields !{ - call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & - ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.) - enddo - endif - enddo - - call fms_xgrid_put_to_xgrid (Atm%t_bot , 'ATM', ex_t_atm , xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%z_bot , 'ATM', ex_z_atm , xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%p_bot , 'ATM', ex_p_atm , xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%u_bot , 'ATM', ex_u_atm , xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%v_bot , 'ATM', ex_v_atm , xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) - !} - - !> prefill surface values on the exchange grid with atmospheric values before putting tracers - ! from ice or land, so that gradient is 0 if tracers are not filled - ex_tr_surf = ex_tr_atm - - !> map ice fields onto the exchange grid - !{ - ! (assume that ocean quantites are stored in no ice partition) - ! (note: ex_avail is true at ice and ocean points) - call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%rough_moist, 'OCN', ex_rough_moist, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%albedo, 'OCN', ex_albedo, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dir, 'OCN', ex_albedo_vis_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dir, 'OCN', ex_albedo_nir_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dif, 'OCN', ex_albedo_vis_dif, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dif, 'OCN', ex_albedo_nir_dif, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid (Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc) - - tmp_open_sea = 0. - tmp_open_sea(:,:,1) = 1. - call fms_xgrid_put_to_xgrid ( tmp_open_sea, 'OCN', ex_frac_open_sea, xmap_sfc) - - do n = 1, ice%ocean_fields%num_bcs - do m = 1, ice%ocean_fields%bc(n)%num_fields - call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', & - ex_gas_fields_ice%bc(n)%field(m)%values, xmap_sfc) - enddo - enddo - !} - - !> Compute dynamic mask for seaice and static mask for land - !{ - ! Initialize open-water mask where each OCN grid cells is open water set to mask value of 1.0 - sea = 0.0 - sea(:,:,1) = 1.0 - - ! Generate dynamic ex_seawater wet mask that will be used to limit the air-sea flux exchange to areas - ! that are not totally covered by seaice. Note, xmap_sfc between land and ice is dynamic and changes - ! as seaice fraction changes during the model run [link to coupler_main]. Below call takes the updated - ! xmap_sfc and mark all open-water cells to be 1.0 - ex_seawater = 0.0 - call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) - - ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean - - !> map land mask onto the exchange grid - call fms_xgrid_some(xmap_sfc, ex_land, 'LND') - !} - - !> Map land fields on to the exchange grid - !{ -#ifdef use_AM3_physics - if (do_forecast) then - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) - ex_t_ca(:) = ex_t_surf_miz(:) - end if -#endif - - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo, 'LND', ex_albedo, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) - - ex_rough_scale = ex_rough_mom - call FMS_XGRID_PUT_TO_XGRID_(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) - - do n_gex=1,n_gex_lnd2atm - call FMS_XGRID_PUT_TO_XGRID_ (Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc) - end do - - do tr = 1,n_exch_tr - n = tr_table(tr)%lnd - if(n /= NO_TRACER ) then -#ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) -#else - call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) -#endif - else - ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore fluxes will be 0 - endif - enddo - - ex_land_frac = 0.0 - call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) - !} - -#ifdef SCM - if (do_specified_land) then - if (do_specified_albedo) then - ex_albedo = ALBEDO_OBS - ex_albedo_vis_dir = ALBEDO_OBS - ex_albedo_nir_dir = ALBEDO_OBS - ex_albedo_vis_dif = ALBEDO_OBS - ex_albedo_nir_dif = ALBEDO_OBS - endif - if (do_specified_tskin) then - ex_t_surf = TSKIN - ex_t_ca = TSKIN - ex_tr_surf(:,isphum) = 15.e-3 - endif - if (do_specified_rough_leng) then - ex_rough_mom = ROUGH_MOM - ex_rough_heat = ROUGH_HEAT - ex_rough_moist = ROUGH_HEAT - endif - endif -#endif - -#ifdef use_AM3_physics - if (do_forecast) then - ex_t_surf = ex_t_surf_miz - end if -#endif - - !> compute explicit fluxes and tendencies on the exchange grid - call fms_xgrid_some(xmap_sfc, ex_avail) - !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, & - !$OMP ex_p_atm, ex_z_atm, ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf, ex_u_surf, ex_v_surf, ex_rough_mom, & - !$OMP ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, ex_flux_t, ex_flux_tr, ex_flux_lw, & - !$OMP ex_flux_u, ex_flux_v, ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & - !$OMP ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf, ex_drdt_surf, ex_dhdt_atm, & - !$OMP ex_dfdtr_atm, ex_dtaudu_atm, ex_dtaudv_atm, dt, ex_land, ex_seawater, ex_avail, block_start, & - !$OMP block_end,isphum) private(is,ie) - do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - call surface_flux (& - ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), & - ex_z_atm(is:ie), ex_p_surf(is:ie), ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), & - ex_u_surf(is:ie), ex_v_surf(is:ie), ex_rough_mom(is:ie), ex_rough_heat(is:ie), & - ex_rough_moist(is:ie), ex_rough_scale(is:ie), ex_gust(is:ie), ex_flux_t(is:ie), & - ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), & - ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), ex_wind(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), & - ex_q_star(is:ie), ex_thv_atm(is:ie), ex_thv_surf(is:ie), ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), & - ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), & - ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), dt, ex_land(is:ie), & - (ex_seawater(is:ie) .gt. 0.0), ex_avail(is:ie) & - ) - enddo - -#ifdef SCM - ! Option to override surface fluxes for SCM - if (do_specified_flux) then - call scm_surface_flux ( & - ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm, ex_p_atm, ex_z_atm, & - ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf(:,isphum), ex_u_surf, ex_v_surf, & - ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, & - ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, & - ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & - ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf(:,isphum), ex_drdt_surf, & - ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, dt, & - (ex_land, ex_seawater .gt. 0.0, ex_avail), ex_dhdt_surf_forland, ex_dedt_surf_forland, & - ex_dedq_surf_forland & - ) - endif -#endif - - !> compute the zonal and meriodonal winds at the boundary layer and at the reference heights on the - !! exchange grid - zrefm = 10.0 - zrefh = z_ref_heat - !$OMP parallel do default(shared) private(is,ie) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - call fms_monin_obukhov_mo_profile(zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & - ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & - ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) - do i = is,ie - ex_u10(i) = 0. - if(ex_avail(i)) then - ex_ref_u(i) = ex_u_surf(i) + (ex_u_atm(i)-ex_u_surf(i)) * ex_del_m(i) - ex_ref_v(i) = ex_v_surf(i) + (ex_v_atm(i)-ex_v_surf(i)) * ex_del_m(i) - ex_u10(i) = sqrt(ex_ref_u(i)**2 + ex_ref_v(i)**2) - endif - enddo - do n = 1, ex_gas_fields_atm%num_bcs - if (atm%fields%bc(n)%use_10m_wind_speed) then - if (.not. ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%override) then - do i = is,ie - ex_gas_fields_atm%bc(n)%field(fms_coupler_ind_u10)%values(i) = ex_u10(i) - enddo - endif - endif - enddo - - !f1p: calculate atmospheric conductance to send to the land model - do i=is,ie - ex_con_atm(i) = ex_wind(i)*ex_cd_q(i) - end do - - !> Compute tracer flux where tracer flux = (C0*u*rho)*delta_q - !! slm: ex_dfdtr_surf(:,isphum) is set to zero over the ocean in call to surface_flux - !! and [so it is not appropriate to use for other tracers] <- why? - !! However, since flux = rho*Cd*|v|*(q_surf-q_atm), we can simply use negative - !! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux - !! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but - !! then this whole section will have to be changed. - do tr = 1,n_exch_tr - if (tr==isphum) cycle - do i = is,ie - ex_dfdtr_atm(i, tr) = ex_dfdtr_atm(i, isphum) - ex_dfdtr_surf(i, tr) = -ex_dfdtr_atm(i, isphum) - ex_flux_tr(i,tr) = ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) - enddo - enddo - enddo - - ! Combine explicit ocean flux and implicit land flux of extra flux fields. - - !> map ocean gas field fluxes from the exchange grid to the ocn grid, where the - !! flux is due to exchange between atmosphere and ocean surface and exchange between top of ice and ocean surface - call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) - - !> map intermediate fluxes from the exchange grid to the atmospheric grid - do n = 1, ex_gas_fluxes%num_bcs - if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then - m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch - if (id_tr_mol_flux0(m) .gt. 0) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & - ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:), xmap_sfc) - used = fms_diag_send_data(id_tr_mol_flux0(m), diag_atm, Time) - end if - end if - end do - - !> convert units - ! ex_flux_tr(:,itracer) = ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) - ! where(ex_seawater.gt.0) ex_flux_tr(:,itracer) = F_ocn - !$OMP parallel do default(shared) private(is,ie,m,tr_units,tr_name) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do n = 1, ex_gas_fluxes%num_bcs - if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then - m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, & - tr_name, units=tr_units) - do i = is,ie - if (ex_land(i)) cycle ! over land, don't do anything - ex_dfdtr_atm(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives - ex_dfdtr_surf(i,m) = 0.0 ! on ocean or ice cells, flux is explicit therefore we zero derivatives - if (ex_seawater(i)>0.0) then - if (fms_mpp_lowercase(trim(tr_units)).eq."vmr") then - ! if units in ambient "vmr*kg/m2/s" (as in land model), convert to mol/m2/s - ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & - * 1.0e-3*WTMAIR*WTMH2O/((1.-ex_tr_atm(i,isphum))*WTMH2O + ex_tr_atm(i,isphum)*WTMAIR) - else - ! jgj: convert to kg co2/m2/sec for atm - ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & - * ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03 - end if - else - ex_flux_tr(i,m) = 0.0 ! pure ice exchange cell - endif - enddo - endif - enddo - enddo - - !> override above computed fluxes with values from data_override if tracer exists in data_table - do tr = 1,n_exch_tr - if( tr_table(tr)%atm == NO_TRACER ) cycle ! it should never happen, though - - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) - - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) - if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) - - call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc ) - - ! [5.2.2] override derivative of flux wrt surface concentration - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) - if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) - - call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc ) - - ! [5.2.3] override derivative of flux wrt atmospheric concentration - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) - if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) - - call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used ) - if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) - enddo - - !> override flux and derivatives of sensible heat flux if field is specified in data_table - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) - if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_t, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) - - !> override derivative of flux wrt near-surface temperature if field is specified in data_table - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) - if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) - - !> override derivative of flux wrt atmospheric temperature if field is specified in data_table - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) - if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) - call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) - if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) - - !> Note, the units of sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm"; - ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and W/(m2 degK) respectively - - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_avail, & - !$OMP ex_drag_q, ex_wind, ex_cd_q, ex_t_surf4, ex_t_surf ) private(is,ie) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - if(ex_avail(i)) ex_drag_q(i) = ex_wind(i)*ex_cd_q(i) !! get mean quantities on atmosphere grid - ex_t_surf4(i) = ex_t_surf(i) ** 4 !! compute t surf for radiation - enddo - enddo - - !> Update fields on Land_Ice_Atmos_Boundary - !{ - call fms_xgrid_get_from_xgrid(Land_Icee_Boundary%t_ocean, 'ATM', ex_t_surf , xmap_sfc, complete=.false.) !joseph - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%frac_open_sea,'ATM', ex_frac_open_sea, xmap_sfc) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dir, & - 'ATM', ex_albedo_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dir, & - 'ATM', ex_albedo_nir_dir, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_vis_dif, & - 'ATM', ex_albedo_vis_dif, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & - ex_albedo_nir_dif, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_mom, 'ATM', ex_rough_mom, xmap_sfc, complete=.false.) - !{ kgao - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_heat,'ATM', ex_rough_heat, xmap_sfc, complete=.false.) - !} - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_flux, 'ATM', ex_flux_u, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_flux, 'ATM', ex_flux_v, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudu, 'ATM', ex_dtaudu_atm, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudv, 'ATM', ex_dtaudv_atm, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_star, 'ATM', ex_u_star, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%b_star, 'ATM', ex_b_star, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%q_star, 'ATM', ex_q_star, xmap_sfc, complete=.true.) - - !> update "generic", non-tracer field exchange between land and atmosphere - do n_gex=1, n_gex_lnd2atm - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), & - 'ATM', ex_gex_lnd2atm(:, n_gex), xmap_sfc, complete=.false.) - end do - - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u, xmap_sfc, complete=.false.) !bqx - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v, xmap_sfc, complete=.true.) !bqx - -#ifndef use_AM3_physics - ! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc, complete=.true.) -#endif - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind , xmap_sfc) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_atm, 'ATM', ex_thv_atm, xmap_sfc) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_surf, 'ATM', ex_thv_surf, xmap_sfc) - -#ifdef use_AM3_physics - if (do_forecast) then - call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) - end if -#endif - - call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec) - !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary ) private(is,ie) - do j = jsc, jec - do i = isc, iec - Land_Ice_Atmos_Boundary%t(i,j) = Land_Ice_Atmos_Boundary%t(i,j) ** 0.25 - enddo - enddo - !} - - !> data_override updated Land_ice_atmos_boundary if the fields exist in data_table - !{ - call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) - call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) - - call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) - call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) - call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) - call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) - call fms_data_override('ATM', 'land_frac', Land_Ice_Atmos_Boundary%land_frac, Time) - call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) - do tr=1,n_atm_tr - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr, tr_name) - call fms_data_override('ATM', 'dt_'//trim(tr_name), Land_Ice_Atmos_Boundary%dt_tr(:,:,tr), Time) - enddo - call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) - call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) - call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) - call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) - call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) - call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) - ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) - call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) - !} - - !> albedo fix - ! save atmos albedo fix and old albedo (for downward SW flux calculations) on exchange grid - ! STILL NEEDED ???? IS THIS CORRECT ?? - allocate(ex_albedo_fix(n_xgrid_sfc)) - allocate(ex_albedo_vis_dir_fix(n_xgrid_sfc)) - allocate(ex_albedo_nir_dir_fix(n_xgrid_sfc)) - allocate(ex_albedo_vis_dif_fix(n_xgrid_sfc)) - allocate(ex_albedo_nir_dif_fix(n_xgrid_sfc)) - - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_albedo_fix, & - !$OMP ex_albedo_vis_dir_fix, ex_albedo_nir_dir_fix, ex_albedo_vis_dif_fix, ex_albedo_nir_dif_fix ) private(is,ie) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - ex_albedo_fix(i) = 0. - ex_albedo_vis_dir_fix(i) = 0. - ex_albedo_nir_dir_fix(i) = 0. - ex_albedo_vis_dif_fix(i) = 0. - ex_albedo_nir_dif_fix(i) = 0. - enddo - enddo - - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo_fix, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & - ex_albedo_vis_dir_fix, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', & - ex_albedo_nir_dir_fix, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dif, 'ATM', & - ex_albedo_vis_dif_fix, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & - ex_albedo_nir_dif_fix, xmap_sfc, complete=.true.) - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & - !$OMP ex_albedo, ex_albedo_vis_dir_fix, ex_albedo_vis_dir, ex_albedo_nir_dir,ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dif_fix, ex_albedo_vis_dif, ex_albedo_nir_dif_fix, ex_albedo_nir_dif) private(is,ie) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - ex_albedo_fix(i) = (1.0-ex_albedo(i)) / (1.0-ex_albedo_fix(i)) - ex_albedo_vis_dir_fix(i) = (1.0-ex_albedo_vis_dir(i)) / (1.0-ex_albedo_vis_dir_fix(i)) - ex_albedo_nir_dir_fix(i) = (1.0-ex_albedo_nir_dir(i)) / (1.0-ex_albedo_nir_dir_fix(i)) - ex_albedo_vis_dif_fix(i) = (1.0-ex_albedo_vis_dif(i)) / (1.0-ex_albedo_vis_dif_fix(i)) - ex_albedo_nir_dif_fix(i) = (1.0-ex_albedo_nir_dif(i)) / (1.0-ex_albedo_nir_dif_fix(i)) - enddo - enddo - -#ifdef SCM - if (do_specified_albedo .and. do_specified_land) then - ex_albedo_fix = 1. - ex_albedo_vis_dir_fix = 1. - ex_albedo_vis_dif_fix = 1. - ex_albedo_nir_dir_fix = 1. - ex_albedo_nir_dif_fix = 1. - endif -#endif - !} - - - !> send data to save in diag_manager buffer for outputting at the end of the simulation - !{ - ! save static fields, if first_static == true, send to diag_manager once - if (first_static) then - if ( id_land_mask > 0 ) then - used = fms_diag_send_data(id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time) !> land fraction - endif - if ( id_sftlf > 0 ) then - used = fms_diag_send_data(id_sftlf, Land_Ice_Atmos_Boundary%land_frac, Time) - endif - if(id_height2m > 0) used = fms_diag_send_data(id_height2m, z_ref_heat, Time) !> near-surface height - if(id_height10m > 0) used = fms_diag_send_data(id_height10m, z_ref_mom, Time) !> near-surface height - first_static = .false. - endif - - ! send_data for atm fields - do n = 1, Atm%fields%num_bcs - do m = 1, Atm%fields%bc(n)%num_fields - if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then - if (atm%fields%bc(n)%use_10m_wind_speed .and. m .eq. fms_coupler_ind_u10 .and. & - .not. Atm%fields%bc(n)%field(m)%override) then - call fms_xgrid_get_from_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & - ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc) - endif - if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then - used = fms_diag_send_data(Atm%fields%bc(n)%field(m)%id_diag, Atm%fields%bc(n)%field(m)%values, Time ) - endif - endif - enddo - enddo - - if ( id_wind > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_wind, xmap_sfc) - used = fms_diag_send_data ( id_wind, diag_atm, Time ) - endif - - if ( id_drag_moist > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_q, xmap_sfc) - used = fms_diag_send_data ( id_drag_moist, diag_atm, Time ) - endif - - if ( id_drag_heat > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_t, xmap_sfc) - used = fms_diag_send_data ( id_drag_heat, diag_atm, Time ) - endif - - if ( id_drag_mom > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_cd_m, xmap_sfc) - used = fms_diag_send_data ( id_drag_mom, diag_atm, Time ) - endif - - if ( id_rough_moist > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_moist, xmap_sfc) - used = fms_diag_send_data ( id_rough_moist, diag_atm, Time ) - endif - - if ( id_rough_heat > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_rough_heat, xmap_sfc) - used = fms_diag_send_data ( id_rough_heat, diag_atm, Time ) - endif - - used = fms_diag_send_data ( id_rough_mom, Land_Ice_Atmos_Boundary%rough_mom, Time ) - used = fms_diag_send_data ( id_u_star, Land_Ice_Atmos_Boundary%u_star, Time ) - used = fms_diag_send_data ( id_b_star, Land_Ice_Atmos_Boundary%b_star, Time ) - used = fms_diag_send_data ( id_q_star, Land_Ice_Atmos_Boundary%q_star, Time ) - used = fms_diag_send_data ( id_thv_atm, Land_Ice_Atmos_Boundary%thv_atm, Time ) - used = fms_diag_send_data ( id_thv_surf, Land_Ice_Atmos_Boundary%thv_surf, Time ) - - if ( id_t_atm > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_atm, xmap_sfc) - used = fms_diag_send_data ( id_t_atm, diag_atm, Time ) - endif - - if ( id_u_atm > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_u_atm, xmap_sfc) - used = fms_diag_send_data ( id_u_atm, diag_atm, Time ) - endif - - if ( id_v_atm > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_v_atm, xmap_sfc) - used = fms_diag_send_data ( id_v_atm, diag_atm, Time ) - endif - - do tr = 1,n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) - if ( id_tr_atm(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_atm(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_atm(tr), diag_atm, Time ) - endif - !!jgj: add dryvmr co2_atm - ! - slm Mar 25 2010: moved to resolve interdependence of diagnostic fields - if ( id_co2_atm_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then - ex_co2_atm_dvmr = (ex_tr_atm(:,tr) / (1.0 - ex_tr_atm(:,isphum))) * WTMAIR/WTMCO2 - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_co2_atm_dvmr, xmap_sfc) - used = fms_diag_send_data ( id_co2_atm_dvmr, diag_atm, Time ) - endif - enddo - - if ( id_p_atm > 0 ) then - ! - slm, Mar 25, 2002 - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_p_atm, xmap_sfc) - used = fms_diag_send_data ( id_p_atm, diag_atm, Time ) - endif - - if ( id_z_atm > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_z_atm, xmap_sfc) - used = fms_diag_send_data ( id_z_atm, diag_atm, Time ) - endif - - if ( id_gust > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_gust, xmap_sfc) - used = fms_diag_send_data ( id_gust, diag_atm, Time ) - endif - - if ( id_slp > 0 .or. id_psl > 0 ) then - ! - bw, Sep 17, 2007 - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_slp, xmap_sfc) - if ( id_slp > 0 ) used = fms_diag_send_data ( id_slp, diag_atm, Time ) - if ( id_psl > 0 ) used = fms_diag_send_data ( id_psl, diag_atm, Time ) - endif - - if ( id_t_ocean > 0 ) then - used = fms_diag_send_data ( id_t_ocean, Land_Ice_Atmos_Boundary%t_ocean, Time ) - endif - !} - - zrefm = z_ref_mom - zrefh = z_ref_heat - - !> compute deposition velocity - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,zrefm,zrefh,ex_z_atm, & - !$OMP ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_u_star, ex_b_star, ex_q_star, ex_del_m, ex_del_h, ex_del_q, & - !$OMP ex_tr_ref, n_exch_tr, id_tr_ref, id_tr_ref_land, ex_tr_con_ref, id_tr_con_ref, id_tr_con_ref_land, & - !$OMP ex_tr_con_atm, id_tr_con_atm, id_tr_con_atm_land, ex_avail,ex_ref,ex_tr_surf,ex_tr_atm,isphum, & - !$OMP ex_flux_tr,ex_t_atm,ex_p_surf) private(is,ie,rho) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & - ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & - ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) - - do i = is,ie - ex_ref(i) = 1.0e-06 - ex_tr_ref(i,:) = 1.e-20 - if (ex_avail(i) .and. ex_rough_moist(i) > 0.) then - ex_ref(i) = ex_tr_surf(i,isphum) + (ex_tr_atm(i,isphum)-ex_tr_surf(i,isphum)) * ex_del_q(i) - rho = ex_p_surf(i)/(rdgas * ex_t_atm(i)*(1.0+d608*ex_tr_atm(i,isphum))) - do tr=1, n_exch_tr - if (id_tr_ref(tr).gt.0 & - .or. id_tr_ref_land(tr).gt.0 & - .or. id_tr_con_ref(tr).gt.0 & - .or. id_tr_con_ref_land(tr).gt.0) then - ex_tr_ref(i,tr) = ex_tr_surf(i,tr) + (ex_tr_atm(i,tr)-ex_tr_surf(i,tr)) * ex_del_q(i) - ex_tr_con_ref(i,tr) = -ex_flux_tr(i,tr)/max(ex_tr_ref(i,tr)*rho,epsln) - end if - if (id_tr_con_atm(tr).gt.0 .or. id_tr_con_atm_land(tr).gt.0) then - ex_tr_con_atm(i,tr) = -ex_flux_tr(i,tr)/max(ex_tr_atm(i,tr)*rho,epsln) - end if - end do - end if - enddo - enddo - - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_ref, 'ATM', ex_ref, xmap_sfc) ! cjg - if(id_q_ref > 0) then - used = fms_diag_send_data(id_q_ref,Land_Ice_Atmos_Boundary%q_ref,Time) - endif - if(id_huss > 0) then - used = fms_diag_send_data(id_huss,Land_Ice_Atmos_Boundary%q_ref,Time) - endif - if(id_q_ref_land > 0 .or.id_hussLut_land > 0) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - !duplicate send_tile_data. We may remove id_q_ref_land in the future. - call send_tile_data (id_q_ref_land, diag_land) - call send_tile_data (id_hussLut_land, diag_land) -#else - used = fms_diag_send_tile_averaged_data(id_q_ref_land, diag_land, & - Land%tile_size, Time, mask=Land%mask) -#endif - endif - - do tr=1,n_exch_tr - if (id_tr_ref(tr)>0) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_ref(:,tr), xmap_sfc) ! cjg - if(id_tr_ref(tr) > 0) then - used = fms_diag_send_data(id_tr_ref(tr),diag_atm,Time) - endif - end if - - if(id_tr_ref_land(tr) > 0) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - call send_tile_data (id_tr_ref_land(tr), diag_land) -#else - used = fms_diag_send_tile_averaged_data(id_tr_ref_land(tr), diag_land, & - Land%tile_size, Time, mask=Land%mask) -#endif - endif - end do - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail, & - !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2 ) private(is,ie) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is,ie - ex_t_ref(i) = 200. - if ( ex_avail(i) .and. ex_rough_heat(i) > 0. ) & - ex_t_ref(i) = ex_t_ca(i) + (ex_t_atm(i)-ex_t_ca(i)) * ex_del_h(i) - enddo - call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref(is:ie), q = ex_ref(is:ie)) - call fms_sat_vapor_pres_compute_qs(ex_t_ref(is:ie), ex_p_surf(is:ie), ex_qs_ref_cmip(is:ie), & - q = ex_ref(is:ie), es_over_liq_and_ice = .true.) - do i = is,ie - if(ex_avail(i)) then - ex_ref2(i) = 100.*ex_ref(i)/ex_qs_ref_cmip(i) - ex_ref(i) = 100.*ex_ref(i)/ex_qs_ref(i) - endif - enddo - enddo - - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ref, 'ATM', ex_t_ref, xmap_sfc) ! cjg - - if ( id_rh_ref_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land,'LND', ex_ref, xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - call send_tile_data (id_rh_ref_land, diag_land) -#else - used = fms_diag_send_tile_averaged_data ( id_rh_ref_land, diag_land, & - Land%tile_size, Time, mask = Land%mask ) -#endif - endif - - if(id_rh_ref > 0) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) - used = fms_diag_send_data ( id_rh_ref, diag_atm, Time ) - endif - - if(id_rh_ref_cmip > 0 .or. id_hurs > 0 .or. id_rhs > 0) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref2, xmap_sfc) - if (id_rh_ref_cmip > 0) used = fms_diag_send_data ( id_rh_ref_cmip, diag_atm, Time ) - if (id_hurs > 0) used = fms_diag_send_data ( id_hurs, diag_atm, Time ) - if (id_rhs > 0) used = fms_diag_send_data ( id_rhs, diag_atm, Time ) - endif - !cjg endif - - ! ------- reference temp ----------- -#ifdef use_AM3_physics - if ( id_t_ref > 0 .or. id_t_ref_land > 0 .or. id_tasLut_land > 0 ) then - where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h - if (id_t_ref_land > 0.or.id_tasLut_land > 0) then - call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_ref, xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) - if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) -#else - if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & - Land%tile_size, Time, mask = Land%mask ) -#endif - endif - if ( id_t_ref > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) - used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) - endif - endif -#else - if (id_t_ref_land > 0 .or. id_tasLut_land > 0 .or. id_tasl_g > 0) then - where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h - ! t_ref diagnostic at land points only - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) - if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) - if (id_tasl_g > 0) then - used = send_global_land_diag ( get_global_diag_field_id(id_tasl_g), & - diag_land, Time, Land%tile_size, Land%mask, Land ) - endif -#else - if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & - Land%tile_size, Time, mask = Land%mask ) -#endif - endif - - ! t_ref diagnostic at all atmos points - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) - if ( id_t_ref > 0 ) used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) - if ( id_tas > 0 ) used = fms_diag_send_data ( id_tas, diag_atm, Time ) - call fms_sum_diag_integral_field ('t_ref', diag_atm) - if ( id_tas_g > 0 ) used = send_global_diag ( id_tas_g, diag_atm, Time ) -#endif - - ! ------- reference u comp ----------- - if ( id_u_ref > 0 .or. id_u_ref_land > 0 .or. id_uas > 0) then - where (ex_avail) ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m - if ( id_u_ref_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) -#ifndef _USE_LEGACY_LAND_ - call send_tile_data ( id_u_ref_land, diag_land ) -#else - used = fms_diag_send_tile_averaged_data ( id_u_ref_land, diag_land, & - Land%tile_size, Time, mask = Land%mask ) -#endif - endif - if ( id_u_ref > 0 .or. id_uas > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) - if ( id_u_ref > 0 ) used = fms_diag_send_data ( id_u_ref, diag_atm, Time ) - if ( id_uas > 0 ) used = fms_diag_send_data ( id_uas, diag_atm, Time ) - endif - endif - - ! ------- reference v comp ----------- - if ( id_v_ref > 0 .or. id_v_ref_land > 0 .or. id_vas > 0 ) then - where (ex_avail) & - ex_ref = ex_v_surf + (ex_v_atm-ex_v_surf) * ex_del_m - if ( id_v_ref_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) -#ifndef _USE_LEGACY_LAND_ - call send_tile_data ( id_v_ref_land, diag_land ) -#else - used = fms_diag_send_tile_averaged_data ( id_v_ref_land, diag_land, & - Land%tile_size, Time, mask = Land%mask ) -#endif - endif - if ( id_v_ref > 0 .or. id_vas > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) - if ( id_v_ref > 0 ) used = fms_diag_send_data ( id_v_ref, diag_atm, Time ) - if ( id_vas > 0 ) used = fms_diag_send_data ( id_vas, diag_atm, Time ) - endif - endif - - ! ------- reference-level absolute wind ----------- - if ( id_wind_ref > 0 .or. id_sfcWind > 0 ) then - where (ex_avail) & - ex_ref = sqrt((ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m)**2 & - +(ex_v_surf + (ex_v_atm-ex_v_surf) * ex_del_m)**2) - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) - if ( id_wind_ref > 0 ) used = fms_diag_send_data ( id_wind_ref, diag_atm, Time ) - if ( id_sfcWind > 0 ) used = fms_diag_send_data ( id_sfcWind, diag_atm, Time ) - endif - - ! ------- interp factor for heat ------ - if ( id_del_h > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_del_h, xmap_sfc) - used = fms_diag_send_data ( id_del_h, diag_atm, Time ) - endif - - ! ------- interp factor for momentum ------ - if ( id_del_m > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_del_m, xmap_sfc) - used = fms_diag_send_data ( id_del_m, diag_atm, Time ) - endif - - ! ------- interp factor for moisture ------ - if ( id_del_q > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_del_q, xmap_sfc) - used = fms_diag_send_data ( id_del_q, diag_atm, Time ) - endif - - !cjg endif - ! topographic roughness scale - if(id_rough_scale>0) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM',& - (log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2, xmap_sfc) - used = fms_diag_send_data(id_rough_scale, diag_atm, Time) - endif - - !Balaji - call fms_mpp_clock_end(sfcClock) - call fms_mpp_clock_end(cplClock) - - !======================================================================= - - end subroutine sfc_boundary_layer - - !####################################################################### - - !> Returns fluxes and derivatives corrected for the implicit treatment of atmospheric - !! diffusive fluxes, and the increments in the temperature and specific humidity - !! of the lowest atmospheric layer due to all explicit processes as well as the diffusive - !! fluxes through the top of this layer. - !! - !! - !! The following elements from Atmos_boundary are used as input: - !!
                                                                                                                                                                                                                                                                                                              -  !!        flux_u_atm = zonal wind stress (Pa)
                                                                                                                                                                                                                                                                                                              -  !!        flux_v_atm = meridional wind stress (Pa)
                                                                                                                                                                                                                                                                                                              -  !! 
                                                                                                                                                                                                                                                                                                              - !! - !! The following elements of Land_boundary are output: - !!
                                                                                                                                                                                                                                                                                                              -  !!       flux_t_land = sensible heat flux (W/m2)
                                                                                                                                                                                                                                                                                                              -  !!       flux_q_land = specific humidity flux (Kg/(m2 s)
                                                                                                                                                                                                                                                                                                              -  !!      flux_lw_land = net longwave flux (W/m2), uncorrected for
                                                                                                                                                                                                                                                                                                              -  !!                     changes in surface temperature
                                                                                                                                                                                                                                                                                                              -  !!      flux_sw_land = net shortwave flux (W/m2)
                                                                                                                                                                                                                                                                                                              -  !!         dhdt_land = derivative of sensible heat flux w.r.t.
                                                                                                                                                                                                                                                                                                              -  !!                     surface temperature (on land model grid)  (W/(m2 K)
                                                                                                                                                                                                                                                                                                              -  !!         dedt_land = derivative of specific humidity flux w.r.t.
                                                                                                                                                                                                                                                                                                              -  !!                     surface temperature (on land model grid)  (Kg/(m2 s K)
                                                                                                                                                                                                                                                                                                              -  !!         drdt_land = derivative of upward longwave flux w.r.t.
                                                                                                                                                                                                                                                                                                              -  !!                     surface temperature (on land model grid) (W/(m2 K)
                                                                                                                                                                                                                                                                                                              -  !!        lprec_land = liquid precipitation, mass for one time step
                                                                                                                                                                                                                                                                                                              -  !!                      (Kg/m2)
                                                                                                                                                                                                                                                                                                              -  !!        fprec_land = frozen precipitation, mass for one time step
                                                                                                                                                                                                                                                                                                              -  !!                      (Kg/m2)
                                                                                                                                                                                                                                                                                                              -  !! 
                                                                                                                                                                                                                                                                                                              - !! - !! The following elements of Ice_boundary are output: - !!
                                                                                                                                                                                                                                                                                                              -  !!        flux_u_ice = zonal wind stress (Pa)
                                                                                                                                                                                                                                                                                                              -  !!        flux_v_ice = meridional wind stress (Pa)
                                                                                                                                                                                                                                                                                                              -  !!        coszen_ice = cosine of the zenith angle
                                                                                                                                                                                                                                                                                                              -  !! 
                                                                                                                                                                                                                                                                                                              - subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary ) - type(FmsTime_type), intent(in) :: Time - !< Current time - type(atmos_data_type), intent(inout) :: Atm - !< A derived data type to specify atmosphere boundary data - type(land_data_type), intent(in) :: Land - !< A derived data type to specify land boundary data - type(ice_data_type), intent(in) :: Ice - !< A derived data type to specify ice boundary data - type(land_ice_atmos_boundary_type), intent(in) :: Atmos_boundary - !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice - type(atmos_land_boundary_type), intent(inout):: Land_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to land - type(atmos_ice_boundary_type), intent(inout):: Ice_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to ice - - real, dimension(n_xgrid_sfc) :: & - ex_flux_sw, ex_flux_lwd, & - ex_flux_sw_dir, & - ex_flux_sw_dif, & - ex_flux_sw_down_vis_dir, & - ex_flux_sw_down_total_dir, & - ex_flux_sw_down_vis_dif, & - ex_flux_sw_down_total_dif, & - ex_flux_sw_vis, & - ex_flux_sw_vis_dir, & - ex_flux_sw_vis_dif, & - ex_lprec, & - ex_fprec, & - ex_tprec, & ! temperature of precipitation, currently equal to atm T - ex_u_star_smooth, & -#ifdef use_AM3_physics - ex_coszen -#else - ex_coszen, & - ex_setl_flux, & ! tracer sedimentation flux from the lowest atm layer (positive down) - ex_dsetl_dtr ! and its derivative w.r.t. the tracer concentration -#endif - real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - - real, dimension(n_xgrid_sfc) :: & - ex_gamma, & - ex_dtmass, & - ex_delta_t, & - ex_delta_u, & - ex_delta_v, & - ex_dflux_t - - real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd - - real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_delta_tr, & ! tracer tendencies - ex_dflux_tr ! fracer flux change - - real :: cp_inv - logical :: used - logical :: ov - integer :: ier - integer :: is_atm, ie_atm, js_atm, je_atm, j - - character(32) :: tr_name ! name of the tracer - integer :: tr, n, m ! tracer indices - integer :: is, ie, l, i - integer :: n_gex - - call fms_mpp_clock_begin(cplClock) - call fms_mpp_clock_begin(fluxAtmDnClock) - ov = .FALSE. - - !> override flux fields if fields are specified in data_table - call fms_data_override ('ATM', 'flux_sw', Atm%flux_sw, Time) - call fms_data_override ('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) - call fms_data_override ('ATM', 'flux_sw_dif', Atm%flux_sw_dif, Time) - call fms_data_override ('ATM', 'flux_sw_down_vis_dir', Atm%flux_sw_down_vis_dir, Time) - call fms_data_override ('ATM', 'flux_sw_down_vis_dif', Atm%flux_sw_down_vis_dif, Time) - call fms_data_override ('ATM', 'flux_sw_down_total_dir', Atm%flux_sw_down_total_dir, Time) - call fms_data_override ('ATM', 'flux_sw_down_total_dif', Atm%flux_sw_down_total_dif, Time) - call fms_data_override ('ATM', 'flux_sw_vis', Atm%flux_sw_vis, Time) - call fms_data_override ('ATM', 'flux_sw_vis_dir', Atm%flux_sw_vis_dir, Time) - call fms_data_override ('ATM', 'flux_sw_vis_dif', Atm%flux_sw_vis_dif, Time) - call fms_data_override ('ATM', 'flux_lw', Atm%flux_lw, Time) - call fms_data_override ('ATM', 'lprec', Atm%lprec, Time) - - !> if scale_precip_2d = .true., scale liquid precipitation by frac_precip. - !! frac_precip should have been allocated in atm_land_ice_flux_exchange_init - !! with scale_precip_2d_in set to .true. - if (scale_precip_2d) then - call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) - call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) - do j=js_atm,je_atm - do i=is_atm, ie_atm - Atm%lprec(i,j) = Atm%lprec(i,j)*frac_precip(i,j) - enddo - enddo - endif - - !> if partition_fprec_from_lpec = .true., initialize frozen precition and - !! liquid precipitation in Atm - allocate atm%fprec and atm%lprec fields - !! and initially set atm%fprec = atm%lprec - if (partition_fprec_from_lprec .and. Atm%pe) then - call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) - do j=js_atm,je_atm - do i=is_atm, ie_atm - if (Atm%t_bot(i,j) < tfreeze) then - Atm%fprec(i,j) = Atm%lprec(i,j) - Atm%lprec(i,j) = 0.0 - endif - enddo - enddo - endif - - !> override atm fields if fields are specified in the data_table - call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) - call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) - call fms_data_override ('ATM', 'dtmass', Atm%Surf_Diff%dtmass, Time) - call fms_data_override ('ATM', 'delta_t', Atm%Surf_Diff%delta_t, Time) - call fms_data_override ('ATM', 'dflux_t', Atm%Surf_Diff%dflux_t, Time) - do tr = 1,n_atm_tr - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS,tr,tr_name) - call fms_data_override ('ATM', 'delta_'//trim(tr_name), Atm%Surf_Diff%delta_tr(:,:,tr), Time) - call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) - enddo - - !> map atmosphere quantities onto exchange grid - !{ - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u, ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v, & - !$OMP ex_gex_atm2lnd,n_gex_atm2lnd) private(is,ie,n_gex) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - ex_flux_sw_dir(i) = 0.0 - ex_flux_sw_vis_dir(i) = 0.0 - ex_flux_sw_dif(i) = 0.0 - ex_flux_sw_vis_dif(i) = 0.0 - ex_flux_lwd(i) = 0.0 - ex_delta_u(i) = 0.0 - ex_delta_v(i) = 0.0 - enddo - do n_gex = 1, n_gex_atm2lnd - do i = is, ie - ex_gex_atm2lnd(i,n_gex) = 0.0 - end do - end do - enddo - call fms_xgrid_put_to_xgrid(Atm%flux_sw_dir, 'ATM', ex_flux_sw_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dir, 'ATM', ex_flux_sw_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_dif, 'ATM', ex_flux_sw_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dif, 'ATM', ex_flux_sw_vis_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dir, 'ATM', ex_flux_sw_down_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) - - do n_gex=1,n_gex_atm2lnd - call fms_xgrid_put_to_xgrid (Atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) - end do - - call fms_xgrid_put_to_xgrid(Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) - call fms_xgrid_put_to_xgrid(Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) - - ! MOD changed the following two lines to put Atmos%surf_diff%delta_u and v - ! on exchange grid instead of the stresses themselves so that only the - ! implicit corrections are filtered through the atmospheric grid not the stresses themselves - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_u, 'ATM', ex_delta_u, xmap_sfc, remap_method=remap_method, & - complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & - complete=.true.) - - ! MOD update stresses using atmos delta's but derivatives on exchange grid - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u, & - !$OMP ex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v ) private(is,ie) - do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - do i = is, ie - ex_flux_u(i) = ex_flux_u(i) + ex_delta_u(i)*ex_dtaudu_atm(i) - ex_flux_v(i) = ex_flux_v(i) + ex_delta_v(i)*ex_dtaudv_atm(i) - enddo - enddo - - - !> adjust sw flux for albedo variations on exchange grid - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir,ex_albedo_nir_dir_fix, ex_albedo_vis_dir_fix,ex_flux_sw_dif, & - !$OMP ex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw, ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix) & - !$OMP private(is,ie) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) - ex_flux_sw_vis_dir(i) ! temporarily nir/dir - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) * ex_albedo_nir_dir_fix(i) ! fix nir/dir - ex_flux_sw_vis_dir(i) = ex_flux_sw_vis_dir(i) * ex_albedo_vis_dir_fix(i) ! fix vis/dir - ex_flux_sw_dir(i) = ex_flux_sw_dir(i) + ex_flux_sw_vis_dir(i) ! back to total dir - - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) - ex_flux_sw_vis_dif(i) ! temporarily nir/dif - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) * ex_albedo_nir_dif_fix(i) ! fix nir/dif - ex_flux_sw_vis_dif(i) = ex_flux_sw_vis_dif(i) * ex_albedo_vis_dif_fix(i) ! fix vis/dif - ex_flux_sw_dif(i) = ex_flux_sw_dif(i) + ex_flux_sw_vis_dif(i) ! back to total dif - - ex_flux_sw_vis(i) = ex_flux_sw_vis_dir(i) + ex_flux_sw_vis_dif(i) ! legacy, remove later - ex_flux_sw(i) = ex_flux_sw_dir(i) + ex_flux_sw_dif(i) ! legacy, remove later - enddo - enddo - - deallocate(ex_albedo_fix) - deallocate(ex_albedo_vis_dir_fix) - deallocate(ex_albedo_nir_dir_fix) - deallocate(ex_albedo_vis_dif_fix) - deallocate(ex_albedo_nir_dif_fix) - - - !> adjust fluxes for implicit dependence on atmosphere - do tr = 1,n_exch_tr - n = tr_table(tr)%atm - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_tr(:,:,n), 'ATM', ex_delta_tr(:,tr), xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dflux_tr(:,:,n), 'ATM', ex_dflux_tr(:,tr), xmap_sfc, complete=.false.) - enddo - - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dtmass , 'ATM', ex_dtmass , xmap_sfc, complete=.false. ) - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_t, 'ATM', ex_delta_t, xmap_sfc, complete=.false. ) - call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%dflux_t, 'ATM', ex_dflux_t, xmap_sfc, complete=.true. ) - -#ifndef use_AM3_physics - !> Map sedimentation flux on the exchange - do tr = 1,n_exch_tr - if (atmos_tracer_has_surf_setl_flux(tr_table(tr)%atm)) then - call get_atmos_tracer_surf_setl_flux (tr_table(tr)%atm, setl_flux, dsetl_dtr) - call fms_xgrid_put_to_xgrid(setl_flux, 'ATM', ex_setl_flux, xmap_sfc) - call fms_xgrid_put_to_xgrid(dsetl_dtr, 'ATM', ex_dsetl_dtr, xmap_sfc) - where (ex_avail) - ! minus sign is because sedimentation is positive down - ex_flux_tr(:,tr) = ex_flux_tr(:,tr) - ex_setl_flux(:) - ex_dfdtr_atm(:,tr) = ex_dfdtr_atm(:,tr) - ex_dsetl_dtr(:) - end where - endif - enddo -#endif - - cp_inv = 1.0/cp_air - - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd, & - !$OMP ex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm, cp_inv,ex_e_t_n,ex_dhdt_surf,ex_f_t_delt_n,& - !$OMP ex_delta_t, ex_flux_t,ex_dflux_tr,isphum,ex_dfdtr_atm,ex_e_q_n, ex_dedt_surf,n_exch_tr,& - !$OMP ex_e_tr_n,ex_dfdtr_surf, ex_f_tr_delt_n,ex_delta_tr,ex_flux_tr) private(is,ie) - do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) - do i = is, ie - !----- compute net longwave flux (down-up) ----- - ! (note: lw up already in ex_flux_lw) - ex_flux_lw(i) = ex_flux_lwd(i) - ex_flux_lw(i) - if (ex_avail(i) ) then - ! temperature - ex_gamma(i) = 1./ (1.0 - ex_dtmass(i)*(ex_dflux_t(i) + ex_dhdt_atm(i)*cp_inv)) - ex_e_t_n(i) = ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) - ex_f_t_delt_n(i) = (ex_delta_t(i) + ex_dtmass(i) * ex_flux_t(i)*cp_inv) * ex_gamma(i) - - ex_flux_t (i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) - ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) - - ! moisture - ! ex_gamma = 1./ (1.0 - ex_dtmass*(ex_dflux_q + ex_dedq_atm)) - ! here it looks like two derivatives with different units are added together, - ! but in fact they are not: ex_dedt_surf and ex_dedq_surf defined in complimentary - ! regions of exchange grid, so that if one of them is not zero the other is, and - ! vice versa. - ! ex_e_q_n = ex_dtmass*(ex_dedt_surf+ex_dedq_surf) * ex_gamma - ! ex_f_q_delt_n = (ex_delta_q + ex_dtmass * ex_flux_q) * ex_gamma - ! ex_flux_q = ex_flux_q + ex_dedq_atm * ex_f_q_delt_n - ! ex_dedt_surf = ex_dedt_surf + ex_dedq_atm * ex_e_q_n - ! ex_dedq_surf = ex_dedq_surf + ex_dedq_atm * ex_e_q_n - ! moisture vs. surface temperture, assuming saturation - ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,isphum) + ex_dfdtr_atm(i,isphum))) - ex_e_q_n(i) = ex_dtmass(i) * ex_dedt_surf(i) * ex_gamma(i) - ex_dedt_surf(i) = ex_dedt_surf(i) + ex_dfdtr_atm(i,isphum) * ex_e_q_n(i) - do tr = 1,n_exch_tr - ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,tr) + ex_dfdtr_atm(i,tr))) - ex_e_tr_n(i,tr) = ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) - ex_f_tr_delt_n(i,tr) = (ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) - ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) - ex_dfdtr_surf(i,tr) = ex_dfdtr_surf(i,tr) + ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) - enddo - endif - enddo - enddo - - !> map field from the exchange grid to the land grid - !{ - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) -#ifdef SCM - if (do_specified_land .and. do_specified_flux) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) - else - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) - endif -#else - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) -#endif - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) - - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) - - if(associated(Land_boundary%drag_q)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'drag_q', Land_boundary%drag_q, Time ) - endif - if(associated(Land_boundary%lwdn_flux)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) - endif - if(associated(Land_boundary%cd_m)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'cd_m', Land_boundary%cd_m, Time ) - endif - if(associated(Land_boundary%cd_t)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'cd_t', Land_boundary%cd_t, Time ) - endif - if(associated(Land_boundary%bstar)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'bstar', Land_boundary%bstar, Time ) - endif - if(associated(Land_boundary%ustar)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'ustar', Land_boundary%ustar, Time ) - endif - if(associated(Land_boundary%wind)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'wind', Land_boundary%wind, Time ) - endif - if(associated(Land_boundary%z_bot)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'z_bot', Land_boundary%z_bot, Time ) - endif - - if (associated(Land_boundary%gex_atm2lnd)) then - do n_gex=1,n_gex_atm2lnd - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) - !add data_override here - end do - end if - -#ifndef _USE_LEGACY_LAND_ - if (associated(Land_boundary%con_atm)) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) - end if -#endif - - Land_boundary%tr_flux = 0.0 - Land_boundary%dfdtr = 0.0 - do tr = 1,n_exch_tr - n = tr_table(tr)%lnd - if(n /= NO_TRACER ) then -#ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) -#else - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) -#endif -#ifdef SCM - if (do_specified_land .and. do_specified_flux .and. tr.eq.isphum) then - call FMS_XGRID_GET_FROM_XGRID_ (Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) - endif -#endif - endif - enddo - !} - - !> Data_override land fields if the field is specified in the data_table - call FMS_DATA_OVERRIDE_('LND', 't_flux', Land_boundary%t_flux, Time ) - call FMS_DATA_OVERRIDE_('LND', 'lw_flux', Land_boundary%lw_flux, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux', Land_boundary%sw_flux, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) - - call FMS_DATA_OVERRIDE_('LND', 'lprec', Land_boundary%lprec, Time ) - call FMS_DATA_OVERRIDE_('LND', 'fprec', Land_boundary%fprec, Time ) - call FMS_DATA_OVERRIDE_('LND', 'dhdt', Land_boundary%dhdt, Time ) - call FMS_DATA_OVERRIDE_('LND', 'drdt', Land_boundary%drdt, Time ) - call FMS_DATA_OVERRIDE_('LND', 'p_surf', Land_boundary%p_surf, Time ) - do tr = 1,n_lnd_tr - call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) -#ifndef _USE_LEGACY_LAND_ - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) - call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) -#else - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,:,tr), Time) - call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) -#endif - enddo - - !> map data on the exchange grid onto the Ice grid - !{ - call fms_xgrid_get_from_xgrid (Ice_boundary%t_flux, 'OCN', ex_flux_t, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%q_flux, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dir, 'OCN', ex_flux_sw_vis_dir, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dir, 'OCN', ex_flux_sw_dir,xmap_sfc) - Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_flux_nir_dir - Ice_boundary%sw_flux_vis_dir - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_vis_dif, 'OCN', ex_flux_sw_vis_dif, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_flux_nir_dif, 'OCN', ex_flux_sw_dif,xmap_sfc) - Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_flux_nir_dif - Ice_boundary%sw_flux_vis_dif - - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dir, 'OCN', ex_flux_sw_down_vis_dir, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dir, 'OCN', ex_flux_sw_down_total_dir, xmap_sfc) - Ice_boundary%sw_down_nir_dir = Ice_boundary%sw_down_nir_dir - Ice_boundary%sw_down_vis_dir - - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_vis_dif, 'OCN', ex_flux_sw_down_vis_dif, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%sw_down_nir_dif, 'OCN', ex_flux_sw_down_total_dif,xmap_sfc) - Ice_boundary%sw_down_nir_dif = Ice_boundary%sw_down_nir_dif - Ice_boundary%sw_down_vis_dif - - call fms_xgrid_get_from_xgrid (Ice_boundary%lw_flux, 'OCN', ex_flux_lw, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%dhdt, 'OCN', ex_dhdt_surf, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%dedt, 'OCN', ex_dedt_surf, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%drdt, 'OCN', ex_drdt_surf, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%u_flux, 'OCN', ex_flux_u, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%v_flux, 'OCN', ex_flux_v, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%u_star, 'OCN', ex_u_star, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%coszen, 'OCN', ex_coszen, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%p, 'OCN', ex_slp, xmap_sfc) ! mw mod - - call fms_xgrid_get_from_xgrid (Ice_boundary%lprec, 'OCN', ex_lprec, xmap_sfc) - call fms_xgrid_get_from_xgrid (Ice_boundary%fprec, 'OCN', ex_fprec, xmap_sfc) - - ! Extra fluxes - do n = 1, Ice_boundary%fluxes%num_bcs - if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then - do m = 1, Ice_boundary%fluxes%bc(n)%num_fields !{ - call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & - ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - enddo - endif - enddo - !} - - !> Override ice data if data field is specified in the data_table - call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) - call fms_data_override('ICE', 'v_flux', Ice_boundary%v_flux, Time) - call fms_data_override('ICE', 't_flux', Ice_boundary%t_flux, Time) - call fms_data_override('ICE', 'q_flux', Ice_boundary%q_flux, Time) - call fms_data_override('ICE', 'lw_flux',Ice_boundary%lw_flux, Time) - call fms_data_override('ICE', 'lw_flux_dn',Ice_boundary%lw_flux, Time, override=ov) - if (ov) Ice_boundary%lw_flux = Ice_boundary%lw_flux - stefan*Ice%t_surf**4 - - call fms_data_override('ICE', 'sw_flux_nir_dir',Ice_boundary%sw_flux_nir_dir, Time) - call fms_data_override('ICE', 'sw_flux_vis_dir',Ice_boundary%sw_flux_vis_dir, Time) - call fms_data_override('ICE', 'sw_flux_nir_dif',Ice_boundary%sw_flux_nir_dif, Time, override=ov) - call fms_data_override('ICE', 'sw_flux_vis_dif',Ice_boundary%sw_flux_vis_dif, Time) - call fms_data_override('ICE', 'sw_flux_vis_dir_dn',Ice_boundary%sw_down_vis_dir, Time, override=ov) - if (ov) Ice_boundary%sw_flux_vis_dir = Ice_boundary%sw_down_vis_dir*(1.0-Ice%albedo_vis_dir) - - call fms_data_override('ICE', 'sw_flux_vis_dif_dn',Ice_boundary%sw_down_vis_dif, Time, override=ov) - if (ov) Ice_boundary%sw_flux_vis_dif = Ice_boundary%sw_down_vis_dif*(1.0-Ice%albedo_vis_dif) - - call fms_data_override('ICE', 'sw_flux_nir_dir_dn',Ice_boundary%sw_down_nir_dir, Time, override=ov) - if (ov) Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_down_nir_dir*(1.0-Ice%albedo_nir_dir) - - call fms_data_override('ICE', 'sw_flux_nir_dif_dn',Ice_boundary%sw_down_nir_dif, Time, override=ov) - if (ov) Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_down_nir_dif*(1.0-Ice%albedo_nir_dif) - - call fms_data_override('ICE', 'lprec', Ice_boundary%lprec, Time) - call fms_data_override('ICE', 'fprec', Ice_boundary%fprec, Time) - call fms_data_override('ICE', 'dhdt', Ice_boundary%dhdt, Time) - call fms_data_override('ICE', 'dedt', Ice_boundary%dedt, Time) - call fms_data_override('ICE', 'drdt', Ice_boundary%drdt, Time) - call fms_data_override('ICE', 'coszen', Ice_boundary%coszen, Time) - call fms_data_override('ICE', 'p', Ice_boundary%p, Time) - - call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) - - call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) - !} - - !> Compute stock changes - !{ - ! Atm -> Lnd (precip) - call FMS_XGRID_STOCK_MOVE_( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & -#ifndef _USE_LEGACY_LAND_ - & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & -#else - & stock_data3d = (Land_boundary%lprec + Land_boundary%fprec), & -#endif - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Lnd) ') - - ! Atm -> Lnd (heat) - call FMS_XGRID_STOCK_MOVE_( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & -#ifndef _USE_LEGACY_LAND_ - & stock_ug_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & - Land_boundary%fprec*HLF), & -#else - & stock_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & - Land_boundary%fprec*HLF), & -#endif - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Lnd) ') - - ! Atm -> Ice (precip) - call fms_xgrid_stock_move( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_ice_stock(ISTOCK_WATER), & - & stock_data3d = (Ice_boundary%lprec + Ice_boundary%fprec), & - & grid_index=X1_GRID_ICE, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Ice) ') - - ! Atm -> Ice (heat) - call fms_xgrid_stock_move( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & TO = fms_stock_constants_ice_stock(ISTOCK_HEAT), & - & stock_data3d = (-Ice_boundary%t_flux + Ice_boundary%lw_flux - Ice_boundary%fprec*HLF + & - Ice_boundary%sw_flux_vis_dir + & - Ice_boundary%sw_flux_vis_dif + Ice_boundary%sw_flux_nir_dir + Ice_boundary%sw_flux_nir_dif), & - & grid_index=X1_GRID_ICE, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') - !} - - deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) - - !> send data to diag_manager buffer to save data for output - !{ - ! zonal wind stress - used = fms_diag_send_data ( id_u_flux, Atmos_boundary%u_flux, Time ) - used = fms_diag_send_data ( id_tauu, -Atmos_boundary%u_flux, Time ) - - ! meridional wind stress - used = fms_diag_send_data ( id_v_flux, Atmos_boundary%v_flux, Time ) - used = fms_diag_send_data ( id_tauv, -Atmos_boundary%v_flux, Time ) - !} - - call fms_mpp_clock_end(fluxAtmDnClock) - call fms_mpp_clock_end(cplClock) - - end subroutine flux_down_from_atmos - - !####################################################################### - !> \brief Optimizes the exchange grids by eliminating land and ice partitions with no data. - !! - !! Optimizes the exchange grids by eliminating land and ice partitions with no data. - subroutine generate_sfc_xgrid( Land, Ice ) - ! subroutine to regenerate exchange grid eliminating side 2 tiles with 0 frac area - type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data - type(ice_data_type), intent(in) :: Ice !< A derived data type to specify ice boundary data - - integer :: isc, iec, jsc, jec - - !Balaji - call fms_mpp_clock_begin(cplClock) - call fms_mpp_clock_begin(regenClock) - - call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) - - call fms_xgrid_set_frac_area (Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) - call FMS_XGRID_SET_FRAC_AREA_ (Land%tile_size, 'LND', xmap_sfc) - - n_xgrid_sfc = max(fms_xgrid_count(xmap_sfc),1) - if(n_xgrid_sfc .GE. nblocks) then - my_nblocks = nblocks - call fms_mpp_domains_compute_extent(1, n_xgrid_sfc, nblocks, block_start, block_end) - else - my_nblocks = 1 - block_start(1) = 1 - block_end(1) = n_xgrid_sfc - endif - - !Balaji - call fms_mpp_clock_end(regenClock) - call fms_mpp_clock_end(cplClock) - return - end subroutine generate_sfc_xgrid - - !####################################################################### - !> \brief Corrects the fluxes for consistency with the new surface temperatures in land - !! and ice models. - !! - !! Corrects the fluxes for consistency with the new surface temperatures in land - !! and ice models. Final increments for temperature and specific humidity in the - !! lowest atmospheric layer are computed and returned to the atmospheric model - !! so that it can finalize the increments in the rest of the atmosphere. - !! - !! The following elements of the land_ice_atmos_boundary_type are computed: - !!
                                                                                                                                                                                                                                                                                                              -  !!        dt_t  = temperature change at the lowest
                                                                                                                                                                                                                                                                                                              -  !!                 atmospheric level (deg k)
                                                                                                                                                                                                                                                                                                              -  !!        dt_q  = specific humidity change at the lowest
                                                                                                                                                                                                                                                                                                              -  !!                 atmospheric level (kg/kg)
                                                                                                                                                                                                                                                                                                              -  !! 
                                                                                                                                                                                                                                                                                                              - subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary ) - type(FmsTime_type), intent(in) :: Time !< Current time - type(land_data_type), intent(inout) :: Land !< A derived data type to specify ice boundary data - type(ice_data_type), intent(inout) :: Ice !< A derived data type to specify ice boundary data - type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary !< A derived data type to specify - !! properties and fluxes passed from - !! exchange grid to the atmosphere, - !! land and ice - type(atmos_land_boundary_type), intent(inout) :: Land_boundary - type(atmos_ice_boundary_type), intent(inout) :: Ice_boundary - - real, dimension(n_xgrid_sfc) :: & - ex_t_surf_new, & - ex_dt_t_surf, & - ex_delta_t_n, & - ex_t_ca_new, & - ex_dt_t_ca, & - ex_icetemp, & - ex_land_frac, & - ex_temp - - real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_surf_new, & ! updated tracer values at the surface - ex_dt_tr_surf, & ! tendency of tracers at the surface - ex_delta_tr_n - ! jgj: added for co2_surf diagnostic - real, dimension(n_xgrid_sfc) :: & - ex_co2_surf_dvmr ! updated CO2 tracer values at the surface (dry vmr) - - real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: diag_atm, & - evap_atm, frac_atm -#ifndef _USE_LEGACY_LAND_ - real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land -#else - real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: data_lnd,& - diag_land -#endif - real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice - real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid - logical :: used - - integer :: tr ! tracer index - character(32) :: tr_name, tr_units ! tracer name - integer :: n, i, m, ier - - integer :: is, ie, l - - !Balaji - call fms_mpp_clock_begin(cplClock) - call fms_mpp_clock_begin(fluxAtmUpClock) - !----------------------------------------------------------------------- - !Balaji: data_override calls moved here from coupler_main - call fms_data_override ( 'ICE', 't_surf', Ice%t_surf, Time) - call FMS_DATA_OVERRIDE_ ( 'LND', 't_ca', Land%t_ca, Time) - call FMS_DATA_OVERRIDE_ ( 'LND', 't_surf', Land%t_surf, Time) - do tr = 1, n_lnd_tr - call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) -#ifndef _USE_LEGACY_LAND_ - call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) -#else - call FMS_DATA_OVERRIDE_ ( 'LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) -#endif - enddo - - !----- compute surface temperature change ----- - - ex_t_surf_new = 200.0 - - call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf_new, xmap_sfc) - ex_t_ca_new = ex_t_surf_new ! since it is the same thing over oceans - - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) - - ! call escomp(ex_t_ca_new, ex_q_surf_new) - ! ex_q_surf_new = d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) - ! call put_to_xgrid (Land%q_ca, 'LND', ex_q_surf_new, xmap_sfc) - -#ifdef SCM - if (do_specified_flux .and. do_specified_land) then - ex_t_surf_new = ex_t_surf - ex_t_ca_new = ex_t_ca - endif -#endif - - do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - do i = is, ie - if(ex_avail(i)) then - ex_dt_t_ca(i) = ex_t_ca_new(i) - ex_t_ca(i) ! changes in near-surface T - ex_dt_t_surf(i) = ex_t_surf_new(i) - ex_t_surf(i) ! changes in radiative T - endif - enddo - - if (do_forecast) then - do i = is, ie - if(ex_avail(i) .and. (.not.ex_land(i))) then - ex_dt_t_ca (i) = 0. - ex_dt_t_surf(i) = 0. - endif - enddo - end if - - !----------------------------------------------------------------------- - !----- adjust fluxes and atmospheric increments for - !----- implicit dependence on surface temperature ----- - do tr = 1,n_exch_tr - ! set up updated surface tracer field so that flux to atmos for absent - ! tracers is zero - do i = is,ie - if(.not.ex_avail(i)) cycle - if (ex_dfdtr_surf(i,tr)/=0.0) then - ex_dt_tr_surf(i,tr) = -ex_flux_tr(i,tr)/ex_dfdtr_surf(i,tr) - else - ex_dt_tr_surf(i,tr) = 0.0 - endif - ex_tr_surf_new(i,tr) = ex_tr_surf(i,tr)+ex_dt_tr_surf(i,tr) - enddo - enddo - enddo ! l = 1, my_nblocks - ! get all tracers available from land, and calculate changes in near-tracer field - do tr = 1,n_exch_tr - n = tr_table(tr)%lnd - if(n /= NO_TRACER ) then -#ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) -#else - call FMS_XGRID_PUT_TO_XGRID_ ( Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) -#endif - endif - enddo - - ! get all tracers available from ocean here - - ! update tracer tendencies in the atmosphere - do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - do tr = 1,n_exch_tr - do i = is, ie - if(ex_avail(i)) then - ex_dt_tr_surf(i,tr) = ex_tr_surf_new(i,tr) - ex_tr_surf(i,tr) - ex_delta_tr_n(i,tr) = ex_f_tr_delt_n(i,tr) + ex_dt_tr_surf(i,tr) * ex_e_tr_n(i,tr) - ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dt_tr_surf(i,tr) * ex_dfdtr_surf(i,tr) - endif - enddo - enddo - - ! re-calculate fluxes of specific humidity over ocean - do i = is, ie - if(ex_avail(i) .and. (.not.ex_land(i))) then - ! note that in this region (over ocean) ex_dt_t_surf == ex_dt_t_ca - ex_delta_tr_n(i,isphum) = ex_f_tr_delt_n(i,isphum) + ex_dt_t_surf(i) * ex_e_q_n(i) - ex_flux_tr(i,isphum) = ex_flux_tr(i,isphum) + ex_dt_t_surf(i) * ex_dedt_surf(i) - endif - enddo - enddo - - do tr=1,n_exch_tr - ! get updated tracer tendency on the atmospheic grid - n=tr_table(tr)%atm - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_tr(:,:,n), 'ATM', ex_delta_tr_n(:,tr), xmap_sfc) - enddo - - do l = 1, my_nblocks - is=block_start(l) - ie=block_end(l) - do i = is, ie - ex_delta_t_n(i) = 0.0 - if(ex_avail(i)) then - ex_flux_t(i) = ex_flux_t(i) + ex_dt_t_ca(i) * ex_dhdt_surf(i) - ex_flux_lw(i) = ex_flux_lw(i) - ex_dt_t_surf(i) * ex_drdt_surf(i) - ex_delta_t_n(i) = ex_f_t_delt_n(i) + ex_dt_t_ca(i)*ex_e_t_n(i) - endif - enddo - enddo - - !----------------------------------------------------------------------- - !---- get mean quantites on atmospheric grid ---- - - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_t, 'ATM', ex_delta_t_n, xmap_sfc) -#ifndef use_AM3_physics - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t , xmap_sfc) !miz - call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc)!miz -#endif - - !======================================================================= - !-------------------- diagnostics section ------------------------------ - - !------- new surface temperature ----------- -#ifdef use_AM3_physics - if ( id_t_surf > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) - used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) - endif -#else - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) - if ( id_t_surf > 0 ) then - used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) - endif - if ( id_ts > 0 ) then - used = fms_diag_send_data ( id_ts, diag_atm, Time ) - endif - call fms_sum_diag_integral_field ('t_surf', diag_atm) - if ( id_ts_g > 0 ) used = send_global_diag ( id_ts_g, diag_atm, Time ) - !------- new surface temperature only over open ocean ----------- - if ( id_tos > 0 ) then - ex_icetemp = 0.0 - icegrid = 0.0; icegrid(:,:,1) = 1.0 - call fms_xgrid_put_to_xgrid ( icegrid, 'OCN', ex_icetemp, xmap_sfc) - ex_temp = ex_t_surf_new * ex_icetemp - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_temp, xmap_sfc) - call fms_xgrid_get_from_xgrid (frac_atm, 'ATM', ex_icetemp, xmap_sfc) - where (frac_atm > 0.0) - diag_atm = (diag_atm/frac_atm) ! - tfreeze CMIP6 in degK - frac_atm = 1.0 - elsewhere - diag_atm = 0.0 - frac_atm = 0.0 - endwhere - used = fms_diag_send_data ( id_tos, diag_atm, Time, rmask=frac_atm ) - endif - - !------- new surface temperature only over land and sea-ice ----------- - if ( id_tslsi > 0 ) then - ex_land_frac = 0.0 - call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) - icegrid = 1.0; icegrid(:,:,1) = 0. - ex_icetemp = 0. - call fms_xgrid_put_to_xgrid (icegrid, 'OCN', ex_icetemp, xmap_sfc) - ex_icetemp = ex_icetemp + ex_land_frac - ex_temp = ex_t_surf_new * ex_icetemp - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_temp, xmap_sfc) - call fms_xgrid_get_from_xgrid (frac_atm, 'ATM', ex_icetemp, xmap_sfc) - where (frac_atm > 0.0) - diag_atm = diag_atm/frac_atm - frac_atm = 1.0 - elsewhere - diag_atm = 0.0 - frac_atm = 0.0 - endwhere - used = fms_diag_send_data ( id_tslsi, diag_atm, Time, rmask=frac_atm ) - endif -#endif - - ! + slm, Mar 27 2002 - ! ------ new canopy temperature -------- - ! NOTE, that in the particular case of LM2 t_ca is identical to t_surf, - ! but this will be changed in future version of the land madel - if ( id_t_ca > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_ca_new, xmap_sfc) - used = fms_diag_send_data ( id_t_ca, diag_atm, Time ) - endif - - !------- updated surface tracer fields ------ - do tr=1,n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) - if ( id_tr_surf(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_surf_new(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_surf(tr), diag_atm, Time ) - endif - !!jgj: add dryvmr co2_surf - ! - slm Mar 25, 2010: moved to resolve interdependence of diagnostic fields - if ( id_co2_surf_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then - ex_co2_surf_dvmr = (ex_tr_surf_new(:,tr) / (1.0 - ex_tr_surf_new(:,isphum))) * WTMAIR/WTMCO2 - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_co2_surf_dvmr, xmap_sfc) - used = fms_diag_send_data ( id_co2_surf_dvmr, diag_atm, Time ) - endif - enddo - - !------- sensible heat flux ----------- - if ( id_t_flux > 0 .or. id_hfss > 0 .or. id_hfss_g > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_t, xmap_sfc) - if ( id_t_flux > 0 ) used = fms_diag_send_data ( id_t_flux, diag_atm, Time ) - if ( id_hfss > 0 ) used = fms_diag_send_data ( id_hfss, diag_atm, Time ) -#ifndef use_AM3_physics - if ( id_hfss_g > 0 ) used = send_global_diag ( id_hfss_g, diag_atm, Time ) -#endif - endif - - !------- net longwave flux ----------- - if ( id_r_flux > 0 .or. id_rls_g > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_lw, xmap_sfc) - if ( id_r_flux > 0 ) used = fms_diag_send_data ( id_r_flux, diag_atm, Time ) -#ifndef use_AM3_physics - if ( id_rls_g > 0 ) used = send_global_diag ( id_rls_g, diag_atm, Time ) -#endif - endif - - !------- tracer fluxes ------------ - ! tr_mol_flux diagnostic will be correct for co2 tracer only. - ! will need update code to use correct molar mass for tracers other than co2 - do tr=1,n_exch_tr - if ( id_tr_flux(tr) > 0 .or. id_tr_mol_flux(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_tr(:,tr), xmap_sfc) - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) - if (id_tr_flux(tr) > 0 ) & - used = fms_diag_send_data ( id_tr_flux(tr), diag_atm, Time ) - ! if (id_tr_mol_flux(tr) > 0 ) & - ! used = fms_diag_end_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) - ! 2017/08/08 jgj - replaced 2 lines above by the following - if (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then - used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) - !sometimes in 2018 f1p for vmr tracers - elseif (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_units)).eq."vmr") then - ! if (ocn_atm_flux_vmr_bug) then - ! call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & - ! ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)), xmap_sfc) - ! used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMAIR, Time) - ! else - !flux is in vmr * kg/m2/s. Divide by MW_air - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & - ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & - / (1e-3*WTMAIR*WTMH2O) , & - xmap_sfc) - used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm, Time) - endif - endif - if ( id_tr_con_atm(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_atm(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_con_atm(tr), diag_atm, Time ) - end if - if ( id_tr_con_ref(tr) > 0 ) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_ref(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_con_ref(tr), diag_atm, Time ) - end if - enddo - -#ifndef _USE_LEGACY_LAND_ - if ( id_t_flux_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_t, xmap_sfc) - call send_tile_data ( id_t_flux_land, diag_land ) - endif - !------- tracer fluxes for land - do tr=1,n_exch_tr - if ( id_tr_flux_land(tr) > 0 .or. id_tr_mol_flux_land(tr) > 0 ) then - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) - if (id_tr_flux_land(tr) > 0 ) & - call send_tile_data (id_tr_flux_land(tr), diag_land ) - if (id_tr_mol_flux_land(tr) > 0) then - if (fms_mpp_lowercase(trim(tr_name))=='co2') then - call send_tile_data (id_tr_mol_flux_land(tr), diag_land*1000./WTMCO2) - elseif (fms_mpp_lowercase(trim(tr_units)).eq.'vmr') then - !flux is in vmr * kg/m2/s. Divide by MW_air - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', & - ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & - /(1e-3*WTMAIR*WTMH2O) , & - xmap_sfc) - call send_tile_data ( id_tr_mol_flux_land(tr), diag_land) - endif - endif - endif - enddo - - !-------- tracer deposition velocity - do tr=1,n_exch_tr - if ( id_tr_con_atm_land(tr) > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) - call send_tile_data (id_tr_con_atm_land(tr), diag_land ) - endif - if ( id_tr_con_ref_land(tr) > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc ) - call send_tile_data (id_tr_con_ref_land(tr), diag_land ) - endif - enddo - -#endif - - !----------------------------------------------------------------------- - !---- accumulate global integral of evaporation (mm/day) ----- - call fms_xgrid_get_from_xgrid (evap_atm, 'ATM', ex_flux_tr(:,isphum), xmap_sfc) - if( id_q_flux > 0 ) used = fms_diag_send_data ( id_q_flux, evap_atm, Time) - if( id_evspsbl > 0 ) used = fms_diag_send_data ( id_evspsbl, evap_atm, Time) - if( id_hfls > 0 ) used = fms_diag_send_data ( id_hfls, HLV*evap_atm, Time) -#ifndef use_AM3_physics - if( id_hfls_g > 0 ) used = send_global_diag ( id_hfls_g, HLV*evap_atm, Time) -#endif - - if( id_q_flux_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - call send_tile_data (id_q_flux_land, diag_land) -#else - used = fms_diag_send_tile_averaged_data(id_q_flux_land, diag_land, & - Land%tile_size, Time, mask=Land%mask) -#endif - endif - call fms_sum_diag_integral_field ('evap', evap_atm*86400.) - -#ifndef use_AM3_physics - if (id_evspsbl_g > 0) used = send_global_diag ( id_evspsbl_g, evap_atm, Time ) -#endif - -#ifndef _USE_LEGACY_LAND_ - call send_tile_data (id_q_flux_land, diag_land) - ! need this to avoid diag issues with tiling changes in update_land_slow - call dump_tile_diag_fields(Time) -#endif - - call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) - - ! compute stock changes - - ! Lnd -> Atm (evap) - call FMS_XGRID_STOCK_MOVE_( & - & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & -#ifndef _USE_LEGACY_LAND_ - & stock_ug_data3d = data_lnd, & -#else - & stock_data3d = data_lnd, & -#endif - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') - - ! Lnd -> Atm (heat lost through evap) - call FMS_XGRID_STOCK_MOVE_( & - & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & FROM = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & -#ifndef _USE_LEGACY_LAND_ - & stock_ug_data3d = data_lnd * HLV, & -#else - & stock_data3d = data_lnd * HLV, & -#endif - & grid_index=X1_GRID_LND, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Lnd->ATm) ') - - call fms_xgrid_get_from_xgrid(data_ice, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) - - ! Ice -> Atm (evap) - call fms_xgrid_stock_move( & - & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & FROM = fms_stock_constants_ice_stock(ISTOCK_WATER), & - & stock_data3d = data_ice, & - & grid_index=X1_GRID_ICE, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move EVAP (Ice->ATm) ') - - ! Ice -> Atm (heat lost through evap) - call fms_xgrid_stock_move( & - & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & FROM = fms_stock_constants_ice_stock(ISTOCK_HEAT), & - & stock_data3d = data_ice * HLV, & - & grid_index=X1_GRID_ICE, & - & xmap=xmap_sfc, & - & delta_t=Dt_atm, & - & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & - & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') - - !Balaji - call fms_mpp_clock_end(fluxAtmUpClock) - call fms_mpp_clock_end(cplClock) - end subroutine flux_up_to_atmos - - subroutine flux_ex_arrays_dealloc - integer :: m,n - - !======================================================================= - !---- deallocate module storage ---- - deallocate ( & - ex_t_surf , & - ex_t_surf_miz, & - ex_p_surf , & - ex_slp , & - ex_t_ca , & - ex_dhdt_surf, & - ex_dedt_surf, & - ex_dqsatdt_surf, & - ex_drdt_surf, & - ex_dhdt_atm , & - ex_flux_t , & - ex_flux_lw , & - ex_drag_q , & - ex_avail , & - ex_f_t_delt_n, & - ex_tr_surf , & - ex_tr_con_ref, & - ex_tr_con_atm, & - - ex_dfdtr_surf , & - ex_dfdtr_atm , & - ex_flux_tr , & - ex_f_tr_delt_n , & - ex_e_tr_n , & - - ex_e_t_n , & - ex_e_q_n , & - ! values added for LM3 - ex_cd_t , & - ex_cd_m , & - ex_b_star , & - ex_u_star , & - ex_wind , & - ex_z_atm , & - ex_con_atm , & - ex_seawater , & - ex_land ) - -#ifdef SCM - deallocate ( & - ex_dhdt_surf_forland, & - ex_dedt_surf_forland, & - ex_dedq_surf_forland ) -#endif - - ! Extra fluxes - do n = 1, ex_gas_fields_ice%num_bcs !{ - do m = 1, ex_gas_fields_ice%bc(n)%num_fields !{ - deallocate ( ex_gas_fields_ice%bc(n)%field(m)%values ) - nullify ( ex_gas_fields_ice%bc(n)%field(m)%values ) - enddo !} m - enddo !} n - - do n = 1, ex_gas_fields_atm%num_bcs !{ - do m = 1, ex_gas_fields_atm%bc(n)%num_fields !{ - deallocate ( ex_gas_fields_atm%bc(n)%field(m)%values ) - nullify ( ex_gas_fields_atm%bc(n)%field(m)%values ) - enddo !} m - enddo !} n - - do n = 1, ex_gas_fluxes%num_bcs !{ - do m = 1, ex_gas_fluxes%bc(n)%num_fields !{ - deallocate ( ex_gas_fluxes%bc(n)%field(m)%values ) - nullify ( ex_gas_fluxes%bc(n)%field(m)%values ) - enddo !} m - enddo !} n - - end subroutine flux_ex_arrays_dealloc - - subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) - type(FmsTime_type), intent(in) :: Time !< Current time - type(atmos_data_type), intent(inout):: Atm !< A derived data type to specify atmosphere boundary data - type(atmos_ice_boundary_type), intent(inout):: Ice_boundary !< A derived data type to specify properties and fluxes - !! passed from atmosphere to ice - type(ice_data_type), intent(inout):: Ice - - integer :: n,m - logical :: used - -#ifndef use_AM3_physics - call atmos_tracer_driver_gather_data_down(Atm%fields, Atm%tr_bot) -#endif - - !air-sea deposition fluxes - do n = 1, Atm%fields%num_bcs !{ - !Do the string copies. - Atm%fields%bc(n)%flux_type = trim(ex_gas_fluxes%bc(n)%flux_type) - Atm%fields%bc(n)%implementation = trim(ex_gas_fluxes%bc(n)%implementation) - if(ex_gas_fields_atm%bc(n)%flux_type .eq. 'air_sea_deposition') then - do m = 1, Atm%fields%bc(n)%num_fields !{ - call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & - ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method) - enddo !} m - endif - enddo !} n - - ! Calculate ocean explicit flux here - - call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) - - do n = 1, Ice_boundary%fluxes%num_bcs !{ - if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then - do m = 1, Ice_boundary%fluxes%bc(n)%num_fields !{ - call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & - ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - - call fms_data_override('ICE', Ice_boundary%fluxes%bc(n)%field(m)%name, & - Ice_boundary%fluxes%bc(n)%field(m)%values, Time) - if ( Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then !{ - used = fms_diag_send_data(Ice_boundary%fluxes%bc(n)%field(m)%id_diag, & - Ice_boundary%fluxes%bc(n)%field(m)%values, Time ) - endif !} - enddo !} m - endif - enddo !} n - - call update_ice_atm_deposition_flux( Ice_boundary, Ice ) - - end subroutine flux_atmos_to_ocean - - !####################################################################### - - !> \brief Puts land or ice model masks (with partitions) onto the - !! exchange grid as a real array (1.=true, 0.=false) - subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) - - logical , intent(in) :: mask(:,:,:) - character(len=3), intent(in) :: id - real , intent(inout) :: ex_mask(:) - type(FmsXgridXmap_type), intent(inout) :: xmap - - !----------------------------------------------------------------------- - ! puts land or ice model masks (with partitions) onto the - ! exchange grid as a real array (1.=true, 0.=false) - !----------------------------------------------------------------------- - - real, dimension(size(mask,1),size(mask,2),size(mask,3)) :: rmask - - where (mask) - rmask = 1.0 - elsewhere - rmask = 0.0 - endwhere - - call fms_xgrid_put_to_xgrid(rmask, id, ex_mask, xmap) - - end subroutine put_logical_to_real_sg - - !####################################################################### - - !> \brief Puts land or ice model masks (with partitions) onto the - !! exchange grid as a real array (1.=true, 0.=false) - subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) - - logical , intent(in) :: mask(:,:) - character(len=3), intent(in) :: id - real , intent(inout) :: ex_mask(:) - type(FmsXgridXmap_type), intent(inout) :: xmap - - !----------------------------------------------------------------------- - ! puts land or ice model masks (with partitions) onto the - ! exchange grid as a real array (1.=true, 0.=false) - !----------------------------------------------------------------------- - - real, dimension(size(mask,1),size(mask,2)) :: rmask - - where (mask) - rmask = 1.0 - elsewhere - rmask = 0.0 - endwhere - - call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) - - end subroutine put_logical_to_real_ug - - - !####################################################################### - - !> \brief Initializes diagnostic fields that may be output from this - !! module (the ID numbers may be referenced anywhere in this module) - subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) - - type(FmsTime_type), intent(in) :: Time - integer, intent(in) :: atmos_axes(2) - integer, intent(in) :: land_axes(:) - logical, intent(in) :: land_pe - - integer :: iref - character(len=6) :: label_zm, label_zh - real, dimension(2) :: trange = (/ 100., 400. /), & - vrange = (/ -400., 400. /), & - frange = (/ -0.01, 1.01 /) - character(len=32) :: name, units ! name of the tracer - character(len=128) :: longname ! long name of the tracer - integer :: tr ! tracer index - integer :: area_id - !----------------------------------------------------------------------- - ! initializes diagnostic fields that may be output from this module - ! (the id numbers may be referenced anywhere in this module) - !----------------------------------------------------------------------- - - !------ labels for diagnostics ------- - ! (z_ref_mom, z_ref_heat are namelist variables) - - iref = int(z_ref_mom+0.5) - if ( real(iref) == z_ref_mom ) then - write (label_zm,105) iref - if (iref < 10) write (label_zm,100) iref - else - write (label_zm,110) z_ref_mom - endif - - iref = int(z_ref_heat+0.5) - if ( real(iref) == z_ref_heat ) then - write (label_zh,105) iref - if (iref < 10) write (label_zh,100) iref - else - write (label_zh,110) z_ref_heat - endif - -100 format (i1,' m',3x) -105 format (i2,' m',2x) -110 format (f4.1,' m') - - !--------- initialize static diagnostic fields -------------------- - - id_land_mask = & - fms_diag_register_static_field ( mod_name, 'land_mask', atmos_axes, & - 'fractional amount of land', 'none', & - range=frange, interp_method = "conserve_order1" ) - - !--------- initialize diagnostic fields -------------------- - - id_ice_mask = & - fms_diag_register_diag_field ( mod_name, 'ice_mask', atmos_axes, Time, & - 'fractional amount of sea ice', 'none', & - range=frange, interp_method = "conserve_order1" ) - - id_wind = & - fms_diag_register_diag_field ( mod_name, 'wind', atmos_axes, Time, & - 'wind speed for flux calculations', 'm/s', & - range=(/0.,vrange(2)/) ) - - id_drag_moist = & - fms_diag_register_diag_field ( mod_name, 'drag_moist', atmos_axes, Time, & - 'drag coeff for moisture', 'none' ) - - id_drag_heat = & - fms_diag_register_diag_field ( mod_name, 'drag_heat', atmos_axes, Time, & - 'drag coeff for heat', 'none' ) - - id_drag_mom = & - fms_diag_register_diag_field ( mod_name, 'drag_mom', atmos_axes, Time, & - 'drag coeff for momentum', 'none' ) - - id_rough_moist = & - fms_diag_register_diag_field ( mod_name, 'rough_moist', atmos_axes, Time, & - 'surface roughness for moisture', 'm' ) - - id_rough_heat = & - fms_diag_register_diag_field ( mod_name, 'rough_heat', atmos_axes, Time, & - 'surface roughness for heat', 'm' ) - - id_rough_mom = & - fms_diag_register_diag_field ( mod_name, 'rough_mom', atmos_axes, Time, & - 'surface roughness for momentum', 'm' ) - - id_u_star = & - fms_diag_register_diag_field ( mod_name, 'u_star', atmos_axes, Time, & - 'friction velocity', 'm/s' ) - - id_b_star = & - fms_diag_register_diag_field ( mod_name, 'b_star', atmos_axes, Time, & - 'buoyancy scale', 'm/s2' ) - - id_q_star = & - fms_diag_register_diag_field ( mod_name, 'q_star', atmos_axes, Time, & - 'moisture scale', 'kg water/kg air' ) - - id_thv_atm = & - fms_diag_register_diag_field ( mod_name, 'thv_atm', atmos_axes, Time, & - 'surface air virtual potential temperature', 'K') - - id_thv_surf = & - fms_diag_register_diag_field ( mod_name, 'thv_surf', atmos_axes, Time, & - 'surface virtual potential temperature', 'K') - - id_u_flux = & - fms_diag_register_diag_field ( mod_name, 'tau_x', atmos_axes, Time, & - 'zonal wind stress', 'pa' ) - - id_v_flux = & - fms_diag_register_diag_field ( mod_name, 'tau_y', atmos_axes, Time, & - 'meridional wind stress', 'pa' ) - - id_t_ocean = & - fms_diag_register_diag_field ( mod_name, 't_ocean', atmos_axes, Time, & - 'surface temperature from ocean output', 'deg_k', & - range=trange ) - - id_t_surf = & - fms_diag_register_diag_field ( mod_name, 't_surf', atmos_axes, Time, & - 'surface temperature', 'deg_k', & - range=trange ) - - ! + slm, Mar 25, 2002 -- add diagnositcs for t_ca, q_ca, and q_atm - id_t_ca = & - fms_diag_register_diag_field ( mod_name, 't_ca', atmos_axes, Time, & - 'canopy air temperature', 'deg_k', & - range=trange ) - - ! - slm, Mar 25, 2002 - id_z_atm = & - fms_diag_register_diag_field ( mod_name, 'z_atm', atmos_axes, Time, & - 'height of btm level', 'm') - - id_p_atm = & - fms_diag_register_diag_field ( mod_name, 'p_atm', atmos_axes, Time, & - 'pressure at btm level', 'pa') - - ! - bw, Mar 25, 2002 -- added diagnostic slp - id_slp = & - fms_diag_register_diag_field ( mod_name, 'slp', atmos_axes, Time, & - 'sea level pressure', 'pa') - - id_gust = & - fms_diag_register_diag_field ( mod_name, 'gust', atmos_axes, Time, & - 'gust scale', 'm/s') - - id_t_flux = & - fms_diag_register_diag_field ( mod_name, 'shflx', atmos_axes, Time, & - 'sensible heat flux', 'w/m2' ) - - id_r_flux = & - fms_diag_register_diag_field ( mod_name, 'lwflx', atmos_axes, Time, & - 'net (down-up) longwave flux', 'w/m2' ) - - id_t_atm = & - fms_diag_register_diag_field ( mod_name, 't_atm', atmos_axes, Time, & - 'temperature at btm level', 'deg_k', & - range=trange ) - - id_u_atm = & - fms_diag_register_diag_field ( mod_name, 'u_atm', atmos_axes, Time, & - 'u wind component at btm level', 'm/s', & - range=vrange ) - - id_v_atm = & - fms_diag_register_diag_field ( mod_name, 'v_atm', atmos_axes, Time, & - 'v wind component at btm level', 'm/s', & - range=vrange ) - - id_t_ref = & - fms_diag_register_diag_field ( mod_name, 't_ref', atmos_axes, Time, & - 'temperature at '//label_zh, 'deg_k' , & - range=trange ) - - id_rh_ref = & - fms_diag_register_diag_field ( mod_name, 'rh_ref', atmos_axes, Time, & - 'relative humidity at '//label_zh, 'percent' ) - - id_rh_ref_cmip = & - fms_diag_register_diag_field ( mod_name, 'rh_ref_cmip', atmos_axes, Time, & - 'relative humidity at '//label_zh, 'percent' ) - - id_u_ref = & - fms_diag_register_diag_field ( mod_name, 'u_ref', atmos_axes, Time, & - 'zonal wind component at '//label_zm, 'm/s', & - range=vrange ) - - id_v_ref = & - fms_diag_register_diag_field ( mod_name, 'v_ref', atmos_axes, Time, & - 'meridional wind component at '//label_zm, 'm/s', & - range=vrange ) - - id_wind_ref = & - fms_diag_register_diag_field ( mod_name, 'wind_ref', atmos_axes, Time, & - 'absolute value of wind at '//label_zm, 'm/s', & - range=vrange ) - - id_del_h = & - fms_diag_register_diag_field ( mod_name, 'del_h', atmos_axes, Time, & - 'ref height interp factor for heat', 'none' ) - id_del_m = & - fms_diag_register_diag_field ( mod_name, 'del_m', atmos_axes, Time, & - 'ref height interp factor for momentum','none' ) - id_del_q = & - fms_diag_register_diag_field ( mod_name, 'del_q', atmos_axes, Time, & - 'ref height interp factor for moisture','none' ) - - if( land_pe ) then - ! set the default filter (for area and subsampling) for consequent calls to - ! register_tiled_diag_field -#ifndef _USE_LEGACY_LAND_ - call set_default_diag_filter('land') -#endif - id_t_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 't_ref', Land_axes, Time, & - 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & - range=trange, missing_value = -100.0) - id_q_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'q_ref', Land_axes, Time, & - 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & - missing_value=-1.0) - id_rh_ref_land= & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'rh_ref', Land_axes, Time, & - 'relative humidity at '//trim(label_zh)//' over land', 'percent', & - missing_value=-999.0) - id_u_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'u_ref', Land_axes, Time, & - 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & - range=vrange, missing_value=-999.0 ) - id_v_ref_land = & - FMS_DIAG_REGISTER_FIELD_ ( 'flux_land', 'v_ref', Land_axes, Time, & - 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & - range=vrange, missing_value = -999.0 ) - id_q_flux_land = & - FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'evap', Land_axes, Time, & - 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) - id_t_flux_land = & - FMS_DIAG_REGISTER_FIELD_( 'flux_land', 'shflx', Land_axes, Time, & - 'sensible heat flux', 'W/m2', missing_value=-1.0 ) - id_tasLut_land = & - FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'tasLut', Land_axes, Time, & - 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & - units='K', standard_name='air_temperature', missing_value=-1.0 ) - id_hussLut_land = & - FMS_DIAG_REGISTER_FIELD_( 'cmor_land', 'hussLut', Land_axes, Time, & - 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & - standard_name='specific_humidity', missing_value=-1.0 ) - - allocate(id_tr_flux_land(n_exch_tr)) - allocate(id_tr_mol_flux_land(n_exch_tr)) - allocate(id_tr_con_atm_land(n_exch_tr)) - allocate(id_tr_con_ref_land(n_exch_tr)) - allocate(id_tr_ref_land(n_exch_tr)) - -#ifdef _USE_LEGACY_LAND_ - id_tr_con_atm_land(:) = -1 - id_tr_con_ref_land(:) = -1 - id_tr_ref_land(:)= -1 -#endif - - do tr = 1, n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) - - id_tr_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_flux', & - Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) - if ( fms_mpp_lowercase(trim(name))=='co2') then - id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & - Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) - else - id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_mol_flux', & - Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) - endif - -#ifndef _USE_LEGACY_LAND_ - id_tr_con_atm_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_tot_con_atm', & - Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) - id_tr_con_ref_land(tr) = register_diag_field( 'flux_land', trim(name)//'_tot_con_ref', & - Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) - - ! we skip sphum because it is already available as flux_land/q_ref - if ( tr .ne. isphum ) then - id_tr_ref_land(tr) = FMS_DIAG_REGISTER_FIELD_( 'flux_land', trim(name)//'_ref', & - Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', & - trim(units),missing_value=-1.0) - else - id_tr_ref_land(tr) = -1 - end if -#endif - enddo - endif - - id_q_ref = & - fms_diag_register_diag_field ( mod_name, 'q_ref', atmos_axes, Time, & - 'specific humidity at '//trim(label_zh), 'kg/kg', missing_value=-1.0) - - id_rough_scale = & - fms_diag_register_diag_field ( mod_name, 'rough_scale', atmos_axes, Time, & - 'topographic scaling factor for momentum drag','1' ) - !----------------------------------------------------------------------- - - allocate(id_tr_atm(n_exch_tr)) - allocate(id_tr_surf(n_exch_tr)) - allocate(id_tr_flux(n_exch_tr)) - allocate(id_tr_mol_flux(n_exch_tr)) - allocate(id_tr_mol_flux0(n_exch_tr)) - allocate(id_tr_con_atm(n_exch_tr)) - allocate(id_tr_con_ref(n_exch_tr)) - allocate(id_tr_ref(n_exch_tr)) - - do tr = 1, n_exch_tr - call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) - - id_tr_con_atm(tr) = fms_diag_register_diag_field( mod_name, trim(name)//'_tot_con_atm', atmos_axes, Time, & - 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) - id_tr_con_ref(tr) = fms_diag_register_diag_field( mod_name, trim(name)//'_tot_con_ref', atmos_axes, Time, & - 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) - - id_tr_atm(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_atm', atmos_axes, Time, & - trim(longname)//' at btm level', trim(units)) - id_tr_surf(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_surf', atmos_axes, Time, & - trim(longname)//' at the surface', trim(units)) - id_tr_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_flux', atmos_axes, Time, & - 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)') - if ( tr .ne. isphum ) then - id_tr_ref(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_ref', atmos_axes, Time, & - trim(longname)//' at '//trim(label_zh), trim(units),missing_value=-1.0) - else - id_tr_ref(tr) = -1 - end if - !! add dryvmr co2_surf and co2_atm - if ( fms_mpp_lowercase(trim(name))=='co2') then - ! - slm Mar 25, 2010: moved registration of mol_flux inside 'if' to disable - ! saving incorrect results (mol fluxes for other tracers computed with CO2 molar - ! mass) - id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & - 'flux of '//trim(longname), 'mol CO2/(m2 s)') - id_co2_atm_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_atm_dvmr', atmos_axes, Time, & - trim(longname)//' at btm level', 'mol CO2 /mol air') - id_co2_surf_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_surf_dvmr', atmos_axes, Time, & - trim(longname)//' at the surface', 'mol CO2 /mol air') - else -!f1p - id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & - 'flux of '//trim(longname), 'mol/(m2 s)') - endif -!f1p - id_tr_mol_flux0(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux_atm0', atmos_axes, Time, & - 'gross flux of '//trim(longname), 'mol/(m2 s)') - - enddo - - ! 2017/08/08 jgj add diagnostics for co2 data overrides even if co2 is not a tracer - ! register data calls not needed here for co2_flux_pcair_atm and o2_flux_pcair_atm as this happens elsewhere - id_co2_bot = fms_diag_register_diag_field (mod_name, 'co2_bot', atmos_axes, Time, & - 'co2_bot from data_override', 'ppmv') - - ! id_nh3_flux_atm0 = fms_diag_register_diag_field (mod_name, 'nh3_flux_atm0', atmos_axes, Time, & - ! 'nh3 flux out of the ocean assuming not nh3 in the atmosphere', 'mol/m2/s') - - - id_q_flux = fms_diag_register_diag_field( mod_name, 'evap', atmos_axes, Time, & - 'evaporation rate', 'kg/m2/s' ) - - !-------------------------------------------------------------------- - ! retrieve the diag_manager id for the area diagnostic, - ! needed for cmorizing various diagnostics. - !-------------------------------------------------------------------- - area_id = fms_diag_get_field_id ('dynamics', 'area') - if (area_id .eq. DIAG_FIELD_NOT_FOUND) call fms_error_mesg & - ('diag_field_init in atm_land_ice_flux_exchange_mod', & - 'diagnostic field "dynamics", "area" is not in the diag_table', NOTE) - - !----------------------------------------------------------------------- - ! register cmip variable names - !----------------------------------------------------------------------- - ! NOTE: add extra dimension reference level fields? height2m, height10m - ! for now we will handle this with an attribute - - id_height2m = & - fms_diag_register_static_field ( mod_name, 'height2m', (/null_axis_id/), & - 'Height', 'm', standard_name = 'height' ) - if ( id_height2m > 0 ) then - call fms_diag_field_add_attribute( id_height2m, 'axis', 'Z' ) - call fms_diag_field_add_attribute( id_height2m, 'positive', 'up' ) - endif - - id_height10m = & - fms_diag_register_static_field ( mod_name, 'height10m', (/null_axis_id/), & - 'Height', 'm', standard_name = 'height' ) - if ( id_height10m > 0 ) then - call fms_diag_field_add_attribute( id_height10m, 'axis', 'Z' ) - call fms_diag_field_add_attribute( id_height10m, 'positive', 'up' ) - endif - -#ifdef use_AM3_physics - id_tas = & - fms_diag_register_diag_field ( mod_name, 'tas', atmos_axes, Time, & - 'Near-Surface Air Temperature', 'K' , & - standard_name = 'air_temperature', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=trange ) - if ( id_tas > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) - - id_uas = & - fms_diag_register_diag_field ( mod_name, 'uas', atmos_axes, Time, & - 'Eastward Near-Surface Wind', 'm s-1', & - standard_name = 'eastward_wind', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=vrange ) - if ( id_uas > 0 .and. id_height10m > 0) & - call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) - - id_vas = & - fms_diag_register_diag_field ( mod_name, 'vas', atmos_axes, Time, & - 'Northward Near-Surface Wind', 'm s-1', & - standard_name = 'northward_wind', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=vrange ) - if ( id_vas > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) - - id_sfcWind = & - fms_diag_register_diag_field ( mod_name, 'sfcWind', atmos_axes, Time, & - 'Near-Surface Wind Speed', 'm s-1', & - standard_name = 'wind_speed', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=vrange ) - if ( id_sfcWind > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) - - id_huss = & - fms_diag_register_diag_field ( mod_name, 'huss', atmos_axes, Time, & - 'Near-Surface Specific Humidity', '1.0', & - standard_name = 'specific_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_huss > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) - - id_hurs = & - fms_diag_register_diag_field ( mod_name, 'hurs', atmos_axes, Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name = 'relative_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_hurs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) - - id_rhs = & - fms_diag_register_diag_field ( mod_name, 'rhs', atmos_axes, Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name = 'relative_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_rhs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) - - id_ts = & - fms_diag_register_diag_field ( mod_name, 'ts', atmos_axes, Time, & - 'Surface Temperature', 'K', & - standard_name = 'surface_temperature', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=trange ) - - id_psl = & - fms_diag_register_diag_field ( mod_name, 'psl', atmos_axes, Time, & - 'Sea Level Pressure', 'Pa', & - standard_name = 'air_pressure_at_sea_level', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_tauu = & - fms_diag_register_diag_field ( mod_name, 'tauu', atmos_axes, Time, & - 'Surface Downward Eastward Wind Stress', 'Pa', & - standard_name = 'surface_downward_eastward_stress', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_tauv = & - fms_diag_register_diag_field ( mod_name, 'tauv', atmos_axes, Time, & - 'Surface Downward Northward Wind Stress', 'Pa', & - standard_name = 'surface_downward_northward_stress', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_hfss = & - fms_diag_register_diag_field ( mod_name, 'hfss', atmos_axes, Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', & - standard_name = 'surface_upward_sensible_heat_flux', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_hfls = & - fms_diag_register_diag_field ( mod_name, 'hfls', atmos_axes, Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', & - standard_name = 'surface_upward_latent_heat_flux', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) - - id_evspsbl = & - fms_diag_register_diag_field( mod_name, 'evspsbl', atmos_axes, Time, & - 'Evaporation', 'kg m-2 s-1', & - standard_name = 'water_evaporation_flux', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - - id_sftlf = & - fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & - 'Fraction of the Grid Cell Occupied by Land', '1.0', & - standard_name = 'land_area_fraction', area=area_id, & - interp_method = "conserve_order1" ) - - id_tslsi = & - fms_diag_register_diag_field ( mod_name, 'tslsi', atmos_axes, Time, & - 'Surface Temperature Where Land or Sea Ice', 'K', & - standard_name = 'surface_temperature', area=area_id, & - mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) - - id_tos = & - fms_diag_register_diag_field ( mod_name, 'tos', atmos_axes, Time, & - 'Sea Surface Temperature', 'K', & - standard_name = 'sea_surface_temperature', area=area_id, & - mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) - - id_sic = & - fms_diag_register_diag_field ( mod_name, 'sic', atmos_axes, Time, & - 'Sea Ice Area Fraction', '1.0', & - standard_name = 'sea_ice_area_fraction', area=area_id, & - missing_value=CMOR_MISSING_VALUE ) - if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & - 'averaged over the ocean portion of grid box' ) -#else - id_tas = register_cmip_diag_field_2d ( mod_name, 'tas', Time, & - 'Near-Surface Air Temperature', 'K' , & - standard_name='air_temperature' ) - if ( id_tas > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) - - id_uas = register_cmip_diag_field_2d ( mod_name, 'uas', Time, & - 'Eastward Near-Surface Wind', 'm s-1', & - standard_name='eastward_wind' ) - if ( id_uas > 0 .and. id_height10m > 0) & - call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) - - id_vas = register_cmip_diag_field_2d ( mod_name, 'vas', Time, & - 'Northward Near-Surface Wind', 'm s-1', & - standard_name='northward_wind' ) - if ( id_vas > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) - - id_sfcWind = register_cmip_diag_field_2d ( mod_name, 'sfcWind', Time, & - 'Near-Surface Wind Speed', 'm s-1', & - standard_name='wind_speed' ) - if ( id_sfcWind > 0 .and. id_height10m > 0 ) & - call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) - - id_huss = register_cmip_diag_field_2d ( mod_name, 'huss', Time, & - 'Near-Surface Specific Humidity', '1.0', & - standard_name='specific_humidity' ) - if ( id_huss > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) - - id_hurs = register_cmip_diag_field_2d ( mod_name, 'hurs', Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name='relative_humidity' ) - if ( id_hurs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) - - id_rhs = register_cmip_diag_field_2d ( mod_name, 'rhs', Time, & - 'Near-Surface Relative Humidity', '%', & - standard_name='relative_humidity' ) - if ( id_rhs > 0 .and. id_height2m > 0 ) & - call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) - - id_ts = register_cmip_diag_field_2d ( mod_name, 'ts', Time, & - 'Surface Temperature', 'K', & - standard_name='surface_temperature' ) - - id_psl = register_cmip_diag_field_2d ( mod_name, 'psl', Time, & - 'Sea Level Pressure', 'Pa', & - standard_name='air_pressure_at_sea_level' ) - - id_tauu = register_cmip_diag_field_2d ( mod_name, 'tauu', Time, & - 'Surface Downward Eastward Wind Stress', 'Pa', & - standard_name='surface_downward_eastward_stress' ) - - id_tauv = register_cmip_diag_field_2d ( mod_name, 'tauv', Time, & - 'Surface Downward Northward Wind Stress', 'Pa', & - standard_name='surface_downward_northward_stress' ) - - id_hfss = register_cmip_diag_field_2d ( mod_name, 'hfss', Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', & - standard_name='surface_upward_sensible_heat_flux' ) - - id_hfls = register_cmip_diag_field_2d ( mod_name, 'hfls', Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', & - standard_name='surface_upward_latent_heat_flux' ) - if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) - - id_evspsbl = register_cmip_diag_field_2d ( mod_name, 'evspsbl', Time, & - 'Evaporation', 'kg m-2 s-1', & - standard_name='water_evaporation_flux' ) - - id_sftlf = fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & - 'Fraction of the Grid Cell Occupied by Land', '1.0', & - standard_name='land_area_fraction', area=area_id, & - interp_method='conserve_order1' ) - - id_tslsi = register_cmip_diag_field_2d ( mod_name, 'tslsi', Time, & - 'Surface Temperature Where Land or Sea Ice', 'K', & - standard_name='surface_temperature', & - mask_variant=.true. ) - - ! tos,sic are ocean,seaIce fields on the atmos grid - ! useful for amip-type runs - - id_tos = register_cmip_diag_field_2d ( mod_name, 'tos', Time, & - 'Sea Surface Temperature', 'K', & - standard_name='sea_surface_temperature', & - mask_variant=.true. ) - - id_sic = register_cmip_diag_field_2d ( mod_name, 'sic', Time, & - 'Sea Ice Area Fraction', '1.0', & - standard_name='sea_ice_area_fraction' ) - if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & - 'averaged over the ocean portion of grid box' ) - - !----- initialize global integrals for netCDF output ----- - id_evspsbl_g = register_global_diag_field ( 'evspsbl', Time, & - 'Evaporation', 'mm d-1', & - standard_name='water_evaporation_flux' ) - - id_ts_g = register_global_diag_field ( 'ts', Time, & - 'Surface Temperature', 'K', & - standard_name='surface_temperature' ) - - id_tas_g = register_global_diag_field ( 'tas', Time, & - 'Near-Surface Air Temperature', 'K' , & - standard_name='air_temperature' ) - if ( id_tas_g > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tas_g), 'coordinates', 'height2m' ) - - id_tasl_g = register_global_diag_field ( 'tasl', Time, & - 'Near-Surface Air Temperature (Land Only)', 'K' , & - standard_name='air_temperature' ) -#if defined(_USE_LEGACY_LAND_) || defined(use_AM3_physics) - if(id_tasl_g>0) then - call fms_mpp_error(WARNING, "diag_field_init: field tasl is registered, but macro "// & - "_USE_LEGACY_LAND_ or use_AM3_physics is defined, no data will be written out") - endif -#endif - if ( id_tasl_g > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tasl_g), 'coordinates', 'height2m' ) - - id_hfss_g = register_global_diag_field ( 'hfss', Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', & - standard_name='surface_upward_sensible_heat_flux' ) - - id_hfls_g = register_global_diag_field ( 'hfls', Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', & - standard_name='surface_upward_latent_heat_flux') - if ( id_hfls_g > 0 ) & - call fms_diag_field_add_attribute( get_global_diag_field_id(id_hfls_g), 'comment', 'Lv*evap' ) - - id_rls_g = register_global_diag_field ( 'rls', Time, & - 'Net Longwave Surface Radiation', 'W m-2', & - standard_name='surface_net_longwave_flux' ) - -#endif - !----------------------------------------------------------------------- - - end subroutine diag_field_init - - - !###################################################################################### - !> \brief Divide data by area while avoiding zero area elements - subroutine divide_by_area(data, area) - real, intent(inout) :: data(:,:) - real, intent(in) :: area(:,:) - - if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) then - ! no op - return - endif - - where(area /= 0.0) - data = data / area - end where - - end subroutine divide_by_area - - !####################################################################### - !> \brief Send out the ice_mask and/or sic data. - !! This was called inside flux_ocean_to_ice. Why? - subroutine send_ice_mask_sic(Time) - type(FmsTime_type), intent(in) :: Time !< Current time - - real, dimension(nxc_ice, nyc_ice, nk_ice) :: ice_frac - real, dimension(n_xgrid_sfc) :: ex_ice_frac - real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac - logical :: used - - if ( id_ice_mask > 0 .or. id_sic > 0) then - ice_frac = 1. - ice_frac(:,:,1) = 0. - ex_ice_frac = 0. - call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ice_frac, xmap_sfc) - if ( id_ice_mask > 0 ) used = fms_diag_send_data ( id_ice_mask, diag_atm, Time ) - - ! ice concentration for only the ocean part of the atmos grid box - ! normalize ice fraction over entire atmos grid box by the - ! fraction of atmos grid box that is ocean - if ( id_sic > 0) then - ice_frac = 1. - ex_ice_frac = 0. - call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) - call fms_xgrid_get_from_xgrid (ocean_frac, 'ATM', ex_ice_frac, xmap_sfc) - where (ocean_frac > 0.0) - diag_atm = min(1., diag_atm/ocean_frac) ! CMIP6 as fraction - ocean_frac = 1.0 - elsewhere - diag_atm = 0.0 - ocean_frac = 0.0 - endwhere - used = fms_diag_send_data ( id_sic, diag_atm, Time, rmask=ocean_frac ) - endif - endif - - end subroutine send_ice_mask_sic - - !####################################################################### - - subroutine atm_stock_integrate(Atm, res) - type(atmos_data_type), intent(in) :: Atm - real, intent(out) :: res - integer :: ier - - call fms_xgrid_stock_integrate_2d(Atm%lprec + Atm%fprec, xmap=xmap_sfc, delta_t=Dt_atm, & - & radius=Radius, res=res, ier=ier) - - end subroutine atm_stock_integrate - -!######################################################################### - -end module atm_land_ice_flux_exchange_mod - -#undef FMS_DATA_OVERRIDE_ -#undef FMS_XGRID_PUT_TO_XGRID_ -#undef FMS_XGRID_STOCK_MOVE_ -#undef FMS_XGRID_SET_FRAC_AREA_ -#undef FMS_XGRID_GET_FROM_XGRID_ -#undef FMS_DIAG_REGISTER_FIELD_ From 3720fbac3dbbd8799cfd9d95c39b595b8cc3829e Mon Sep 17 00:00:00 2001 From: mlee03 Date: Mon, 23 Mar 2026 11:32:30 -0400 Subject: [PATCH 25/31] ci --- full/atm_land_ice_flux_exchange.F90 | 106 +++++++++++++++------------- 1 file changed, 58 insertions(+), 48 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index ea3054cf..837c0b97 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -223,6 +223,7 @@ module atm_land_ice_flux_exchange_mod id_t_atm, & !< diag_manager register field id for temperature at lowest atmospheric level id_t_ca, & !< diag_manager register field id for canopy air temperature id_t_flux, & !< diag_manager register field id for sensible heat flux + id_t_flux_land, & !< diag_manager register field id for sensible heat flux id_t_ocean, & !< diag_manager register field id for surface temperature from ocean output id_t_ref, & !< diag_manager register field id for temperature at z_ref_heat id_t_ref_land, & !< diag_manager register field id for temperature at z_ref_heat over land @@ -244,7 +245,7 @@ module atm_land_ice_flux_exchange_mod id_wind_ref, & !< diag_manager register field id for absolute value of wind at z_ref_mom id_z_atm, & !< diag_manager register field id for height of lowest atmospheric level id_co2_atm_dvmr, & !< diag_manager register field id for co2 dry volume mixing ratio at lowest atmospheric level - id_co2_surf_dvmr & !< diag_manager register field id for c02 dry volume mixing ratio at surface + id_co2_surf_dvmr, & !< diag_manager register field id for c02 dry volume mixing ratio at surface ! 2017/08/15 jgj added id_co2_bot, & !< diag_manager register field id for concentration of co2 to be passed to land/photosynthesis id_co2_flux_pcair_atm, & !< diag_manager register field id for concentration of co2 to be passed to ocean @@ -259,12 +260,15 @@ module atm_land_ice_flux_exchange_mod id_tr_ref(:), & !< diag_manager register field id value of tracer at z_ref_heat id_tr_ref_land(:), & !< diag_manager register field id tracer flux at z_ref_heat over land NEED HELP !f1p - id_tr_mol_flux0(:), & !< diag_manager register field id gross flux of tracer concentration over land in [mol/m2*s] + id_tr_mol_flux0(:), & + !< diag_manager register field id gross flux of tracer concentration over land in [mol/m2*s] id_tr_flux_land(:), & !< diag_manager register field id flux of tracer concentration over land in [kg/m2*s] - id_tr_mol_flux_land(:), & !< diag_manager register field id flux of tracer concentration over land in [mol/m2*s] + id_tr_mol_flux_land(:), & + !< diag_manager register field id flux of tracer concentration over land in [mol/m2*s] ! used with _USE_LEGACY_LAND_ id_tr_con_atm(:), & !< diag_manager register field id deposition velocity at lowest atmospheric level (atm) - id_tr_con_atm_land(:), & !< diag_manager register field id deposition velocity at lowest atmospheric level over land + id_tr_con_atm_land(:), & + !< diag_manager register field id deposition velocity at lowest atmospheric level over land id_tr_con_ref(:), & !< diag_manager register field id deposition velocity at reference height (atm) id_tr_con_ref_land(:) !< diag_manager register field id deposition velocity at reference height over land @@ -345,6 +349,7 @@ module atm_land_ice_flux_exchange_mod ex_dhdt_atm, & !< d(sens.heat.flux)/d(T atm) on the exchange grid ex_dhdt_surf, & !< d(sens.heat.flux)/d(T canopy) on the exchange grid ex_dqsatdt_surf, & !< d(water.vap.flux)/d(q canopy) on the exchange grid + ex_drag_q, & !< q drag coefficient on the exchange grid ex_drdt_surf, & !< d(LW flux)/d(T surf) on the exchange grid ex_dtaudu_atm, & !< d(stress)/d(u) on the exchange grid ex_dtaudv_atm, & !< d(stress)/d(v) on the exchange grid @@ -515,6 +520,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !! the atmosphere and ocean. Values defined from the field table or computed during model run character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' + character(len=64), parameter :: sub_name = 'atm_land_ice_flux_init' character(len=256), parameter :: & note_header = '==>Note from ' // trim(module_name) // '(' // trim(sub_name) // '):' @@ -558,8 +564,8 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate(block_start(nblocks), block_end(nblocks)) - !> FROM THE TRACER TABLE, GET THE TOTAL NUMBER TRACERS, TOTAL NUMBER OF SPECIFIC HUMIDITY TRACER, AND TOTAL NUMBER PROGNOSTIC TRACERS - !! IN ATMOSPHERE AND LAND MODELS + !> FROM THE TRACER TABLE, GET THE TOTAL NUMBER TRACERS, + !! TOTAL NUMBER OF SPECIFIC HUMIDITY TRACER, AND TOTAL NUMBER PROGNOSTIC TRACERS IN ATMOSPHERE AND LAND MODELS !{ call fms_tracer_manager_get_number_tracers(MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) call fms_tracer_manager_get_number_tracers(MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) @@ -919,7 +925,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary logical :: used !< returned value from data_override. if true, data was overwritten character(32) :: & - tr_name, !< tracer name + tr_name, & !< tracer name tr_units !< tracer id integer :: tr, n, m ! tracer indices @@ -948,17 +954,17 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_t_surf(n_xgrid_sfc), & ex_t_surf_miz(n_xgrid_sfc), & ex_p_surf(n_xgrid_sfc), & - ex_slp(n_xgrid_sfc), & - ex_t_ca(n_xgrid_sfc), & - ex_dhdt_surf(n_xgrid_sfc), & - ex_dedt_surf(n_xgrid_sfc), & + ex_slp(n_xgrid_sfc), & + ex_t_ca(n_xgrid_sfc), & + ex_dhdt_surf(n_xgrid_sfc), & + ex_dedt_surf(n_xgrid_sfc), & ex_dqsatdt_surf(n_xgrid_sfc), & - ex_drdt_surf(n_xgrid_sfc), & - ex_dhdt_atm(n_xgrid_sfc), & - ex_flux_t(n_xgrid_sfc), & - ex_flux_lw(n_xgrid_sfc), & - ex_drag_q(n_xgrid_sfc), & - ex_avail(n_xgrid_sfc), & + ex_drdt_surf(n_xgrid_sfc), & + ex_dhdt_atm(n_xgrid_sfc), & + ex_flux_t(n_xgrid_sfc), & + ex_flux_lw(n_xgrid_sfc), & + ex_drag_q(n_xgrid_sfc), & + ex_avail(n_xgrid_sfc), & ex_f_t_delt_n(n_xgrid_sfc), & ex_tr_surf(n_xgrid_sfc, n_exch_tr), & ex_dfdtr_surf(n_xgrid_sfc, n_exch_tr), & @@ -1389,14 +1395,15 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary is=block_start(l) ie=block_end(l) call surface_flux (& - ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), ex_z_atm(is:ie),& - ex_p_surf(is:ie),ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), ex_u_surf(is:ie), ex_v_surf(is:ie), & - ex_rough_mom(is:ie), ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_rough_scale(is:ie), ex_gust(is:ie), & - ex_flux_t(is:ie), ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), & - ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), ex_wind(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), & - ex_q_star(is:ie), ex_thv_atm(is:ie), ex_thv_surf(is:ie), ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), & - ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), & - ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), dt, ex_land(is:ie), (ex_seawater(is:ie).gt.0.0), ex_avail(is:ie)) + ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), & + ex_z_atm(is:ie), ex_p_surf(is:ie),ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), & + ex_u_surf(is:ie), ex_v_surf(is:ie), ex_rough_mom(is:ie), ex_rough_heat(is:ie), ex_rough_moist(is:ie), & + ex_rough_scale(is:ie), ex_gust(is:ie), ex_flux_t(is:ie), ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), & + ex_flux_u(is:ie), ex_flux_v(is:ie), ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), ex_wind(is:ie), & + ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), ex_thv_atm(is:ie), ex_thv_surf(is:ie), & + ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), & + ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), & + dt, ex_land(is:ie), (ex_seawater(is:ie).gt.0.0), ex_avail(is:ie)) enddo #ifdef SCM @@ -1794,8 +1801,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif !} - !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT. - !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML + !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER + !! FOR DIAGNOSTIC OUTPUT. NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ do n = 1, Atm%fields%num_bcs do m = 1, Atm%fields%bc(n)%num_fields @@ -2206,13 +2213,15 @@ end subroutine sfc_boundary_layer !> Subroutine flux_down_from_atmos corrects fluxes to land and ice !! for the implicit treatment of atmospheric diffisuve fluxes !! The subroutine also computes stock exchanges between the components - subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_boundary) + subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary) implicit none type(FmsTime_type), intent(in):: Time !< Current model time type(atmos_data_type), intent(inout) :: Atm - !< A derived data type holding atmosphere boundary data + !< A derived data type holding atmosphere boundary data + type(land_data_type), intent(in) :: Land !< A derived data type holding land boundary data + type(ice_data_type), intent(in) :: Ice !< A derived data type holding ice boundary data type(land_ice_atmos_boundary_type), intent(in) :: Atmos_boundary !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice type(atmos_land_boundary_type), intent(inout):: Land_boundary @@ -2245,8 +2254,10 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ex_dsetl_dtr ! derivative of setl_flux w.r.t. tracer concentration #endif - real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) ! tracer seditation flux from the lowest atmospehere layer on the atm grid - real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) ! derivative of setl_dtr from the lowest atmosphere layer on the atm grid + real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) + !< tracer seditation flux from the lowest atmospehere layer on the atm grid + real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) + !< derivative of setl_dtr from the lowest atmosphere layer on the atm grid ! temporary arrays real, dimension(n_xgrid_sfc) :: ex_gamma, ex_dtmass, ex_delta_t, ex_delta_u, ex_delta_v, ex_dflux_t @@ -2258,7 +2269,8 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ex_dflux_tr ! tracer flux change real :: cp_inv ! inverse heat capacity at constant pressure - logical :: used, ov, ier ! used in calls to fms + logical :: used, ov ! used in calls to fms + integer :: ier ! used in calls to fms integer :: is_atm, ie_atm, js_atm, je_atm, j ! do loop indices character(32) :: tr_name ! name of the tracer @@ -2764,12 +2776,11 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) !} end override Ice fields - !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS - !{ + !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS ! Atm -> Lnd (precip) call FMS_XGRID_STOCK_MOVE_( & - & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & + & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & #ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & #else @@ -2784,24 +2795,23 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ! Atm -> Lnd (heat) call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & #ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = & - (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & + (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & #else & stock_data3d = & - (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & -#endif + (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & +#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Lnd) ') - ! Atm -> Ice (precip) call fms_xgrid_stock_move( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & - & TO = fms_stock_constants_ice_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_ice_stock(ISTOCK_WATER), & & stock_data3d = (Ice_boundary%lprec + Ice_boundary%fprec), & & grid_index=X1_GRID_ICE, & & xmap=xmap_sfc, & @@ -2812,17 +2822,17 @@ subroutine flux_down_from_atmos(Time, Atm, Atmos_boundary, Land_boundary, Ice_bo ! Atm -> Ice (heat) call fms_xgrid_stock_move( & & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & - & TO = fms_stock_constants_ice_stock(ISTOCK_HEAT), & - & stock_data3d = & - (-Ice_boundary%t_flux + Ice_boundary%lw_flux - Ice_boundary%fprec*HLF + Ice_boundary%sw_flux_vis_dir + & + & TO = fms_stock_constants_ice_stock(ISTOCK_HEAT), & + & stock_data3d = (-Ice_boundary%t_flux + Ice_boundary%lw_flux - Ice_boundary%fprec*HLF + & + Ice_boundary%sw_flux_vis_dir + & Ice_boundary%sw_flux_vis_dif + Ice_boundary%sw_flux_nir_dir + Ice_boundary%sw_flux_nir_dif), & & grid_index=X1_GRID_ICE, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') - !} END COPUTE STOCK EXCHANGE BETWEEN COMPONENTS - + !} END COMPUTE STOCK EXCHANGE + deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) @@ -3908,7 +3918,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) ! 'nh3 flux out of the ocean assuming not nh3 in the atmosphere', 'mol/m2/s') - id_q_flux = fms_diag_register_diag_field(mod_name, 'evap',fatmos_axes, Time, & + id_q_flux = fms_diag_register_diag_field(mod_name, 'evap', atmos_axes, Time, & 'evaporation rate', 'kg/m2/s') !-------------------------------------------------------------------- From 3288d93595db8632250da6c660d3253d7b95589e Mon Sep 17 00:00:00 2001 From: mlee03 Date: Mon, 23 Mar 2026 15:42:15 -0400 Subject: [PATCH 26/31] remove trailing whitespace --- full/atm_land_ice_flux_exchange.F90 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 837c0b97..b33d8c43 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -2776,7 +2776,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) !} end override Ice fields - !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS + !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS ! Atm -> Lnd (precip) call FMS_XGRID_STOCK_MOVE_( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & @@ -2802,7 +2802,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound #else & stock_data3d = & (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & -#endif +#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & @@ -2832,7 +2832,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') !} END COMPUTE STOCK EXCHANGE - + deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) @@ -4165,8 +4165,8 @@ end subroutine diag_field_init subroutine divide_by_area(data, area) implicit none - real, intent(inout) :: data(:,:) !< data - real, intent(in) :: area(:,:) !< area + real, intent(inout) :: data(:,:) !< data + real, intent(in) :: area(:,:) !< area !> CHECK TO ENSURE SHAPE OF DATA IS THE SAME AS SHAPE OF AREA !{ @@ -4220,7 +4220,7 @@ SUBROUTINE SEND_ICE_MASK_SIC(TIME) !} !> FOR CMIP, IF ID_SIC > 0, COMPUTE SEA ICE FRACTIONAL AREA FOR ATM GRID CELLS THAT ARE OVER THE OCEAN - !! AND NORMALIZE AREA BY THE FRACTION OF ATMOS GRID CELL THAT IS OCEAN + !! AND NORMALIZE AREA BY THE FRACTION OF ATMOS GRID CELL THAT IS OCEAN !{ if(id_sic > 0) then ice_frac = 1. @@ -4238,7 +4238,7 @@ SUBROUTINE SEND_ICE_MASK_SIC(TIME) endif endif !} - + end subroutine send_ice_mask_sic !####################################################################### From 2688cdd60f8f6061da412ba69cc9a205a264e8df Mon Sep 17 00:00:00 2001 From: mlee03 Date: Tue, 24 Mar 2026 17:10:49 -0400 Subject: [PATCH 27/31] fixes --- full/atm_land_ice_flux_exchange.F90 | 440 ++++++++++++++-------------- 1 file changed, 225 insertions(+), 215 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index b33d8c43..cac994aa 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -19,8 +19,8 @@ !*********************************************************************** !> \file !> \brief Performs flux calculations and exchange grid operations for atmosphere, land and ice +!! \description -!! PUT HOW DATA IS EXCHANGED BETWEEN GRID VIA THE EXCHANGE GRID #undef FMS_DATA_OVERRIDE_ #undef FMS_XGRID_PUT_TO_XGRID_ @@ -118,7 +118,7 @@ module atm_land_ice_flux_exchange_mod send_global_diag ! function that calls FMS/diag_manager/send_data for global fields use atmos_tracer_driver_mod, only & atmos_tracer_has_surf_setl_flux, & - !function returns True of tracer sedimentation flux > 0 at bottom of the atmosphere + !function returns True if tracer sedimentation flux > 0 at bottom of the atmosphere get_atmos_tracer_surf_setl_flux, & !subroutine to retrieve tracer sedimentation flux at bottom of the atmosphere atmos_tracer_driver_gather_data_down @@ -190,122 +190,126 @@ module atm_land_ice_flux_exchange_mod !> total number of exchange grid cells integer :: n_xgrid_sfc=0 - !> module name, used when registering variable for diag_manager + !> module name used when registering variable for diag_manager character(len=4), parameter :: mod_name = 'flux' integer :: & - id_b_star, & !< diag_manager register field id for bouyancy scale - id_del_h, & !< diag_manager register field id for ref height interp factor for heat - id_del_m, & !< diag_manager register field id for ref height for interp factor for momentum - id_del_q, & ! diag_manager register field id for ref height interp factor for moisture - id_drag_heat, & !< diag_manager register field id for drag coefficient for heat - id_drag_moist, & !< diag_manager register field id for drag coefficient for moisture - id_drag_mom, & !< diag_manager register field id for drag coefficient for momentum - id_gust, & !< diag_manager register field id for gust scale - id_hussLut_land, & ! If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer + id_evspsbl_g, & !< diag_manager register field id for 'global integral of water evaporation flux' + id_hfls_g, & !< diag_manager register field id for 'global integral of surface upward latent heat flux' + id_hfss_g, & !< diag_manager register field id for 'global integral of surface upward sensible heat flux' + id_rls_g, & !< diag_manager register field id for 'global integral of near-surface relative humidty' + id_tas_g, & !< diag_manager register field id for 'global integral of near-surface air temperature' + id_tasl_g, & !< diag_manager register field id for 'global integral of near-surface air temperature on land' + id_ts_g !< diag_manager register field id for 'global integral of surface temperature' + logical :: first_static = .true. + !NULL() - !< gas fields in atm place holder for various atmospheric fields. - type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() - !< gas fields on ice + type(fmscoupler1dbc_type), pointer :: ex_gas_fields_atm=>NULL() !< atm gas place holder + type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() !< gas fields on ice type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() !< gas flux place holder of intermediate calculations, such as piston velocities etc. @@ -431,16 +433,16 @@ module atm_land_ice_flux_exchange_mod !balaji, sets boundary_type%xtype integer, parameter :: & - regrid=1, & !< grids are physically different, pass via exchange grid - redist=2, & !< same physical grid, different decomposition, must move data around - redirect=3 !< same physical grid, same domain decomposition, can directly copy data + regrid=1, & !< boundary_type%xtype where grids are physically different, pass via exchange grid + redist=2, & !< boundary_type%xtype where same physical grid, different decomposition, must move data around + redirect=3 !< boundary_type%xtype same physical grid, same domain decomposition, can directly copy data integer :: & - cplClock, & !< FMS clock id for profilin general processes - sfcClock, & !< FMS clock id to profile sfc_boundary_layer - fluxAtmDnClock, & !< FMS clock id to profile flux down from atmosphere - regenClock, & !< FMS clock to profile exchange grid generation - fluxAtmUpClock !< FMS clock to profile flux up to atmosphere + cplClock, & !< FMS clock id for profiling general processes + sfcClock, & !< FMS clock id for profiling sfc_boundary_layer + fluxAtmDnClock, & !< FMS clock id for profiling flux down from atmosphere + regenClock, & !< FMS clock for profiling exchange grid generation + fluxAtmUpClock !< FMS clock for profiling flux up to atmosphere integer :: & X1_GRID_ATM, & !< =1, exchange grid index for xgrid_stock_move @@ -452,8 +454,8 @@ module atm_land_ice_flux_exchange_mod Dt_cpl !< coupled timestep [s] integer :: & - ni_atm, & !< number of x gridpoints to compute diagnostics in subroutine flux_ocean_to_ice - nj_atm !< number of y gridpoints to compute diagnostics in subroutine flux_ocean_to_ice + ni_atm, & !< number of x gridpoints in the atm compute domain + nj_atm !< number of y gridpoints in the atm compute domain integer :: & nxc_ice=0, & !< number of x gridpoints in ice compute domain @@ -467,10 +469,10 @@ module atm_land_ice_flux_exchange_mod contains !####################################################################### - !! Subroutine atm_land_ice_flux_exchange_init is a subroutine that needs to be called in order to initialize the - !! atm_land_ice_flux_exchange_mod module. This subroutine allocates - !! and sets default values to many of the module level variable, as well as call initialization routines - !! for FMS modules. Calling other public procedures in this module without initialization will fail. + !! Subroutine atm_land_ice_flux_exchange_init initializes the atm_land_ice_flux_exchange_mod by + !! allocating and seting default values for module level variable; and calling initialization routines + !! in FMS modules. This subroutine must be called before calling any other public procedures in this + !! module. subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, & partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, & @@ -490,25 +492,25 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound type(land_ice_atmos_boundary_type), intent(inout) :: land_ice_atmos_boundary !< derived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice real, intent(in) :: Dt_atm_in - !< atmosphere time step in seconds + !< atmosphere time step [s] real, intent(in) :: Dt_cpl_in - !< coupled time step in seconds + !< coupled time step [s] real, intent(in) :: z_ref_heat_in !< reference height for temperature and relative humidity diagnostics [m] real, intent(in) :: z_ref_mom_in !< reference height for momentum diagnostics [m] logical, intent(in) :: scale_precip_2d_in - !< if true, rescale Atm%lprec by a field from diag_table + !< if true, rescale Atm%lprec logical, intent(in) :: do_area_weighted_flux_in !< if true, divide flux by area logical, intent(in) :: do_forecast_in - !< if true, put atm%surf_diff%sst_miz on the exchange grid if AM3_physics is used + !< if true, and AM3_physics is define, put atm%surf_diff%sst_miz on the exchange grid logical, intent(in) :: partition_fprec_from_lprec_in !< if true, will convert liquid precip to snow when t_ref < tfreeze integer, intent(in) :: nblocks_in - !< divide the surface exchange grid to nblocks for OpenMP parallelizatio + !< divide the surface exchange grid to nblocks for OpenMP parallelization integer, intent(in) :: cplClock_in - !< clock to measure processes, mainly used for development and debugging + !< clock to measure processes. mainly used for development and debugging type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in !< gas fields in Atm. Contains atmospheric surface variables that are used to compute !! atmosphere-ocean gas fluxes and flux-regulating parameters @@ -517,7 +519,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in !< gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between - !! the atmosphere and ocean. Values defined from the field table or computed during model run + !! the atmosphere and ocean. character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' character(len=64), parameter :: sub_name = 'atm_land_ice_flux_init' @@ -525,21 +527,23 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound note_header = '==>Note from ' // trim(module_name) // '(' // trim(sub_name) // '):' integer :: & - i, & !< temporary index do loop - n !< temporary index for counting + i, & ! temporary index do loop + n ! temporary index for counting integer :: & - outunit, & !< ! returned value from fms_mpp_stdout() - logunit !< returned value from fms_mpp_stdlog() + outunit, & ! returned value from fms_mpp_stdout() + logunit ! returned value from fms_mpp_stdlog() integer :: & - is, & !< starting x-index on compute domain - ie, & !< ending x-index on compute domain - js, & !< starting y-index on compute domain - je, & !< ending y-index on compute domain - kd !< number of levels in the z direction - character(32) :: tr_name !< dummy variable to hold name of tracers - logical :: found !< dummy variable to search through tracer index in ex_gas_fluxes - - !> INITIALIZE SUBSET OF MODULE LEVEL VARIABLES + is, & ! starting x-index on compute domain + ie, & ! ending x-index on compute domain + js, & ! starting y-index on compute domain + je, & ! ending y-index on compute domain + kd ! number of levels in the z direction + character(32) :: tr_name ! dummy variable to hold name of tracers + logical :: found ! dummy variable to search through tracer index in ex_gas_fluxes + + !> INITIALIZE DT_ATM, DT_CPL, Z_REF_HEAT, Z_REF_MOM, DO_AREA_WEIGHTED_FLUX, + !! DO_FORECAST, PARTITION_FPREC_FROM_LPREC, SCALE_PRECIP_2D, NBLOCKS, CPLCLOCKS + !! EX_GAS_FIELDS_ATM, EX_GAS_FIELDS_ICE, AND EX_GAS_FLUXES !{ Dt_atm = Dt_atm_in Dt_cpl = Dt_cpl_in @@ -571,8 +575,8 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_tracer_manager_get_number_tracers(MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) !} - !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH TRACER, RECORD ITS REFERRED TRACER_INDEX IN THE - !! ATM MODEL, ICE MODEL, AND LAND MODEL. SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS + !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH TRACER, RECORD THE TRACER_INDEX IN THE ATM MODEL, ICE MODEL, + !! AND LAND MODEL. SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS !{ allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) n = 1 @@ -592,7 +596,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !} !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND - !! TODO: DEFINE WHAT IS A GENERIC EXCHANGE FIELD + !! TODO: DEFINE GENERIC EXCHANGE FIELD !{ n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_atm2lnd @@ -600,7 +604,6 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_lnd2atm !} - !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH OCEAN-ATM GAS FLUX TRACER, STORE THE TRACER INDEX !! NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER !{ @@ -662,16 +665,18 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound if (ico2==NO_TRACER) then call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) endif - !} END GET TRACER INDEX OF SPECIFIC HUMIDITY + !} !> INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE + !{ call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) if (scale_precip_2d) then allocate(frac_precip(is:ie,js:je)) frac_precip=0.0 endif + !} - !> SET UP THE EXCHANGE GRID AND SET X1_GRID_ATM = 1, X1_GRID_ICE = 2, AND X1_GRID_LAND + !> SET UP THE EXCHANGE GRID AND SET X1_GRID_ATM = 1, X1_GRID_ICE = 2, AND X1_GRID_LAND = 3 !{ call fms_xgrid_init(remap_method) #ifndef _USE_LEGACY_LAND_ @@ -687,7 +692,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound X1_GRID_LND = 3; call generate_sfc_xgrid(Land, Ice) if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' - !} END SET UP EXCHANGE GRID + !} !> INITIALIZE SURFACE_FLUX MODULE IN FMSCOUPLER/SHARED call surface_flux_init() @@ -702,11 +707,11 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound #endif !} - !> INITIALIZE FMS DIAGNOSTIC FIELDS IN DIAG_MANAGER + !> REGISTER FMS DIAGNOSTIC FIELDS IN DIAG_MANAGER ! all fields will be output on the atmospheric grid call diag_field_init ( Time, Atm%axes(1:2), Land%axes, Land%pe ) - !> GET THE SIZE OF THE ATM GRID + !> GET THE SIZE OF THE ATM COMPUTE DOMAIN !{ ni_atm = size(Atm%lon_bnd,1) - 1 ! to dimension "diag_atm" nj_atm = size(Atm%lon_bnd,2) - 1 ! in flux_ocean_to_ice @@ -751,7 +756,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !} END ALLOCATE ATMOS_ICE_BOUNDARY !> ALLOCATE LAND_ICE_ATMOS_BOUNDARY AND SET FIELDS EQUAL TO ZERO EXCEPT FOR - !! T_OCEAN, WHICH IS SET TO 200 K AND T_REF TO 273 K AND ROUGHNESS LENGTHS WHICH ARE SET TO 0.01 m + !! T_OCEAN WHICH IS SET TO 200 K, T_REF TO 273 K, AND ROUGHNESS LENGTHS TO 0.01 m !{ call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) allocate(land_ice_atmos_boundary%t(is:ie,js:je), source=273.0) @@ -796,13 +801,13 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound mod_name, Atm%axes(1:2), Time, suffix = '_atm') !} - !> GET THE SIZE OF DOMAIN DECOMPOSED ICE GRID + !> GET THE SIZE OF ICE COMPUTE DOMAIN if( Ice%pe) then call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) nk_ice = size(Ice%part_size,3) endif - !> GET THE SIZE OF THE DOMAIN DECOMPOSED LAND GRID + !> GET THE SIZE OF LAND COMPUTE DOMAIN if( Land%pe) then call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) endif @@ -835,13 +840,12 @@ end subroutine atm_land_ice_flux_exchange_init !! b_star_atm: buoyancy scale [m2/s] !! !! To exchange fluxes between model components, data on one model component grid is first mapped onto - !! the exchange grid. All computation is done on the exchange grid. Then the data is mapped from the - !! exchange grid to the other model component grid. Computed/saved fields and fluxes can be overwritten + !! the exchange grid. Fluxes are computed on the exchange grid. Then the data is mapped from the + !! exchange grid to the receiving model component grid. However, computed fields and fluxes can be overwritten !! with calls to data_override where data will be overwritten only if the tracers are specified in the !! tracer_table. !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude - !! of surface stress divided by density of air at the surface, - !! and `u_star*b_star` is the buoyancy flux at the surface. + !! of surface stress divided by density of air at the surface, and `u_star*b_star` is the buoyancy flux at the surface. subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary) implicit none @@ -865,7 +869,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_albedo_nir_dir, & ! albedo for light with wavelength in near-ir region of the solar spectrum ex_albedo_vis_dif, & ! difference in albedo for light with wavelength in visible region of the solar spectrum ex_albedo_nir_dif, & ! difference in albedo for light with wavelength in near-ir region of the solar spectrum - ex_land_frac, & ! fractional area of land in grid cell + ex_land_frac, & ! fractional area of land on grid cell ex_t_atm, & ! air temperature at the lowest atmospheric level ex_p_atm, & ! pressure at the lowest atmospheric level ex_u_atm, & ! u wind component at the lowest atmospheric level @@ -885,25 +889,25 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_ref, &! specific humidity at z_ref_heat ex_ref_u, & ! zonal wind component at z_ref_mom ex_ref_v, & ! meridional wind component at z_ref_mom - ex_u10, & !< zonal wind speed at 10m above the surface - ex_ref2, & !< quantity on exchange grid - ex_t_ref, & !< temperature at z_ref_heat on exchange grid - ex_qs_ref, & !< quantity on exchange grid + ex_u10, & ! zonal wind speed at 10m above the surface + ex_ref2, & ! quantity on exchange grid + ex_t_ref, & ! temperature at z_ref_heat on exchange grid + ex_qs_ref, & ! quantity on exchange grid ex_qs_ref_cmip, & ! < quantity on exchange grid ex_del_m, & ! reference height for interpolation factor for momentum ex_del_h, & ! reference height interpolation factor for heat ex_del_q, & ! reference height interpation factor for moisture - ex_frac_open_sea ! open-water mask, not used? + ex_frac_open_sea ! open-water mask (not used) - real :: rho !< quantity used to compute ex_tr_con_atm + real :: rho ! quantity used to compute ex_tr_con_atm real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_atm, & !< concentration of tracer at lowest atmospheric level + ex_tr_atm, & ! concentration of tracer at lowest atmospheric level ex_tr_ref !< concentration of tracer at reference height real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm - !< temporary array to hold data + ! temporary array to hold data #ifndef _USE_LEGACY_LAND_ real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2)) :: diag_land @@ -917,30 +921,33 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary #endif real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea !< temporary array real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: tmp_open_sea - !< temporary array for generating ice/ocean mask + ! temporary array used in generating ice/ocean mask real :: & - zrefm, & !< reference height for computing surface fluxes from Monin-Obukhov similarity theory - zrefh !< reference height for computing surface fluxes from Monin-Obukhov similarity theory + zrefm, & ! reference height for computing surface fluxes with Monin-Obukhov similarity theory + zrefh ! reference height for computing surface fluxes with Monin-Obukhov similarity theory - logical :: used !< returned value from data_override. if true, data was overwritten + logical :: used ! returned value from data_override. if true, data was overwritten character(32) :: & - tr_name, & !< tracer name - tr_units !< tracer id + tr_name, & ! tracer name + tr_units ! tracer id integer :: tr, n, m ! tracer indices - integer :: is, ie, isc, iec, jsc, jec !< domain indices - integer :: i, l, j, n_gex !< do loop indices + integer :: is, ie, isc, iec, jsc, jec ! domain indices + integer :: i, l, j, n_gex ! do loop indices real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm - !< array holding generic, non-tracer fields on the exchange grid + ! array holding generic, non-tracer fields on the exchange grid !> CHECK MODULE INITIALIZATION + !{ ! [1] if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & 'must call atm_land_ice_flux_exchange_init first', FATAL) + !} !> INITIALIZE CLOCKS FOR PROFILING + !{ ! [2] !{ !Balaji @@ -948,7 +955,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_mpp_clock_begin(sfcClock) !} - !> ALLOCATE ARRAY FOR EXCHANGE FIELDS. WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS + !> ALLOCATE ARRAY FOR EXCHANGE FIELDS. THE ARRAYS WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS !{ allocate ( & ex_t_surf(n_xgrid_sfc), & @@ -997,7 +1004,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_dedt_surf_forland(n_xgrid_sfc), & ex_dedq_surf_forland(n_xgrid_sfc)) #endif - !} END ALLOCATION ARRAYS FOR EXCHANGE FIELDS + !} !> ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY EXCHANGE FIELDS !{ @@ -1087,7 +1094,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_data_override('ATM', 'gust', Atm%gust, Time) !} - !> CONVERT CO2 TRACER UNITS to WET_MMR UNITS + !> CONVERT CO2 TRACER UNITS TO WET_MMR UNITS !{ ! jgj: 2008/07/18 ! FV atm advects tracers in moist mass mixing ratio: kg co2 /(kg air + kg water) @@ -1121,7 +1128,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> OVERRIDE CO2 VALUES THAT WILL BE PASSED TO OCEAN AND TO THE DIAG_MAANGER BUFFER + !> OVERRIDE CO2 VALUES WHERE DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE, AND + !! SEND DATA TO THE DIAG_MANAGER BUFFER !{ ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux from moist mmr to dry vmr. do n = 1, atm%fields%num_bcs @@ -1305,7 +1313,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !enddo !> ON THE EXCHANGE GRID, INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE + !{ ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean + !} !> MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID !{ @@ -1381,7 +1391,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end if #endif - !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES AND TENDENCIES + !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES AND TENDENCIES BY CALLING SURFACE_FLUX !{ call fms_xgrid_some(xmap_sfc, ex_avail) !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, & @@ -1421,7 +1431,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_avail, ex_dhdt_surf_forland, ex_dedt_surf_forland, ex_dedq_surf_forland) endif #endif - !} END CALL SURFACE_FLUX + !} ! call mpp_clock_end(fluxClock) @@ -1457,7 +1467,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} END COMPUTE ZONAL AND MERIDIONAL WINDS - !> CALCULATE ATMOSPHERIC CONDUCTANCE ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, CALCULATE ATMOSPHERIC CONDUCTANCE !{ !f1p: calculate atmospheric conductance to send to the land model do i=is,ie @@ -1465,7 +1475,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end do !} - !> ON THE EXCHANGE GRID, COMPUTE DERIVATIVES OF TRACER FLUX + !> ON THE EXCHANGE GRID, COMPUTE DERIVATIVES OF TRACER FLUXES !{ ! F = C0*u*rho*delta_q, C0*u*rho is the same for all tracers, copy from sphum do tr = 1,n_exch_tr @@ -1667,7 +1677,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary #endif !} END MAP FROM EXCHANGE TO ATM GRID - !> COMPUTE T**0.25 + !> ON THE ATM GRID, COMPUTE T**0.25 !{ call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec ) !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary) private(is,ie) @@ -1678,7 +1688,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> DATA OVERRIDE ATMOSPHERIC QUANTITIES IF FIELD IS SPECIFIED IN DATA_TABLE + !> DATA OVERRIDE ATMOSPHERIC QUANTITIES. + !! DATA_OVERRIDE WILL ONLY OVERWRITE XARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ !Balaji: fms_data_override calls moved here from coupler_main call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) @@ -1784,6 +1795,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! [7] diagnostics section !> SAVE STATIC FIELDS. THE STATIC FIELDS WILL BE SAVED ONLY THE FIRST TIME THIS SUBROUTINE IS CALLED + !! IF FIRST_STATIC = .TRUE. !{ if (first_static) then !------- land fraction ------ @@ -1801,8 +1813,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif !} - !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER - !! FOR DIAGNOSTIC OUTPUT. NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML + !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER. + !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ do n = 1, Atm%fields%num_bcs do m = 1, Atm%fields%bc(n)%num_fields @@ -2029,8 +2041,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary #endif endif end do - !} - + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_t_ref, ex_avail, & !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2) & !$OMP private(is,ie) @@ -2200,14 +2211,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary (log(ex_z_atm/ex_rough_mom+1.0)/log(ex_z_atm/ex_rough_scale+1.0))**2, xmap_sfc) used = fms_diag_send_data(id_rough_scale, diag_atm, Time) endif - + !} + !> END CLOCKS FOR PROFILING !Balaji call fms_mpp_clock_end(sfcClock) call fms_mpp_clock_end(cplClock) - !======================================================================= - end subroutine sfc_boundary_layer !> Subroutine flux_down_from_atmos corrects fluxes to land and ice From d12390ea9d283b58d21ce62bf66c70bb4623ef88 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Wed, 25 Mar 2026 09:59:58 -0400 Subject: [PATCH 28/31] final for now --- full/atm_land_ice_flux_exchange.F90 | 368 ++++++++++++++++++---------- 1 file changed, 237 insertions(+), 131 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index cac994aa..4ba08f7d 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -244,7 +244,8 @@ module atm_land_ice_flux_exchange_mod id_wind, & !< diag_manager register field id for 'wind speed for flux calculations' id_wind_ref, & !< diag_manager register field id for 'absolute value of wind at z_ref_mom' id_z_atm, & !< diag_manager register field id for 'height of lowest atmospheric level' - id_co2_atm_dvmr, & !< diag_manager register field id for 'co2 dry volume mixing ratio at lowest atmospheric level' + id_co2_atm_dvmr, & + !< diag_manager register field id for 'co2 dry volume mixing ratio at lowest atmospheric level' id_co2_surf_dvmr, & !< diag_manager register field id for 'c02 dry volume mixing ratio at surface' ! 2017/08/15 jgj added id_co2_bot, & !< diag_manager register field id for 'concentration of co2 to be passed to land/photosynthesis' @@ -313,9 +314,9 @@ module atm_land_ice_flux_exchange_mod logical :: do_init = .true. !< true if atm_land_ice_flux_exchnge_init has been called integer :: remap_method = 1 !< first or second order conservative remapping onto exchange grid - real, parameter :: d622 = rdgas/rvgas - real, parameter :: d378 = 1.0-d622 - real, parameter :: d608 = d378/d622 + real, parameter :: d622 = rdgas/rvgas !< rdgas/rvgas + real, parameter :: d378 = 1.0-d622 !< 1.0-d622 + real, parameter :: d608 = d378/d622 !< d378/d622 real, parameter :: tfreeze = 273.15 !< freezing point of water at 1 atm [K] real, allocatable, dimension(:,:) :: frac_precip @@ -326,7 +327,7 @@ module atm_land_ice_flux_exchange_mod !< reference height [m] for momentum diagnostics u_ref, v_ref, and del_m logical :: do_area_weighted_flux = .FALSE. !< not used variable - logical :: do_forecast = .false. !< do_forecast + logical :: do_forecast = .false. !< do_forecast integer :: nblocks = 1 !< OpenMP number of threads logical :: partition_fprec_from_lprec = .FALSE. !< If true, convert liquid precip to snow when t_ref < tfreeze @@ -469,7 +470,7 @@ module atm_land_ice_flux_exchange_mod contains !####################################################################### - !! Subroutine atm_land_ice_flux_exchange_init initializes the atm_land_ice_flux_exchange_mod by + !> Subroutine atm_land_ice_flux_exchange_init initializes atm_land_ice_flux_exchange_mod by !! allocating and seting default values for module level variable; and calling initialization routines !! in FMS modules. This subroutine must be called before calling any other public procedures in this !! module. @@ -504,22 +505,22 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound logical, intent(in) :: do_area_weighted_flux_in !< if true, divide flux by area logical, intent(in) :: do_forecast_in - !< if true, and AM3_physics is define, put atm%surf_diff%sst_miz on the exchange grid + !< if true, and #ifdef AM3_physics,, put atm%surf_diff%sst_miz on the exchange grid logical, intent(in) :: partition_fprec_from_lprec_in - !< if true, will convert liquid precip to snow when t_ref < tfreeze + !< if true, convert liquid precip to snow when t_ref < tfreeze integer, intent(in) :: nblocks_in - !< divide the surface exchange grid to nblocks for OpenMP parallelization + !< number of OpenMP blocks. the surface exchange grid is parallelized into nblocks integer, intent(in) :: cplClock_in !< clock to measure processes. mainly used for development and debugging type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in - !< gas fields in Atm. Contains atmospheric surface variables that are used to compute + !< gas fields in atm. Contains atmospheric surface variables that are used to compute !! atmosphere-ocean gas fluxes and flux-regulating parameters type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_ice_in !< gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in !< gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between - !! the atmosphere and ocean. + !! the atmosphere and ocean. character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' character(len=64), parameter :: sub_name = 'atm_land_ice_flux_init' @@ -541,7 +542,9 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound character(32) :: tr_name ! dummy variable to hold name of tracers logical :: found ! dummy variable to search through tracer index in ex_gas_fluxes - !> INITIALIZE DT_ATM, DT_CPL, Z_REF_HEAT, Z_REF_MOM, DO_AREA_WEIGHTED_FLUX, + + !> INITIALIZE THE FOLLOWING MODULE-LEVEL VARIABLES: + !! DT_ATM, DT_CPL, Z_REF_HEAT, Z_REF_MOM, DO_AREA_WEIGHTED_FLUX, !! DO_FORECAST, PARTITION_FPREC_FROM_LPREC, SCALE_PRECIP_2D, NBLOCKS, CPLCLOCKS !! EX_GAS_FIELDS_ATM, EX_GAS_FIELDS_ICE, AND EX_GAS_FLUXES !{ @@ -560,6 +563,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound ex_gas_fluxes => ex_gas_fluxes_in !} + !> GET FILE UNIT FOR STDOUT AND STDLOG FOR INTERNAL LOGGING PURPOSES !{ outunit = fms_mpp_stdout() @@ -568,6 +572,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate(block_start(nblocks), block_end(nblocks)) + !> FROM THE TRACER TABLE, GET THE TOTAL NUMBER TRACERS, !! TOTAL NUMBER OF SPECIFIC HUMIDITY TRACER, AND TOTAL NUMBER PROGNOSTIC TRACERS IN ATMOSPHERE AND LAND MODELS !{ @@ -575,8 +580,9 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_tracer_manager_get_number_tracers(MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) !} + !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH TRACER, RECORD THE TRACER_INDEX IN THE ATM MODEL, ICE MODEL, - !! AND LAND MODEL. SKIP ALL ATMOS TRACERS THAT DOES NOT HAVE CORRESPONDING SURFACE TRACERS + !! AND LAND MODEL. SKIP ALL ATMOS TRACERS THAT DO NOT HAVE CORRESPONDING SURFACE TRACERS !{ allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) n = 1 @@ -595,8 +601,9 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound n_exch_tr = n - 1 !} - !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE BETWEEN ATMOSPHERE AND LAND - !! TODO: DEFINE GENERIC EXCHANGE FIELD + + !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE FIELDS BETWEEN ATMOSPHERE AND LAND + !! TO CLARIFY: WHAT IS A GENERIC EXCHANGE FIELD !{ n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_atm2lnd @@ -604,6 +611,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_lnd2atm !} + !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH OCEAN-ATM GAS FLUX TRACER, STORE THE TRACER INDEX !! NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER !{ @@ -636,6 +644,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound enddo !} + !> GET THE TRACER INDEX OF SPECIFIC HUMIDITY !{ ! +fix-me-slm+ specific humidity may not be present if we are running with @@ -667,6 +676,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif !} + !> INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE !{ call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) @@ -676,7 +686,9 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif !} + !> SET UP THE EXCHANGE GRID AND SET X1_GRID_ATM = 1, X1_GRID_ICE = 2, AND X1_GRID_LAND = 3 + !! SETS XMAP_SFC(1)%GRIDS FOR ATM, XMAP_SFC(2)%GRIDS FOR ICE, XMAP_SFC(3)%GRIDS FOR LAND !{ call fms_xgrid_init(remap_method) #ifndef _USE_LEGACY_LAND_ @@ -692,31 +704,36 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound X1_GRID_LND = 3; call generate_sfc_xgrid(Land, Ice) if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' - !} + !} + !> INITIALIZE SURFACE_FLUX MODULE IN FMSCOUPLER/SHARED call surface_flux_init() - !> INITIALLIZE FMS DIAG_INTEGRAL FIELDS FOR GLOBAL INTEGRAL QUANTITIES + + !> INITIALLIZE FMS DIAG_INTEGRAL FIELDS FOR EVAP, T_SURF, T_REF GLOBAL INTEGRAL QUANTITIES !{ - !! call diag_integral_field_init ('prec', 'f6.3') + ! call diag_integral_field_init ('prec', 'f6.3') call fms_diag_integral_field_init ('evap', 'f6.3') #ifndef use_AM3_physics call fms_diag_integral_field_init ('t_surf', 'f10.3') !miz call fms_diag_integral_field_init ('t_ref', 'f10.3') !miz #endif - !} + !} + !> REGISTER FMS DIAGNOSTIC FIELDS IN DIAG_MANAGER ! all fields will be output on the atmospheric grid call diag_field_init ( Time, Atm%axes(1:2), Land%axes, Land%pe ) + !> GET THE SIZE OF THE ATM COMPUTE DOMAIN !{ ni_atm = size(Atm%lon_bnd,1) - 1 ! to dimension "diag_atm" nj_atm = size(Atm%lon_bnd,2) - 1 ! in flux_ocean_to_ice !} + !> ALLOCATE ATMOS_ICE_BOUNDARY AND SET FIELDS EQUAL TO ZERO !{ call fms_mpp_domains_get_compute_domain(Ice%domain, is, ie, js, je) @@ -753,7 +770,8 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, & [is,is,ie,ie], [js,js,je,je], [1, kd], suffix = '_ice') call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) - !} END ALLOCATE ATMOS_ICE_BOUNDARY + !} + !> ALLOCATE LAND_ICE_ATMOS_BOUNDARY AND SET FIELDS EQUAL TO ZERO EXCEPT FOR !! T_OCEAN WHICH IS SET TO 200 K, T_REF TO 273 K, AND ROUGHNESS LENGTHS TO 0.01 m @@ -793,6 +811,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0) !} + !> COPY EX_GAS_FIELDS_ATM TO ATM%FIELDS !{ ! The first call is no longer necessary, the fluxes will be passed by the land module @@ -801,18 +820,24 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound mod_name, Atm%axes(1:2), Time, suffix = '_atm') !} + !> GET THE SIZE OF ICE COMPUTE DOMAIN + !{ if( Ice%pe) then call fms_mpp_domains_get_compute_domain(Ice%domain, xsize=nxc_ice, ysize=nyc_ice) nk_ice = size(Ice%part_size,3) endif + !} !> GET THE SIZE OF LAND COMPUTE DOMAIN + !{ if( Land%pe) then call fms_mpp_domains_get_compute_domain(Land%domain, xsize=nxc_lnd, ysize=nyc_lnd) endif + !} - !> INITIALIZE CLOCKS FOR PROFILING + + !> DECLARE CLOCKS FOR PROFILING !{ !Balaji: clocks on atm%pe only sfcClock = fms_mpp_clock_id( 'SFC boundary layer', flags=fms_clock_flag_default, grain=CLOCK_SUBCOMPONENT ) @@ -821,14 +846,16 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound fluxAtmUpClock = fms_mpp_clock_id( 'Flux UP to atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) !} + !> SET DO_INIT = .FALSE. IN ORDER TO AVOID RE-INITIALIZATION THE MODULE !! IF THIS SUBROUTINE IS CALLED AGAIN do_init = .false. + end subroutine atm_land_ice_flux_exchange_init !####################################################################### - !! Subroutine sfc_boundary_layer computes the following fluxes and exchanges the fluxes between the model components + !> Subroutine sfc_boundary_layer computes the following fluxes and exchanges the fluxes between the model components: !! t_surf_atm: surface temperature used for radiation [K] !! albedo_atm: surface albedo used for radiation [dimensionless] !! rough_mom_atm: surface roughness for momentum [m] @@ -840,12 +867,12 @@ end subroutine atm_land_ice_flux_exchange_init !! b_star_atm: buoyancy scale [m2/s] !! !! To exchange fluxes between model components, data on one model component grid is first mapped onto - !! the exchange grid. Fluxes are computed on the exchange grid. Then the data is mapped from the - !! exchange grid to the receiving model component grid. However, computed fields and fluxes can be overwritten + !! the exchange grid. Fluxes are computed on the exchange grid. Then, data is mapped from the + !! exchange grid to the receiving model component grid. Note, computed fields and fluxes can be overwritten !! with calls to data_override where data will be overwritten only if the tracers are specified in the !! tracer_table. - !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude - !! of surface stress divided by density of air at the surface, and `u_star*b_star` is the buoyancy flux at the surface. + !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude of surface stress + !! divided by density of air at the surface, and `u_star*b_star` is the buoyancy flux at the surface. subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary) implicit none @@ -939,6 +966,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm ! array holding generic, non-tracer fields on the exchange grid + !> CHECK MODULE INITIALIZATION !{ ! [1] @@ -946,15 +974,16 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary 'must call atm_land_ice_flux_exchange_init first', FATAL) !} + !> INITIALIZE CLOCKS FOR PROFILING !{ ! [2] - !{ !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(sfcClock) !} + !> ALLOCATE ARRAY FOR EXCHANGE FIELDS. THE ARRAYS WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS !{ allocate ( & @@ -1004,7 +1033,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_dedt_surf_forland(n_xgrid_sfc), & ex_dedq_surf_forland(n_xgrid_sfc)) #endif - !} + !} + !> ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY EXCHANGE FIELDS !{ @@ -1020,6 +1050,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR ATMOSPHERE EXCHANGE FIELDS !{ do n = 1, ex_gas_fields_atm%num_bcs @@ -1032,6 +1063,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> ALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDS !{ do n = 1, ex_gas_fluxes%num_bcs @@ -1044,12 +1076,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers ! For ocean only model ! call atmos_get_fields_for_flux(Atm) - !> SET INITIAL VALUES FOR A SUBSET OF EXCHANGE FIELDS (OPENMP LOOP) + !> ON THE EXCHANGE GRID, SET INITIAL VALUES FOR ALBEDO, DRAG COEFFICIENTS, AND OPEN WATER MASK !{ ! this is actually a safeguard against using undefined values !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & @@ -1081,6 +1114,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> OVERRIDE SUBSET OF ATM FIELDS. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ !Balaji: data_override stuff moved from coupler_main @@ -1094,6 +1128,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_data_override('ATM', 'gust', Atm%gust, Time) !} + !> CONVERT CO2 TRACER UNITS TO WET_MMR UNITS !{ ! jgj: 2008/07/18 @@ -1128,8 +1163,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> OVERRIDE CO2 VALUES WHERE DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE, AND - !! SEND DATA TO THE DIAG_MANAGER BUFFER + !! SEND DATA TO THE DIAG_MANAGER BUFFER !{ ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux from moist mmr to dry vmr. do n = 1, atm%fields%num_bcs @@ -1160,6 +1196,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> OVERRIDE SUBSET OF ICE AND LAND FIELD. DATA WILL BE OVERWRITTEN ONLY IF THE FIELD IS SPECIFIED IN DATA_TABLE !{ call fms_data_override('ICE', 't_surf', Ice%t_surf, Time) @@ -1196,6 +1233,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call FMS_DATA_OVERRIDE_('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) !} + !> MAP ATM FIELDS ONTO THE EXCHANGE GRID !{ #ifdef use_AM3_physics @@ -1228,12 +1266,14 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_put_to_xgrid(Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) !} + ! slm, Mar 20 2002: changed order in whith the data transferred from ice and land ! grids, to fill t_ca first with t_surf over ocean and then with t_ca from ! land, where it is different from t_surf. It is mostly to simplify ! diagnostic, since surface_flux calculations distinguish between land and ! not-land anyway. + !> INITIALIZE EX_TR_SURF TO BE THE AMOUNT OF TRACERS AT THE BOTTOM-MOST ATMOSPHERE LAYER !{ ! prefill surface values with atmospheric values before putting tracers @@ -1241,6 +1281,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_tr_surf = ex_tr_atm !} + !> MAP ICE FIELDS ONTO THE EXCHANGE GRID !{ ! (assume that ocean quantites are stored in no ice partition) @@ -1269,6 +1310,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> ON THE EXCHANGE GRID, GENERATE DYNAMIC WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER !{ !Generate a wet mask array on the xgrid which is: @@ -1285,6 +1327,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) !} + !Question: Why is the above ex_seawater a dynamic mask array? ! From its construction it looks like a static array of 1s and 0s ! !Answer: The xmap_sfc is dynamic and changes as the model steps because it contains updated information about @@ -1312,11 +1355,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! enddo !enddo + !> ON THE EXCHANGE GRID, INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE !{ ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean !} + !> MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID !{ call fms_xgrid_some(xmap_sfc, ex_land, 'LND') @@ -1361,7 +1406,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_land_frac = 0.0 call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) - !} END MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID + !} + #ifdef SCM if (do_specified_land) then @@ -1391,6 +1437,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end if #endif + !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES AND TENDENCIES BY CALLING SURFACE_FLUX !{ call fms_xgrid_some(xmap_sfc, ex_avail) @@ -1436,8 +1483,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! call mpp_clock_end(fluxClock) - !> ON THE EXCHANGE GRID, COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS - !{ + zrefm = 10.0 zrefh = z_ref_heat ! ---- optimize calculation ---- @@ -1445,6 +1491,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary do l = 1, my_nblocks is=block_start(l) ie=block_end(l) + !> ON THE EXCHANGE GRID, COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS + !{ call fms_monin_obukhov_mo_profile(zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) @@ -1465,7 +1513,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif endif enddo - !} END COMPUTE ZONAL AND MERIDIONAL WINDS + !} !> ON THE EXCHANGE GRID, CALCULATE ATMOSPHERIC CONDUCTANCE !{ @@ -1495,8 +1543,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + ! Combine explicit ocean flux and implicit land flux of extra flux fields. + !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES BETWEEN ATM AND OCEAN !{ call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) @@ -1555,7 +1605,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif enddo enddo - !} END COMPUTE EXPLICIT FLUXES BETWEEN ATM AND OCEAN + !} + !> OVERRIDE LAND AND ICE TRACER FLUXES. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ @@ -1599,7 +1650,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) - !} END DATAOVERRIDE + !} + ! NB: names of the override fields are constructed using tracer name and certain ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: @@ -1609,6 +1661,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and ! W/(m2 degK) respectively + !> ON THE EXCHANGE GRID, COMPUTE T_SURF**4 !{ !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_avail, & @@ -1625,7 +1678,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> MAP QUANTITIES FROM THE EXCHANGE GRID TO THE ATM GRID + !{ ! put relevant quantities onto atmospheric boundary call fms_xgrid_get_from_xgrid(& Land_Ice_Atmos_Boundary%t_ocean, 'ATM', ex_t_surf, xmap_sfc, complete=.false.) !joseph @@ -1675,7 +1730,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) end if #endif - !} END MAP FROM EXCHANGE TO ATM GRID + !} + !> ON THE ATM GRID, COMPUTE T**0.25 !{ @@ -1688,6 +1744,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> DATA OVERRIDE ATMOSPHERIC QUANTITIES. !! DATA_OVERRIDE WILL ONLY OVERWRITE XARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ @@ -1715,15 +1772,17 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) !} + ! [6.3] save atmos albedo fix and old albedo (for downward SW flux calculations) ! on exchange grid ! allocate ( ex_old_albedo(n_xgrid_sfc) ) ! ex_old_albedo = ex_albedo + !> ON THE EXCHANGE GRID, INITIALIZE ARRAYS FOR FIXING THE ALBEDO + !{ ! STILL NEEDED ???? ! IS THIS CORRECT ?? - !{ allocate ( ex_albedo_fix(n_xgrid_sfc) ) allocate ( ex_albedo_vis_dir_fix(n_xgrid_sfc) ) allocate ( ex_albedo_nir_dir_fix(n_xgrid_sfc) ) @@ -1747,6 +1806,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> MAP ALBEDO FIELDS TO THE EXCHANGE GRID !{ call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo_fix, xmap_sfc, complete=.false.) @@ -1760,6 +1820,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_albedo_nir_dif_fix, xmap_sfc, complete=.true.) !} + !> ON THE EXCHANGE GRID, COMPUTE THE ALBEDO FIXING FACTORS !{ !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & @@ -1781,6 +1842,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + #ifdef SCM if (do_specified_albedo .and. do_specified_land) then ex_albedo_fix = 1. @@ -1814,7 +1876,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !} !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER. - !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML + !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN THE DIAG_TABLE !{ do n = 1, Atm%fields%num_bcs do m = 1, Atm%fields%bc(n)%num_fields @@ -1941,6 +2003,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif !} + !> COMPUTE DIAGNOSTIC FIELDS AT REFERENCE LEVELS WITH FMS_MONIN_OBUHKOV_MO_PROFILE !{ !cjg @@ -2000,9 +2063,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} + !> MAP LAND AND ADDITIONAL ATMOSPHERIC FIELDS FROM THE EXCHANGE GRID TO THE COMPONENT GRID AND !! SEND DATA TO DIAG_MANAGER BUFFER FOR DIAGNOSTIC OUTPUT - !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML + !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN THE DIAG_TABLE !{ call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_ref, 'ATM', ex_ref, xmap_sfc) ! cjg if(id_q_ref > 0) then @@ -2041,7 +2105,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary #endif endif end do - + !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_t_ref, ex_avail, & !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2) & !$OMP private(is,ie) @@ -2212,24 +2276,26 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary used = fms_diag_send_data(id_rough_scale, diag_atm, Time) endif !} - + + !> END CLOCKS FOR PROFILING + !{ !Balaji call fms_mpp_clock_end(sfcClock) call fms_mpp_clock_end(cplClock) + !} end subroutine sfc_boundary_layer - !> Subroutine flux_down_from_atmos corrects fluxes to land and ice - !! for the implicit treatment of atmospheric diffisuve fluxes - !! The subroutine also computes stock exchanges between the components + !> Subroutine flux_down_from_atmos corrects for the implicit treatment of atmospheric diffisuve fluxes + !! in flux exchange from atm to land and ice subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary) implicit none type(FmsTime_type), intent(in):: Time !< Current model time type(atmos_data_type), intent(inout) :: Atm - !< A derived data type holding atmosphere boundary data + !< A derived data type holding atmosphere boundary data type(land_data_type), intent(in) :: Land !< A derived data type holding land boundary data type(ice_data_type), intent(in) :: Ice !< A derived data type holding ice boundary data type(land_ice_atmos_boundary_type), intent(in) :: Atmos_boundary @@ -2237,7 +2303,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound type(atmos_land_boundary_type), intent(inout):: Land_boundary !< A derived data type to specify properties and fluxes passed from atmosphere to land type(atmos_ice_boundary_type), intent(inout):: Ice_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to ice + !< A derived data type to specify properties and fluxes passed from atmosphere to ice ! the following variables are on the exchange grid real, dimension(n_xgrid_sfc) :: & @@ -2265,9 +2331,9 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound #endif real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - !< tracer seditation flux from the lowest atmospehere layer on the atm grid + ! tracer seditation flux from the lowest atmospehere layer on the atm grid real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - !< derivative of setl_dtr from the lowest atmosphere layer on the atm grid + ! derivative of setl_dtr from the lowest atmosphere layer on the atm grid ! temporary arrays real, dimension(n_xgrid_sfc) :: ex_gamma, ex_dtmass, ex_delta_t, ex_delta_u, ex_delta_v, ex_dflux_t @@ -2288,16 +2354,18 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound integer :: is, ie, l, i, n_gex ! do loop indices !> START CLOCKS FOR PROFILING + !{ !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmDnClock) !} !> INITIALIZE REUSABLE FLAG. DATA_OVERRIDE WILL RETURN OV=.TRUE. IF DATA WAS OVERWRITTEN - OV = .FALSE. + ov = .false. !> OVERRIDE ATM SHORTWAVE AND LONGWAVE DIRECT AND DOWNWARD DIFFUSIVE FLUXES !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE XARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE + !{ !balaji: fms_data_override calls moved here from coupler_main call fms_data_override('atm', 'flux_sw', atm%flux_sw, time) call fms_data_override('atm', 'flux_sw_dir', atm%flux_sw_dir, time) @@ -2311,10 +2379,12 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_data_override('atm', 'flux_sw_vis_dif', atm%flux_sw_vis_dif, time) call fms_data_override('atm', 'flux_lw', atm%flux_lw, time) call fms_data_override('atm', 'lprec', atm%lprec, time) + !} !> SCALE LIQUID PRECIPITATION BY FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE !! SCALE_PRECIP_2D IS SET DURING MODULE INITIALIZATION CALL TO ATM_LAND_ICE_FLUX_EXCHANGE_INIT !! FRAC_PRECIP VALUES ARE SET WITH DATA_OVERRIDE + !{ if (scale_precip_2d) then call fms_mpp_domains_get_compute_domain(atm%domain, is_atm, ie_atm, js_atm, je_atm) call fms_data_override ('atm', 'precip_scale2d', frac_precip, Time) @@ -2324,10 +2394,11 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo enddo endif + !} !> PARTITION PRECIPTATION TO LIQUID PRECIPITATION AND FROZEN PRECIPITATION IF PARTITION_FPREC_FROM_LPREC = .TRUE. !! PARTIION_FPREC_FROM_LPREC IS SET AS PART OF MODULE INITIALIZATION CALL IN ATM_LAND_ICE_FLUX_EXCHANGE - !! NOTE, THE PARTITIONING ONLY OCCURS ON MPI RANKS FOR ATMOSPHERE + !{ if (partition_fprec_from_lprec .and. Atm%pe) then call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) do j=js_atm,je_atm @@ -2339,6 +2410,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo enddo endif + !} !> OVERRIDE ATM FPREC, COZEN, AND SURF_DIFF FIELDS. !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE @@ -2355,7 +2427,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo !} - !> MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID IN ORDER TO EXCHANGE QUANTITIES WITH OTHER COMPONENTS + !> MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID !{ !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_sw_dir, & !$OMP ex_flux_sw_vis_dir, ex_flux_sw_dif, ex_delta_u, ex_flux_sw_vis_dif, ex_flux_lwd, ex_delta_v, & @@ -2415,8 +2487,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound complete=.false.) call fms_xgrid_put_to_xgrid(Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & complete=.true.) - - !} END MAP ATMOSPHERIC QUANTITIES ON EXCHANGE GRID + !} !> ON THE EXCHANGE GRID, UPDATE U AND V STRESS !{ @@ -2433,7 +2504,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo !} end update u and v stress on the exchange grid - !> ON THE EXCHANGE GRID, FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT TO ACCOUNT FOR ALBEDO VARIATION + !> ON THE EXCHANGE GRID, FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT TO TAKE INTO ACCOUNT FOR ALBEDO VARIATION !{ !---- adjust sw flux for albedo variations on exch grid ---- !---- adjust 4 categories (vis/nir dir/dif) separately ---- @@ -2478,11 +2549,9 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound deallocate ( ex_albedo_nir_dir_fix ) deallocate ( ex_albedo_vis_dif_fix ) deallocate ( ex_albedo_nir_dif_fix ) + !} - !} ON THE EXCHANGE GRID, END FIX SHORT WAVELENGTH RADIATION FLUX - - - !> ADJUST FLUXES FOR IMPLICIT DEPENDENCE + !> ON THE EXCHANGE GRID, ADJUST FLUXES FOR IMPLICIT DEPENDENCE !{ do tr = 1,n_exch_tr n = tr_table(tr)%atm @@ -2562,9 +2631,12 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound endif enddo enddo - !} END ADJUST FLUXES FOR IMPLICIT DEPENDENCE + !} - !> MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID + + !> MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID AND OVERRIDE FIELDS + !! WITH DATA_OVERRIDE WHERE DATA WILL BE OVERWRITTEN IF THE FIELD IS SPECIFIED IN DATA_TABLE + !{ call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) @@ -2662,7 +2734,8 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound #endif endif enddo - !} MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID + !} + !> OVERRIDE LAND FLUXES. NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE !! ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE @@ -2691,7 +2764,8 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) #endif enddo - !} END OVERRIDE LAND FLUXES + !} + !> MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID !{ @@ -2750,7 +2824,8 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo endif enddo - !} END MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID + !} + !> OVERRIDE ICE FIELDS. NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE !! ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE @@ -2784,7 +2859,8 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_data_override('ICE', 'p', Ice_boundary%p, Time) call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) - !} end override Ice fields + !} + !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS ! Atm -> Lnd (precip) @@ -2841,7 +2917,8 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') - !} END COMPUTE STOCK EXCHANGE + !} + deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) @@ -2858,14 +2935,18 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound used = fms_diag_send_data ( id_tauv, -Atmos_boundary%v_flux, Time ) !} + !> END CLOCK FOR PROFILING + !{ !Balaji call fms_mpp_clock_end(fluxAtmDnClock) call fms_mpp_clock_end(cplClock) + !} end subroutine flux_down_from_atmos - !> Subroutine generate_sfc_xgrid updates the fractional area of the exchange grid between land and ice, where + + !> Subroutine generate_sfc_xgrid updates the fractional area of the land-ice exchange grid, where !! the fractional area measures the portion of the exchange grid cell that correspoonds to land and to ice. !! This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are !! pure land or pure ice (i.e., eliminate side 2 tiles with fractional area value of 0.0) @@ -2917,12 +2998,12 @@ subroutine generate_sfc_xgrid(Land, Ice) end subroutine generate_sfc_xgrid - !####################################################################### - !! Subroutine flux_up_to_atmos corrects the fluxes to take into account + + !> Subroutine flux_up_to_atmos corrects the fluxes to take into account !! the new surface temperatures in land and ice models. !! Final increments for temperature and specific humidity in the !! lowest atmospheric layer are computed and returned to the atmospheric model - !! so that it can finalize the increments in the rest of the atmosphere. + !! in order to finalize the increments in the rest of the atmosphere. !! !! The following elements of the land_ice_atmos_boundary_type are computed: !! dt_t = temperature change at the lowest atmospheric level [K] @@ -2937,26 +3018,26 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou type(ice_data_type), intent(inout) :: Ice !< derived data type holding ice boundary data type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary - !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice + !< A derived data type holding properties and fluxes passed from exchange grid to the atmosphere, land and ice type(atmos_land_boundary_type), intent(inout) :: Land_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to land + !< A derived data type holding properties and fluxes passed from atmosphere to land type(atmos_ice_boundary_type), intent(inout) :: Ice_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to ice + !< A derived data type holding properties and fluxes passed from atmosphere to ice real, dimension(n_xgrid_sfc) :: & - ex_t_surf_new, & ! new surface temperature on the exchange grid - ex_dt_t_surf, & ! - ex_delta_t_n, & - ex_t_ca_new, & - ex_dt_t_ca, & - ex_icetemp, & - ex_land_frac, & - ex_temp + ex_t_surf_new, & ! array on the exchange grid + ex_dt_t_surf, & ! array on the exchange grid + ex_delta_t_n, & ! array on the exchange grid + ex_t_ca_new, & ! array on the exchange grid + ex_dt_t_ca, & ! array on the exchange grid + ex_icetemp, & ! array on the exchange grid + ex_land_frac, & ! array on the exchange grid + ex_temp ! array on the exchange grid real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_surf_new, & ! updated tracer values at the surface - ex_dt_tr_surf, & ! tendency of tracers at the surface - ex_delta_tr_n + ex_tr_surf_new, & ! updated tracer values at the surface on the exchange grid + ex_dt_tr_surf, & ! tracer tendendencies at the surface on the exchange grid + ex_delta_tr_n ! array on the excchange grid ! jgj: added for co2_surf diagnostic, where co2_surf_dvmr is the updated CO2 tracer values at the surface (dry vmr) real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr @@ -2988,6 +3069,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call fms_mpp_clock_begin(fluxAtmUpClock) !} + !> OVERRIDE ICE%T_SURF, LAND%T_CA, LAND%T_SURF AND LAND SURFACE TRACERS !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE DATA IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ @@ -3005,12 +3087,14 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou enddo !} + !> INITIALIZE EX_T_SURF_NEW = 200.0 !{ ex_t_surf_new = 200.0 !} - !> PUT ICE%T_SURF, LAND%T_CA AND LAND%T_SURF ONTO THE EXCHANGE GRID + + !> MAP ICE%T_SURF, LAND%T_CA AND LAND%T_SURF ONTO THE EXCHANGE GRID !{ call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf_new, xmap_sfc) ex_t_ca_new = ex_t_surf_new ! since it is the same thing over oceans @@ -3030,7 +3114,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif #endif - !> COMPUTE CHANGE IN SURFACE TEMPERATURE + + !> ON THE EXCHANGE GRID, COMPUTE CHANGES IN SURFACE TEMPERATURE AND RADIATIVE TEMPERATURE !{ do l = 1, my_nblocks is = block_start(l) @@ -3050,9 +3135,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif enddo end if - !} END COMPUTE CHANGE IN SURFACE TEMPERATURE + !} + - !> UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE + !> ON THE EXCHANGE GRID, + !! UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE !{ do tr = 1,n_exch_tr ! set up updated surface tracer field so that flux to atmos for absent @@ -3079,11 +3166,13 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou #endif endif enddo - !} END UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE + !} + ! get all tracers available from ocean here - !> UPDATE TRACER TENDENCIES IN THE ATMOSPHERE + + !> ON THE EXCHANGE GRID, UPDATE TRACER TENDENCIES IN THE ATMOSPHERE !{ do l = 1, my_nblocks is = block_start(l) @@ -3126,7 +3215,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif enddo enddo - !} END UPDATE TRACER TENDENCIES IN THE ATMOSPHERE + !} + !> MAP DT_T, SHFLX, and LHFLX FIELDS IN LAND_ICE_ATMOS_BOUNDARY FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID !{ @@ -3135,7 +3225,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t , xmap_sfc) !miz call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc)!miz #endif - !} END MAP DT_T, SHFLX, and LHFLX FIELDS IN LAND_ICE_ATMOS_BOUNDARY FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID + !} !> MAP DATA FROM THE EXCHANGE GRID TO OCN/ATM/LND GRID AND SEND DATA TO THE DIAG_MANAGER BUFFER. @@ -3344,9 +3434,10 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ! need this to avoid diag issues with tiling changes in update_land_slow call dump_tile_diag_fields(Time) #endif - !} END SEND DATA TO DIAG_MANAGER_BUFFER + !} + - !> COMPUTE STOCK EXCHANGE BETWEEN COMPONENTS + !> COMPUTE STOCK EXCHANGE BETWEEN MODEL COMPONENTS !{ call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) @@ -3403,7 +3494,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & delta_t=Dt_atm, & & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') - !} END COMPUTE STOCK EXCHANGE + !} + !> END CLOCK FOR PROFILING !{ @@ -3415,7 +3507,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou end subroutine flux_up_to_atmos - !> Subroutine flux_ex_arrays_dealloc deallocates arrays holding fields on the exchange grid + !> Subroutine flux_ex_arrays_dealloc deallocates the model-level ex_* arrays that were + !! allocated in sfc_boundary_layer subroutine flux_ex_arrays_dealloc() implicit none @@ -3490,17 +3583,19 @@ subroutine flux_ex_arrays_dealloc() end subroutine flux_ex_arrays_dealloc + !> Subroutine flux_atmos_to_ocean computes deposition gas fluxes between atmosphere and ocean - !! and is called only if the do_flux namelist variable is set to .True. + !! This subroutine is called only if the do_flux namelist variable is set to .True. subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) implicit none type(FmsTime_type), intent(in) :: Time !< Current time type(atmos_data_type), intent(inout):: Atm - !< A derived data type to specify atmosphere boundary data + !< derived data type holding atmosphere boundary data type(atmos_ice_boundary_type), intent(inout):: Ice_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to ice + !< derived data type holding properties and fluxes passed from atmosphere to ice type(ice_data_type), intent(inout):: Ice + !< derived type holding ice boundary tdata integer :: n,m logical :: used @@ -3525,15 +3620,14 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) enddo !} - !> CALCULATE OCEAN EXPLICIT FLUX ON THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, CALCULATE OCEAN EXPLICIT FLUX BY CALLING ATMOS_OCEAN_DEP_FLUXES_CALC !{ call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) !} - !> MAP AIR_SEA_DEPOSITION FLUX FROM THE EXCHANGE GRID TO THE ICE GRID - !! BUT IF THE FLUX FIELD EXISTS IN DATA_TABLE, OVERWRITE DATA WITH - !! DATA_OVERRIDE. IF THE FIELD IS REGSITERED IN DIAG_MANAGER, SEND DATA - !! TO THE DIAG_MANAGER BUFFER + !> MAP AIR_SEA_DEPOSITION FLUX FROM THE EXCHANGE GRID TO THE ICE GRID FOLLOWED BY + !! CALL DATA_OVERRIDE WHERE DATA WILL BE OVERWRITTEN IF THE FLUX FIELDS + !! ARE SPECIFIED IN THE DATA_TABLE. SEND_DATA TO THE DIAG_MANAGER BUFFER !{ do n = 1, Ice_boundary%fluxes%num_bcs if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then @@ -3552,62 +3646,72 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) enddo !} - !> UPDATE ICE FIELDS THAT ARE LABELED AS AIR_SEA_DEOOSITION FLUXES + !> UPDATE ICE FIELDS THAT ARE LABELED AS AIR_SEA_DEOOSITION FLUXES BY CALLING UPDATE_ICE_ATM_DEPOSITION_FLUX call update_ice_atm_deposition_flux(Ice_boundary, Ice) end subroutine flux_atmos_to_ocean - !> \brief Converts 3D logical mask arrays to real arrays with values of 1.0 for true and - !! 0.0 for false before mapping the mask to the exchange grid - !! Internally used subroutine to convert Land%mask when using _USE_LEGACY_LAND_ + + !> Subroutine put_logical_to_real_sg maps 2D logical mask arrays to real arrays + !! where .true. -> 1.0 and .false. -> 0.0. The real array is then mapped + !! onto the exchange grid. This subroutine is used internally to convert Land%mask + !! on structured grid for example, when #ifndef _USE_LEGACY_LAND_ is false subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) implicit none - logical, intent(in) :: mask(:,:,:) !< land/ice mask to map to exchange grid - character(len=3), intent(in) :: id - real, intent(inout) :: ex_mask(:) !< converted mask on exchange grid + logical, intent(in) :: mask(:,:,:) !< land/ice mask + character(len=3), intent(in) :: id !< component id + real, intent(inout) :: ex_mask(:) !< mapped mask on exchange grid type(FmsXgridXmap_type), intent(inout) :: xmap real, dimension(size(mask,1),size(mask,2),size(mask,3)) :: rmask + !> MAP (LOGICAL) MASK TO RMASK + !{ where (mask) rmask = 1.0 elsewhere rmask = 0.0 endwhere + !} + !> MAP RMASK TO THE EXCHANGE GRID call fms_xgrid_put_to_xgrid(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_sg - !> \brief Converts 2D logical mask arrays to real arrays with values of 1.0 for true and - !! 0.0 for false before mapping the mask to the exchange grid - !! Internally used subroutine to convert Land%mask when not using _USE_LEGACY_LAND_ + !> Subroutine put_logical_to_real_ug maps 2D logical mask arrays to real arrays + !! where .true. -> 1.0 and .false. -> 0.0. The real array is then mapped + !! onto the exchange grid. This subroutine is used internally to convert Land%mask + !! on unstructured grid (when #ifndef _USE_LEGACY_LAND_ is true) subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) implicit none logical, intent(in) :: mask(:,:) !< mask on component grid - character(len=3), intent(in) :: id - real, intent(inout) :: ex_mask(:) !< converted mask on exchange grid + character(len=3), intent(in) :: id !< component id + real, intent(inout) :: ex_mask(:) !< mapped mask on exchange grid type(FmsXgridXmap_type), intent(inout) :: xmap - real, dimension(size(mask,1),size(mask,2)) :: rmask + !> MAP (LOGICAL) MASK TO RMASK + !{ where (mask) rmask = 1.0 elsewhere rmask = 0.0 endwhere + !} + !> MAP RMASK TO THE EXCHANGE GRID call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) end subroutine put_logical_to_real_ug !> Subroutine diag_field_init registers the diagnostic fields in this module to the diag_manager - !! Note, All diagnostic fields must be registered in diag_manager and all diagnostics fields + !! Note, diagnostic fields must be registered in diag_manager and all diagnostics fields !! must be specified in the diag_table in order for the data to be outputted !! to a NetCDF file at the end of the model run. This subroutine is called !! during module initialization in subroutine atm_land_ice_flux_exchange_init @@ -3630,7 +3734,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) integer :: tr ! tracer index integer :: area_id - !> Convert diagnostic labels from integers to strings + !> CONVERT DIAGNOSTIC LABELS FROM INTEGERS TO STRINGS !{ ! (z_ref_mom, z_ref_heat are namelist variables) iref = int(z_ref_mom+0.5) @@ -3648,12 +3752,14 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) else write (label_zh,110) z_ref_heat endif + !} 100 format (i1,' m',3x) 105 format (i2,' m',2x) 110 format (f4.1,' m') !} + !> CALL FMS_DIAG_REGISTER_DIAG_FIELD !--------- initialize static diagnostic fields -------------------- id_land_mask = & @@ -4170,8 +4276,9 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) end subroutine diag_field_init - !> Subroutine divide_by_area divides data on a grid by the grid cell area for cells - !! with non-zero area + !> Subroutine divide_by_area divides data on a grid by the grid cell area only for + !! cells with non-zero area. This subroutine iscurrently not used. Note, a + !! similar subroutine also exists in ice_ocean_flux_exchange_mod subroutine divide_by_area(data, area) implicit none @@ -4191,12 +4298,12 @@ subroutine divide_by_area(data, area) !} end subroutine divide_by_area - - !! If the ice_mask or sic variable have been registered with diag_manager, - !! this subroutine, send_ice_mask_sic, maps the fractional amount of sea ice + !> Subroutine send_ice_mask_sic sends the ice mask to diag_manager. + !! If the variables ice_mask or sic have been registered with diag_manager, + !! this subroutine maps the fractional amount of sea ice !! from the OCN grid to the ATM grid and sends the data to the diag_manager buffer. ! This was called inside flux_ocean_to_ice. Why? - SUBROUTINE SEND_ICE_MASK_SIC(TIME) + subroutine send_ice_mask_sic(time) implicit none type(fmstime_type), intent(in) :: time !< current time @@ -4210,16 +4317,18 @@ SUBROUTINE SEND_ICE_MASK_SIC(TIME) if(id_ice_mask > 0 .or. id_sic > 0) then !> INITIALIZE ICE_FRAC + !{ ice_frac = 1. ice_frac(:,:,1) = 0. ex_ice_frac = 0. + !} - !> MAP ICE_FRAC FROM THE OCN GRID TO THE EXCHANGE GRID + !> MAP ICE_MASK FROM THE OCN GRID TO THE EXCHANGE GRID !{ call fms_xgrid_put_to_xgrid(ice_frac, 'OCN', ex_ice_frac, xmap_sfc) !} - !> MAP ICE_FRAC FROM THE EXCHANGE GRID TO THE ATM GRID + !> MAP ICE_MASK FROM THE EXCHANGE GRID TO THE ATM GRID !{ call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_ice_frac, xmap_sfc) !} @@ -4251,11 +4360,10 @@ SUBROUTINE SEND_ICE_MASK_SIC(TIME) end subroutine send_ice_mask_sic - !####################################################################### !> Subroutine atm_stock_integrate integrates over the total precipitation !! (liquid and frozen) in the atmosphere and multiply the integrated value by - !! the timestep dt + !! the timestep dt. This subroutine is called in flux_exchange_mod/flux_check_stocks subroutine atm_stock_integrate(Atm, res) implicit none @@ -4270,8 +4378,6 @@ subroutine atm_stock_integrate(Atm, res) end subroutine atm_stock_integrate -!######################################################################### - end module atm_land_ice_flux_exchange_mod #undef FMS_DATA_OVERRIDE_ From 250e05445ed9051f1070e3e8a96d724806a1bbb6 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Thu, 2 Apr 2026 10:10:12 -0400 Subject: [PATCH 29/31] address comments --- full/atm_land_ice_flux_exchange.F90 | 4238 ++++++++++++++++----------- 1 file changed, 2468 insertions(+), 1770 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index 4ba08f7d..b2708041 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -19,146 +19,96 @@ !*********************************************************************** !> \file !> \brief Performs flux calculations and exchange grid operations for atmosphere, land and ice -!! \description - - -#undef FMS_DATA_OVERRIDE_ -#undef FMS_XGRID_PUT_TO_XGRID_ -#undef FMS_XGRID_STOCK_MOVE_ -#undef FMS_XGRID_SET_FRAC_AREA_ -#undef FMS_XGRID_GET_FROM_XGRID_ -#undef FMS_DIAG_REGISTER_FIELD_ - -#ifndef _USE_LEGACY_LAND_ -#define FMS_DATA_OVERRIDE_ fms_data_override_ug -#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid_ug -#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move_ug -#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area_ug -#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid_ug -#define FMS_DIAG_REGISTER_FIELD_ register_tiled_diag_field -#else -#define FMS_DATA_OVERRIDE_ fms_data_override -#define FMS_XGRID_PUT_TO_XGRID_ fms_xgrid_put_to_xgrid -#define FMS_XGRID_STOCK_MOVE_ fms_xgrid_stock_move -#define FMS_XGRID_SET_FRAC_AREA_ fms_xgrid_set_frac_area -#define FMS_XGRID_GET_FROM_XGRID_ fms_xgrid_get_from_xgrid -#define FMS_DIAG_REGISTER_FIELD_ fms_diag_register_diag_field -#endif module atm_land_ice_flux_exchange_mod ! atmos_drivers use atmos_model_mod, only: & - atm_stock_pe, & ! subroutine to compute the total stock in the atmospheric model atmos_data_type, & ! derived type containing fields needed for flux exchange between components land_ice_atmos_boundary_type ! derived type containing quantities going from land and ice to atmos - ! FMSCoupler/full - use atmos_ocean_dep_fluxes_calc_mod, only: & - atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes - - ! FMSCoupler/full - use atmos_ocean_fluxes_calc_mod, only: & - atmos_ocean_fluxes_calc ! subroutine to computes gas fluxes for atmosphere and ocean - - ! FMS/coupler - use atmos_ocean_fluxes_mod, only: & - atmos_ocean_fluxes_init ! subroutine initializes gas fluxes in coupler derived types - - ! am5_phys - use atmos_tracer_driver_mod, only: & - atmos_tracer_flux_init ! subroutine to initialize atmos_tracer_driver_mod - ! MOM6/SIS2 use ice_model_mod, only: & - atmos_ice_boundary_type, & ! derived type for flux exchange between atmosphere and sea ice ice_data_type, & ! derived type holding ice model data - ice_stock_pe, & ! subroutine to compute stocks of heat, water, etc for conservation checks - land_ice_boundary_type, & ! derived type for flux exchange between land and sea ice - ocean_ice_boundary_type, & ! derived type for flux exchange between ocean and sea ice - update_ice_atm_deposition_flux ! updates fluxes of type "air_sea_deposition" + land_ice_boundary_type, & ! derived type for flux exchange between land and sea ice + ocean_ice_boundary_type ! derived type for flux exchange between ocean and sea ice + use ice_model_mod, only: & + atmos_ice_boundary_type, ! derived type for flux exchange between atmosphere and sea ice + use ice_model_mod, only: & + update_ice_atm_deposition_flux ! updates fluxes of type "air_sea_deposition ! Land_lad2 use land_model_mod, only: & - atmos_land_boundary_type, & ! derived type to pass information from atmosphere to land land_data_type, & ! derived type to pass information from land to atmosphere - lnd_stock_pe ! subroutine to compute stocks of conservative land quantities - - ! If not _USE_LEGACY_LAND_, use land_lad2/land_tile_diag_mod instead of FMS/diag_manager -#ifndef _USE_LEGACY_LAND_ - use land_model_mod, only: & - dump_tile_diag_fields, & ! subroutine for workaround with Intel compilers and OpenMP - register_tiled_diag_field, & ! subroutine to register diag field within the land model - send_tile_data, & ! subroutine to save data in buffer within the land model for the registered field - set_default_diag_filter ! subroutine to set default tile diagnostic selector -#endif - - ! MOM6 - use ocean_model_mod, only: & - ice_ocean_boundary_type, & !derived type containing the forcings - ocean_model_init_sfc, & ! subroutine to extracts surface properties from the ocean's internal state - ocean_model_data_get, & ! interface procedure to extract scalar fields from ocean surface or ocean_public type - ocean_model_flux_init, & ! subroutine to initializes the properties from air-sea fluxes - ocean_public_type, & ! derived type used in FMScoupler to communicate with other model components - ocean_state_type, & ! derived type containing the state of the ocean - Ocean_stock_pe ! subroutine to computes integrated stocks of heat, water, etc. for conservation checks + atmos_land_boundary_type ! derived type to pass information from atmosphere to land ! FMSCoupler/shared use surface_flux_mod, only: & surface_flux, & ! subroutine to compute fluxes on exchange grids surface_flux_init ! subroutine to initialize surface_flux_mod + ! FMSCoupler/full + use atmos_ocean_fluxes_calc_mod, only: & + atmos_ocean_fluxes_calc ! subroutine to computes gas fluxes for atmosphere and ocean + + ! FMSCoupler/full + use atmos_ocean_dep_fluxes_calc_mod, only: & + atmos_ocean_dep_fluxes_calc ! subroutine to compute ocean and atmosphere deposition gas fluxes + + ! land_lad2 +#ifndef _USE_LEGACY_LAND_ + use land_model_mod, only: & + set_default_diag_filter, & ! subroutine to set default tile diagnostic selector + register_tiled_diag_field ! subroutine to register diag field within the land model + use land_model_mod, only: & + send_tile_data, & ! subroutine to save data in buffer within the land model for the registered field + dump_tile_diag_fields ! subroutine for workaround with Intel compilers and OpenMP +#endif + ! am5_phys #ifndef use_AM3_physics + use atmos_tracer_driver_mod, only: & + atmos_tracer_has_surf_setl_flux, & ! function returns True if tracer sedimentation flux > 0 at bottom of atm + get_atmos_tracer_surf_setl_flux ! subroutine to retrieve tracer sedimentation flux at bottom of atm + use atmos_tracer_driver_mod, only: atmos_tracer_driver_gather_data_down use atmos_cmip_diag_mod, only: & - register_cmip_diag_field_2d !function to register CMIP diagnostic data + register_cmip_diag_field_2d ! function to register CMIP diagnostic data use atmos_global_diag_mod, only: & - get_global_diag_field_id, & ! function to retrieve internally-tracked id of the global diag field register_global_diag_field, & ! function that calls FMS/register_diag_field for globally averaged data + get_global_diag_field_id, & ! function to retrieve internally-tracked id of the global diag field send_global_diag ! function that calls FMS/diag_manager/send_data for global fields - use atmos_tracer_driver_mod, only & - atmos_tracer_has_surf_setl_flux, & - !function returns True if tracer sedimentation flux > 0 at bottom of the atmosphere - get_atmos_tracer_surf_setl_flux, & - !subroutine to retrieve tracer sedimentation flux at bottom of the atmosphere - atmos_tracer_driver_gather_data_down #ifndef _USE_LEGACY_LAND_ use land_model_mod, only: & send_global_land_diag ! function to save land model field on unstructured grid for global integral #endif #endif - ! option to override various surface boundary conditions for SCM + #ifdef SCM - use scm_forc_mod, only: & - ALBEDO_OBS, & - do_specified_albedo, & - do_specified_land, & - do_specified_rough_leng, & - do_specified_tskin, & - do_specified_flux, & - ROUGH_MOM, & - ROUGH_HEAT, & - scm_surface_flux, & - TSKIN + ! option to override various surface boundary conditions for SCM + use scm_forc_mod, only: do_specified_flux, scm_surface_flux, & + do_specified_tskin, TSKIN, & + do_specified_albedo, ALBEDO_OBS, & + do_specified_rough_leng, ROUGH_MOM, ROUGH_HEAT, & + do_specified_land #endif - use FMS ! mainly for calls to diag_manager, data_override, and exchange + use FMS use FMSconstants, only: & + rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] + rvgas, & ! 461.50, gas constant for water vapor cp_air, & ! RDGAS/KAPPA , specific heat capacity of dry air at constant pressure [J/kg/deg] - CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] - EPSLN, & ! 1.0e-40, a small number to prevent divide by zero exceptions - GRAV, & ! 9.80, acceleration due to gravity [m/s^2] - HLF, & ! 3.34e5, latent heat of fusion [J/kg] + stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] + WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] HLV, & ! 2.500e6, latent heat of evaporation [J/kg] - PI, & ! 3.14159265358979323846 + HLF, & ! 3.34e5, latent heat of fusion [J/kg] Radius, & ! 6371.0e+3, radius of the Earth [m] - rdgas, & ! 287.04, gas constant for dry air [J/kg/deg] - rvgas, & ! 461.50, gas constant for water vapor - stefan, & ! 5.6734e-8, Stefan-Boltzmann constant [W/m^2/deg^4] - WTMC, & ! 12.00000, molecular weight of carbon [amu] + PI, & ! 3.14159265358979323846 + CP_OCEAN, & ! 3989.24495292815, specific heat capacity [J/kg/deg] WTMCO2, & ! 44.00995, molecular weight of carbon dioxide [amu] - WTMAIR, & ! 2.896440e+01, molecular weight of air [amu] + WTMC, & ! 12.00000, molecular weight of carbon [amu] + EPSLN, & ! 1.0e-40, a small number to prevent divide by zero exceptions + GRAV, & ! 9.80, acceleration due to gravity [m/s^2] WTMH2O ! WTMAIR*(RDGAS/RVGAS) molecular weight of water [amu] implicit none @@ -172,19 +122,17 @@ module atm_land_ice_flux_exchange_mod flux_down_from_atmos, & flux_up_to_atmos, & flux_atmos_to_ocean, & - flux_ex_arrays_dealloc, & + flux_ex_arrays_dealloc,& atm_stock_integrate, & send_ice_mask_sic + + !> coupler version number that is set automatically during compile time + character(len=128) :: version = '$Id$' - interface put_logical_to_real - module procedure put_logical_to_real_sg - module procedure put_logical_to_real_ug - end interface - - character(len=128) :: version = '$Id$' !< coupler version number that is set automatically during compile time - character(len=128) :: tag = '$Name$' !< coupler tag that is set automatically during compile time + !> coupler tag that is set automatically during compile time + character(len=128) :: tag = '$Name$' - !> FmsXgridXmap_type that holds the exchange grid between different componentes + !> FmsXgridXmap_type that holds the exchange grid between different components type(FmsXgridXmap_type), save :: xmap_sfc !> total number of exchange grid cells @@ -194,186 +142,332 @@ module atm_land_ice_flux_exchange_mod character(len=4), parameter :: mod_name = 'flux' integer :: & - id_b_star, & !< diag_manager register field id for 'bouyancy scale' - id_del_h, & !< diag_manager register field id for 'ref height interp factor for for heat' - id_del_m, & !< diag_manager register field id for 'ref height interp factor for momentum' - id_del_q, & !< diag_manager register field id for 'ref height interp factor for moisture' - id_drag_heat, & !< diag_manager register field id for 'drag coefficient for heat' - id_drag_moist, & !< diag_manager register field id for 'drag coefficient for moisture' - id_drag_mom, & !< diag_manager register field id for 'drag coefficient for momentum' - id_gust, & !< diag_manager register field id for 'gust scale' - id_hussLut_land, & ! diag_manager register field id for 'drag coefficient for moisture' + id_drag_moist, & + !> diag_manager register field id for 'drag coefficient for heat' + id_drag_heat, & + !> diag_manager register field id for 'drag coefficient for momentum' + id_drag_mom, & + !> diag_manager register field id for 'surface roughness for moisture' + id_rough_moist, & + !> diag_manager register field id for 'surface roughness for heat' + id_rough_heat, & + !> diag_manager register field id for 'surface roughness for momentum' + id_rough_mom, & + ! diag_manager register field id for 'fractional amount of sea ice' + id_land_mask, & + !> diag_manager register field id for 'fractional amount of land' + id_ice_mask, & + !> diag_manager register field id for 'friction velocity' + id_u_star, & + !> diag_manager register field id for 'bouyancy scale' + id_b_star, & + !> diag_manager register field id for 'moisture scale' + id_q_star, & + !> diag_manager register field id for 'zonal wind stress' + id_u_flux, & + !> diag_manager register field id for 'meridional wind stress' + id_v_flux, & + !> diag_manager register field id for 'surface temperature' + id_t_surf, & + !> diag_manager register field id for 'surface temperature from ocean output' + id_t_ocean, & + !> diag_manager register field id for 'sensible heat flux' + id_t_flux, & + !> diag_manager register field id for 'net (down-up) longwave flux' + id_r_flux, & + !> diag_manager register field id for 'evaporation rate' + id_q_flux, & + !> diag_manager register field id for 'sea level pressure' + id_slp, & + !> diag_manager register field id for 'temperature at lowest atmospheric level' + id_t_atm, & + !> diag_manager register field id for 'u wind component at lowest atmospheric level' + id_u_atm, & + !> diag_manager register field id for 'v wind component at lowest atmospheric level' + id_v_atm, & + !> diag_manager register field id for 'wind speed for flux calculations' + id_wind, & + !> diag_manager register field id for 'surface air virtual potential temperature' + id_thv_atm, & + !> diag_manager register field id for 'surface virtual potential temperature' + id_thv_surf, & + !> diag_manager register field id for 'temperature at z_ref_heat' + id_t_ref, & + !> diag_manager register field id for 'relative humidity at z_ref_heat' + id_rh_ref, & + !> diag_manager register field id for 'zonal wind component at z_ref_mom' + id_u_ref, & + !> diag_manager register field id for 'meridional wind component at z_ref_mom' + id_v_ref, & + !> diag_manager register field id for 'absolute value of wind at z_ref_mom' + id_wind_ref, & + !> diag_manager register field id for 'ref height interp factor for for heat' + id_del_h, & + !> diag_manager register field id for 'ref height interp factor for momentum' + id_del_m, & + !> diag_manager register field id for 'ref height interp factor for moisture' + id_del_q, & + !> diag_manager register field id for 'topographic scaling fractor for momentum drag' + id_rough_scale, & + !> diag_manager register field id for 'canopy air temperature' + id_t_ca, & + !> diag_manager register field id for 'height of lowest atmospheric level' + id_z_atm, & + !> diag_manager register field id for 'pressure at lowest atmospheric level' + id_p_atm, & + !> diag_manager register field id for 'gust scale' + id_gust, & + !> diag_manager register field id for 'temperature at z_ref_heat over land' + id_t_ref_land, & + !> diag_manager register field id for 'relative humidity at z_ref_heat over land' + id_rh_ref_land, & + !> diag_manager register field id for 'zonal wind component at z_ref_mom over land' + id_u_ref_land, & + !>diag_manager register field id for 'meridional wind component at z_ref_mom over land' + id_v_ref_land, & + !> diag_manager register field id for 'specific humidity at z_ref_heat' + id_q_ref, & + !> diag_manager register field id for 'specific humidity at z_ref_heat over land' + id_q_ref_land, & + !> diag_manager register field id for 'evaporation rate over land' + id_q_flux_land, & + !> diag_manager register field id for 'relative humidity at z_ref_heat' + id_rh_ref_cmip, & + !>diag_manager register field id for 'near-surface specific humidity on land use tile' + id_hussLut_land, & + !> diag_manager register field id for 'near-surface air temperature at + !! z_ref_heat above displacement height on land-use tile' + id_tasLut_land, & + !> diag_manager register field id for 'sensible heat flux over land' + id_t_flux_land + + integer :: & + !> diag_manager register field id for 'co2 dry volume mixing ratio at lowest atmospheric level' id_co2_atm_dvmr, & - !< diag_manager register field id for 'co2 dry volume mixing ratio at lowest atmospheric level' - id_co2_surf_dvmr, & !< diag_manager register field id for 'c02 dry volume mixing ratio at surface' - ! 2017/08/15 jgj added - id_co2_bot, & !< diag_manager register field id for 'concentration of co2 to be passed to land/photosynthesis' - id_co2_flux_pcair_atm, & !< diag_manager register field id for 'concentration of co2 to be passed to ocean' - id_o2_flux_pcair_atm !< diag_manager register field id for 'concentration of o2 to be passed to to ocean' + !> diag_manager register field id for 'c02 dry volume mixing ratio at surface' + id_co2_surf_dvmr + + integer :: & + !> diag_manager register field id for 'concentration of co2 to be passed to land/photosynthesis' + id_co2_bot, & + !> diag_manager register field id for 'concentration of co2 to be passed to ocean' + id_co2_flux_pcair_atm, & + !> diag_manager register field id for 'concentration of o2 to be passed to to ocean' + id_o2_flux_pcair_atm + + integer, allocatable :: & + !> array of diag_manager register field ids for 'tracers at lowest atmospheric level' + id_tr_atm(:), & + !> array of diag_manager register field ids for 'tracers at surface' + id_tr_surf(:), & + !> array of diag_manager register field ids for 'tracers fluxes' + id_tr_flux(:), & + !> array of diag_manager register field ids for 'flux of co2 concentration in [mol/m2*s]' + id_tr_mol_flux(:), & + !> array of diag_manager register field ids for 'tracers at z_ref_heat' + id_tr_ref(:), & + !> array of diag_manager register field ids for 'tracer flux at z_ref_heat over land' + id_tr_ref_land(:) + + + integer, allocatable :: & + !> array of diag_manager register field ids for 'gross flux of tracer concentration over land in [mol/m2*s]' + id_tr_mol_flux0(:) integer, allocatable :: & - id_tr_atm(:), & !< array of diag_manager register field ids for 'tracers at lowest atmospheric level' - id_tr_surf(:), & !< array of diag_manager register field ids for 'tracers at surface' - id_tr_flux(:), & !< array of diag_manager register field ids for 'tracers fluxes' - id_tr_mol_flux(:), & !< array of diag_manager register field ids for 'flux of co2 concentration in [mol/m2*s]' - id_tr_ref(:), & !< array of diag_manager register field ids for 'tracers at z_ref_heat' - id_tr_ref_land(:), & !< array of diag_manager register field ids for 'tracer flux at z_ref_heat over land' - !f1p - id_tr_mol_flux0(:), & - !< array of diag_manager register field ids for 'gross flux of tracer concentration over land in [mol/m2*s]' + !> array of diag_manager register field ids for 'flux of tracer concentration over land in [kg/m2*s]' id_tr_flux_land(:), & - !< array of diag_manager register field ids for 'flux of tracer concentration over land in [kg/m2*s]' - id_tr_mol_flux_land(:), & - !< array of diag_manager register field ids for 'flux of tracer concentration over land in [mol/m2*s]' - id_tr_con_atm(:), & - !< array of diag_manager register field ids for 'deposition velocity at lowest atmospheric level (atm)'. - !! Used only when _USE_LEGACY_LAND_ macro is set at compile time + !> array of diag_manager register field ids for 'flux of tracer concentration over land in [mol/m2*s]' + id_tr_mol_flux_land(:) + integer, allocatable :: & + !> array of diag_manager register field ids for 'deposition velocity at lowest atmospheric level over land' + !! Used only when _USE_LEGACY_LAND_ macro is set at compile time id_tr_con_atm_land(:), & - !< array of diag_manager register field ids for 'deposition velocity at lowest atmospheric level over land' - !! Used only when _USE_LEGACY_LAND_ macro is set at compile time - id_tr_con_ref(:), & - !< array of diag_manager register field ids for 'deposition velocity at reference height (atm)' + !> array of diag_manager register field id for 'deposition velocity at reference height over land' id_tr_con_ref_land(:) - !< array of diag_manager register field id for 'deposition velocity at reference height over land' + integer, allocatable :: & + !> array of diag_manager register field ids for 'deposition velocity at lowest atmospheric level (atm)'. + !! Used only when _USE_LEGACY_LAND_ macro is set at compile time + id_tr_con_atm(:), & + !> array of diag_manager register field ids for 'deposition velocity at reference height (atm)' + id_tr_con_ref(:) + ! id's for cmip specific fields integer :: & - id_evspsbl, & !< diag_manager register field id for 'water evaporation flux' (cmip) - id_height10m, & !< diag_manager register field id for 'near surface height' (cmip) - id_height2m, & !< diag_manager register field id for 'near surface height' (cmip) - id_hfls, & !< diag_manager register field id for 'surface upward latent heat flux' (cmip) - id_hfss, & !< diag_manager register field id for 'surface upward sensible heat flux' (cmip) - id_hurs, & !< diag_manager register field id for 'near-surface relative humidty' (cmip) - id_huss, & !< diag_manager register field id for 'near-surface specific humidity' (cmip) - id_psl, & !< diag_manager register field id for 'air pressure at sea level' (cmip) - id_rhs, & !< diag_manager register field id for 'near-surface relative humidty' (cmip) - id_sfcWind, & !< diag_manager register field id for 'near-surface wind speed' (cmip) - id_sftlf, & !< diag_manager register field id for 'fraction of the grid cell occupied by land' (cmip) - id_sic, & !< diag_manager register field id for 'sea ice area fraction' (cmip) - id_tas, & !< diag_manager register field id for 'near-surface air temperature' (cmip) - id_tauu, & !< diag_manager register field id for 'surface downward eastward wind stress' (cmip) - id_tauv, & !< diag_manager register field id for 'surface downward northward wind stress' (cmip) - id_tos, & !< diag_manager register field id for 'sea surface temperature' (cmip) - id_ts, & !< diag_manager register field id for 'surface temperature' (cmip) - id_tslsi, & !< diag_manager register field id for 'surface temperature on land or sea ice' (cmip) - id_uas, & !< diag_manager register field id for 'eastward near-surface wind' (cmip) - id_vas !< diag_manager register field id for 'northward near-surface wind' (cmip) - - ! globally averaged diagnostics - integer :: & - id_evspsbl_g, & !< diag_manager register field id for 'global integral of water evaporation flux' - id_hfls_g, & !< diag_manager register field id for 'global integral of surface upward latent heat flux' - id_hfss_g, & !< diag_manager register field id for 'global integral of surface upward sensible heat flux' - id_rls_g, & !< diag_manager register field id for 'global integral of near-surface relative humidty' - id_tas_g, & !< diag_manager register field id for 'global integral of near-surface air temperature' - id_tasl_g, & !< diag_manager register field id for 'global integral of near-surface air temperature on land' - id_ts_g !< diag_manager register field id for 'global integral of surface temperature' + !> diag_manager register field id for 'near-surface air temperature' (cmip) + id_tas, & + !> diag_manager register field id for 'eastward near-surface wind' (cmip) + id_uas, & + !> diag_manager register field id for 'northward near-surface wind' (cmip) + id_vas, & + !> diag_manager register field id for 'surface temperature' (cmip) + id_ts, & + !> diag_manager register field id for 'air pressure at sea level' (cmip) + id_psl, & + !> diag_manager register field id for 'near-surface wind speed' (cmip) + id_sfcWind, & + !> diag_manager register field id for 'surface downward eastward wind stress' (cmip) + id_tauu, & + !> diag_manager register field id for 'surface downward northward wind stress' (cmip) + id_tauv, & + !> diag_manager register field id for 'near-surface relative humidty' (cmip) + id_hurs, & + !> diag_manager register field id for 'near-surface specific humidity' (cmip) + id_huss, & + !> diag_manager register field id for 'water evaporation flux' (cmip) + id_evspsbl, & + !> diag_manager register field id for 'surface upward latent heat flux' (cmip) + id_hfls, & + !> diag_manager register field id for 'surface upward sensible heat flux' (cmip) + id_hfss, & + !> diag_manager register field id for 'near-surface relative humidty' (cmip) + id_rhs, & + !> diag_manager register field id for 'fraction of the grid cell occupied by land' (cmip) + id_sftlf, & + !> diag_manager register field id for 'sea surface temperature' (cmip) + id_tos, & + !> diag_manager register field id for 'sea ice area fraction' (cmip) + id_sic, & + !> diag_manager register field id for 'surface temperature on land or sea ice' (cmip) + id_tslsi, & + !> diag_manager register field id for 'near surface height' (cmip) + id_height2m, & + !> diag_manager register field id for 'near surface height' (cmip) + id_height10m + integer :: & + !> diag_manager register field id for 'global integral of water evaporation flux' + id_evspsbl_g, & + !> diag_manager register field id for 'global integral of surface temperature' + id_ts_g, & + !> diag_manager register field id for 'global integral of near-surface air temperature' + id_tas_g, & + !> diag_manager register field id for 'global integral of near-surface air temperature on land' + id_tasl_g, & + !> diag_manager register field id for 'global integral of surface upward sensible heat flux' + id_hfss_g, & + !> diag_manager register field id for 'global integral of surface upward latent heat flux' + id_hfls_g, & + !> diag_manager register field id for 'global integral of near-surface relative humidty' + id_rls_g + + !>If true, saves land_mask, sftlf, height2m, and height10m once per file at first call to sf_boundary_layer logical :: first_static = .true. - ! true if atm_land_ice_flux_exchnge_init has been called + logical :: do_init = .true. + + !> first or second order conservative remapping onto exchange grid + integer :: remap_method = 1 + + !> rdgas/rvgas + real, parameter :: d622 = rdgas/rvgas + !> 1.0-d622 + real, parameter :: d378 = 1.0-d622 + !> d378/d622 + real, parameter :: d608 = d378/d622 + !> freezing point of water at 1 atm [K] + real, parameter :: tfreeze = 273.15 + !> frac_precip real, allocatable, dimension(:,:) :: frac_precip - !--- the following is from flux_exchange_nml - real :: z_ref_heat = 2. - !< reference height [m] for temperature and relative humidity diagnostics t_ref, rh_ref, del_h, and del_q + !> Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) + real :: z_ref_heat = 2. + !> Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) real :: z_ref_mom = 10. - !< reference height [m] for momentum diagnostics u_ref, v_ref, and del_m - logical :: do_area_weighted_flux = .FALSE. !< not used variable - logical :: do_forecast = .false. !< do_forecast - integer :: nblocks = 1 !< OpenMP number of threads + !> do_forecast + logical :: do_forecast = .false. + + !> OpenMP number of thread. Do loops on the exchange grid are parallelized into noblocks + integer :: nblocks = 1 + + !> If true, convert liquid precip to snow when t_ref < tfreeze + !! Used for atm override experiments where liquid and frozen precip are combined logical :: partition_fprec_from_lprec = .FALSE. - !< If true, convert liquid precip to snow when t_ref < tfreeze - !! Used for atm override experiments where liquid and frozen precip are combined - logical :: scale_precip_2d = .false. !< If true, scale mass of liqud preciptation - integer :: my_nblocks = 1 !< Initializing OpenMP parameter + !> If true, scale mass of liqud preciptation + logical :: scale_precip_2d = .false. + + !> Initializing OpenMP parameter + integer :: my_nblocks = 1 integer, allocatable :: & - block_start(:), & !< starting do loop indices for OpenMP thread - block_end(:) !< ending do loop indices for OpenMP thread + !> starting do loop indices for OpenMP thread + block_start(:), & + !> ending do loop indices for OpenMP thread + block_end(:) - real, allocatable, dimension(:) :: & - ! NOTE: T canopy is only differet from t_surf over vegetated land - ex_albedo_fix, & !< albedo_fix on the exchange grid (TO CLARIFY) - ex_albedo_nir_dif_fix, & !< albedo_nir_dif_fix on the exchange grid (TO CLARIFY) - ex_albedo_nir_dir_fix, & !< albedo_nir_dir_fix on the exchange grid (TO CLARIFY) - ex_albedo_vis_dif_fix, & !< albedo_vis_dif_fix on the exchange grid (TO CLARIFY) - ex_albedo_vis_dir_fix, & !< albedo_vis_dir_fix on the exchange grid (TO CLARIFY) - ex_b_star, & !< boyuancy scale on the exchange grid - ex_cd_m, & !< drag coefficient for momentum on the exchange grid - ex_cd_t, & !< drag coefficient for heat on the exchange grid - ex_con_atm, & !< deposition velocity at lowest atmospheric level on the exchange grid - ex_dedt_surf, & !< d(water.vap.flux)/d(T canopy) on the exchange grid - ex_dhdt_atm, & !< d(sens.heat.flux)/d(T atm) on the exchange grid - ex_dhdt_surf, & !< d(sens.heat.flux)/d(T canopy) on the exchange grid - ex_dqsatdt_surf, & !< d(water.vap.flux)/d(q canopy) on the exchange grid - ex_drag_q, & !< q drag coefficient on the exchange grid - ex_drdt_surf, & !< d(LW flux)/d(T surf) on the exchange grid - ex_dtaudu_atm, & !< d(stress)/d(u) on the exchange grid - ex_dtaudv_atm, & !< d(stress)/d(v) on the exchange grid - ex_e_q_n, & !< dt/mass * dedet_surf * gamma on the exchange grid - ex_flux_lw, & !< longwave radiation flux on the exchange grid - ex_flux_t, & !< sens heat flux on the exchange grid - ex_flux_u, & !< u stress on atmosphere on the exchange grid - ex_flux_v, & !< v stress on atmosphere on the exchange grid - ex_old_albedo, & !< old value of albedo for downward flux calculations on the exchange grid - ex_p_surf, & !< surface pressure on exchange grid on the exchange grid - ex_seawater, & !< mask array of seaice fractions on the exchange grid - ex_slp, & !< surface pressure on exchange grid - ex_t_ca, & !< near-surface (canopy) air temperature on exchange grid [K] - ex_t_surf, & !< surface temperature for radiation calc on exchange grid [K] - ex_t_surf_miz, & !< array on the exchange grid (TO CLARIFY) - ex_u_star, & !< friction velocity on exchange grid - ex_wind, & !< wind speed on exchange grid - ex_z_atm !< height of lowest atmospheric level on exchange grid + real, allocatable, dimension(:) :: & + !> surface temperature for radiation calc on exchange grid [K] + !! Note, T canopy is only differet from t_surf over vegetated land + ex_t_surf, & + !> no documentation + ex_t_surf_miz, & + !> near-surface (canopy) air temperature on exchange grid [K] + ex_t_ca, & + !> surface pressure on exchange grid on the exchange grid + ex_p_surf, & + !> surface pressure on exchange grid + ex_slp, & + !> sens heat flux on the exchange grid + ex_flux_t, & + !> longwave radiation flux on the exchange grid + ex_flux_lw, & + !> d(sens.heat.flux)/d(T canopy) on the exchange grid + ex_dhdt_surf, & + !> d(water.vap.flux)/d(T canopy) on the exchange grid + ex_dedt_surf, & + !> d(water.vap.flux)/d(q canopy) on the exchange grid + ex_dqsatdt_surf, & + !> dt/mass * dedet_surf * gamma on the exchange grid + ex_e_q_n, & + !> d(LW flux)/d(T surf) on the exchange grid + ex_drdt_surf, & + !> d(sens.heat.flux)/d(T atm) on the exchange grid + ex_dhdt_atm, & + !> u stress on atmosphere on the exchange grid + ex_flux_u, & + !> v stress on atmosphere on the exchange grid + ex_flux_v, & + !> d(stress)/d(u) on the exchange grid + ex_dtaudu_atm, & + !> d(stress)/d(v) on the exchange grid + ex_dtaudv_atm, & + !> mask array of seaice fractions on the exchange grid. + !! Takes value of 1 when there is any open water in the OCN grid cell. + !! Takes value of 0 when there is no open water in the OCN grid cell (i.e, + !! totally covered with ice or land). Note, ex_seawater should not be + !! mistaken with ex_avail where ex_avail is 1 for all OCN grid cells regardless + !! of sea-ice coverage. + ex_seawater, & + !> no documentation + ex_albedo_vis_dir_fix, & + !> no documentation + ex_albedo_nir_dir_fix, & + !> no documentation + ex_albedo_vis_dif_fix, & + !> no documentation + ex_albedo_nir_dif_fix, & + !> q drag coefficient on the exchange grid + ex_drag_q, & + !> drag coefficient for heat on the exchange grid + ex_cd_t, & + !> drag coefficient for momentum on the exchange grid + ex_cd_m, & + !> boyuancy scale on the exchange grid + ex_b_star, & + !> friction velocity on exchange grid + ex_u_star, & + !> wind speed on exchange grid + ex_wind, & + !> height of lowest atmospheric level on exchange grid + ex_z_atm, & + !> deposition velocity at lowest atmospheric level on the exchange grid + ex_con_atm + + #ifdef SCM real, allocatable, dimension(:) :: & ex_dhdt_surf_forland, & @@ -382,171 +476,224 @@ module atm_land_ice_flux_exchange_mod #endif real, allocatable, dimension(:,:) :: & - ex_dfdtr_atm, & !< d(tracer flux)/d(atm tracer) on the exchange grid - ex_dfdtr_surf, & !< d(tracer flux)/d(surf tracer) on the exchange grid - ex_e_tr_n, & !< coefficient in implicit scheme on the exchange grid - ex_f_tr_delt_n, & !< coefficient in implicit scheme on the exchange grid - ex_flux_tr, & !< tracer fluxes on the exchange grid - ex_tr_con_ref, & !< deposition velocity at reference height on the exchange grid - ex_tr_con_atm, & !< deposition velocity at atmospheric height on the exchange grid - ex_tr_surf !< near-surface tracer fields on the exchange grid + !> surface temperature for radiation calc on exchange grid [K] + ex_tr_surf, & + !> tracer fluxes on the exchange grid + ex_flux_tr, & + !> d(tracer flux)/d(surf tracer) on the exchange grid + ex_dfdtr_surf, & + !> d(tracer flux)/d(atm tracer) on the exchange grid + ex_dfdtr_atm, & + !> coefficient in implicit scheme on the exchange grid + ex_e_tr_n, & + !> coefficient in implicit scheme on the exchange grid + ex_f_tr_delt_n + real, allocatable, dimension(:,:) :: & + !> deposition velocity at reference height on the exchange grid + ex_tr_con_ref, & + !> deposition velocity at atmospheric height on the exchange grid + ex_tr_con_atm + logical, allocatable, dimension(:) :: & - ex_avail, & !< true where data on exchange grid are available - ex_land !< true if exchange grid cell is over land + !> true where exchange grid cell is over ocean and/or seaice + ex_avail,& + !> true where exchange grid cell is over land + ex_land real, allocatable, dimension(:) :: & - ex_e_t_n, & !< temporary array on the exchange grid (TO CLARIFY) - ex_f_t_delt_n !< temporary array on the exchange grid (TO CLARIFY) - - integer :: n_atm_tr !< number of prognostic tracers in the atmos model - integer :: n_atm_tr_tot !< number of prognostic tracers in the atmos model - integer :: n_lnd_tr !< number of prognostic tracers in the land model - integer :: n_lnd_tr_tot !< number of prognostic tracers in the land model - integer :: n_exch_tr !< number of tracers exchanged between models - integer :: n_gex_atm2lnd !< number of gex fields exchanged between land and atmosphere - integer :: n_gex_lnd2atm !< number of gex fields exchanged between atmosphere and land - + !> no documentation + ex_e_t_n, & + !> no documentation + ex_f_t_delt_n + + !> number of prognostic tracers in the atmos model + integer :: n_atm_tr + !> number of prognostic tracers in the atmos model + integer :: n_atm_tr_tot + !> number of prognostic tracers in the land model + integer :: n_lnd_tr + !> number of prognostic tracers in the land model + integer :: n_lnd_tr_tot + !> number of tracers exchanged between models + integer :: n_exch_tr + !> number of gex fields exchanged between land and atmosphere + integer :: n_gex_atm2lnd + !> number of gex fields exchanged between atmosphere and land + integer :: n_gex_lnd2atm + + !> derived type to hold the index of the tracer in atm, ice, land models type :: tracer_ind_type - integer :: atm !< tracer index in atm model - integer :: ice !< tracer index in ice model - integer :: lnd !< tracer index in lnd model + integer :: atm, ice, lnd end type tracer_ind_type - type(tracer_ind_type), allocatable :: tr_table(:) !< table of tracers passed through flux exchange + !> table of tracers passed through flux exchange + type(tracer_ind_type), allocatable :: tr_table(:) + + !> derived type to hold index of the tracer on the exchange grid, ice, and land models type :: tracer_exch_ind_type - integer :: exch = 0 !< exchange grid index - integer :: ice = 0 !< ice model index - integer :: lnd = 0 !< land model index + integer :: exch = 0 + integer :: ice = 0 + integer :: lnd = 0 end type tracer_exch_ind_type - type(tracer_exch_ind_type), allocatable :: tr_table_map(:) !< map atm tracers to exchange, ice and land variables + !> map atm tracers to exchange, ice and land variables + type(tracer_exch_ind_type), allocatable :: tr_table_map(:) - integer :: isphum = NO_TRACER !< tracer index for specific humidity - integer :: ico2 = NO_TRACER !< tracer index for co2 - integer :: inh3 = NO_TRACER !< tracer index for nh3 + !> specific humidity index. Initialized as NO_TRACER + integer :: isphum = NO_TRACER + !> co2 tracer index. Initialized as NO_TRACER + integer :: ico2 = NO_TRACER + !> nh3 tracer index. Initialized as NO_TRACER + integer :: inh3 = NO_TRACER - type(fmscoupler1dbc_type), pointer :: ex_gas_fields_atm=>NULL() !< atm gas place holder - type(fmscoupler1dbc_type), pointer :: ex_gas_fields_ice=>NULL() !< gas fields on ice - type(fmscoupler1dbc_type), pointer :: ex_gas_fluxes=>NULL() - !< gas flux place holder of intermediate calculations, such as piston velocities etc. + !> atm gas fields, Used as place holder for atmospheric fields + type(FmsCoupler1dBC_type), pointer :: ex_gas_fields_atm=>NULL() - !real, dimension(3) :: ccc !< for conservation checks + !> ice gas fields. Used as place holder for ice fields + type(FmsCoupler1dBC_type), pointer :: ex_gas_fields_ice=>NULL() - !balaji, sets boundary_type%xtype - integer, parameter :: & - regrid=1, & !< boundary_type%xtype where grids are physically different, pass via exchange grid - redist=2, & !< boundary_type%xtype where same physical grid, different decomposition, must move data around - redirect=3 !< boundary_type%xtype same physical grid, same domain decomposition, can directly copy data + !> gas flux fields. Used as place holder for intermediate calculations such as piston velocities + type(FmsCoupler1dBC_type), pointer :: ex_gas_fluxes=>NULL() - integer :: & - cplClock, & !< FMS clock id for profiling general processes - sfcClock, & !< FMS clock id for profiling sfc_boundary_layer - fluxAtmDnClock, & !< FMS clock id for profiling flux down from atmosphere - regenClock, & !< FMS clock for profiling exchange grid generation - fluxAtmUpClock !< FMS clock for profiling flux up to atmosphere + interface put_logical_to_real + module procedure put_logical_to_real_sg + module procedure put_logical_to_real_ug + end interface integer :: & - X1_GRID_ATM, & !< =1, exchange grid index for xgrid_stock_move - X1_GRID_ICE, & !< =2, exchange grid index for xgrid_stock_move - X1_GRID_LND !< =3 exchange grid index for xgrid_stock_move - - real :: & - Dt_atm, & !< atmospheric timestep [s] - Dt_cpl !< coupled timestep [s] - + !> number of x gridpoints in the atm compute domain + ni_atm, & + !> number of y gridpoints in the atm compute domain + nj_atm + + integer, parameter :: & + !> flag to set boundary_type%xtype when grids are physically different and data between model components + !! needs to be exchanged via the exchange grid + REGRID=1, & + !> flag to set boundary_type%xtype when grids are physically same, but differ in domain decomposition. + REDIST=2, & + !> flag to set boundary_type%xtype when grids and domaisn are identical and data can be + !! copied directly beteween components + DIRECT=3 + integer :: & - ni_atm, & !< number of x gridpoints in the atm compute domain - nj_atm !< number of y gridpoints in the atm compute domain - + !> FMS clock id for profiling general processes + cplClock, & + !> FMS clock id for profiling sfc_boundary_layer + sfcClock, & + !> FMS clock id for profiling flux down from atmosphere + fluxAtmDnClock, & + !> FMS clock for profiling exchange grid generation + regenClock, & + !> FMS clock for profiling flux up to atmosphere + fluxAtmUpClock + integer :: & - nxc_ice=0, & !< number of x gridpoints in ice compute domain - nyc_ice=0, & !< number of y gridpoints in ice compute domain - nk_ice=0 !< number of vertical levels in ice + !> exchange grid index for xgrid_stock_move. Set to value of 1 + X1_GRID_ATM, & + !> exchange grid index for xgrid_stock_move. Set to value of 2 + X1_GRID_ICE, & + !> exchange grid index for xgrid_stock_move. Set to value of 3 + X1_GRID_LND + real :: & + !> atmospheric timestep [s] + Dt_atm, & + !> coupled timestep [s] + Dt_cpl + integer :: & - nxc_lnd=0, & !< number of x gridpoints in land compute domain - nyc_lnd=0 !< number of y gridpoints in land compute domain + !> number of x gridpoints in ice compute domain + nxc_ice=0, & + !> number of y gridpoints in ice compute domain + nyc_ice=0, & + !> number of vertical levels in ice + nk_ice=0 + + integer :: & + !> number of x gridpoints in land compute domain + nxc_lnd=0, & + !> number of y gridpoints in land compute domain + nyc_lnd=0 contains - !####################################################################### !> Subroutine atm_land_ice_flux_exchange_init initializes atm_land_ice_flux_exchange_mod by !! allocating and seting default values for module level variable; and calling initialization routines !! in FMS modules. This subroutine must be called before calling any other public procedures in this - !! module. + !! module subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary, & Dt_atm_in, Dt_cpl_in, z_ref_heat_in, z_ref_mom_in, do_area_weighted_flux_in, do_forecast_in, & partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, & ex_gas_fields_ice_in, ex_gas_fluxes_in) - implicit none + !> current model time type(FmsTime_type), intent(in) :: Time - !< model's current time + !> derived data type holding atmosphere boundary data type(atmos_data_type), intent(inout) :: Atm - !< derived data type to specify atmosphere boundary data + !> derived data type holding land boundary data type(land_data_type), intent(in) :: Land - !< derived data type to specify land boundary data - type(ice_data_type), intent(inout) :: Ice - !< derived data type to specify ice boundary data + !>derived data type holding ice boundary data + type(ice_data_type), intent(inout) :: Ice + !> derived type holding properties and fluxes passed from atmosphere to ice type(atmos_ice_boundary_type), intent(inout) :: atmos_ice_boundary - !< derived type to specify properties and fluxes passed from atmosphere to ice - type(land_ice_atmos_boundary_type), intent(inout) :: land_ice_atmos_boundary - !< derived type to specify properties and fluxes passed from exchange grid to atmosphere, land, and ice + !> derived type holding properties and fluxes passed from exchange grid to atmosphere, land, and ice + type(land_ice_atmos_boundary_type),intent(inout) :: land_ice_atmos_boundary + !> used to set dt_atm (atmosphere time step [s]) in the module real, intent(in) :: Dt_atm_in - !< atmosphere time step [s] + !> used to set dt_cpl (coupled time step [s]) in the module real, intent(in) :: Dt_cpl_in - !< coupled time step [s] - real, intent(in) :: z_ref_heat_in - !< reference height for temperature and relative humidity diagnostics [m] + !> used to set z_ref_heat (reference height for temperature and relative humidity diagnostics [m]) in the module + real, intent(in) :: z_ref_heat_in, + !> used to set z_ref_mom (reference height for momentum diagnostics [m]) in the module real, intent(in) :: z_ref_mom_in - !< reference height for momentum diagnostics [m] + !> used to set scale_precip_2d in the module. if true, rescale Atm%lprec logical, intent(in) :: scale_precip_2d_in - !< if true, rescale Atm%lprec + !> used to set do_area_weighted_flux in the module. if true, divide flux by area logical, intent(in) :: do_area_weighted_flux_in - !< if true, divide flux by area + !> used to set do_forecast in the module + !! if true, and #ifdef AM3_physics,, put atm%surf_diff%sst_miz on the exchange grid logical, intent(in) :: do_forecast_in - !< if true, and #ifdef AM3_physics,, put atm%surf_diff%sst_miz on the exchange grid + !> used to set partition_fprec_from_lprec in the module + !! if true, convert liquid precip to snow when t_ref < tfreeze logical, intent(in) :: partition_fprec_from_lprec_in - !< if true, convert liquid precip to snow when t_ref < tfreeze + !> used to set nblocks (number of OpenMP blocks) in the module. integer, intent(in) :: nblocks_in - !< number of OpenMP blocks. the surface exchange grid is parallelized into nblocks - integer, intent(in) :: cplClock_in - !< clock to measure processes. mainly used for development and debugging - type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_atm_in - !< gas fields in atm. Contains atmospheric surface variables that are used to compute - !! atmosphere-ocean gas fluxes and flux-regulating parameters - type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fields_ice_in - !< gas fields atop the ice or ocean. Contains ice-top and ocean surface variables that are used - !! to compute atmosphere-ocean gas fluxes and flux-regulating parameters - type(FmsCoupler1dBC_type), intent(in), target :: ex_gas_fluxes_in - !< gas fluxes between atmosphere and ocean. Used for exchanging gas or tracer fluxes between - !! the atmosphere and ocean. - + !> used to set cplClock in the module. + !! The clock is used to measure processes mainly used for development and debugging + integer, intent(in) :: cplClock_in + + type(FmsCoupler1dBC_type), intent(in), target :: & + !> used to set ex_gas_fields_atm in the module. + !! Contains atm surface variables used for computing atm-ocean gas fluxes and flux-regulating parameters + ex_gas_fields_atm_in, & + !> used to set ex_gas_fields_ice in the module. Contains ice-top and ocean surface variables + !! used for computing atm-ocean gas fluxes and flux-regulating parameters + ex_gas_fields_ice_in, & + !> used to set ex_gas_fluxes in the module that is used to exchange gas/tracer fluxes between atm and ocean + ex_gas_fluxes_in + character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' character(len=64), parameter :: sub_name = 'atm_land_ice_flux_init' - character(len=256), parameter :: & - note_header = '==>Note from ' // trim(module_name) // '(' // trim(sub_name) // '):' + character(len=256), parameter :: note_header = '==>Note from '//trim(module_name)//'('//trim(sub_name)//'):' integer :: & i, & ! temporary index do loop n ! temporary index for counting integer :: & - outunit, & ! returned value from fms_mpp_stdout() + outunit, & ! returned value from fms_mpp_stdout() logunit ! returned value from fms_mpp_stdlog() integer :: & is, & ! starting x-index on compute domain ie, & ! ending x-index on compute domain js, & ! starting y-index on compute domain je, & ! ending y-index on compute domain - kd ! number of levels in the z direction + kd ! number of levels in the z direction + character(32) :: tr_name ! dummy variable to hold name of tracers logical :: found ! dummy variable to search through tracer index in ex_gas_fluxes - - !> INITIALIZE THE FOLLOWING MODULE-LEVEL VARIABLES: - !! DT_ATM, DT_CPL, Z_REF_HEAT, Z_REF_MOM, DO_AREA_WEIGHTED_FLUX, - !! DO_FORECAST, PARTITION_FPREC_FROM_LPREC, SCALE_PRECIP_2D, NBLOCKS, CPLCLOCKS - !! EX_GAS_FIELDS_ATM, EX_GAS_FIELDS_ICE, AND EX_GAS_FLUXES + !> INITIALIZE MODULE-LEVEL VARIABLES !{ Dt_atm = Dt_atm_in Dt_cpl = Dt_cpl_in @@ -560,9 +707,9 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound cplClock = cplClock_in ex_gas_fields_atm => ex_gas_fields_atm_in ex_gas_fields_ice => ex_gas_fields_ice_in - ex_gas_fluxes => ex_gas_fluxes_in + ex_gas_fluxes => ex_gas_fluxes_in !} - + !> GET FILE UNIT FOR STDOUT AND STDLOG FOR INTERNAL LOGGING PURPOSES !{ @@ -570,23 +717,29 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound logunit = fms_mpp_stdlog() !} + !< ALLOCATE OPENMP BLOCK_START ND BLOCK_END HOLDING DO LOOP INDICES + !{ allocate(block_start(nblocks), block_end(nblocks)) + !} - + !> FROM THE TRACER TABLE, GET THE TOTAL NUMBER TRACERS, - !! TOTAL NUMBER OF SPECIFIC HUMIDITY TRACER, AND TOTAL NUMBER PROGNOSTIC TRACERS IN ATMOSPHERE AND LAND MODELS + !! TOTAL NUMBER OF SPECIFIC HUMIDITY TRACER,AND + !! TOTAL NUMBER PROGNOSTIC TRACERS IN ATMOSPHERE AND LAND MODELS !{ - call fms_tracer_manager_get_number_tracers(MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) - call fms_tracer_manager_get_number_tracers(MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) + call fms_tracer_manager_get_number_tracers (MODEL_ATMOS, num_tracers=n_atm_tr_tot, num_prog=n_atm_tr) + call fms_tracer_manager_get_number_tracers (MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) !} - - !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH TRACER, RECORD THE TRACER_INDEX IN THE ATM MODEL, ICE MODEL, - !! AND LAND MODEL. SKIP ALL ATMOS TRACERS THAT DO NOT HAVE CORRESPONDING SURFACE TRACERS + + !> CONSTRUCT THE TRACER TABLE (TR_TABLE): + !! FOR EACH TRACER, RECORD THE TRACER_INDEX IN THE ATM MODEL, ICE MODEL, AND LAND MODEL + !! SKIP ALL ATMOS TRACERS THAT DO NOT HAVE CORRESPONDING SURFACE TRACERS !{ - allocate(tr_table(n_atm_tr), tr_table_map(n_atm_tr)) + allocate(tr_table(n_atm_tr)) + allocate(tr_table_map(n_atm_tr)) n = 1 - do i=1, n_atm_tr + do i = 1,n_atm_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, i, tr_name ) tr_table(n)%atm = i tr_table(n)%ice = fms_tracer_manager_get_tracer_index ( MODEL_ICE, tr_name ) @@ -601,20 +754,15 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound n_exch_tr = n - 1 !} - + !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE FIELDS BETWEEN ATMOSPHERE AND LAND - !! TO CLARIFY: WHAT IS A GENERIC EXCHANGE FIELD !{ + !generic exchange n_gex_atm2lnd = fms_gex_get_n_ex(MODEL_ATMOS,MODEL_LAND) - if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_atm2lnd + if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_atm2lnd n_gex_lnd2atm = fms_gex_get_n_ex(MODEL_LAND,MODEL_ATMOS) - if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]', n_gex_lnd2atm - !} + if (fms_mpp_root_pe().eq.fms_mpp_pe()) write(*,*) 'atm_land_ice_flux_exchange_init [gex]',n_gex_lnd2atm - - !> CONSTRUCT THE TRACER TABLE (TR_TABLE): FOR EACH OCEAN-ATM GAS FLUX TRACER, STORE THE TRACER INDEX - !! NOTE, THE NAMES OF THE TRACERS IN ATMOSPHERE AND OCEAN MAY DIFFER - !{ do n = 1, ex_gas_fluxes%num_bcs if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then found = .false. @@ -638,20 +786,20 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound write(outunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr write(logunit,*) trim(note_header), ' Number of exchanged tracers = ', n_exch_tr do i = 1,n_exch_tr - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(i)%atm, tr_name) + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) write(outunit,*)'Tracer field name :'//trim(tr_name) write(logunit,*)'Tracer field name :'//trim(tr_name) enddo !} - - !> GET THE TRACER INDEX OF SPECIFIC HUMIDITY + + !> GET THE TRACER INDEX OF SPECIFIC HUMIDITY !{ ! +fix-me-slm+ specific humidity may not be present if we are running with ! dry atmosphere. Besides, model may use mixing ratio ('mix_rat') (?). However, ! some atmos code also assumes 'sphum' is present, so for now the following ! code may be good enough. - do i=1, n_exch_tr + do i = 1,n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(i)%atm, tr_name ) if(fms_mpp_lowercase(tr_name)=='sphum') then isphum = i @@ -668,150 +816,216 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound enddo if (isphum==NO_TRACER) then - call fms_error_mesg(module_name, 'tracer "sphum" must be present in the atmosphere', FATAL) + call fms_error_mesg('atm_land_ice_flux_exchange_mod',& + 'tracer "sphum" must be present in the atmosphere', FATAL ) endif if (ico2==NO_TRACER) then - call fms_error_mesg(module_name, 'tracer "co2" not present in the atmosphere', NOTE) + call fms_error_mesg('atm_land_ice_flux_exchange_mod',& + 'tracer "co2" not present in the atmosphere', NOTE ) endif !} - - + !> INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE !{ call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) + if (scale_precip_2d) then allocate(frac_precip(is:ie,js:je)) frac_precip=0.0 endif !} - + !> SET UP THE EXCHANGE GRID AND SET X1_GRID_ATM = 1, X1_GRID_ICE = 2, AND X1_GRID_LAND = 3 !! SETS XMAP_SFC(1)%GRIDS FOR ATM, XMAP_SFC(2)%GRIDS FOR ICE, XMAP_SFC(3)%GRIDS FOR LAND !{ call fms_xgrid_init(remap_method) #ifndef _USE_LEGACY_LAND_ - call fms_xgrid_setup_xmap(xmap_sfc, ['ATM', 'OCN', 'LND'], [Atm%Domain, Ice%Domain, Land%Domain], & + call fms_xgrid_setup_xmap(xmap_sfc, ['ATM', 'OCN', 'LND'], & + [Atm%Domain, Ice%Domain, Land%Domain], & "INPUT/grid_spec.nc", Atm%grid, lnd_ug_domain=Land%ug_domain) #else - call fms_xgrid_setup_xmap(xmap_sfc, ['ATM', 'OCN', 'LND'], [Atm%Domain, Ice%Domain, Land%Domain], & + call fms_xgrid_setup_xmap(xmap_sfc, ['ATM', 'OCN', 'LND'], & + [Atm%Domain, Ice%Domain, Land%Domain], & "INPUT/grid_spec.nc", Atm%grid) #endif - + ! exchange grid indices X1_GRID_ATM = 1 X1_GRID_ICE = 2 - X1_GRID_LND = 3; - call generate_sfc_xgrid(Land, Ice) + X1_GRID_LND = 3 + call generate_sfc_xgrid( Land, Ice ) if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' !} - - !> INITIALIZE SURFACE_FLUX MODULE IN FMSCOUPLER/SHARED + + !> INITIALIZE SURFACE_FLUX MODULE + !{ call surface_flux_init() + !} - + !> INITIALLIZE FMS DIAG_INTEGRAL FIELDS FOR EVAP, T_SURF, T_REF GLOBAL INTEGRAL QUANTITIES !{ - ! call diag_integral_field_init ('prec', 'f6.3') + !! call diag_integral_field_init ('prec', 'f6.3') call fms_diag_integral_field_init ('evap', 'f6.3') #ifndef use_AM3_physics - call fms_diag_integral_field_init ('t_surf', 'f10.3') !miz - call fms_diag_integral_field_init ('t_ref', 'f10.3') !miz + call fms_diag_integral_field_init ('t_surf', 'f10.3') + call fms_diag_integral_field_init ('t_ref', 'f10.3') #endif !} !> REGISTER FMS DIAGNOSTIC FIELDS IN DIAG_MANAGER ! all fields will be output on the atmospheric grid + !{ call diag_field_init ( Time, Atm%axes(1:2), Land%axes, Land%pe ) - + !} !> GET THE SIZE OF THE ATM COMPUTE DOMAIN !{ - ni_atm = size(Atm%lon_bnd,1) - 1 ! to dimension "diag_atm" - nj_atm = size(Atm%lon_bnd,2) - 1 ! in flux_ocean_to_ice + ni_atm = size(Atm%lon_bnd,1)-1 ! to dimension "diag_atm" + nj_atm = size(Atm%lon_bnd,2)-1 ! in flux_ocean_to_ice !} - + !> ALLOCATE ATMOS_ICE_BOUNDARY AND SET FIELDS EQUAL TO ZERO !{ - call fms_mpp_domains_get_compute_domain(Ice%domain, is, ie, js, je) + call fms_mpp_domains_get_compute_domain( Ice%domain, is, ie, js, je ) kd = size(Ice%part_size,3) - allocate(atmos_ice_boundary%u_flux(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%v_flux(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%u_star(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%t_flux(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%q_flux(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%lw_flux(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%lprec(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%fprec(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%dhdt(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%dedt(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%drdt(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%coszen(is:ie,js:je,kd), source=0.0) - allocate(atmos_ice_boundary%p(is:ie,js:je,kd), source=0.0) - + allocate( atmos_ice_boundary%u_flux(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%v_flux(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%u_star(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%t_flux(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%q_flux(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%lw_flux(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_flux_vis_dir(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_flux_vis_dif(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_flux_nir_dir(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_flux_nir_dif(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_down_vis_dir(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_down_vis_dif(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_down_nir_dir(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%sw_down_nir_dif(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%lprec(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%fprec(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%dhdt(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%dedt(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%drdt(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%coszen(is:ie,js:je,kd) ) + allocate( atmos_ice_boundary%p(is:ie,js:je,kd) ) + ! initialize boundary values for override experiments + atmos_ice_boundary%u_flux=0.0 + atmos_ice_boundary%v_flux=0.0 + atmos_ice_boundary%u_star=0.0 + atmos_ice_boundary%t_flux=0.0 + atmos_ice_boundary%q_flux=0.0 + atmos_ice_boundary%lw_flux=0.0 + atmos_ice_boundary%sw_flux_vis_dir=0.0 + atmos_ice_boundary%sw_flux_vis_dif=0.0 + atmos_ice_boundary%sw_flux_nir_dir=0.0 + atmos_ice_boundary%sw_flux_nir_dif=0.0 + atmos_ice_boundary%sw_down_vis_dir=0.0 + atmos_ice_boundary%sw_down_vis_dif=0.0 + atmos_ice_boundary%sw_down_nir_dir=0.0 + atmos_ice_boundary%sw_down_nir_dif=0.0 + atmos_ice_boundary%lprec=0.0 + atmos_ice_boundary%fprec=0.0 + atmos_ice_boundary%dhdt=0.0 + atmos_ice_boundary%dedt=0.0 + atmos_ice_boundary%drdt=0.0 + atmos_ice_boundary%coszen=0.0 + atmos_ice_boundary%p=0.0 + + ! allocate fields for extra fluxes ! Copying initialized gas fluxes from exchange grid to atmosphere_ice boundary - call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & - mod_name, Ice%axes, Time, suffix = '_atm_ice') - ! Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two - ! coupler_type_copy calls are moved from ice_ocean_flux_init to here. + call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & + mod_name, Ice%axes, Time, suffix = '_atm_ice') + + !--- Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two + !--- coupler_type_copy calls are moved from ice_ocean_flux_init to here. if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) & - call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, & - [is,is,ie,ie], [js,js,je,je], [1, kd], suffix = '_ice') + call fms_coupler_type_spawn(ex_gas_fields_ice, Ice%ocean_fields, (/is,is,ie,ie/), & + (/js,js,je,je/), (/1, kd/), suffix = '_ice') call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) !} - + !> ALLOCATE LAND_ICE_ATMOS_BOUNDARY AND SET FIELDS EQUAL TO ZERO EXCEPT FOR !! T_OCEAN WHICH IS SET TO 200 K, T_REF TO 273 K, AND ROUGHNESS LENGTHS TO 0.01 m !{ - call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) - allocate(land_ice_atmos_boundary%t(is:ie,js:je), source=273.0) - allocate(land_ice_atmos_boundary%t_ocean(is:ie,js:je), source=200.0)! Joseph: surf ocean temp - allocate(land_ice_atmos_boundary%u_ref(is:ie,js:je), source=0.0) ! bqx - allocate(land_ice_atmos_boundary%v_ref(is:ie,js:je), source=0.0) ! bqx - allocate(land_ice_atmos_boundary%t_ref(is:ie,js:je), source=273.0) ! cjg: PBL depth mods - allocate(land_ice_atmos_boundary%q_ref(is:ie,js:je), source=0.0) ! cjg: PBL depth mods - allocate(land_ice_atmos_boundary%albedo(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%land_frac(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%dt_t(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr), source=0.0) - allocate(land_ice_atmos_boundary%u_flux(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%v_flux(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%dtaudu(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%dtaudv(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%u_star(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%b_star(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%q_star(is:ie,js:je), source=0.0) + call fms_mpp_domains_get_compute_domain( Atm%domain, is, ie, js, je ) + allocate( land_ice_atmos_boundary%t(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%t_ocean(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%u_ref(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%v_ref(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%t_ref(is:ie,js:je) ) ! PBL depth mods + allocate( land_ice_atmos_boundary%q_ref(is:ie,js:je) ) ! PBL depth mods + allocate( land_ice_atmos_boundary%albedo(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%albedo_vis_dir(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%albedo_nir_dir(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%albedo_vis_dif(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%albedo_nir_dif(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%land_frac(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%dt_t(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%dt_tr(is:ie,js:je,n_atm_tr) ) + allocate( land_ice_atmos_boundary%u_flux(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%v_flux(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%dtaudu(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%dtaudv(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%u_star(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%b_star(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%q_star(is:ie,js:je) ) #ifndef use_AM3_physics - allocate(land_ice_atmos_boundary%shflx(is:ie,js:je), source=0.0)!miz - allocate(land_ice_atmos_boundary%lhflx(is:ie,js:je), source=0.0)!miz + allocate( land_ice_atmos_boundary%shflx(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je) ) #endif - allocate(land_ice_atmos_boundary%wind(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%thv_atm(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%thv_surf(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%rough_mom(is:ie,js:je), source=0.01) - allocate(land_ice_atmos_boundary%rough_heat(is:ie,js:je), source=0.01) ! Kun - allocate(land_ice_atmos_boundary%frac_open_sea(is:ie,js:je), source=0.0) - allocate(land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm), source=0.0) - !} - + allocate( land_ice_atmos_boundary%wind(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%thv_atm(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%thv_surf(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%rough_mom(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%rough_heat(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%frac_open_sea(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%gex_lnd2atm(is:ie,js:je,n_gex_lnd2atm) ) + + ! initialize boundary values for override experiments + land_ice_atmos_boundary%t=273.0 + land_ice_atmos_boundary%t_ocean=200.0 + land_ice_atmos_boundary%u_ref=0.0 + land_ice_atmos_boundary%v_ref=0.0 + land_ice_atmos_boundary%t_ref=273.0 ! PBL depth mods + land_ice_atmos_boundary%q_ref=0.0 ! PBL depth mods + land_ice_atmos_boundary%albedo=0.0 + land_ice_atmos_boundary%albedo_vis_dir=0.0 + land_ice_atmos_boundary%albedo_nir_dir=0.0 + land_ice_atmos_boundary%albedo_vis_dif=0.0 + land_ice_atmos_boundary%albedo_nir_dif=0.0 + land_ice_atmos_boundary%land_frac=0.0 + land_ice_atmos_boundary%dt_t=0.0 + land_ice_atmos_boundary%dt_tr=0.0 + land_ice_atmos_boundary%u_flux=0.0 + land_ice_atmos_boundary%v_flux=0.0 + land_ice_atmos_boundary%dtaudu=0.0 + land_ice_atmos_boundary%dtaudv=0.0 + land_ice_atmos_boundary%u_star=0.0 + land_ice_atmos_boundary%b_star=0.0 + land_ice_atmos_boundary%q_star=0.0 + land_ice_atmos_boundary%gex_lnd2atm=0.0 +#ifndef use_AM3_physics + land_ice_atmos_boundary%shflx=0.0 + land_ice_atmos_boundary%lhflx=0.0 +#endif + land_ice_atmos_boundary%wind=0.0 + land_ice_atmos_boundary%thv_atm=0.0 + land_ice_atmos_boundary%thv_surf=0.0 + land_ice_atmos_boundary%rough_mom=0.01 + land_ice_atmos_boundary%rough_heat=0.01 + land_ice_atmos_boundary%frac_open_sea=0.0 + !} + + !> COPY EX_GAS_FIELDS_ATM TO ATM%FIELDS !{ ! The first call is no longer necessary, the fluxes will be passed by the land module @@ -819,8 +1033,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & mod_name, Atm%axes(1:2), Time, suffix = '_atm') !} - - + !> GET THE SIZE OF ICE COMPUTE DOMAIN !{ if( Ice%pe) then @@ -829,6 +1042,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif !} + !> GET THE SIZE OF LAND COMPUTE DOMAIN !{ if( Land%pe) then @@ -836,25 +1050,25 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif !} - + !> DECLARE CLOCKS FOR PROFILING !{ - !Balaji: clocks on atm%pe only sfcClock = fms_mpp_clock_id( 'SFC boundary layer', flags=fms_clock_flag_default, grain=CLOCK_SUBCOMPONENT ) fluxAtmDnClock = fms_mpp_clock_id( 'Flux DN from atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) regenClock = fms_mpp_clock_id( 'XGrid generation', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) fluxAtmUpClock = fms_mpp_clock_id( 'Flux UP to atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) !} - + !> SET DO_INIT = .FALSE. IN ORDER TO AVOID RE-INITIALIZATION THE MODULE !! IF THIS SUBROUTINE IS CALLED AGAIN + !{ do_init = .false. + !} - + end subroutine atm_land_ice_flux_exchange_init - !####################################################################### !> Subroutine sfc_boundary_layer computes the following fluxes and exchanges the fluxes between the model components: !! t_surf_atm: surface temperature used for radiation [K] !! albedo_atm: surface albedo used for radiation [dimensionless] @@ -873,30 +1087,28 @@ end subroutine atm_land_ice_flux_exchange_init !! tracer_table. !! \note `u_star` and `b_star` are defined so that `u_star**2` is the magnitude of surface stress !! divided by density of air at the surface, and `u_star*b_star` is the buoyancy flux at the surface. - subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary) + subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ) - implicit none - real, intent(in) :: dt - !< timestep - type(FmsTime_type), intent(in) :: Time - !< current model time + !> timestep + real, intent(in) :: dt + !> current model time + type(FmsTime_type), intent(in) :: Time + !> derived type holding atmosphere boundary data type(atmos_data_type), intent(inout) :: Atm - !< derived type to specify atmosphere boundary data + !> derived type holding land boundary data type(land_data_type), intent(inout) :: Land - !< derived type to specify land boundary data + !> derived type holding ice boundary data type(ice_data_type), intent(inout) :: Ice - !< derived data type to specify ice boundary data + !> derived type holding properties and fluxes passed between land and ice to atm type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary - !< derived data type to specify properties and fluxes passed between land and ice to atmos - ! ---- local vars ---------------------------------------------------------- real, dimension(n_xgrid_sfc) :: & - ex_albedo, & ! albedo + ex_albedo, ! albedo on xgrid ex_albedo_vis_dir, & ! albedo for light with wavelength in visible region of the solar spectrum ex_albedo_nir_dir, & ! albedo for light with wavelength in near-ir region of the solar spectrum - ex_albedo_vis_dif, & ! difference in albedo for light with wavelength in visible region of the solar spectrum - ex_albedo_nir_dif, & ! difference in albedo for light with wavelength in near-ir region of the solar spectrum - ex_land_frac, & ! fractional area of land on grid cell + ex_albedo_vis_dif, & ! albedo for "diffuse" light with wavelength in visible region of the solar spectrum + ex_albedo_nir_dif, & ! albedo for "diffuse" light with wavelength in near-ir region of the solar spectrum + ex_land_frac, & ! fractional area of land on grid cell ex_t_atm, & ! air temperature at the lowest atmospheric level ex_p_atm, & ! pressure at the lowest atmospheric level ex_u_atm, & ! u wind component at the lowest atmospheric level @@ -924,57 +1136,54 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_del_m, & ! reference height for interpolation factor for momentum ex_del_h, & ! reference height interpolation factor for heat ex_del_q, & ! reference height interpation factor for moisture - ex_frac_open_sea ! open-water mask (not used) + ex_frac_open_sea ! open-water mask real :: rho ! quantity used to compute ex_tr_con_atm real, dimension(n_xgrid_sfc,n_exch_tr) :: & ex_tr_atm, & ! concentration of tracer at lowest atmospheric level - ex_tr_ref !< concentration of tracer at reference height + ex_tr_ref ! concentration of tracer at reference height - real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! jgj: added for co2_atm diagnostic - - real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: diag_atm - ! temporary array to hold data + real, dimension(n_xgrid_sfc) :: ex_co2_atm_dvmr ! added for co2_atm diagnostic + real, dimension(size(Land_Ice_Atmos_Boundary%t,1),size(Land_Ice_Atmos_Boundary%t,2)) :: & + diag_atm ! temporary array to hold data #ifndef _USE_LEGACY_LAND_ real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2)) :: diag_land - real, dimension(size(Land%t_ca, 1)) :: diag_land_ug, tile_size_ug - real, dimension(nxc_lnd,nyc_lnd) :: diag_land_sg, tile_size_sg - logical, dimension(size(Land%t_ca, 1)) :: mask_ug - logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg + real, dimension(size(Land%t_ca, 1)) :: diag_land_ug, tile_size_ug + real, dimension(nxc_lnd,nyc_lnd) :: diag_land_sg, tile_size_sg + logical, dimension(size(Land%t_ca, 1)) :: mask_ug + logical, dimension(nxc_lnd,nyc_lnd) :: mask_sg integer :: k #else - real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: diag_land + real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: & + diag_land ! temporary array to hold data #endif - real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: sea !< temporary array - real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: tmp_open_sea - ! temporary array used in generating ice/ocean mask - - real :: & - zrefm, & ! reference height for computing surface fluxes with Monin-Obukhov similarity theory - zrefh ! reference height for computing surface fluxes with Monin-Obukhov similarity theory - + + real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: & + sea ! temporary array to hold data + + real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: & + tmp_open_sea ! temporary array to hold data + + real :: zrefm ! reference height for computing surface fluxes with Monin-Obukhov similarity theory + real :: zrefh ! reference height for computing surface fluxes with Monin-Obukhov similarity theory logical :: used ! returned value from data_override. if true, data was overwritten - character(32) :: & - tr_name, & ! tracer name - tr_units ! tracer id - + character(32) :: tr_name, tr_units ! tracer name and tracer unit integer :: tr, n, m ! tracer indices integer :: is, ie, isc, iec, jsc, jec ! domain indices integer :: i, l, j, n_gex ! do loop indices - - real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm - ! array holding generic, non-tracer fields on the exchange grid - + + real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm ! holds generic, non-tracer fields on exchange grid !> CHECK MODULE INITIALIZATION !{ - ! [1] - if (do_init) call fms_error_mesg ('atm_land_ice_flux_exchange_mod', & - 'must call atm_land_ice_flux_exchange_init first', FATAL) + ! [1] check that the module was initialized + if (do_init) then + call fms_error_mesg ('atm_land_ice_flux_exchange_mod', 'must call atm_land_ice_flux_exchange_init first', FATAL) + end if !} - + !> INITIALIZE CLOCKS FOR PROFILING !{ ! [2] @@ -983,58 +1192,65 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_mpp_clock_begin(sfcClock) !} - - !> ALLOCATE ARRAY FOR EXCHANGE FIELDS. THE ARRAYS WILL BE DEALLOCATED IN FLUX_UP_TO_ATMOS + + !> ALLOCATE ARRAY FOR EXCHANGE FIELDS. THE ARRAYS ARE DEALLOCATED IN FLUX_UP_TO_ATMOS !{ + ! [2] allocate storage for variables that are also used in flux_up_to_atmos allocate ( & - ex_t_surf(n_xgrid_sfc), & + ex_t_surf (n_xgrid_sfc), & ex_t_surf_miz(n_xgrid_sfc), & - ex_p_surf(n_xgrid_sfc), & - ex_slp(n_xgrid_sfc), & - ex_t_ca(n_xgrid_sfc), & - ex_dhdt_surf(n_xgrid_sfc), & - ex_dedt_surf(n_xgrid_sfc), & + ex_p_surf (n_xgrid_sfc), & + ex_slp (n_xgrid_sfc), & + ex_t_ca (n_xgrid_sfc), & + ex_dhdt_surf(n_xgrid_sfc), & + ex_dedt_surf(n_xgrid_sfc), & ex_dqsatdt_surf(n_xgrid_sfc), & - ex_drdt_surf(n_xgrid_sfc), & - ex_dhdt_atm(n_xgrid_sfc), & - ex_flux_t(n_xgrid_sfc), & - ex_flux_lw(n_xgrid_sfc), & - ex_drag_q(n_xgrid_sfc), & - ex_avail(n_xgrid_sfc), & + ex_drdt_surf(n_xgrid_sfc), & + ex_dhdt_atm (n_xgrid_sfc), & + ex_flux_t (n_xgrid_sfc), & + ex_flux_lw (n_xgrid_sfc), & + ex_drag_q (n_xgrid_sfc), & + ex_avail (n_xgrid_sfc), & ex_f_t_delt_n(n_xgrid_sfc), & - ex_tr_surf(n_xgrid_sfc, n_exch_tr), & - ex_dfdtr_surf(n_xgrid_sfc, n_exch_tr), & - ex_dfdtr_atm(n_xgrid_sfc, n_exch_tr), & - ex_flux_tr(n_xgrid_sfc, n_exch_tr), & - ex_f_tr_delt_n(n_xgrid_sfc, n_exch_tr), & - ex_e_tr_n(n_xgrid_sfc, n_exch_tr), & + + ex_tr_surf (n_xgrid_sfc, n_exch_tr), & + ex_dfdtr_surf (n_xgrid_sfc, n_exch_tr), & + ex_dfdtr_atm (n_xgrid_sfc, n_exch_tr), & + ex_flux_tr (n_xgrid_sfc, n_exch_tr), & + ex_f_tr_delt_n (n_xgrid_sfc, n_exch_tr), & + ex_e_tr_n (n_xgrid_sfc, n_exch_tr), & ex_con_atm(n_xgrid_sfc), & + ex_tr_con_ref(n_xgrid_sfc, n_exch_tr), & ex_tr_con_atm(n_xgrid_sfc, n_exch_tr), & + ! MOD these were moved from local ! so they can be passed to flux down - ex_flux_u(n_xgrid_sfc), & - ex_flux_v(n_xgrid_sfc), & - ex_dtaudu_atm(n_xgrid_sfc), & - ex_dtaudv_atm(n_xgrid_sfc), & - ex_seawater(n_xgrid_sfc), & + ex_flux_u(n_xgrid_sfc), & + ex_flux_v(n_xgrid_sfc), & + ex_dtaudu_atm(n_xgrid_sfc),& + ex_dtaudv_atm(n_xgrid_sfc),& + ex_seawater(n_xgrid_sfc), & + ! values added for LM3 - ex_cd_t(n_xgrid_sfc), & - ex_cd_m(n_xgrid_sfc), & - ex_b_star(n_xgrid_sfc), & - ex_u_star(n_xgrid_sfc), & - ex_wind(n_xgrid_sfc), & - ex_z_atm(n_xgrid_sfc), & - ex_e_t_n(n_xgrid_sfc), & - ex_e_q_n(n_xgrid_sfc), & - ex_land(n_xgrid_sfc)) + ex_cd_t (n_xgrid_sfc), & + ex_cd_m (n_xgrid_sfc), & + ex_b_star (n_xgrid_sfc), & + ex_u_star (n_xgrid_sfc), & + ex_wind (n_xgrid_sfc), & + ex_z_atm (n_xgrid_sfc), & + + ex_e_t_n (n_xgrid_sfc), & + ex_e_q_n (n_xgrid_sfc), & + ex_land (n_xgrid_sfc) ) + #ifdef SCM allocate ( & ex_dhdt_surf_forland(n_xgrid_sfc), & ex_dedt_surf_forland(n_xgrid_sfc), & - ex_dedq_surf_forland(n_xgrid_sfc)) + ex_dedq_surf_forland(n_xgrid_sfc) ) #endif !} - + !> ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY EXCHANGE FIELDS !{ @@ -1045,61 +1261,67 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if (associated(ex_gas_fields_ice%bc(n)%field(m)%values)) then call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fields_ice already allocated.' ) endif - allocate(ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) + allocate ( ex_gas_fields_ice%bc(n)%field(m)%values(n_xgrid_sfc) ) + ex_gas_fields_ice%bc(n)%field(m)%values = 0.0 enddo enddo !} - + !> ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR ATMOSPHERE EXCHANGE FIELDS !{ do n = 1, ex_gas_fields_atm%num_bcs do m = 1, ex_gas_fields_atm%bc(n)%num_fields if (associated(ex_gas_fields_atm%bc(n)%field(m)%values)) then - call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.') + call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fields_atm already allocated.' ) endif - allocate (ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) + allocate ( ex_gas_fields_atm%bc(n)%field(m)%values(n_xgrid_sfc) ) + ex_gas_fields_atm%bc(n)%field(m)%values = 0.0 enddo enddo !} - !> ALLOCATE EX_GAS_FLUXES FOR ADDITIONAL EXCHANGE FIELDS !{ do n = 1, ex_gas_fluxes%num_bcs do m = 1, ex_gas_fluxes%bc(n)%num_fields if (associated(ex_gas_fluxes%bc(n)%field(m)%values)) then - call fms_mpp_error(FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.') + call fms_mpp_error( FATAL, 'sfc_boundary_layer: ex_gas_fluxes already allocated.' ) endif - allocate(ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc), source=0.0) + allocate ( ex_gas_fluxes%bc(n)%field(m)%values(n_xgrid_sfc) ) + ex_gas_fluxes%bc(n)%field(m)%values = 0.0 enddo enddo !} - + ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers ! For ocean only model ! call atmos_get_fields_for_flux(Atm) - + !> ON THE EXCHANGE GRID, SET INITIAL VALUES FOR ALBEDO, DRAG COEFFICIENTS, AND OPEN WATER MASK !{ - ! this is actually a safeguard against using undefined values + ! [3] initialize some values on exchange grid: this is actually a safeguard + ! against using undefined values !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_surf,ex_u_surf, & - !$OMP ex_v_surf, ex_albedo, ex_albedo_vis_dir, ex_albedo_nir_dir, ex_albedo_vis_dif, ex_albedo_nir_dif, ex_cd_t, & - !$OMP ex_cd_m, ex_cd_q, ex_frac_open_sea, n_gex_lnd2atm, ex_gex_lnd2atm) private(is,ie,n_gex) + !$OMP ex_v_surf,ex_albedo,ex_albedo_vis_dir,ex_albedo_nir_dir, & + !$OMP ex_albedo_vis_dif,ex_albedo_nir_dif,ex_cd_t,ex_cd_m, & + !$OMP ex_cd_q,ex_frac_open_sea,n_gex_lnd2atm,ex_gex_lnd2atm) & + !$OMP private(is,ie,n_gex) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) do i = is,ie - ex_t_surf(i) = 200. - ex_u_surf(i) = 0. - ex_v_surf(i) = 0. - ex_albedo(i) = 0. ! bw + ex_t_surf(i) = 200. + ex_u_surf(i) = 0. + ex_v_surf(i) = 0. + ex_albedo(i) = 0. ex_albedo_vis_dir(i) = 0. ex_albedo_nir_dir(i) = 0. ex_albedo_vis_dif(i) = 0. ex_albedo_nir_dif(i) = 0. + !---- do not use if relax time /= 0 ---- ex_cd_t(i) = 0.0 ex_cd_m(i) = 0.0 @@ -1108,29 +1330,28 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end do do n_gex=1,n_gex_lnd2atm do i = is,ie - ex_gex_lnd2atm(i,n_gex) = 0.0 + ex_gex_lnd2atm(i,n_gex) = 0.0 enddo enddo enddo !} - + !> OVERRIDE SUBSET OF ATM FIELDS. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ - !Balaji: data_override stuff moved from coupler_main - call fms_data_override('ATM', 't_bot', Atm%t_bot , Time) - call fms_data_override('ATM', 'z_bot', Atm%z_bot , Time) - call fms_data_override('ATM', 'p_bot', Atm%p_bot , Time) - call fms_data_override('ATM', 'u_bot', Atm%u_bot , Time) - call fms_data_override('ATM', 'v_bot', Atm%v_bot , Time) - call fms_data_override('ATM', 'p_surf', Atm%p_surf, Time) - call fms_data_override('ATM', 'slp', Atm%slp, Time) - call fms_data_override('ATM', 'gust', Atm%gust, Time) + ! data_override stuff moved from coupler_main + call fms_data_override ('ATM', 't_bot', Atm%t_bot , Time) + call fms_data_override ('ATM', 'z_bot', Atm%z_bot , Time) + call fms_data_override ('ATM', 'p_bot', Atm%p_bot , Time) + call fms_data_override ('ATM', 'u_bot', Atm%u_bot , Time) + call fms_data_override ('ATM', 'v_bot', Atm%v_bot , Time) + call fms_data_override ('ATM', 'p_surf', Atm%p_surf, Time) + call fms_data_override ('ATM', 'slp', Atm%slp, Time) + call fms_data_override ('ATM', 'gust', Atm%gust, Time) !} - + !> CONVERT CO2 TRACER UNITS TO WET_MMR UNITS - !{ ! jgj: 2008/07/18 ! FV atm advects tracers in moist mass mixing ratio: kg co2 /(kg air + kg water) ! cubed sphere advects moist mass mixing ratio also (per SJ) @@ -1142,7 +1363,6 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! data override for co2 to be passed to land/photosynthesis (co2_bot) ! land co2 data override is in dry_vmr units, so convert to wet_mmr for land model. ! co2mmr = (wco2/wair) * co2vmr; wet_mmr = dry_mmr * (1-Q) - ! do tr = 1,n_atm_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr, tr_name ) call fms_data_override('ATM', trim(tr_name)//'_bot', Atm%tr_bot(:,:,tr), Time, override=used) @@ -1150,6 +1370,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary if (used .and. fms_mpp_lowercase(trim(tr_name)).eq.'co2') then ! 2017/08/08 jgj add co2_bot diagnostic in dry_vmr units if ( id_co2_bot > 0 ) used = fms_diag_send_data ( id_co2_bot, Atm%tr_bot(:,:,tr), Time ) + isc = lbound(Atm%tr_bot,1); iec = ubound(Atm%tr_bot,1) jsc = lbound(Atm%tr_bot,2); jec = ubound(Atm%tr_bot,2) !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Atm,tr,isphum) @@ -1167,106 +1388,121 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !> OVERRIDE CO2 VALUES WHERE DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE, AND !! SEND DATA TO THE DIAG_MANAGER BUFFER !{ - ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux from moist mmr to dry vmr. + ! data override for co2 to be passed to ocean (co2_flux_pcair_atm) + ! atmos_co2.F90 already called: converts tr_bot passed to ocean via gas_flux + ! from moist mmr to dry vmr. do n = 1, atm%fields%num_bcs do m = 1, atm%fields%bc(n)%num_fields call fms_data_override('ATM', atm%fields%bc(n)%field(m)%name, & atm%fields%bc(n)%field(m)%values, Time, override = atm%fields%bc(n)%field(m)%override) ex_gas_fields_atm%bc(n)%field(m)%override = atm%fields%bc(n)%field(m)%override - ! 2017/08/08 jgj add co2_flux_pcair_atm diagnostic if ( atm%fields%bc(n)%field(m)%override .and. & fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'co2_flux_pcair_atm') then - if(id_co2_flux_pcair_atm > 0) & - used = fms_diag_send_data(id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) + if( id_co2_flux_pcair_atm > 0 ) & + used = fms_diag_send_data ( id_co2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) endif - ! 2017/08/15 jgj add o2_flux_pcair_atm diagnostic - if (atm%fields%bc(n)%field(m)%override .and. & + if ( atm%fields%bc(n)%field(m)%override .and. & fms_mpp_lowercase(trim(atm%fields%bc(n)%field(m)%name)) .eq. 'o2_flux_pcair_atm') then - if(id_o2_flux_pcair_atm > 0) & - used = fms_diag_send_data(id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time) + if( id_o2_flux_pcair_atm > 0 ) & + used = fms_diag_send_data ( id_o2_flux_pcair_atm, atm%fields%bc(n)%field(m)%values, Time ) endif enddo enddo do n = 1, atm%fields%num_bcs if (atm%fields%bc(n)%use_atm_pressure) then - if(.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then + if (.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values = Atm%p_surf endif - endif + endif enddo !} - + !> OVERRIDE SUBSET OF ICE AND LAND FIELD. DATA WILL BE OVERWRITTEN ONLY IF THE FIELD IS SPECIFIED IN DATA_TABLE !{ - call fms_data_override('ICE', 't_surf', Ice%t_surf, Time) - call fms_data_override('ICE', 'rough_mom', Ice%rough_mom, Time) - call fms_data_override('ICE', 'rough_heat', Ice%rough_heat, Time) - call fms_data_override('ICE', 'rough_moist',Ice%rough_moist, Time) - call fms_data_override('ICE', 'albedo', Ice%albedo, Time) - call fms_data_override('ICE', 'albedo_vis_dir', Ice%albedo_vis_dir, Time) - call fms_data_override('ICE', 'albedo_nir_dir', Ice%albedo_nir_dir, Time) - call fms_data_override('ICE', 'albedo_vis_dif', Ice%albedo_vis_dif, Time) - call fms_data_override('ICE', 'albedo_nir_dif', Ice%albedo_nir_dif, Time) - call fms_data_override('ICE', 'u_surf', Ice%u_surf, Time) - call fms_data_override('ICE', 'v_surf', Ice%v_surf, Time) + call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time) + call fms_data_override ('ICE', 'rough_mom', Ice%rough_mom, Time) + call fms_data_override ('ICE', 'rough_heat', Ice%rough_heat, Time) + call fms_data_override ('ICE', 'rough_moist',Ice%rough_moist, Time) + call fms_data_override ('ICE', 'albedo', Ice%albedo, Time) + call fms_data_override ('ICE', 'albedo_vis_dir', Ice%albedo_vis_dir, Time) + call fms_data_override ('ICE', 'albedo_nir_dir', Ice%albedo_nir_dir, Time) + call fms_data_override ('ICE', 'albedo_vis_dif', Ice%albedo_vis_dif, Time) + call fms_data_override ('ICE', 'albedo_nir_dif', Ice%albedo_nir_dif, Time) + call fms_data_override ('ICE', 'u_surf', Ice%u_surf, Time) + call fms_data_override ('ICE', 'v_surf', Ice%v_surf, Time) call fms_coupler_type_data_override('ICE', Ice%ocean_fields, Time) call fms_coupler_type_send_data(Ice%ocean_fields, Time) - call FMS_DATA_OVERRIDE_('LND', 't_surf', Land%t_surf, Time) - call FMS_DATA_OVERRIDE_('LND', 't_ca', Land%t_ca, Time) - call FMS_DATA_OVERRIDE_('LND', 'rough_mom', Land%rough_mom, Time) - call FMS_DATA_OVERRIDE_('LND', 'rough_heat', Land%rough_heat, Time) - call FMS_DATA_OVERRIDE_('LND', 'albedo', Land%albedo, Time) +#ifndef _USE_LEGACY_LAND_ + call fms_data_override_ug ('LND', 't_surf', Land%t_surf, Time) + call fms_data_override_ug ('LND', 't_ca', Land%t_ca, Time) + call fms_data_override_ug ('LND', 'rough_mom', Land%rough_mom, Time) + call fms_data_override_ug ('LND', 'rough_heat', Land%rough_heat, Time) + call fms_data_override_ug ('LND', 'albedo', Land%albedo, Time) +#else + call fms_data_override ('LND', 't_surf', Land%t_surf, Time) + call fms_data_override ('LND', 't_ca', Land%t_ca, Time) + call fms_data_override ('LND', 'rough_mom', Land%rough_mom, Time) + call fms_data_override ('LND', 'rough_heat', Land%rough_heat, Time) + call fms_data_override ('LND', 'albedo', Land%albedo, Time) +#endif ! tracer data override do tr = 1, n_lnd_tr - call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) + call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) #ifndef _USE_LEGACY_LAND_ - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) + call fms_data_override_ug('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) + enddo + call fms_data_override_ug ('LND', 'albedo_vis_dir', Land%albedo_vis_dir,Time) + call fms_data_override_ug ('LND', 'albedo_nir_dir', Land%albedo_nir_dir,Time) + call fms_data_override_ug ('LND', 'albedo_vis_dif', Land%albedo_vis_dif,Time) + call fms_data_override_ug ('LND', 'albedo_nir_dif', Land%albedo_nir_dif,Time) #else - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) -#endif + call fms_data_override('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) enddo - call FMS_DATA_OVERRIDE_('LND', 'albedo_vis_dir', Land%albedo_vis_dir, Time) - call FMS_DATA_OVERRIDE_('LND', 'albedo_nir_dir', Land%albedo_nir_dir, Time) - call FMS_DATA_OVERRIDE_('LND', 'albedo_vis_dif', Land%albedo_vis_dif, Time) - call FMS_DATA_OVERRIDE_('LND', 'albedo_nir_dif', Land%albedo_nir_dif, Time) + call fms_data_override ('LND', 'albedo_vis_dir', Land%albedo_vis_dir,Time) + call fms_data_override ('LND', 'albedo_nir_dir', Land%albedo_nir_dir,Time) + call fms_data_override ('LND', 'albedo_vis_dif', Land%albedo_vis_dif,Time) + call fms_data_override ('LND', 'albedo_nir_dif', Land%albedo_nir_dif,Time) +#endif !} - + !> MAP ATM FIELDS ONTO THE EXCHANGE GRID !{ + ! [4] put all the qantities we need onto exchange grid + ! [4.1] put atmosphere quantities onto exchange grid #ifdef use_AM3_physics if (do_forecast) then - call fms_xgrid_put_to_xgrid(Atm%Surf_diff%sst_miz, 'ATM', ex_t_surf_miz, & - xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%Surf_diff%sst_miz , 'ATM', ex_t_surf_miz, & + xmap_sfc, remap_method=remap_method, complete=.false.) endif #endif ! put atmosphere bottom layer tracer data onto exchange grid - do tr=1, n_exch_tr - call fms_xgrid_put_to_xgrid(Atm%tr_bot(:,:,tr_table(tr)%atm) , 'ATM', ex_tr_atm(:,tr), xmap_sfc, & + do tr = 1,n_exch_tr + call fms_xgrid_put_to_xgrid (Atm%tr_bot(:,:,tr_table(tr)%atm) , 'ATM', ex_tr_atm(:,tr), xmap_sfc, & remap_method=remap_method, complete=.false.) enddo do n = 1, Atm%fields%num_bcs - if(ex_gas_fields_atm%bc(n)%flux_type .ne. 'air_sea_deposition') then - do m = 1, Atm%fields%bc(n)%num_fields - call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & - ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.) - enddo - endif + if(ex_gas_fields_atm%bc(n)%flux_type .ne. 'air_sea_deposition') then + do m = 1, Atm%fields%bc(n)%num_fields + call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & + ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method, complete=.false.) + enddo + endif enddo - call fms_xgrid_put_to_xgrid(Atm%t_bot, 'ATM', ex_t_atm, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%z_bot, 'ATM', ex_z_atm, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%p_bot, 'ATM', ex_p_atm, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%u_bot, 'ATM', ex_u_atm, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%v_bot, 'ATM', ex_v_atm, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) + call fms_xgrid_put_to_xgrid (Atm%t_bot , 'ATM', ex_t_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%z_bot , 'ATM', ex_z_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%p_bot , 'ATM', ex_p_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%u_bot , 'ATM', ex_u_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%v_bot , 'ATM', ex_v_atm , xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%p_surf, 'ATM', ex_p_surf, xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%slp, 'ATM', ex_slp, xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) !} - + ! slm, Mar 20 2002: changed order in whith the data transferred from ice and land ! grids, to fill t_ca first with t_surf over ocean and then with t_ca from ! land, where it is different from t_surf. It is mostly to simplify @@ -1281,35 +1517,36 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_tr_surf = ex_tr_atm !} - + !> MAP ICE FIELDS ONTO THE EXCHANGE GRID !{ + ! [4.2] put ice quantities onto exchange grid ! (assume that ocean quantites are stored in no ice partition) ! (note: ex_avail is true at ice and ocean points) - call fms_xgrid_put_to_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%rough_moist, 'OCN', ex_rough_moist, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%albedo, 'OCN', ex_albedo, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%albedo_vis_dir, 'OCN', ex_albedo_vis_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%albedo_nir_dir, 'OCN', ex_albedo_nir_dir, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%albedo_vis_dif, 'OCN', ex_albedo_vis_dif, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%albedo_nir_dif, 'OCN', ex_albedo_nir_dif, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc) - call fms_xgrid_put_to_xgrid(Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc) - - tmp_open_sea = 0. + call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_mom, 'OCN', ex_rough_mom, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_heat, 'OCN', ex_rough_heat, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%rough_moist, 'OCN', ex_rough_moist, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo, 'OCN', ex_albedo, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dir, 'OCN', ex_albedo_vis_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dir, 'OCN', ex_albedo_nir_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_vis_dif, 'OCN', ex_albedo_vis_dif, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%albedo_nir_dif, 'OCN', ex_albedo_nir_dif, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%u_surf, 'OCN', ex_u_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Ice%v_surf, 'OCN', ex_v_surf, xmap_sfc) + + tmp_open_sea = 0. tmp_open_sea(:,:,1) = 1. - call fms_xgrid_put_to_xgrid(tmp_open_sea, 'OCN', ex_frac_open_sea, xmap_sfc) + call fms_xgrid_put_to_xgrid ( tmp_open_sea, 'OCN', ex_frac_open_sea, xmap_sfc) do n = 1, ice%ocean_fields%num_bcs do m = 1, ice%ocean_fields%bc(n)%num_fields - call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', & + call fms_xgrid_put_to_xgrid (Ice%ocean_fields%bc(n)%field(m)%values, 'OCN', & ex_gas_fields_ice%bc(n)%field(m)%values, xmap_sfc) enddo enddo !} - + !> ON THE EXCHANGE GRID, GENERATE DYNAMIC WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER !{ @@ -1326,7 +1563,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ex_seawater = 0.0 call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) !} - + !Question: Why is the above ex_seawater a dynamic mask array? ! From its construction it looks like a static array of 1s and 0s ! @@ -1355,59 +1592,99 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! enddo !enddo - + !> ON THE EXCHANGE GRID, INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE !{ - ex_t_ca = ex_t_surf ! slm, Mar 20 2002 to define values over the ocean + ex_t_ca = ex_t_surf ! used to define values over the ocean !} + - - !> MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID + !> ON THE EXCHANGE GRID, INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE !{ + ! [4.3] put land quantities onto exchange grid ---- call fms_xgrid_some(xmap_sfc, ex_land, 'LND') + !} + + + !> MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID + !{ +#ifndef _USE_LEGACY_LAND_ #ifdef use_AM3_physics if (do_forecast) then - call FMS_XGRID_PUT_TO_XGRID_(Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) ex_t_ca(:) = ex_t_surf_miz(:) end if #endif - call FMS_XGRID_PUT_TO_XGRID_(Land%t_surf, 'LND', ex_t_surf, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%t_ca, 'LND', ex_t_ca, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%albedo, 'LND', ex_albedo, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_(Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%albedo, 'LND', ex_albedo, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) ex_rough_scale = ex_rough_mom - call FMS_XGRID_PUT_TO_XGRID_(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) do n_gex=1,n_gex_lnd2atm - call FMS_XGRID_PUT_TO_XGRID_(Land%gex_lnd2atm(:,:,n_gex),'LND', ex_gex_lnd2atm(:,n_gex),xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%gex_lnd2atm(:,:,n_gex),'LND', & + ex_gex_lnd2atm(:,n_gex),xmap_sfc) end do do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then -#ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc) + call fms_xgrid_put_to_xgrid_ug ( Land%tr(:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) + else + ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore + ! fluxes will be 0 + endif + enddo #else - call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc) + +#ifdef use_AM3_physics + if (do_forecast) then + call fms_xgrid_put_to_xgrid (Land%t_surf, 'LND', ex_t_surf_miz, xmap_sfc) + ex_t_ca(:) = ex_t_surf_miz(:) + end if #endif + call fms_xgrid_put_to_xgrid (Land%t_surf, 'LND', ex_t_surf, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%t_ca, 'LND', ex_t_ca, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%rough_mom, 'LND', ex_rough_mom, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%rough_heat, 'LND', ex_rough_heat, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%rough_heat, 'LND', ex_rough_moist, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%albedo, 'LND', ex_albedo, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%albedo_vis_dir, 'LND', ex_albedo_vis_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%albedo_nir_dir, 'LND', ex_albedo_nir_dir, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%albedo_vis_dif, 'LND', ex_albedo_vis_dif, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%albedo_nir_dif, 'LND', ex_albedo_nir_dif, xmap_sfc) + ex_rough_scale = ex_rough_mom + call fms_xgrid_put_to_xgrid(Land%rough_scale, 'LND', ex_rough_scale, xmap_sfc) + + do n_gex=1,n_gex_lnd2atm + call fms_xgrid_put_to_xgrid (Land%gex_lnd2atm(:,:,n_gex),'LND', & + ex_gex_lnd2atm(:,n_gex),xmap_sfc) + end do + + do tr = 1,n_exch_tr + n = tr_table(tr)%lnd + if(n /= NO_TRACER ) then + call fms_xgrid_put_to_xgrid ( Land%tr(:,:,:,n), 'LND', ex_tr_surf(:,tr), xmap_sfc ) else ! do nothing, since ex_tr_surf is prefilled with ex_tr_atm, and therefore ! fluxes will be 0 endif enddo +#endif ex_land_frac = 0.0 - call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) + call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) !} - + #ifdef SCM if (do_specified_land) then @@ -1440,42 +1717,60 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES AND TENDENCIES BY CALLING SURFACE_FLUX !{ + ! [5] compute explicit fluxes and tendencies at all available points --- call fms_xgrid_some(xmap_sfc, ex_avail) - !$OMP parallel do default(none) shared(my_nblocks, ex_t_atm, ex_tr_atm, ex_u_atm, ex_v_atm, & - !$OMP ex_p_atm, ex_z_atm, ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf, ex_u_surf, ex_v_surf, ex_rough_mom, & - !$OMP ex_rough_heat, ex_rough_moist, ex_rough_scale, ex_gust, ex_flux_t, ex_flux_tr, ex_flux_lw, & - !$OMP ex_flux_u, ex_flux_v, ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & - !$OMP ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf, ex_drdt_surf, & - !$OMP ex_dhdt_atm, ex_dfdtr_atm, ex_dtaudu_atm, ex_dtaudv_atm, dt, ex_land, & - !$OMP ex_seawater,ex_avail,block_start,block_end,isphum) private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,ex_t_atm,ex_tr_atm,ex_u_atm,ex_v_atm, & + !$OMP ex_p_atm,ex_z_atm,ex_p_surf,ex_t_surf,ex_t_ca, & + !$OMP ex_tr_surf,ex_u_surf,ex_v_surf,ex_rough_mom, & + !$OMP ex_rough_heat,ex_rough_moist,ex_rough_scale, & + !$OMP ex_gust,ex_flux_t,ex_flux_tr,ex_flux_lw, & + !$OMP ex_flux_u,ex_flux_v,ex_cd_m,ex_cd_t,ex_cd_q, & + !$OMP ex_wind,ex_u_star,ex_b_star,ex_q_star, & + !$OMP ex_thv_atm,ex_thv_surf, & + !$OMP ex_dhdt_surf,ex_dedt_surf,ex_dfdtr_surf, & + !$OMP ex_drdt_surf,ex_dhdt_atm,ex_dfdtr_atm, & + !$OMP ex_dtaudu_atm, ex_dtaudv_atm,dt,ex_land, & + !$OMP ex_seawater,ex_avail,block_start,block_end,isphum) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) call surface_flux (& - ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie), ex_v_atm(is:ie), ex_p_atm(is:ie), & - ex_z_atm(is:ie), ex_p_surf(is:ie),ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), & - ex_u_surf(is:ie), ex_v_surf(is:ie), ex_rough_mom(is:ie), ex_rough_heat(is:ie), ex_rough_moist(is:ie), & - ex_rough_scale(is:ie), ex_gust(is:ie), ex_flux_t(is:ie), ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), & - ex_flux_u(is:ie), ex_flux_v(is:ie), ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), ex_wind(is:ie), & - ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), ex_thv_atm(is:ie), ex_thv_surf(is:ie), & - ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), & - ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), & - dt, ex_land(is:ie), (ex_seawater(is:ie).gt.0.0), ex_avail(is:ie)) + ex_t_atm(is:ie), ex_tr_atm(is:ie,isphum), ex_u_atm(is:ie),ex_v_atm(is:ie),ex_p_atm(is:ie),ex_z_atm(is:ie),& + ex_p_surf(is:ie),ex_t_surf(is:ie), ex_t_ca(is:ie), ex_tr_surf(is:ie,isphum), & + ex_u_surf(is:ie), ex_v_surf(is:ie), & + ex_rough_mom(is:ie), ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_rough_scale(is:ie), & + ex_gust(is:ie), & + ex_flux_t(is:ie), ex_flux_tr(is:ie,isphum), ex_flux_lw(is:ie), ex_flux_u(is:ie), ex_flux_v(is:ie), & + ex_cd_m(is:ie), ex_cd_t(is:ie), ex_cd_q(is:ie), & + ex_wind(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & + ex_thv_atm(is:ie), ex_thv_surf(is:ie), & + ex_dhdt_surf(is:ie), ex_dedt_surf(is:ie), ex_dfdtr_surf(is:ie,isphum), ex_drdt_surf(is:ie), & + ex_dhdt_atm(is:ie), ex_dfdtr_atm(is:ie,isphum), ex_dtaudu_atm(is:ie), ex_dtaudv_atm(is:ie), & + dt, & + ex_land(is:ie), ex_seawater(is:ie) .gt. 0.0, ex_avail(is:ie) ) enddo #ifdef SCM ! Option to override surface fluxes for SCM if (do_specified_flux) then - call scm_surface_flux(& - ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm, ex_p_atm, ex_z_atm, & - ex_p_surf, ex_t_surf, ex_t_ca, ex_tr_surf(:,isphum), ex_u_surf, ex_v_surf, & - ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, & - ex_gust, ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, & - ex_cd_m, ex_cd_t, ex_cd_q, ex_wind, ex_u_star, ex_b_star, ex_q_star, & - ex_thv_atm, ex_thv_surf, ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf(:,isphum), ex_drdt_surf, & - ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, dt, (ex_land, ex_seawater .gt. 0.0), & - ex_avail, ex_dhdt_surf_forland, ex_dedt_surf_forland, ex_dedq_surf_forland) + call scm_surface_flux ( & + ex_t_atm, ex_tr_atm(:,isphum), ex_u_atm, ex_v_atm, ex_p_atm, ex_z_atm, & + ex_p_surf,ex_t_surf, ex_t_ca, ex_tr_surf(:,isphum), & + ex_u_surf, ex_v_surf, & + ex_rough_mom, ex_rough_heat, ex_rough_moist, ex_rough_scale, & + ex_gust, & + ex_flux_t, ex_flux_tr(:,isphum), ex_flux_lw, ex_flux_u, ex_flux_v, & + ex_cd_m, ex_cd_t, ex_cd_q, & + ex_wind, ex_u_star, ex_b_star, ex_q_star, & + ex_thv_atm, ex_thv_surf, & + ex_dhdt_surf, ex_dedt_surf, ex_dfdtr_surf(:,isphum), ex_drdt_surf, & + ex_dhdt_atm, ex_dfdtr_atm(:,isphum), ex_dtaudu_atm, ex_dtaudv_atm, & + dt, & + ex_land, ex_seawater .gt. 0.0, ex_avail, & + ex_dhdt_surf_forland, ex_dedt_surf_forland, ex_dedq_surf_forland ) + endif #endif !} @@ -1483,7 +1778,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! call mpp_clock_end(fluxClock) - + + !> CALL MONIN_OBUKHOV_MO_PROFILE IN FMS + !! ON THE EXCHANGE GRID, COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS + !{ zrefm = 10.0 zrefh = z_ref_heat ! ---- optimize calculation ---- @@ -1491,11 +1789,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary do l = 1, my_nblocks is=block_start(l) ie=block_end(l) - !> ON THE EXCHANGE GRID, COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS - !{ - call fms_monin_obukhov_mo_profile(zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & - ex_rough_heat(is:ie), ex_rough_moist(is:ie), ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & - ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie)) + call fms_monin_obukhov_mo_profile ( zrefm, zrefh, ex_z_atm(is:ie), ex_rough_mom(is:ie), & + ex_rough_heat(is:ie), ex_rough_moist(is:ie), & + ex_u_star(is:ie), ex_b_star(is:ie), ex_q_star(is:ie), & + ex_del_m(is:ie), ex_del_h(is:ie), ex_del_q(is:ie), ex_avail(is:ie) ) do i = is,ie ex_u10(i) = 0. if(ex_avail(i)) then @@ -1514,17 +1811,19 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif enddo !} - + + !> ON THE EXCHANGE GRID, CALCULATE ATMOSPHERIC CONDUCTANCE !{ - !f1p: calculate atmospheric conductance to send to the land model do i=is,ie ex_con_atm(i) = ex_wind(i)*ex_cd_q(i) end do !} + !> ON THE EXCHANGE GRID, COMPUTE DERIVATIVES OF TRACER FLUXES !{ + ! fill derivatives for all tracers ! F = C0*u*rho*delta_q, C0*u*rho is the same for all tracers, copy from sphum do tr = 1,n_exch_tr if (tr==isphum) cycle @@ -1535,14 +1834,14 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! dfdtr_atm for the dfdtr_surf derivative. This will break if ever the flux ! formulation is changed to be not symmetrical w.r.t. q_surf and q_atm, but ! then this whole section will have to be changed. - ex_dfdtr_atm(i,tr) = ex_dfdtr_atm (i,isphum) - ex_dfdtr_surf(i,tr) = -ex_dfdtr_atm (i,isphum) - ex_flux_tr(i,tr) = ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) + ex_dfdtr_atm (i,tr) = ex_dfdtr_atm (i,isphum) + ex_dfdtr_surf (i,tr) = -ex_dfdtr_atm (i,isphum) + ex_flux_tr (i,tr) = ex_dfdtr_surf(i,tr)*(ex_tr_surf(i,tr)-ex_tr_atm(i,tr)) enddo enddo enddo !} - + ! Combine explicit ocean flux and implicit land flux of extra flux fields. @@ -1550,14 +1849,14 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES BETWEEN ATM AND OCEAN !{ call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) - - do n=1, ex_gas_fluxes%num_bcs + + do n = 1, ex_gas_fluxes%num_bcs if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch if (id_tr_mol_flux0(m) .gt. 0) then - call fms_xgrid_get_from_xgrid(& + call fms_xgrid_get_from_xgrid (& diag_atm, 'ATM', ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux0)%values(:), xmap_sfc) - used = fms_diag_send_data(id_tr_mol_flux0(m), diag_atm, Time) + used = fms_diag_send_data ( id_tr_mol_flux0(m), diag_atm, Time ) end if end if end do @@ -1567,18 +1866,18 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! ex_flux_tr(:,itracer) = ex_gas_fluxes%bc(itracer_ocn)%field(fms_coupler_ind_flux)%values(:) ! where(ex_seawater.gt.0) ex_flux_tr(:,itracer) = F_ocn !$OMP parallel do default(shared) private(is,ie,m,tr_units,tr_name) - do l=1, my_nblocks - is = block_start(l) - ie = block_end(l) - do n=1, ex_gas_fluxes%num_bcs - if(ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then + do l = 1, my_nblocks + is=block_start(l) + ie=block_end(l) + do n = 1, ex_gas_fluxes%num_bcs + if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch - call fms_tracer_manager_get_tracer_names(& - MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, tr_name, units=tr_units) - do i=is, ie + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, ex_gas_fluxes%bc(n)%atm_tr_index, tr_name, & + units=tr_units) + do i = is,ie if (ex_land(i)) cycle ! over land, don't do anything ! on ocean or ice cells, flux is explicit therefore we zero derivatives. - ex_dfdtr_atm(i,m) = 0.0 + ex_dfdtr_atm(i,m) = 0.0 ex_dfdtr_surf(i,m) = 0.0 if (ex_seawater(i)>0.0) then if (fms_mpp_lowercase(trim(tr_units)).eq."vmr") then @@ -1590,82 +1889,125 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! ! vmr * kg/m2/s = mol(X)/[m2 s] [1/mol(air) * mol(air)] * WTM(air) ! - ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & + ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) & * 1.0e-3*WTMAIR*WTMH2O/((1.-ex_tr_atm(i,isphum))*WTMH2O+ex_tr_atm(i,isphum)*WTMAIR) + !end if else - ! jgj: convert to kg co2/m2/sec for atm - ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) * & - ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03 + ! convert to kg co2/m2/sec for atm + ex_flux_tr(i,m) = ex_gas_fluxes%bc(n)%field(fms_coupler_ind_flux)%values(i) * & + ex_gas_fluxes%bc(n)%mol_wt * 1.0e-03 end if else ex_flux_tr(i,m) = 0.0 ! pure ice exchange cell endif enddo endif - enddo + enddo enddo !} - + !> OVERRIDE LAND AND ICE TRACER FLUXES. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ - ![5.2] override tracer fluxes and derivatives - do tr=1, n_exch_tr + ! [5.2] override tracer fluxes and derivatives + do tr = 1,n_exch_tr if( tr_table(tr)%atm == NO_TRACER ) cycle ! it should never happen, though - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, tr_name) + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) ! [5.2.1] override tracer flux. Note that "sea" and "diag_land" are repeatedly used ! as temporary storage for the values we are overriding fluxes and derivative with, ! over ocean and land respectively - call FMS_DATA_OVERRIDE_ ('LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used) - if(used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) - call fms_data_override('ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used) - if(used) call fms_xgrid_put_to_xgrid(sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call fms_data_override_ug ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc ) ! [5.2.2] override derivative of flux wrt surface concentration - call FMS_DATA_OVERRIDE_('LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used) - if(used) call FMS_XGRID_PUT_TO_XGRID_(diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) - call fms_data_override('ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used) - if(used) call fms_xgrid_put_to_xgrid(sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc) + call fms_data_override_ug ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc ) ! [5.2.3] override derivative of flux wrt atmospheric concentration - call FMS_DATA_OVERRIDE_('LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used) - if(used) call FMS_XGRID_PUT_TO_XGRID_(diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc) - call fms_data_override('ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used) - if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc) + call fms_data_override_ug ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) enddo ! [5.3] override flux and derivatives for sensible heat flux ! [5.3.1] override flux - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) - if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_flux_t, xmap_sfc ) + call fms_data_override_ug ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_flux_t, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) ! [5.3.2] override derivative of flux wrt near-surface temperature - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) - if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) + call fms_data_override_ug ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) ! [5.3.3] override derivative of flux wrt atmospheric temperature - call FMS_DATA_OVERRIDE_ ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) - if (used) call FMS_XGRID_PUT_TO_XGRID_ ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) + call fms_data_override_ug ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) + if (used) call fms_xgrid_put_to_xgrid_ug ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) - !} - - - ! NB: names of the override fields are constructed using tracer name and certain - ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: - ! "ex_flux_sphum", "ex_dfdsphum_surf", and "ex_dfdsphum_atm". - ! - ! For sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm"; - ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and - ! W/(m2 degK) respectively - +#else + call fms_data_override ( 'LND', 'ex_flux_'//trim(tr_name), diag_land, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_flux_'//trim(tr_name), sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_tr(:,tr), xmap_sfc ) + ! [5.2.2] override derivative of flux wrt surface concentration + call fms_data_override ( 'LND', 'ex_dfd'//trim(tr_name)//'_surf', diag_land, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dfdtr_surf(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_surf', sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_surf(:,tr), xmap_sfc ) + ! [5.2.3] override derivative of flux wrt atmospheric concentration + call fms_data_override ( 'LND', 'ex_dfd'//trim(tr_name)//'_atm', diag_land, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dfdtr_atm(:,tr), xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dfd'//trim(tr_name)//'_atm', sea, Time, override=used ) + if(used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dfdtr_atm(:,tr), xmap_sfc ) + enddo + + ! [5.3] override flux and derivatives for sensible heat flux + ! [5.3.1] override flux + call fms_data_override ( 'LND', 'ex_flux_t', diag_land, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_flux_t, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_flux_t', sea, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_flux_t, xmap_sfc ) + ! [5.3.2] override derivative of flux wrt near-surface temperature + call fms_data_override ( 'LND', 'ex_dhdt_surf', diag_land, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dhdt_surf, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dhdt_surf', sea, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_surf, xmap_sfc ) + ! [5.3.3] override derivative of flux wrt atmospheric temperature + call fms_data_override ( 'LND', 'ex_dhdt_atm', diag_land, Time,override=used ) + if (used) call fms_xgrid_put_to_xgrid ( diag_land, 'LND', ex_dhdt_atm, xmap_sfc ) + call fms_data_override ( 'ICE', 'ex_dhdt_atm', sea, Time, override=used ) + if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) +#endif + !} + + + ! NB: names of the override fields are constructed using tracer name and certain + ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: + ! "ex_flux_sphum", "ex_dfdsphum_surf", and "ex_dfdsphum_atm". + ! + ! For sensible heat flux names are "ex_flux_t", "ex_dhdt_surf", and "ex_dhdt_atm"; + ! despite the name those are actually in energy units, W/m2, W/(m2 degK), and + ! W/(m2 degK) respectively + !> ON THE EXCHANGE GRID, COMPUTE T_SURF**4 + !! NOTE, TO COMPUTE FLUXES, T_SURF**4 IS SENT TO THE EXCHANGE GRID AND NOT T_SURF DUE TO NONLINEARITY IN + !! THE STEFAN-BOLTZMANN LAW WHERE LOGWAVE_FLUX = STEFAN_BOLTZMANN _CONSTANT * T**4. + !! ON THE EXCHANGE GRID, AS QUANTITIES ARE REMAPPED, FIELDS ARE AREA-WEIGHTED (AVERAGED) + !! SUCH THAT OUTPUT_TEMPERATURE = SUM(INPUT_TEMPERATURE * (XGRID_AREA)/(INPUT_GRID_AREA)) + !! WHERE THE SUM IS OVER ALL XGRID CELLS THAT OVERLAP WITH THE OUTPUT CELL. + !! BECAUSE OF THIS WEIGHTING, THE COMPUTED FLUX WOULD DIFFER FROM USING VS **4 !{ - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_avail, & - !$OMP ex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf ) private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_avail, & + !$OMP ex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf ) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -1678,56 +2020,55 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> MAP QUANTITIES FROM THE EXCHANGE GRID TO THE ATM GRID !{ - ! put relevant quantities onto atmospheric boundary - call fms_xgrid_get_from_xgrid(& - Land_Ice_Atmos_Boundary%t_ocean, 'ATM', ex_t_surf, xmap_sfc, complete=.false.) !joseph - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%frac_open_sea,'ATM',ex_frac_open_sea, xmap_sfc) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(& - Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', ex_albedo_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (& - Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', ex_albedo_nir_dir, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (& - Land_Ice_Atmos_Boundary%albedo_vis_dif, 'ATM', ex_albedo_vis_dif, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid (& - Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', ex_albedo_nir_dif, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%rough_mom, 'ATM', ex_rough_mom, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(& - Land_Ice_Atmos_Boundary%rough_heat,'ATM', ex_rough_heat, xmap_sfc, complete=.false.) !kgao - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac, xmap_sfc, complete=.false.) - - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_flux, 'ATM', ex_flux_u, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_flux, 'ATM', ex_flux_v, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudu, 'ATM', ex_dtaudu_atm, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dtaudv, 'ATM', ex_dtaudv_atm, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_star, 'ATM', ex_u_star, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%b_star, 'ATM', ex_b_star, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%q_star, 'ATM', ex_q_star, xmap_sfc, complete=.true.) + ! [6.2] put relevant quantities onto atmospheric boundary + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ocean, 'ATM', & + ex_t_surf , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t, 'ATM', ex_t_surf4 , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%frac_open_sea,'ATM',ex_frac_open_sea, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & + ex_albedo_vis_dir , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', & + ex_albedo_nir_dir , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dif, 'ATM', & + ex_albedo_vis_dif , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dif, 'ATM', & + ex_albedo_nir_dif , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%rough_mom, 'ATM', ex_rough_mom, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%rough_heat,'ATM', & + ex_rough_heat, xmap_sfc, complete=.false.) !kgao + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%land_frac, 'ATM', ex_land_frac, xmap_sfc, complete=.false.) + + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%u_flux, 'ATM', ex_flux_u, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%v_flux, 'ATM', ex_flux_v, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dtaudu, 'ATM', ex_dtaudu_atm, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dtaudv, 'ATM', ex_dtaudv_atm, xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%u_star, 'ATM', ex_u_star , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%b_star, 'ATM', ex_b_star , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%q_star, 'ATM', ex_q_star , xmap_sfc, complete=.true.) do n_gex=1,n_gex_lnd2atm - call fms_xgrid_get_from_xgrid(& - Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), 'ATM', ex_gex_lnd2atm(:,n_gex), xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%gex_lnd2atm(:,:,n_gex), 'ATM', ex_gex_lnd2atm(:,n_gex), & + xmap_sfc, complete=.false.) end do - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u, xmap_sfc, complete=.false.) !bqx - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v, xmap_sfc, complete=.true.) !bqx + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%u_ref, 'ATM', ex_ref_u , xmap_sfc, complete=.false.) !bqx + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%v_ref, 'ATM', ex_ref_v , xmap_sfc, complete=.true.) !bqx -! kgao: for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same) +! for shield+mom6 coupling; used by shield pbl schemes (am5 with tke-edmf should do the same) #ifndef use_AM3_physics - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t, xmap_sfc, complete=.false.) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc, complete=.true.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%shflx,'ATM', ex_flux_t , xmap_sfc, complete=.false.) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc, complete=.true.) #endif - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind, xmap_sfc) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_atm, 'ATM', ex_thv_atm, xmap_sfc) - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%thv_surf, 'ATM', ex_thv_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%wind, 'ATM', ex_wind , xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%thv_atm, 'ATM', ex_thv_atm , xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%thv_surf, 'ATM', ex_thv_surf , xmap_sfc) #ifdef use_AM3_physics if (do_forecast) then - call fms_xgrid_get_from_xgrid(Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid (Ice%t_surf, 'OCN', ex_t_surf, xmap_sfc) end if #endif !} @@ -1735,8 +2076,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !> ON THE ATM GRID, COMPUTE T**0.25 !{ - call fms_mpp_domains_get_compute_domain(Atm%domain, isc, iec, jsc, jec ) - !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary) private(is,ie) + call fms_mpp_domains_get_compute_domain( Atm%domain, isc, iec, jsc, jec ) + !$OMP parallel do default(none) shared(isc,iec,jsc,jec,Land_Ice_Atmos_Boundary ) & + !$OMP private(is,ie) do j = jsc, jec do i = isc, iec Land_Ice_Atmos_Boundary%t(i,j) = Land_Ice_Atmos_Boundary%t(i,j) ** 0.25 @@ -1744,60 +2086,51 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - + !> DATA OVERRIDE ATMOSPHERIC QUANTITIES. - !! DATA_OVERRIDE WILL ONLY OVERWRITE XARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE + !! DATA_OVERRIDE WILL ONLY OVERWRITE IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ - !Balaji: fms_data_override calls moved here from coupler_main - call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) - call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) - - call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) - call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) - call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) - call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) + ! fms_data_override calls moved here from coupler_main + call fms_data_override('ATM', 't', Land_Ice_Atmos_Boundary%t, Time) + call fms_data_override('ATM', 'albedo', Land_Ice_Atmos_Boundary%albedo, Time) + + call fms_data_override('ATM', 'albedo_vis_dir', Land_Ice_Atmos_Boundary%albedo_vis_dir, Time) + call fms_data_override('ATM', 'albedo_nir_dir', Land_Ice_Atmos_Boundary%albedo_nir_dir, Time) + call fms_data_override('ATM', 'albedo_vis_dif', Land_Ice_Atmos_Boundary%albedo_vis_dif, Time) + call fms_data_override('ATM', 'albedo_nir_dif', Land_Ice_Atmos_Boundary%albedo_nir_dif, Time) call fms_data_override('ATM', 'land_frac', Land_Ice_Atmos_Boundary%land_frac, Time) - call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) + call fms_data_override('ATM', 'dt_t', Land_Ice_Atmos_Boundary%dt_t, Time) do tr=1,n_atm_tr call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr, tr_name) call fms_data_override('ATM', 'dt_'//trim(tr_name), Land_Ice_Atmos_Boundary%dt_tr(:,:,tr), Time) enddo - call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) - call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) - call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) - call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) - call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) - call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) + call fms_data_override('ATM', 'u_flux', Land_Ice_Atmos_Boundary%u_flux, Time) + call fms_data_override('ATM', 'v_flux', Land_Ice_Atmos_Boundary%v_flux, Time) + call fms_data_override('ATM', 'dtaudu', Land_Ice_Atmos_Boundary%dtaudu, Time) + call fms_data_override('ATM', 'dtaudv', Land_Ice_Atmos_Boundary%dtaudv, Time) + call fms_data_override('ATM', 'u_star', Land_Ice_Atmos_Boundary%u_star, Time) + call fms_data_override('ATM', 'b_star', Land_Ice_Atmos_Boundary%b_star, Time) ! call fms_data_override('ATM', 'q_star', Land_Ice_Atmos_Boundary%q_star, Time) call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) !} - - ! [6.3] save atmos albedo fix and old albedo (for downward SW flux calculations) - ! on exchange grid - ! allocate ( ex_old_albedo(n_xgrid_sfc) ) - ! ex_old_albedo = ex_albedo - - + !> ON THE EXCHANGE GRID, INITIALIZE ARRAYS FOR FIXING THE ALBEDO - !{ - ! STILL NEEDED ???? - ! IS THIS CORRECT ?? - allocate ( ex_albedo_fix(n_xgrid_sfc) ) + ! + !! STILL NEEDED ???? + !! IS THIS CORRECT ?? allocate ( ex_albedo_vis_dir_fix(n_xgrid_sfc) ) allocate ( ex_albedo_nir_dir_fix(n_xgrid_sfc) ) allocate ( ex_albedo_vis_dif_fix(n_xgrid_sfc) ) allocate ( ex_albedo_nir_dif_fix(n_xgrid_sfc) ) - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & - !$OMP ex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix, & - !$OMP ex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix ) & - !$OMP private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end, & + !$OMP ex_albedo_vis_dir_fix,ex_albedo_nir_dir_fix, ex_albedo_vis_dif_fix,ex_albedo_nir_dif_fix ) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) do i = is, ie - ex_albedo_fix(i) = 0. ex_albedo_vis_dir_fix(i) = 0. ex_albedo_nir_dir_fix(i) = 0. ex_albedo_vis_dif_fix(i) = 0. @@ -1806,10 +2139,8 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo !} - !> MAP ALBEDO FIELDS TO THE EXCHANGE GRID !{ - call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo, 'ATM', ex_albedo_fix, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_vis_dir, 'ATM', & ex_albedo_vis_dir_fix, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Land_Ice_Atmos_Boundary%albedo_nir_dir, 'ATM', & @@ -1823,7 +2154,7 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !> ON THE EXCHANGE GRID, COMPUTE THE ALBEDO FIXING FACTORS !{ - !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_albedo_fix, & + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end, & !$OMP ex_albedo,ex_albedo_vis_dir_fix,ex_albedo_vis_dir, & !$OMP ex_albedo_nir_dir,ex_albedo_nir_dir_fix, & !$OMP ex_albedo_vis_dif_fix,ex_albedo_vis_dif, & @@ -1833,7 +2164,6 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary is=block_start(l) ie=block_end(l) do i = is, ie - ex_albedo_fix(i) = (1.0-ex_albedo(i)) / (1.0-ex_albedo_fix(i)) ex_albedo_vis_dir_fix(i) = (1.0-ex_albedo_vis_dir(i)) / (1.0-ex_albedo_vis_dir_fix(i)) ex_albedo_nir_dir_fix(i) = (1.0-ex_albedo_nir_dir(i)) / (1.0-ex_albedo_nir_dir_fix(i)) ex_albedo_vis_dif_fix(i) = (1.0-ex_albedo_vis_dif(i)) / (1.0-ex_albedo_vis_dif_fix(i)) @@ -1841,11 +2171,10 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary enddo enddo !} - + #ifdef SCM if (do_specified_albedo .and. do_specified_land) then - ex_albedo_fix = 1. ex_albedo_vis_dir_fix = 1. ex_albedo_vis_dif_fix = 1. ex_albedo_nir_dir_fix = 1. @@ -1856,10 +2185,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !======================================================================= ! [7] diagnostics section + !> SAVE STATIC FIELDS. THE STATIC FIELDS WILL BE SAVED ONLY THE FIRST TIME THIS SUBROUTINE IS CALLED !! IF FIRST_STATIC = .TRUE. !{ + !------- save static fields first time only ------ if (first_static) then + !------- land fraction ------ if ( id_land_mask > 0 ) then used = fms_diag_send_data ( id_land_mask, Land_Ice_Atmos_Boundary%land_frac, Time ) @@ -1875,9 +2207,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary endif !} + !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER. !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN THE DIAG_TABLE - !{ + !{ + !------- Atm fields ----------- do n = 1, Atm%fields%num_bcs do m = 1, Atm%fields%bc(n)%num_fields if ( Atm%fields%bc(n)%field(m)%id_diag > 0 ) then @@ -2004,8 +2338,9 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !} - !> COMPUTE DIAGNOSTIC FIELDS AT REFERENCE LEVELS WITH FMS_MONIN_OBUHKOV_MO_PROFILE + !>COMPUTE DIAGNOSTIC FIELDS AT REFERENCE LEVELS WITH FMS_MONIN_OBUHKOV_MO_PROFILE !{ + !--------- diagnostics for fields at reference level --------- !cjg ! if ( id_t_ref > 0 .or. id_rh_ref > 0 .or. & ! id_u_ref > 0 .or. id_v_ref > 0 .or. id_wind_ref > 0 .or. & @@ -2076,12 +2411,13 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary used = fms_diag_send_data(id_huss,Land_Ice_Atmos_Boundary%q_ref,Time) endif if(id_q_ref_land > 0 .or.id_hussLut_land > 0) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) -#ifndef _USE_LEGACY_LAND_ !duplicate send_tile_data. We may remove id_q_ref_land in the future. +#ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_ref, xmap_sfc) call send_tile_data (id_q_ref_land, diag_land) call send_tile_data (id_hussLut_land, diag_land) #else + call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_ref, xmap_sfc) used = fms_diag_send_tile_averaged_data(id_q_ref_land, diag_land, & Land%tile_size, Time, mask=Land%mask) #endif @@ -2096,19 +2432,22 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary end if if(id_tr_ref_land(tr) > 0) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) #ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) + !duplicate send_tile_data. We may remove id_q_ref_land in the future. call send_tile_data (id_tr_ref_land(tr), diag_land) #else + call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_tr_ref(:,tr), xmap_sfc) used = fms_diag_send_tile_averaged_data(id_tr_ref_land(tr), diag_land, & Land%tile_size, Time, mask=Land%mask) #endif endif end do - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_t_ref, ex_avail, & - !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, ex_ref,ex_qs_ref_cmip,ex_ref2) & - !$OMP private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_t_ref,ex_avail, & + !$OMP ex_rough_heat,ex_t_ca,ex_t_atm,ex_p_surf,ex_qs_ref,ex_del_h, & + !$OMP ex_ref,ex_qs_ref_cmip,ex_ref2 ) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -2133,10 +2472,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%t_ref, 'ATM', ex_t_ref, xmap_sfc) ! cjg if ( id_rh_ref_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ (diag_land,'LND', ex_ref, xmap_sfc) #ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug (diag_land,'LND', ex_ref, xmap_sfc) call send_tile_data (id_rh_ref_land, diag_land) #else + call fms_xgrid_get_from_xgrid (diag_land,'LND', ex_ref, xmap_sfc) used = fms_diag_send_tile_averaged_data ( id_rh_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif @@ -2158,28 +2498,32 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ! ------- reference temp ----------- #ifdef use_AM3_physics if ( id_t_ref > 0 .or. id_t_ref_land > 0 .or. id_tasLut_land > 0 ) then - where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h + where (ex_avail) & + ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h if (id_t_ref_land > 0.or.id_tasLut_land > 0) then - call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_ref, xmap_sfc) #ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug(diag_land, 'LND', ex_ref, xmap_sfc) if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) #else + call fms_xgrid_get_from_xgrid(diag_land, 'LND', ex_ref, xmap_sfc) if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif endif + if ( id_t_ref > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) endif endif #else + where (ex_avail) & + ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h if (id_t_ref_land > 0 .or. id_tasLut_land > 0 .or. id_tasl_g > 0) then - where (ex_avail) ex_ref = ex_t_ca + (ex_t_atm-ex_t_ca) * ex_del_h ! t_ref diagnostic at land points only - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', ex_ref, xmap_sfc) #ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_ref, xmap_sfc) if (id_t_ref_land > 0) call send_tile_data (id_t_ref_land, diag_land) if (id_tasLut_land > 0) call send_tile_data (id_tasLut_land, diag_land) if (id_tasl_g > 0) then @@ -2187,11 +2531,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary diag_land, Time, Land%tile_size, Land%mask, Land ) endif #else + call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_ref, xmap_sfc) if (id_t_ref_land > 0) used = fms_diag_send_tile_averaged_data ( id_t_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif endif - ! t_ref diagnostic at all atmos points call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ref, xmap_sfc) if ( id_t_ref > 0 ) used = fms_diag_send_data ( id_t_ref, diag_atm, Time ) @@ -2205,10 +2549,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary where (ex_avail) & ex_ref = ex_u_surf + (ex_u_atm-ex_u_surf) * ex_del_m if ( id_u_ref_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) #ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug ( diag_land, 'LND', ex_ref, xmap_sfc ) call send_tile_data ( id_u_ref_land, diag_land ) #else + call fms_xgrid_get_from_xgrid ( diag_land, 'LND', ex_ref, xmap_sfc ) used = fms_diag_send_tile_averaged_data ( id_u_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif @@ -2225,10 +2570,11 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary where (ex_avail) & ex_ref = ex_v_surf + (ex_v_atm-ex_v_surf) * ex_del_m if ( id_v_ref_land > 0 ) then - call FMS_XGRID_GET_FROM_XGRID_ ( diag_land, 'LND', ex_ref, xmap_sfc ) #ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug ( diag_land, 'LND', ex_ref, xmap_sfc ) call send_tile_data ( id_v_ref_land, diag_land ) #else + call fms_xgrid_get_from_xgrid ( diag_land, 'LND', ex_ref, xmap_sfc ) used = fms_diag_send_tile_averaged_data ( id_v_ref_land, diag_land, & Land%tile_size, Time, mask = Land%mask ) #endif @@ -2280,7 +2626,6 @@ subroutine sfc_boundary_layer (dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary !> END CLOCKS FOR PROFILING !{ - !Balaji call fms_mpp_clock_end(sfcClock) call fms_mpp_clock_end(cplClock) !} @@ -2289,21 +2634,22 @@ end subroutine sfc_boundary_layer !> Subroutine flux_down_from_atmos corrects for the implicit treatment of atmospheric diffisuve fluxes !! in flux exchange from atm to land and ice - subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary) + subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary ) - implicit none - type(FmsTime_type), intent(in):: Time - !< Current model time - type(atmos_data_type), intent(inout) :: Atm - !< A derived data type holding atmosphere boundary data - type(land_data_type), intent(in) :: Land !< A derived data type holding land boundary data - type(ice_data_type), intent(in) :: Ice !< A derived data type holding ice boundary data - type(land_ice_atmos_boundary_type), intent(in) :: Atmos_boundary - !< A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere land and ice + !> current model time + type(FmsTime_type), intent(in) :: Time + !> derived data type holding atmosphere boundary data + type(atmos_data_type), intent(inout) :: Atm + !> derived data type holding land boundary data + type(land_data_type), intent(in) :: Land + !> derived data type holding ice boundary dat + type(ice_data_type), intent(in) :: Ice + !< derived data type holding properties and fluxes passed from exchange grid to atmosphere land and ice + type(land_ice_atmos_boundary_type),intent(in) :: Atmos_boundary + !> derived data type holding properties and fluxes passed from atmosphere to land type(atmos_land_boundary_type), intent(inout):: Land_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to land + !> derived data type holding properties and fluxes passed from atmosphere to ice type(atmos_ice_boundary_type), intent(inout):: Ice_boundary - !< A derived data type to specify properties and fluxes passed from atmosphere to ice ! the following variables are on the exchange grid real, dimension(n_xgrid_sfc) :: & @@ -2330,21 +2676,24 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ex_dsetl_dtr ! derivative of setl_flux w.r.t. tracer concentration #endif + ! tracer seditation flux from the lowest atmospehere layer on the atm grid real :: setl_flux(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - ! tracer seditation flux from the lowest atmospehere layer on the atm grid + + ! derivative of setl_dtr from the lowest atmosphere layer on the atm grid real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - ! derivative of setl_dtr from the lowest atmosphere layer on the atm grid + ! temporary arrays real, dimension(n_xgrid_sfc) :: ex_gamma, ex_dtmass, ex_delta_t, ex_delta_u, ex_delta_v, ex_dflux_t - real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd ! generic exchange fields between atm and land + ! generic exchange fields between atm and land + real, dimension(n_xgrid_sfc,n_gex_atm2lnd) :: ex_gex_atm2lnd real, dimension(n_xgrid_sfc,n_exch_tr) :: & ex_delta_tr, & ! tracer tendencies - ex_dflux_tr ! tracer flux change + ex_dflux_tr ! fracer flux change - real :: cp_inv ! inverse heat capacity at constant pressure + real :: cp_inv ! inverse heat capacity at constant pressure logical :: used, ov ! used in calls to fms integer :: ier ! used in calls to fms integer :: is_atm, ie_atm, js_atm, je_atm, j ! do loop indices @@ -2353,49 +2702,54 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound integer :: tr, n, m ! tracer indices integer :: is, ie, l, i, n_gex ! do loop indices + !> START CLOCKS FOR PROFILING !{ - !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmDnClock) !} !> INITIALIZE REUSABLE FLAG. DATA_OVERRIDE WILL RETURN OV=.TRUE. IF DATA WAS OVERWRITTEN - ov = .false. + !{ + ov = .FALSE. + !} + !> OVERRIDE ATM SHORTWAVE AND LONGWAVE DIRECT AND DOWNWARD DIFFUSIVE FLUXES !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE XARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ - !balaji: fms_data_override calls moved here from coupler_main - call fms_data_override('atm', 'flux_sw', atm%flux_sw, time) - call fms_data_override('atm', 'flux_sw_dir', atm%flux_sw_dir, time) - call fms_data_override('atm', 'flux_sw_dif', atm%flux_sw_dif, time) - call fms_data_override('atm', 'flux_sw_down_vis_dir', atm%flux_sw_down_vis_dir, time) - call fms_data_override('atm', 'flux_sw_down_vis_dif', atm%flux_sw_down_vis_dif, time) - call fms_data_override('atm', 'flux_sw_down_total_dir', atm%flux_sw_down_total_dir, time) - call fms_data_override('atm', 'flux_sw_down_total_dif', atm%flux_sw_down_total_dif, time) - call fms_data_override('atm', 'flux_sw_vis', atm%flux_sw_vis, time) - call fms_data_override('atm', 'flux_sw_vis_dir', atm%flux_sw_vis_dir, time) - call fms_data_override('atm', 'flux_sw_vis_dif', atm%flux_sw_vis_dif, time) - call fms_data_override('atm', 'flux_lw', atm%flux_lw, time) - call fms_data_override('atm', 'lprec', atm%lprec, time) + ! fms_data_override calls moved here from coupler_main + call fms_data_override ('ATM', 'flux_sw', Atm%flux_sw, Time) + call fms_data_override ('ATM', 'flux_sw_dir', Atm%flux_sw_dir, Time) + call fms_data_override ('ATM', 'flux_sw_dif', Atm%flux_sw_dif, Time) + call fms_data_override ('ATM', 'flux_sw_down_vis_dir', Atm%flux_sw_down_vis_dir, Time) + call fms_data_override ('ATM', 'flux_sw_down_vis_dif', Atm%flux_sw_down_vis_dif, Time) + call fms_data_override ('ATM', 'flux_sw_down_total_dir', Atm%flux_sw_down_total_dir, Time) + call fms_data_override ('ATM', 'flux_sw_down_total_dif', Atm%flux_sw_down_total_dif, Time) + call fms_data_override ('ATM', 'flux_sw_vis', Atm%flux_sw_vis, Time) + call fms_data_override ('ATM', 'flux_sw_vis_dir', Atm%flux_sw_vis_dir, Time) + call fms_data_override ('ATM', 'flux_sw_vis_dif', Atm%flux_sw_vis_dif, Time) + call fms_data_override ('ATM', 'flux_lw', Atm%flux_lw, Time) + call fms_data_override ('ATM', 'lprec', Atm%lprec, Time) !} + !> SCALE LIQUID PRECIPITATION BY FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE !! SCALE_PRECIP_2D IS SET DURING MODULE INITIALIZATION CALL TO ATM_LAND_ICE_FLUX_EXCHANGE_INIT !! FRAC_PRECIP VALUES ARE SET WITH DATA_OVERRIDE !{ if (scale_precip_2d) then - call fms_mpp_domains_get_compute_domain(atm%domain, is_atm, ie_atm, js_atm, je_atm) - call fms_data_override ('atm', 'precip_scale2d', frac_precip, Time) - do j = js_atm, je_atm - do i = is_atm, ie_atm + call fms_mpp_domains_get_compute_domain(Atm%Domain, is_atm, ie_atm, js_atm, je_atm) + call fms_data_override ('ATM', 'precip_scale2d', frac_precip, Time) + do j=js_atm,je_atm + do i=is_atm, ie_atm Atm%lprec(i,j) = Atm%lprec(i,j)*frac_precip(i,j) enddo enddo endif !} + !> PARTITION PRECIPTATION TO LIQUID PRECIPITATION AND FROZEN PRECIPITATION IF PARTITION_FPREC_FROM_LPREC = .TRUE. !! PARTIION_FPREC_FROM_LPREC IS SET AS PART OF MODULE INITIALIZATION CALL IN ATM_LAND_ICE_FLUX_EXCHANGE !{ @@ -2412,106 +2766,114 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound endif !} + !> OVERRIDE ATM FPREC, COZEN, AND SURF_DIFF FIELDS. !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ - call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) - call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) - call fms_data_override ('ATM', 'dtmass', Atm%Surf_Diff%dtmass, Time) - call fms_data_override ('ATM', 'delta_t', Atm%Surf_Diff%delta_t, Time) - call fms_data_override ('ATM', 'dflux_t', Atm%Surf_Diff%dflux_t, Time) + call fms_data_override ('ATM', 'fprec', Atm%fprec, Time) + call fms_data_override ('ATM', 'coszen', Atm%coszen, Time) + call fms_data_override ('ATM', 'dtmass', Atm%Surf_Diff%dtmass, Time) + call fms_data_override ('ATM', 'delta_t', Atm%Surf_Diff%delta_t, Time) + call fms_data_override ('ATM', 'dflux_t', Atm%Surf_Diff%dflux_t, Time) do tr = 1,n_atm_tr call fms_tracer_manager_get_tracer_names(MODEL_ATMOS,tr,tr_name) - call fms_data_override ('ATM', 'delta_'//trim(tr_name), Atm%Surf_Diff%delta_tr(:,:,tr), Time) - call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) + call fms_data_override ('ATM', 'delta_'//trim(tr_name), Atm%Surf_Diff%delta_tr(:,:,tr), Time) + call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) enddo !} + !> MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID !{ - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir, ex_flux_sw_dif, ex_delta_u, ex_flux_sw_vis_dif, ex_flux_lwd, ex_delta_v, & - !$OMP ex_gex_atm2lnd, n_gex_atm2lnd) private(is,ie,n_gex) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & + !$OMP ex_flux_sw_vis_dir,ex_flux_sw_dif,ex_delta_u, & + !$OMP ex_flux_sw_vis_dif,ex_flux_lwd,ex_delta_v, & + !$OMP ex_gex_atm2lnd,n_gex_atm2lnd) & + !$OMP private(is,ie,n_gex) do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) + is=block_start(l) + ie=block_end(l) do i = is, ie - ex_flux_sw_dir(i) = 0.0 + ex_flux_sw_dir(i) = 0.0 ex_flux_sw_vis_dir(i) = 0.0 - ex_flux_sw_dif(i) = 0.0 + ex_flux_sw_dif(i) = 0.0 ex_flux_sw_vis_dif(i) = 0.0 - ex_flux_lwd(i) = 0.0 - ex_delta_u(i) = 0.0 - ex_delta_v(i) = 0.0 + ex_flux_lwd(i) = 0.0 + ex_delta_u(i) = 0.0 + ex_delta_v(i) = 0.0 enddo do n_gex=1,n_gex_atm2lnd do i = is, ie - ex_gex_atm2lnd(i,n_gex) = 0.0 + ex_gex_atm2lnd(i,n_gex) = 0.0 end do end do enddo - - call fms_xgrid_put_to_xgrid(Atm%flux_sw_dir, 'ATM', ex_flux_sw_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dir, 'ATM', ex_flux_sw_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_dif, 'ATM', ex_flux_sw_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_vis_dif, 'ATM', ex_flux_sw_vis_dif, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dir, 'ATM', ex_flux_sw_down_vis_dir, xmap_sfc, complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc,complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc,complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc,complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_dir, 'ATM', ex_flux_sw_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_vis_dir, 'ATM', ex_flux_sw_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_dif, 'ATM', ex_flux_sw_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_vis_dif, 'ATM', ex_flux_sw_vis_dif, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_vis_dir, 'ATM', ex_flux_sw_down_vis_dir, xmap_sfc, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_total_dir,'ATM', ex_flux_sw_down_total_dir, xmap_sfc,complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_vis_dif,'ATM', ex_flux_sw_down_vis_dif, xmap_sfc,complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%flux_sw_down_total_dif, 'ATM',ex_flux_sw_down_total_dif, xmap_sfc,complete=.false.) ! ccc = conservation_check(Atm%lprec, 'ATM', xmap_sfc) ! if (fms_mpp_pe()== fms_mpp_root_pe()) print *,'LPREC', ccc - - ! if(do_area_weighted_flux) then - ! call put_to_xgrid (Atm%lprec * AREA_ATM_MODEL, 'ATM', ex_lprec, xmap_sfc) - ! call put_to_xgrid (Atm%fprec * AREA_ATM_MODEL, 'ATM', ex_fprec, xmap_sfc) - ! else + + !!$ if(do_area_weighted_flux) then + !!$ call put_to_xgrid (Atm%lprec * AREA_ATM_MODEL, 'ATM', ex_lprec, xmap_sfc) + !!$ call put_to_xgrid (Atm%fprec * AREA_ATM_MODEL, 'ATM', ex_fprec, xmap_sfc) + !!$ else call fms_xgrid_put_to_xgrid (Atm%lprec, 'ATM', ex_lprec, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%fprec, 'ATM', ex_fprec, xmap_sfc, complete=.false.) call fms_xgrid_put_to_xgrid (Atm%t_bot, 'ATM', ex_tprec, xmap_sfc, complete=.false.) - ! endif + !!$ endif do n_gex=1,n_gex_atm2lnd - call fms_xgrid_put_to_xgrid(Atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%gex_atm2lnd(:,:,n_gex),'ATM',ex_gex_atm2lnd(:,n_gex),xmap_sfc,complete=.false.) end do - call fms_xgrid_put_to_xgrid(Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) - call fms_xgrid_put_to_xgrid(Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%coszen, 'ATM', ex_coszen, xmap_sfc, complete=.true.) + call fms_xgrid_put_to_xgrid (Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) + !} + + !> ON THE EXCHANGE GRID, UPDATE U AND V STRESS + !{ ! MOD changed the following two lines to put Atmos%surf_diff%delta_u and v ! on exchange grid instead of the stresses themselves so that only the ! implicit corrections are filtered through the atmospheric grid not the ! stresses themselves - call fms_xgrid_put_to_xgrid(Atm%Surf_Diff%delta_u, 'ATM', ex_delta_u, xmap_sfc, remap_method=remap_method, & - complete=.false.) - call fms_xgrid_put_to_xgrid(Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & - complete=.true.) - !} + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_u, 'ATM', ex_delta_u, xmap_sfc, remap_method=remap_method, & + complete=.false.) + call fms_xgrid_put_to_xgrid (Atm%Surf_Diff%delta_v, 'ATM', ex_delta_v, xmap_sfc, remap_method=remap_method, & + complete=.true.) - !> ON THE EXCHANGE GRID, UPDATE U AND V STRESS - !{ ! MOD update stresses using atmos delta's but derivatives on exchange grid - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_u, ex_delta_u, & - !$OMP ex_dtaudu_atm, ex_dtaudv_atm, ex_flux_v, ex_delta_v) private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_u,ex_delta_u, & + !$OMP ex_dtaudu_atm,ex_dtaudv_atm,ex_flux_v,ex_delta_v ) & + !$OMP private(is,ie) do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) + is=block_start(l) + ie=block_end(l) do i = is, ie ex_flux_u(i) = ex_flux_u(i) + ex_delta_u(i)*ex_dtaudu_atm(i) ex_flux_v(i) = ex_flux_v(i) + ex_delta_v(i)*ex_dtaudv_atm(i) enddo enddo - !} end update u and v stress on the exchange grid + !} + !> ON THE EXCHANGE GRID, FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT TO TAKE INTO ACCOUNT FOR ALBEDO VARIATION !{ !---- adjust sw flux for albedo variations on exch grid ---- !---- adjust 4 categories (vis/nir dir/dif) separately ---- - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_sw_dir, & - !$OMP ex_flux_sw_vis_dir, ex_albedo_nir_dir_fix, ex_albedo_vis_dir_fix, ex_flux_sw_dif, & - !$OMP ex_flux_sw_vis_dif, ex_flux_sw_vis, ex_flux_sw, ex_albedo_nir_dif_fix, ex_albedo_vis_dif_fix)& - !$OMP private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_sw_dir, & + !$OMP ex_flux_sw_vis_dir,ex_albedo_nir_dir_fix, & + !$OMP ex_albedo_vis_dir_fix,ex_flux_sw_dif, & + !$OMP ex_flux_sw_vis_dif,ex_flux_sw_vis,ex_flux_sw, & + !$OMP ex_albedo_nir_dif_fix,ex_albedo_vis_dif_fix ) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -2531,25 +2893,25 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound enddo enddo - ! ex_flux_sw_dir = ex_flux_sw_dir - ex_flux_sw_vis_dir ! temporarily nir/dir - ! ex_flux_sw_dir = ex_flux_sw_dir * ex_albedo_nir_dir_fix ! fix nir/dir - ! ex_flux_sw_vis_dir = ex_flux_sw_vis_dir * ex_albedo_vis_dir_fix ! fix vis/dir - ! ex_flux_sw_dir = ex_flux_sw_dir + ex_flux_sw_vis_dir ! back to total dir - ! - ! ex_flux_sw_dif = ex_flux_sw_dif - ex_flux_sw_vis_dif ! temporarily nir/dif - ! ex_flux_sw_dif = ex_flux_sw_dif * ex_albedo_nir_dif_fix ! fix nir/dif - ! ex_flux_sw_vis_dif = ex_flux_sw_vis_dif * ex_albedo_vis_dif_fix ! fix vis/dif - ! ex_flux_sw_dif = ex_flux_sw_dif + ex_flux_sw_vis_dif ! back to total dif - ! - ! ex_flux_sw_vis = ex_flux_sw_vis_dir + ex_flux_sw_vis_dif ! legacy, remove later - ! ex_flux_sw = ex_flux_sw_dir + ex_flux_sw_dif ! legacy, remove later + !!$ ex_flux_sw_dir = ex_flux_sw_dir - ex_flux_sw_vis_dir ! temporarily nir/dir + !!$ ex_flux_sw_dir = ex_flux_sw_dir * ex_albedo_nir_dir_fix ! fix nir/dir + !!$ ex_flux_sw_vis_dir = ex_flux_sw_vis_dir * ex_albedo_vis_dir_fix ! fix vis/dir + !!$ ex_flux_sw_dir = ex_flux_sw_dir + ex_flux_sw_vis_dir ! back to total dir + !!$ + !!$ ex_flux_sw_dif = ex_flux_sw_dif - ex_flux_sw_vis_dif ! temporarily nir/dif + !!$ ex_flux_sw_dif = ex_flux_sw_dif * ex_albedo_nir_dif_fix ! fix nir/dif + !!$ ex_flux_sw_vis_dif = ex_flux_sw_vis_dif * ex_albedo_vis_dif_fix ! fix vis/dif + !!$ ex_flux_sw_dif = ex_flux_sw_dif + ex_flux_sw_vis_dif ! back to total dif + !!$ + !!$ ex_flux_sw_vis = ex_flux_sw_vis_dir + ex_flux_sw_vis_dif ! legacy, remove later + !!$ ex_flux_sw = ex_flux_sw_dir + ex_flux_sw_dif ! legacy, remove later - deallocate ( ex_albedo_fix ) deallocate ( ex_albedo_vis_dir_fix ) deallocate ( ex_albedo_nir_dir_fix ) deallocate ( ex_albedo_vis_dif_fix ) deallocate ( ex_albedo_nir_dif_fix ) !} + !> ON THE EXCHANGE GRID, ADJUST FLUXES FOR IMPLICIT DEPENDENCE !{ @@ -2575,7 +2937,7 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_xgrid_put_to_xgrid(dsetl_dtr, 'ATM', ex_dsetl_dtr, xmap_sfc) where (ex_avail) ! minus sign is because sedimentation is positive down - ex_flux_tr(:,tr)= ex_flux_tr(:,tr) - ex_setl_flux(:) + ex_flux_tr(:,tr) = ex_flux_tr(:,tr) - ex_setl_flux(:) ex_dfdtr_atm(:,tr) = ex_dfdtr_atm(:,tr) - ex_dsetl_dtr(:) end where endif @@ -2584,11 +2946,13 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound cp_inv = 1.0/cp_air - !$OMP parallel do default(none) shared(my_nblocks, block_start, block_end, ex_flux_lw, ex_flux_lwd, & - !$OMP ex_avail, ex_gamma, ex_dtmass, ex_dflux_t, ex_dhdt_atm, cp_inv, ex_e_t_n, & - !$OMP ex_dhdt_surf,ex_f_t_delt_n,ex_delta_t, ex_flux_t, ex_dflux_tr, isphum, & - !$OMP ex_dfdtr_atm, ex_e_q_n, ex_dedt_surf, n_exch_tr, ex_e_tr_n, ex_dfdtr_surf, & - !$OMP ex_f_tr_delt_n, ex_delta_tr, ex_flux_tr) private(is,ie) + !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_flux_lw,ex_flux_lwd, & + !$OMP ex_avail,ex_gamma,ex_dtmass,ex_dflux_t,ex_dhdt_atm, & + !$OMP cp_inv,ex_e_t_n,ex_dhdt_surf,ex_f_t_delt_n,ex_delta_t, & + !$OMP ex_flux_t,ex_dflux_tr,isphum,ex_dfdtr_atm,ex_e_q_n, & + !$OMP ex_dedt_surf,n_exch_tr,ex_e_tr_n,ex_dfdtr_surf, & + !$OMP ex_f_tr_delt_n,ex_delta_tr,ex_flux_tr ) & + !$OMP private(is,ie) do l = 1, my_nblocks is=block_start(l) ie=block_end(l) @@ -2597,13 +2961,14 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ! (note: lw up already in ex_flux_lw) ex_flux_lw(i) = ex_flux_lwd(i) - ex_flux_lw(i) if (ex_avail(i) ) then + ! temperature - ex_gamma(i) = 1./ (1.0 - ex_dtmass(i)*(ex_dflux_t(i) + ex_dhdt_atm(i)*cp_inv)) - ex_e_t_n(i) = ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) + ex_gamma(i) = 1./ (1.0 - ex_dtmass(i)*(ex_dflux_t(i) + ex_dhdt_atm(i)*cp_inv)) + ex_e_t_n(i) = ex_dtmass(i)*ex_dhdt_surf(i)*cp_inv*ex_gamma(i) ex_f_t_delt_n(i) = (ex_delta_t(i) + ex_dtmass(i) * ex_flux_t(i)*cp_inv) * ex_gamma(i) - ex_flux_t(i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) - ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) + ex_flux_t (i) = ex_flux_t(i) + ex_dhdt_atm(i) * ex_f_t_delt_n(i) + ex_dhdt_surf(i) = ex_dhdt_surf(i) + ex_dhdt_atm(i) * ex_e_t_n(i) ! moisture ! ex_gamma = 1./ (1.0 - ex_dtmass*(ex_dflux_q + ex_dedq_atm)) @@ -2617,155 +2982,247 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound ! ex_dedt_surf = ex_dedt_surf + ex_dedq_atm * ex_e_q_n ! ex_dedq_surf = ex_dedq_surf + ex_dedq_atm * ex_e_q_n ! moisture vs. surface temperture, assuming saturation - ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,isphum) + ex_dfdtr_atm(i,isphum))) - ex_e_q_n(i) = ex_dtmass(i) * ex_dedt_surf(i) * ex_gamma(i) - ex_dedt_surf(i) = ex_dedt_surf(i) + ex_dfdtr_atm(i,isphum) * ex_e_q_n(i) + ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,isphum) + ex_dfdtr_atm(i,isphum))) + ex_e_q_n(i) = ex_dtmass(i) * ex_dedt_surf(i) * ex_gamma(i) + ex_dedt_surf(i) = ex_dedt_surf(i) + ex_dfdtr_atm(i,isphum) * ex_e_q_n(i) do tr = 1,n_exch_tr - ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,tr) + ex_dfdtr_atm(i,tr))) - ex_e_tr_n(i,tr) = ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) + ex_gamma(i) = 1.0 / (1.0 - ex_dtmass(i)*(ex_dflux_tr(i,tr) + ex_dfdtr_atm(i,tr))) + + ex_e_tr_n(i,tr) = ex_dtmass(i)*ex_dfdtr_surf(i,tr)*ex_gamma(i) ex_f_tr_delt_n(i,tr) = (ex_delta_tr(i,tr)+ex_dtmass(i)*ex_flux_tr(i,tr))*ex_gamma(i) - ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) + ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dfdtr_atm(i,tr)*ex_f_tr_delt_n(i,tr) ex_dfdtr_surf(i,tr) = ex_dfdtr_surf(i,tr) + ex_dfdtr_atm(i,tr)*ex_e_tr_n(i,tr) enddo endif enddo - enddo + enddo !} - + !> MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID AND OVERRIDE FIELDS !! WITH DATA_OVERRIDE WHERE DATA WILL BE OVERWRITTEN IF THE FIELD IS SPECIFIED IN DATA_TABLE !{ - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) #ifdef SCM if (do_specified_land .and. do_specified_flux) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) else - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) endif #else - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) #endif - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) - - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) - ! if(do_area_weighted_flux) then - ! ! evap goes here??? - ! do k = 1, size(Land_boundary%lprec, dim=3) - ! ! Note: we divide by AREA_ATM_MODEL, which should be the same as - ! ! AREA_LND_MODEL (but the latter may not be defined) - ! call divide_by_area(data=Land_boundary%lprec(:,:,k), area=AREA_ATM_MODEL) - ! call divide_by_area(data=Land_boundary%fprec(:,:,k), area=AREA_ATM_MODEL) - ! enddo - ! endif + call fms_xgrid_get_from_xgrid_ug (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) + + call fms_xgrid_get_from_xgrid_ug (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) + !!$ if(do_area_weighted_flux) then + !!$ ! evap goes here??? + !!$ do k = 1, size(Land_boundary%lprec, dim=3) + !!$ ! Note: we divide by AREA_ATM_MODEL, which should be the same as + !!$ ! AREA_LND_MODEL (but the latter may not be defined) + !!$ call divide_by_area(data=Land_boundary%lprec(:,:,k), area=AREA_ATM_MODEL) + !!$ call divide_by_area(data=Land_boundary%fprec(:,:,k), area=AREA_ATM_MODEL) + !!$ enddo + !!$ endif if(associated(Land_boundary%drag_q)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'drag_q', Land_boundary%drag_q, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) + call fms_data_override_ug('LND', 'drag_q', Land_boundary%drag_q, Time ) endif if(associated(Land_boundary%lwdn_flux)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) + call fms_data_override_ug('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) endif if(associated(Land_boundary%cd_m)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'cd_m', Land_boundary%cd_m, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) + call fms_data_override_ug('LND', 'cd_m', Land_boundary%cd_m, Time ) endif if(associated(Land_boundary%cd_t)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'cd_t', Land_boundary%cd_t, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) + call fms_data_override_ug('LND', 'cd_t', Land_boundary%cd_t, Time ) endif if(associated(Land_boundary%bstar)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'bstar', Land_boundary%bstar, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) + call fms_data_override_ug('LND', 'bstar', Land_boundary%bstar, Time ) endif if(associated(Land_boundary%ustar)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'ustar', Land_boundary%ustar, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) + call fms_data_override_ug('LND', 'ustar', Land_boundary%ustar, Time ) endif if(associated(Land_boundary%wind)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%wind, 'LND', ex_wind, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'wind', Land_boundary%wind, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) + call fms_data_override_ug('LND', 'wind', Land_boundary%wind, Time ) endif if(associated(Land_boundary%z_bot)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) - call FMS_DATA_OVERRIDE_('LND', 'z_bot', Land_boundary%z_bot, Time ) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) + call fms_data_override_ug('LND', 'z_bot', Land_boundary%z_bot, Time ) endif + if (associated(Land_boundary%con_atm)) then + call fms_xgrid_get_from_xgrid_ug (Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) + end if if (associated(Land_boundary%gex_atm2lnd)) then do n_gex=1,n_gex_atm2lnd - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%gex_atm2lnd(:,:,n_gex),'LND',ex_gex_atm2lnd(:,n_gex),xmap_sfc) !add data_override here end do end if +#else + call fms_xgrid_get_from_xgrid (Land_boundary%t_flux, 'LND', ex_flux_t, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux, 'LND', ex_flux_sw, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_vis_dir, 'LND', ex_flux_sw_down_vis_dir, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_total_dir, 'LND', ex_flux_sw_down_total_dir, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_vis_dif, 'LND', ex_flux_sw_down_vis_dif, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%sw_flux_down_total_dif, 'LND', ex_flux_sw_down_total_dif, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%lw_flux, 'LND', ex_flux_lw, xmap_sfc) +#ifdef SCM + if (do_specified_land .and. do_specified_flux) then + call fms_xgrid_get_from_xgrid (Land_boundary%dhdt, 'LND', ex_dhdt_surf_forland, xmap_sfc) + else + call fms_xgrid_get_from_xgrid (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) + endif +#else + call fms_xgrid_get_from_xgrid (Land_boundary%dhdt, 'LND', ex_dhdt_surf, xmap_sfc) +#endif + call fms_xgrid_get_from_xgrid (Land_boundary%drdt, 'LND', ex_drdt_surf, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%p_surf, 'LND', ex_p_surf, xmap_sfc) -#ifndef _USE_LEGACY_LAND_ - if (associated(Land_boundary%con_atm)) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%con_atm, 'LND', ex_con_atm, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%lprec, 'LND', ex_lprec, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%fprec, 'LND', ex_fprec, xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%tprec, 'LND', ex_tprec, xmap_sfc) + + if (associated(Land_boundary%gex_atm2lnd)) then + do n_gex=1,n_gex_atm2lnd + call fms_xgrid_get_from_xgrid (Land_boundary%gex_atm2lnd(:,:,n_gex), 'LND', ex_gex_atm2lnd(:,n_gex), xmap_sfc) + end do end if -#endif + !!$ if(do_area_weighted_flux) then + !!$ ! evap goes here??? + !!$ do k = 1, size(Land_boundary%lprec, dim=3) + !!$ ! Note: we divide by AREA_ATM_MODEL, which should be the same as + !!$ ! AREA_LND_MODEL (but the latter may not be defined) + !!$ call divide_by_area(data=Land_boundary%lprec(:,:,k), area=AREA_ATM_MODEL) + !!$ call divide_by_area(data=Land_boundary%fprec(:,:,k), area=AREA_ATM_MODEL) + !!$ enddo + !!$ endif + + if(associated(Land_boundary%drag_q)) then + call fms_xgrid_get_from_xgrid (Land_boundary%drag_q, 'LND', ex_drag_q, xmap_sfc) + call fms_data_override('LND', 'drag_q', Land_boundary%drag_q, Time ) + endif + if(associated(Land_boundary%lwdn_flux)) then + call fms_xgrid_get_from_xgrid (Land_boundary%lwdn_flux, 'LND', ex_flux_lwd, xmap_sfc) + call fms_data_override('LND', 'lwdn_flux', Land_boundary%lwdn_flux, Time ) + endif + if(associated(Land_boundary%cd_m)) then + call fms_xgrid_get_from_xgrid (Land_boundary%cd_m, 'LND', ex_cd_m, xmap_sfc) + call fms_data_override('LND', 'cd_m', Land_boundary%cd_m, Time ) + endif + if(associated(Land_boundary%cd_t)) then + call fms_xgrid_get_from_xgrid (Land_boundary%cd_t, 'LND', ex_cd_t, xmap_sfc) + call fms_data_override('LND', 'cd_t', Land_boundary%cd_t, Time ) + endif + if(associated(Land_boundary%bstar)) then + call fms_xgrid_get_from_xgrid (Land_boundary%bstar, 'LND', ex_b_star, xmap_sfc) + call fms_data_override('LND', 'bstar', Land_boundary%bstar, Time ) + endif + if(associated(Land_boundary%ustar)) then + call fms_xgrid_get_from_xgrid (Land_boundary%ustar, 'LND', ex_u_star, xmap_sfc) + call fms_data_override('LND', 'ustar', Land_boundary%ustar, Time ) + endif + if(associated(Land_boundary%wind)) then + call fms_xgrid_get_from_xgrid (Land_boundary%wind, 'LND', ex_wind, xmap_sfc) + call fms_data_override('LND', 'wind', Land_boundary%wind, Time ) + endif + if(associated(Land_boundary%z_bot)) then + call fms_xgrid_get_from_xgrid (Land_boundary%z_bot, 'LND', ex_z_atm, xmap_sfc) + call fms_data_override('LND', 'z_bot', Land_boundary%z_bot, Time ) + endif +#endif Land_boundary%tr_flux = 0.0 Land_boundary%dfdtr = 0.0 do tr = 1,n_exch_tr n = tr_table(tr)%lnd if(n /= NO_TRACER ) then + #ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%tr_flux(:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call fms_xgrid_get_from_xgrid_ug (Land_boundary%dfdtr(:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) #else - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%tr_flux(:,:,:,n), 'LND', ex_flux_tr(:,tr), xmap_sfc) + call fms_xgrid_get_from_xgrid (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dfdtr_surf(:,tr), xmap_sfc) #endif #ifdef SCM if (do_specified_land .and. do_specified_flux .and. tr.eq.isphum) then - call FMS_XGRID_GET_FROM_XGRID_(Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call fms_xgrid_get_from_xgrid_ug (Land_boundary%dfdtr(:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) +#else + call fms_xgrid_get_from_xgrid (Land_boundary%dfdtr(:,:,:,n), 'LND', ex_dedq_surf_forland(:), xmap_sfc) +#endif endif #endif - endif + endif enddo !} - + !> OVERRIDE LAND FLUXES. NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE !! ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ ! current time is Time: is that ok? not available in land_data_type !Balaji: data_override calls moved here from coupler_main - call FMS_DATA_OVERRIDE_('LND', 't_flux', Land_boundary%t_flux, Time) - call FMS_DATA_OVERRIDE_('LND', 'lw_flux', Land_boundary%lw_flux, Time) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux', Land_boundary%sw_flux, Time) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time) - call FMS_DATA_OVERRIDE_('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time) - call FMS_DATA_OVERRIDE_('LND', 'lprec', Land_boundary%lprec, Time) - call FMS_DATA_OVERRIDE_('LND', 'fprec', Land_boundary%fprec, Time) - call FMS_DATA_OVERRIDE_('LND', 'dhdt', Land_boundary%dhdt, Time) - call FMS_DATA_OVERRIDE_('LND', 'drdt', Land_boundary%drdt, Time) - call FMS_DATA_OVERRIDE_('LND', 'p_surf', Land_boundary%p_surf, Time) +#ifndef _USE_LEGACY_LAND_ + call fms_data_override_ug('LND', 't_flux', Land_boundary%t_flux, Time ) + call fms_data_override_ug('LND', 'lw_flux', Land_boundary%lw_flux, Time ) + call fms_data_override_ug('LND', 'sw_flux', Land_boundary%sw_flux, Time ) + call fms_data_override_ug('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) + call fms_data_override_ug('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) + call fms_data_override_ug('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) + call fms_data_override_ug('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) + + call fms_data_override_ug('LND', 'lprec', Land_boundary%lprec, Time ) + call fms_data_override_ug('LND', 'fprec', Land_boundary%fprec, Time ) + call fms_data_override_ug('LND', 'dhdt', Land_boundary%dhdt, Time ) + call fms_data_override_ug('LND', 'drdt', Land_boundary%drdt, Time ) + call fms_data_override_ug('LND', 'p_surf', Land_boundary%p_surf, Time ) do tr = 1,n_lnd_tr call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) -#ifndef _USE_LEGACY_LAND_ - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) - call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) + call fms_data_override_ug('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,tr), Time) + call fms_data_override_ug('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,tr), Time) #else - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,:,tr), Time) - call FMS_DATA_OVERRIDE_('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) + call fms_data_override('LND', 't_flux', Land_boundary%t_flux, Time ) + call fms_data_override('LND', 'lw_flux', Land_boundary%lw_flux, Time ) + call fms_data_override('LND', 'sw_flux', Land_boundary%sw_flux, Time ) + call fms_data_override('LND', 'sw_flux_down_vis_dir', Land_boundary%sw_flux_down_vis_dir, Time ) + call fms_data_override('LND', 'sw_flux_down_total_dir', Land_boundary%sw_flux_down_total_dir, Time ) + call fms_data_override('LND', 'sw_flux_down_vis_dif', Land_boundary%sw_flux_down_vis_dif, Time ) + call fms_data_override('LND', 'sw_flux_down_total_dif', Land_boundary%sw_flux_down_total_dif, Time ) + + call fms_data_override('LND', 'lprec', Land_boundary%lprec, Time ) + call fms_data_override('LND', 'fprec', Land_boundary%fprec, Time ) + call fms_data_override('LND', 'dhdt', Land_boundary%dhdt, Time ) + call fms_data_override('LND', 'drdt', Land_boundary%drdt, Time ) + call fms_data_override('LND', 'p_surf', Land_boundary%p_surf, Time ) + do tr = 1,n_lnd_tr + call fms_tracer_manager_get_tracer_names(MODEL_LAND, tr, tr_name) + call fms_data_override('LND', trim(tr_name)//'_flux', Land_boundary%tr_flux(:,:,:,tr), Time) + call fms_data_override('LND', 'dfd'//trim(tr_name), Land_boundary%dfdtr (:,:,:,tr), Time) #endif enddo !} - + !> MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID !{ @@ -2802,27 +3259,27 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound call fms_xgrid_get_from_xgrid (Ice_boundary%lprec, 'OCN', ex_lprec, xmap_sfc) call fms_xgrid_get_from_xgrid (Ice_boundary%fprec, 'OCN', ex_fprec, xmap_sfc) - ! if (do_area_weighted_flux) then - ! where (AREA_ATM_SPHERE /= 0) - ! Ice_boundary%lprec = Ice_boundary%lprec * AREA_ATM_MODEL/AREA_ATM_SPHERE - ! Ice_boundary%fprec = Ice_boundary%fprec * AREA_ATM_MODEL/AREA_ATM_SPHERE - ! end where - ! endif - ! if(do_area_weighted_flux) then - ! do k = 1, size(Ice_boundary%lprec, dim=3) - ! call divide_by_area(data=Ice_boundary%lprec(:,:,k), area=AREA_ATM_SPHERE) - ! call divide_by_area(data=Ice_boundary%fprec(:,:,k), area=AREA_ATM_SPHERE) - ! enddo - ! endif + !!$ if (do_area_weighted_flux) then + !!$ where (AREA_ATM_SPHERE /= 0) + !!$ Ice_boundary%lprec = Ice_boundary%lprec * AREA_ATM_MODEL/AREA_ATM_SPHERE + !!$ Ice_boundary%fprec = Ice_boundary%fprec * AREA_ATM_MODEL/AREA_ATM_SPHERE + !!$ end where + !!$ endif + !!$ if(do_area_weighted_flux) then + !!$ do k = 1, size(Ice_boundary%lprec, dim=3) + !!$ call divide_by_area(data=Ice_boundary%lprec(:,:,k), area=AREA_ATM_SPHERE) + !!$ call divide_by_area(data=Ice_boundary%fprec(:,:,k), area=AREA_ATM_SPHERE) + !!$ enddo + !!$ endif ! Extra fluxes do n = 1, Ice_boundary%fluxes%num_bcs - if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then - do m = 1, Ice_boundary%fluxes%bc(n)%num_fields - call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & - ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - enddo - endif + if(ex_gas_fluxes%bc(n)%flux_type .ne. 'air_sea_deposition') then + do m = 1, Ice_boundary%fluxes%bc(n)%num_fields + call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & + ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) + enddo + endif enddo !} @@ -2830,48 +3287,79 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound !> OVERRIDE ICE FIELDS. NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE !! ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ - !Balaji: data_override calls moved here from coupler_main - call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) - call fms_data_override('ICE', 'v_flux', Ice_boundary%v_flux, Time) - call fms_data_override('ICE', 't_flux', Ice_boundary%t_flux, Time) - call fms_data_override('ICE', 'q_flux', Ice_boundary%q_flux, Time) + ! data_override calls moved here from coupler_main + call fms_data_override('ICE', 'u_flux', Ice_boundary%u_flux, Time) + call fms_data_override('ICE', 'v_flux', Ice_boundary%v_flux, Time) + call fms_data_override('ICE', 't_flux', Ice_boundary%t_flux, Time) + call fms_data_override('ICE', 'q_flux', Ice_boundary%q_flux, Time) call fms_data_override('ICE', 'lw_flux',Ice_boundary%lw_flux, Time) call fms_data_override('ICE', 'lw_flux_dn',Ice_boundary%lw_flux, Time, override=ov) - if (ov) Ice_boundary%lw_flux = Ice_boundary%lw_flux - stefan*Ice%t_surf**4 + if (ov) then + Ice_boundary%lw_flux = Ice_boundary%lw_flux - stefan*Ice%t_surf**4 + endif call fms_data_override('ICE', 'sw_flux_nir_dir',Ice_boundary%sw_flux_nir_dir, Time) call fms_data_override('ICE', 'sw_flux_vis_dir',Ice_boundary%sw_flux_vis_dir, Time) call fms_data_override('ICE', 'sw_flux_nir_dif',Ice_boundary%sw_flux_nir_dif, Time, override=ov) call fms_data_override('ICE', 'sw_flux_vis_dif',Ice_boundary%sw_flux_vis_dif, Time) call fms_data_override('ICE', 'sw_flux_vis_dir_dn',Ice_boundary%sw_down_vis_dir, Time, override=ov) - if (ov) Ice_boundary%sw_flux_vis_dir = Ice_boundary%sw_down_vis_dir*(1.0-Ice%albedo_vis_dir) + if (ov) then + Ice_boundary%sw_flux_vis_dir = Ice_boundary%sw_down_vis_dir*(1.0-Ice%albedo_vis_dir) + endif call fms_data_override('ICE', 'sw_flux_vis_dif_dn',Ice_boundary%sw_down_vis_dif, Time, override=ov) - if (ov) Ice_boundary%sw_flux_vis_dif = Ice_boundary%sw_down_vis_dif*(1.0-Ice%albedo_vis_dif) + if (ov) then + Ice_boundary%sw_flux_vis_dif = Ice_boundary%sw_down_vis_dif*(1.0-Ice%albedo_vis_dif) + endif call fms_data_override('ICE', 'sw_flux_nir_dir_dn',Ice_boundary%sw_down_nir_dir, Time, override=ov) - if (ov) Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_down_nir_dir*(1.0-Ice%albedo_nir_dir) + if (ov) then + Ice_boundary%sw_flux_nir_dir = Ice_boundary%sw_down_nir_dir*(1.0-Ice%albedo_nir_dir) + endif call fms_data_override('ICE', 'sw_flux_nir_dif_dn',Ice_boundary%sw_down_nir_dif, Time, override=ov) - if (ov) Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_down_nir_dif*(1.0-Ice%albedo_nir_dif) - call fms_data_override('ICE', 'lprec', Ice_boundary%lprec, Time) - call fms_data_override('ICE', 'fprec', Ice_boundary%fprec, Time) - call fms_data_override('ICE', 'dhdt', Ice_boundary%dhdt, Time) - call fms_data_override('ICE', 'dedt', Ice_boundary%dedt, Time) - call fms_data_override('ICE', 'drdt', Ice_boundary%drdt, Time) - call fms_data_override('ICE', 'coszen', Ice_boundary%coszen, Time) - call fms_data_override('ICE', 'p', Ice_boundary%p, Time) + if (ov) then + Ice_boundary%sw_flux_nir_dif = Ice_boundary%sw_down_nir_dif*(1.0-Ice%albedo_nir_dif) + endif + call fms_data_override('ICE', 'lprec', Ice_boundary%lprec, Time) + call fms_data_override('ICE', 'fprec', Ice_boundary%fprec, Time) + call fms_data_override('ICE', 'dhdt', Ice_boundary%dhdt, Time) + call fms_data_override('ICE', 'dedt', Ice_boundary%dedt, Time) + call fms_data_override('ICE', 'drdt', Ice_boundary%drdt, Time) + call fms_data_override('ICE', 'coszen', Ice_boundary%coszen, Time) + call fms_data_override('ICE', 'p', Ice_boundary%p, Time) + call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) !} - + !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS + !{ ! Atm -> Lnd (precip) - call FMS_XGRID_STOCK_MOVE_( & +#ifndef _USE_LEGACY_LAND_ + call fms_xgrid_stock_move_ug( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & -#ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = (Land_boundary%lprec + Land_boundary%fprec), & + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Lnd) ') + + ! Atm -> Lnd (heat) + call fms_xgrid_stock_move_ug( & + & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & + & stock_ug_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & + Land_boundary%fprec*HLF), & + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Lnd) ') #else + call fms_xgrid_stock_move( & + & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & TO = fms_stock_constants_lnd_stock(ISTOCK_WATER), & & stock_data3d = (Land_boundary%lprec + Land_boundary%fprec), & -#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & @@ -2879,21 +3367,18 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound & radius=Radius, ier=ier, verbose='stock move PRECIP (Atm->Lnd) ') ! Atm -> Lnd (heat) - call FMS_XGRID_STOCK_MOVE_( & + call fms_xgrid_stock_move( & & FROM = fms_stock_constants_atm_stock(ISTOCK_HEAT), & & TO = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & -#ifndef _USE_LEGACY_LAND_ - & stock_ug_data3d = & - (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & -#else - & stock_data3d = & - (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - Land_boundary%fprec*HLF), & -#endif + & stock_data3d = (-Land_boundary%t_flux + Land_boundary%lw_flux + Land_boundary%sw_flux - & + Land_boundary%fprec*HLF), & & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & & from_side=ISTOCK_BOTTOM, to_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Lnd) ') +#endif + ! Atm -> Ice (precip) call fms_xgrid_stock_move( & & FROM = fms_stock_constants_atm_stock(ISTOCK_WATER), & @@ -2919,13 +3404,15 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') !} - - deallocate(ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) + + deallocate ( ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) !> SEND U_FLUX AND V_FLUX TO THE DIAG_MANAGER BUFFER !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ + !-------------------- diagnostics section ------------------------------ + !------- zonal wind stress ----------- used = fms_diag_send_data ( id_u_flux, Atmos_boundary%u_flux, Time ) used = fms_diag_send_data ( id_tauu, -Atmos_boundary%u_flux, Time ) @@ -2938,48 +3425,55 @@ subroutine flux_down_from_atmos(Time, Atm, Land, Ice, Atmos_boundary, Land_bound !> END CLOCK FOR PROFILING !{ - !Balaji call fms_mpp_clock_end(fluxAtmDnClock) call fms_mpp_clock_end(cplClock) !} end subroutine flux_down_from_atmos - !> Subroutine generate_sfc_xgrid updates the fractional area of the land-ice exchange grid, where !! the fractional area measures the portion of the exchange grid cell that correspoonds to land and to ice. !! This subroutine reduces the size of the exchange grid by eliminating exchange grid cells that are !! pure land or pure ice (i.e., eliminate side 2 tiles with fractional area value of 0.0) - subroutine generate_sfc_xgrid(Land, Ice) + subroutine generate_sfc_xgrid( Land, Ice ) - implicit none - type(land_data_type), intent(in) :: Land !< A derived data type to specify land boundary data - Type(Ice_Data_Type), intent(in) :: Ice !< A derived data type to specify ice boundary data + !> derived data type to specify land boundary data + type(land_data_type), intent(in) :: Land + !> derived data type to specify ice boundary dat + type(ice_data_type), intent(in) :: Ice + + ! compute domain indices + integer :: isc, iec, jsc, jec - integer :: isc, iec, jsc, jec !compute domain indices - !Balaji !> INITIALIZE CLOCK FOR PROFILING !{ call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(regenClock) !} + !> GET ICE COMPUTE DOMAIN INDICES !{ call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) !} + !> UPDATE FRACTIONAL AREAS OF THE EXCHANGE GRID THAT ARE ICE AND LAND !{ - call fms_xgrid_set_frac_area(Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) - call FMS_XGRID_SET_FRAC_AREA_(Land%tile_size, 'LND', xmap_sfc) + call fms_xgrid_set_frac_area (Ice%part_size(isc:iec,jsc:jec,:) , 'OCN', xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call fms_xgrid_set_frac_area_ug (Land%tile_size, 'LND', xmap_sfc) +#else + call fms_xgrid_set_frac_area (Land%tile_size, 'LND', xmap_sfc) +#endif !} + !> UPDATE THE NUMBER OF EXCHANGE GRID CELLS SAVED IN THE MODULE !{ n_xgrid_sfc = max(fms_xgrid_count(xmap_sfc),1) - if(n_xgrid_sfc .ge. nblocks) then + if(n_xgrid_sfc .GE. nblocks) then my_nblocks = nblocks call fms_mpp_domains_compute_extent(1, n_xgrid_sfc, nblocks, block_start, block_end) else @@ -2988,17 +3482,16 @@ subroutine generate_sfc_xgrid(Land, Ice) block_end(1) = n_xgrid_sfc endif !} + !> END CLOCK FOR PROFILING - !Balaji !{ call fms_mpp_clock_end(regenClock) call fms_mpp_clock_end(cplClock) !} - + end subroutine generate_sfc_xgrid - !> Subroutine flux_up_to_atmos corrects the fluxes to take into account !! the new surface temperatures in land and ice models. !! Final increments for temperature and specific humidity in the @@ -3009,38 +3502,40 @@ end subroutine generate_sfc_xgrid !! dt_t = temperature change at the lowest atmospheric level [K] !! dt_q = specific humidity change at the lowest atmospheric level [kg/kg] subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_boundary, Ice_boundary ) - - implicit none - type(FmsTime_type), intent(in) :: Time - !< current model time + !> current model time + type(FmsTime_type), intent(in) :: Time !< Current time + !> derived data type holding land boundary data type(land_data_type), intent(inout) :: Land - !< derived data type holding land boundary data - type(ice_data_type), intent(inout) :: Ice - !< derived data type holding ice boundary data - type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary - !< A derived data type holding properties and fluxes passed from exchange grid to the atmosphere, land and ice + !> derived data type holding ice boundary data + type(ice_data_type), intent(inout) :: Ice + !> derived data type holding properties and fluxes passed from exchange grid to the atmosphere, land and ice + type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary + !> derived data type holding properties and fluxes passed from atmosphere to land type(atmos_land_boundary_type), intent(inout) :: Land_boundary - !< A derived data type holding properties and fluxes passed from atmosphere to land + !> derived data type holding properties and fluxes passed from atmosphere to ice type(atmos_ice_boundary_type), intent(inout) :: Ice_boundary - !< A derived data type holding properties and fluxes passed from atmosphere to ice + ! arrays on exchange grid real, dimension(n_xgrid_sfc) :: & - ex_t_surf_new, & ! array on the exchange grid - ex_dt_t_surf, & ! array on the exchange grid - ex_delta_t_n, & ! array on the exchange grid - ex_t_ca_new, & ! array on the exchange grid - ex_dt_t_ca, & ! array on the exchange grid - ex_icetemp, & ! array on the exchange grid - ex_land_frac, & ! array on the exchange grid - ex_temp ! array on the exchange grid + ex_t_surf_new, & + ex_dt_t_surf, & + ex_delta_t_n, & + ex_t_ca_new, & + ex_dt_t_ca, & + ex_icetemp, & + ex_land_frac, & + ex_temp real, dimension(n_xgrid_sfc,n_exch_tr) :: & - ex_tr_surf_new, & ! updated tracer values at the surface on the exchange grid - ex_dt_tr_surf, & ! tracer tendendencies at the surface on the exchange grid - ex_delta_tr_n ! array on the excchange grid + ! updated tracer values at the surface on exchange grid + ex_tr_surf_new, & + ! tendency of tracers at the surface on exchange grid + ex_dt_tr_surf, & + ! array on exchange grid + ex_delta_tr_n - ! jgj: added for co2_surf diagnostic, where co2_surf_dvmr is the updated CO2 tracer values at the surface (dry vmr) - real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr + ! added for co2_surf diagnostic, where co2_surf_dvmr is the updated CO2 tracer values at the surface (dry vmr) + real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: & diag_atm, & @@ -3050,44 +3545,50 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou #ifndef _USE_LEGACY_LAND_ real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2)) :: data_lnd, diag_land #else - real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: & - data_lnd, diag_land + real, dimension(size(Land_boundary%lprec,1), size(Land_boundary%lprec,2), size(Land_boundary%lprec,3)) :: data_lnd,& + diag_land #endif real, dimension(size(Ice_boundary%lprec,1), size(Ice_boundary%lprec,2), size(Ice_boundary%lprec,3)) :: data_ice real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: icegrid logical :: used - integer :: tr ! tracer index + integer :: tr ! tracer index character(32) :: tr_name, tr_units ! tracer name integer :: n, i, m, ier + integer :: is, ie, l + !> START CLOCK FOR PROFILING !{ - !Balaji call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(fluxAtmUpClock) !} - + !> OVERRIDE ICE%T_SURF, LAND%T_CA, LAND%T_SURF AND LAND SURFACE TRACERS !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE DATA IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ - !Balaji: data_override calls moved here from coupler_main - call fms_data_override('ICE', 't_surf', Ice%t_surf, Time) - call FMS_DATA_OVERRIDE_('LND', 't_ca', Land%t_ca, Time) - call FMS_DATA_OVERRIDE_('LND', 't_surf', Land%t_surf, Time) + ! data_override calls moved here from coupler_main + call fms_data_override ( 'ICE', 't_surf', Ice%t_surf, Time) +#ifndef _USE_LEGACY_LAND_ + call fms_data_override_ug ( 'LND', 't_ca', Land%t_ca, Time) + call fms_data_override_ug ( 'LND', 't_surf', Land%t_surf, Time) +#else + call fms_data_override ( 'LND', 't_ca', Land%t_ca, Time) + call fms_data_override ( 'LND', 't_surf', Land%t_surf, Time) +#endif do tr = 1, n_lnd_tr call fms_tracer_manager_get_tracer_names( MODEL_LAND, tr, tr_name ) #ifndef _USE_LEGACY_LAND_ - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) + call fms_data_override_ug('LND', trim(tr_name)//'_surf', Land%tr(:,:,tr), Time) #else - call FMS_DATA_OVERRIDE_('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) + call fms_data_override('LND', trim(tr_name)//'_surf', Land%tr(:,:,:,tr), Time) #endif enddo !} - + !> INITIALIZE EX_T_SURF_NEW = 200.0 !{ ex_t_surf_new = 200.0 @@ -3098,15 +3599,21 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou !{ call fms_xgrid_put_to_xgrid (Ice%t_surf, 'OCN', ex_t_surf_new, xmap_sfc) ex_t_ca_new = ex_t_surf_new ! since it is the same thing over oceans - - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) - call FMS_XGRID_PUT_TO_XGRID_ (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) +#ifndef _USE_LEGACY_LAND_ + call fms_xgrid_put_to_xgrid_ug (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) + call fms_xgrid_put_to_xgrid_ug (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) +#else + call fms_xgrid_put_to_xgrid (Land%t_ca, 'LND', ex_t_ca_new, xmap_sfc) + call fms_xgrid_put_to_xgrid (Land%t_surf, 'LND', ex_t_surf_new, xmap_sfc) +#endif !} + ! call escomp(ex_t_ca_new, ex_q_surf_new) ! ex_q_surf_new = d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) ! call put_to_xgrid (Land%q_ca, 'LND', ex_q_surf_new, xmap_sfc) + #ifdef SCM if (do_specified_flux .and. do_specified_land) then ex_t_surf_new = ex_t_surf @@ -3114,15 +3621,15 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif #endif - + !> ON THE EXCHANGE GRID, COMPUTE CHANGES IN SURFACE TEMPERATURE AND RADIATIVE TEMPERATURE !{ do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) + is=block_start(l) + ie=block_end(l) do i = is, ie if(ex_avail(i)) then - ex_dt_t_ca(i) = ex_t_ca_new(i) - ex_t_ca(i) ! changes in near-surface T + ex_dt_t_ca(i) = ex_t_ca_new(i) - ex_t_ca(i) ! changes in near-surface T ex_dt_t_surf(i) = ex_t_surf_new(i) - ex_t_surf(i) ! changes in radiative T endif enddo @@ -3130,14 +3637,14 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou if (do_forecast) then do i = is, ie if(ex_avail(i) .and. (.not.ex_land(i))) then - ex_dt_t_ca(i) = 0. + ex_dt_t_ca (i) = 0. ex_dt_t_surf(i) = 0. endif enddo end if !} - - + + !> ON THE EXCHANGE GRID, !! UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE !{ @@ -3160,29 +3667,30 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou n = tr_table(tr)%lnd if(n /= NO_TRACER ) then #ifndef _USE_LEGACY_LAND_ - call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc) + call fms_xgrid_put_to_xgrid_ug ( Land%tr(:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) #else - call FMS_XGRID_PUT_TO_XGRID_(Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc) + call fms_xgrid_put_to_xgrid ( Land%tr(:,:,:,n), 'LND', ex_tr_surf_new(:,tr), xmap_sfc ) #endif endif enddo !} - + ! get all tracers available from ocean here - + !> ON THE EXCHANGE GRID, UPDATE TRACER TENDENCIES IN THE ATMOSPHERE !{ + ! update tracer tendencies in the atmosphere do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) + is=block_start(l) + ie=block_end(l) do tr = 1,n_exch_tr do i = is, ie if(ex_avail(i)) then ex_dt_tr_surf(i,tr) = ex_tr_surf_new(i,tr) - ex_tr_surf(i,tr) ex_delta_tr_n(i,tr) = ex_f_tr_delt_n(i,tr) + ex_dt_tr_surf(i,tr) * ex_e_tr_n(i,tr) - ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dt_tr_surf(i,tr) * ex_dfdtr_surf(i,tr) + ex_flux_tr(i,tr) = ex_flux_tr(i,tr) + ex_dt_tr_surf(i,tr) * ex_dfdtr_surf(i,tr) endif enddo enddo @@ -3191,32 +3699,32 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou do i = is, ie if(ex_avail(i) .and. (.not.ex_land(i))) then ! note that in this region (over ocean) ex_dt_t_surf == ex_dt_t_ca - ex_delta_tr_n(i,isphum) = ex_f_tr_delt_n(i,isphum) + ex_dt_t_surf(i) * ex_e_q_n(i) - ex_flux_tr(i,isphum) = ex_flux_tr(i,isphum) + ex_dt_t_surf(i) * ex_dedt_surf(i) + ex_delta_tr_n(i,isphum) = ex_f_tr_delt_n(i,isphum) + ex_dt_t_surf(i) * ex_e_q_n(i) + ex_flux_tr(i,isphum) = ex_flux_tr(i,isphum) + ex_dt_t_surf(i) * ex_dedt_surf(i) endif enddo - enddo + enddo do tr=1,n_exch_tr ! get updated tracer tendency on the atmospheic grid - n = tr_table(tr)%atm - call fms_xgrid_get_from_xgrid(Land_Ice_Atmos_Boundary%dt_tr(:,:,n), 'ATM', ex_delta_tr_n(:,tr), xmap_sfc) + n=tr_table(tr)%atm + call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%dt_tr(:,:,n), 'ATM', ex_delta_tr_n(:,tr), xmap_sfc) enddo do l = 1, my_nblocks - is = block_start(l) - ie = block_end(l) + is=block_start(l) + ie=block_end(l) do i = is, ie ex_delta_t_n(i) = 0.0 if(ex_avail(i)) then - ex_flux_t(i) = ex_flux_t(i) + ex_dt_t_ca(i) * ex_dhdt_surf(i) - ex_flux_lw(i) = ex_flux_lw(i) - ex_dt_t_surf(i) * ex_drdt_surf(i) - ex_delta_t_n(i) = ex_f_t_delt_n(i) + ex_dt_t_ca(i) * ex_e_t_n(i) + ex_flux_t(i) = ex_flux_t(i) + ex_dt_t_ca(i) * ex_dhdt_surf(i) + ex_flux_lw(i) = ex_flux_lw(i) - ex_dt_t_surf(i) * ex_drdt_surf(i) + ex_delta_t_n(i) = ex_f_t_delt_n(i) + ex_dt_t_ca(i)*ex_e_t_n(i) endif enddo enddo !} - + !> MAP DT_T, SHFLX, and LHFLX FIELDS IN LAND_ICE_ATMOS_BOUNDARY FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID !{ @@ -3226,30 +3734,39 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc)!miz #endif !} - + !> MAP DATA FROM THE EXCHANGE GRID TO OCN/ATM/LND GRID AND SEND DATA TO THE DIAG_MANAGER BUFFER. !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML !{ + !-------------------- diagnostics section ------------------------------ + + !------- new surface temperature ----------- #ifdef use_AM3_physics - if (id_t_surf > 0) then - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) - used = fms_diag_send_data(id_t_surf, diag_atm, Time) + if ( id_t_surf > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) + used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) endif #else call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_surf_new, xmap_sfc) - if (id_t_surf > 0) used = fms_diag_send_data(id_t_surf, diag_atm, Time) - if (id_ts > 0) used = fms_diag_send_data(id_ts, diag_atm, Time) + if ( id_t_surf > 0 ) then + used = fms_diag_send_data ( id_t_surf, diag_atm, Time ) + endif + if ( id_ts > 0 ) then + used = fms_diag_send_data ( id_ts, diag_atm, Time ) + endif call fms_sum_diag_integral_field ('t_surf', diag_atm) - if(id_ts_g > 0) used = send_global_diag(id_ts_g, diag_atm, Time) +#ifndef use_AM3_physics + if ( id_ts_g > 0 ) used = send_global_diag ( id_ts_g, diag_atm, Time ) +#endif !------- new surface temperature only over open ocean ----------- - if(id_tos > 0) then + if ( id_tos > 0 ) then ex_icetemp = 0.0 icegrid = 0.0; icegrid(:,:,1) = 1.0 - call fms_xgrid_put_to_xgrid(icegrid, 'OCN', ex_icetemp, xmap_sfc) + call fms_xgrid_put_to_xgrid ( icegrid, 'OCN', ex_icetemp, xmap_sfc) ex_temp = ex_t_surf_new * ex_icetemp - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_temp, xmap_sfc) - call fms_xgrid_get_from_xgrid(frac_atm, 'ATM', ex_icetemp, xmap_sfc) + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_temp, xmap_sfc) + call fms_xgrid_get_from_xgrid (frac_atm, 'ATM', ex_icetemp, xmap_sfc) where (frac_atm > 0.0) diag_atm = (diag_atm/frac_atm) ! - tfreeze CMIP6 in degK frac_atm = 1.0 @@ -3257,11 +3774,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou diag_atm = 0.0 frac_atm = 0.0 endwhere - used = fms_diag_send_data(id_tos, diag_atm, Time, rmask=frac_atm) + used = fms_diag_send_data ( id_tos, diag_atm, Time, rmask=frac_atm ) endif !------- new surface temperature only over land and sea-ice ----------- - if(id_tslsi > 0) then + if ( id_tslsi > 0 ) then ex_land_frac = 0.0 call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) icegrid = 1.0; icegrid(:,:,1) = 0. @@ -3278,127 +3795,129 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou diag_atm = 0.0 frac_atm = 0.0 endwhere - used = fms_diag_send_data(id_tslsi, diag_atm, Time, rmask=frac_atm) + used = fms_diag_send_data ( id_tslsi, diag_atm, Time, rmask=frac_atm ) endif #endif + ! + slm, Mar 27 2002 ! ------ new canopy temperature -------- ! NOTE, that in the particular case of LM2 t_ca is identical to t_surf, ! but this will be changed in future version of the land madel - if(id_t_ca > 0) then - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_t_ca_new, xmap_sfc) - used = fms_diag_send_data(id_t_ca, diag_atm, Time) + if ( id_t_ca > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_t_ca_new, xmap_sfc) + used = fms_diag_send_data ( id_t_ca, diag_atm, Time ) endif !------- updated surface tracer fields ------ - do tr=1, n_exch_tr + do tr=1,n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name ) - if(id_tr_surf(tr) > 0) then - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_tr_surf_new(:,tr), xmap_sfc) - used = fms_diag_send_data(id_tr_surf(tr), diag_atm, Time) + if ( id_tr_surf(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_surf_new(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_surf(tr), diag_atm, Time ) endif - !!jgj: add dryvmr co2_surf ! - slm Mar 25, 2010: moved to resolve interdependence of diagnostic fields - if(id_co2_surf_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then + if ( id_co2_surf_dvmr > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then ex_co2_surf_dvmr = (ex_tr_surf_new(:,tr) / (1.0 - ex_tr_surf_new(:,isphum))) * WTMAIR/WTMCO2 call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_co2_surf_dvmr, xmap_sfc) - used = fms_diag_send_data(id_co2_surf_dvmr, diag_atm, Time) + used = fms_diag_send_data ( id_co2_surf_dvmr, diag_atm, Time ) endif enddo !------- sensible heat flux ----------- - if(id_t_flux > 0 .or. id_hfss > 0 .or. id_hfss_g > 0) then + if ( id_t_flux > 0 .or. id_hfss > 0 .or. id_hfss_g > 0 ) then call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_t, xmap_sfc) - if(id_t_flux > 0) used = fms_diag_send_data(id_t_flux, diag_atm, Time) - if(id_hfss > 0) used = fms_diag_send_data(id_hfss, diag_atm, Time) + if ( id_t_flux > 0 ) used = fms_diag_send_data ( id_t_flux, diag_atm, Time ) + if ( id_hfss > 0 ) used = fms_diag_send_data ( id_hfss, diag_atm, Time ) #ifndef use_AM3_physics - if(id_hfss_g > 0) used = send_global_diag ( id_hfss_g, diag_atm, Time ) + if ( id_hfss_g > 0 ) used = send_global_diag ( id_hfss_g, diag_atm, Time ) #endif endif !------- net longwave flux ----------- - if(id_r_flux > 0 .or. id_rls_g > 0) then - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_flux_lw, xmap_sfc) - if(id_r_flux > 0) used = fms_diag_send_data(id_r_flux, diag_atm, Time) + if ( id_r_flux > 0 .or. id_rls_g > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_lw, xmap_sfc) + if ( id_r_flux > 0 ) used = fms_diag_send_data ( id_r_flux, diag_atm, Time ) #ifndef use_AM3_physics - if(id_rls_g > 0) used = send_global_diag(id_rls_g, diag_atm, Time) + if ( id_rls_g > 0 ) used = send_global_diag ( id_rls_g, diag_atm, Time ) #endif endif !------- tracer fluxes ------------ ! tr_mol_flux diagnostic will be correct for co2 tracer only. ! will need update code to use correct molar mass for tracers other than co2 - do tr=1, n_exch_tr - if(id_tr_flux(tr) > 0 .or. id_tr_mol_flux(tr) > 0) then - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_flux_tr(:,tr), xmap_sfc) - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units) - if(id_tr_flux(tr) > 0 ) used = fms_diag_send_data ( id_tr_flux(tr), diag_atm, Time) + do tr=1,n_exch_tr + if ( id_tr_flux(tr) > 0 .or. id_tr_mol_flux(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_flux_tr(:,tr), xmap_sfc) + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) + if (id_tr_flux(tr) > 0 ) & + used = fms_diag_send_data ( id_tr_flux(tr), diag_atm, Time ) ! if (id_tr_mol_flux(tr) > 0 ) & ! used = fms_diag_end_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) ! 2017/08/08 jgj - replaced 2 lines above by the following - if(id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then + if (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_name))=='co2') then used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMCO2, Time) !sometimes in 2018 f1p for vmr tracers - elseif(id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_units)).eq."vmr") then - ! if (ocn_atm_flux_vmr_bug) then - ! call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & - ! ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)), xmap_sfc) - ! used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMAIR, Time) - ! else - !flux is in vmr * kg/m2/s. Divide by MW_air - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & - ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & - / (1e-3*WTMAIR*WTMH2O) , & - xmap_sfc) - used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm, Time) - endif - endif - if(id_tr_con_atm(tr) > 0) then - call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_atm(:,tr), xmap_sfc) - used = fms_diag_send_data ( id_tr_con_atm(tr), diag_atm, Time ) - end if - if(id_tr_con_ref(tr) > 0) then - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_tr_con_ref(:,tr), xmap_sfc) - used = fms_diag_send_data(id_tr_con_ref(tr), diag_atm, Time) - end if + elseif (id_tr_mol_flux(tr) > 0 .and. fms_mpp_lowercase(trim(tr_units)).eq."vmr") then + ! if (ocn_atm_flux_vmr_bug) then + ! call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ! ex_flux_tr(:,tr)*(1.-ex_tr_surf_new(:,isphum)), xmap_sfc) + ! used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm*1000./WTMAIR, Time) + ! else + !flux is in vmr * kg/m2/s. Divide by MW_air + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', & + ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & + / (1e-3*WTMAIR*WTMH2O) , & + xmap_sfc) + used = fms_diag_send_data ( id_tr_mol_flux(tr), diag_atm, Time) + endif + endif + if ( id_tr_con_atm(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_atm(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_con_atm(tr), diag_atm, Time ) + end if + if ( id_tr_con_ref(tr) > 0 ) then + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_tr_con_ref(:,tr), xmap_sfc) + used = fms_diag_send_data ( id_tr_con_ref(tr), diag_atm, Time ) + end if enddo #ifndef _USE_LEGACY_LAND_ - if(id_t_flux_land > 0) then - call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_flux_t, xmap_sfc) - call send_tile_data(id_t_flux_land, diag_land) + if ( id_t_flux_land > 0 ) then + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_flux_t, xmap_sfc) + call send_tile_data ( id_t_flux_land, diag_land ) endif !------- tracer fluxes for land - do tr=1, n_exch_tr - if(id_tr_flux_land(tr) > 0 .or. id_tr_mol_flux_land(tr) > 0) then - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units) - call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) - if(id_tr_flux_land(tr) > 0) call send_tile_data(id_tr_flux_land(tr), diag_land) + do tr=1,n_exch_tr + if ( id_tr_flux_land(tr) > 0 .or. id_tr_mol_flux_land(tr) > 0 ) then + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, tr_name, units=tr_units ) + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_flux_tr(:,tr), xmap_sfc) + if (id_tr_flux_land(tr) > 0 ) & + call send_tile_data (id_tr_flux_land(tr), diag_land ) if (id_tr_mol_flux_land(tr) > 0) then - if(fms_mpp_lowercase(trim(tr_name))=='co2') then + if (fms_mpp_lowercase(trim(tr_name))=='co2') then call send_tile_data (id_tr_mol_flux_land(tr), diag_land*1000./WTMCO2) - elseif(fms_mpp_lowercase(trim(tr_units)).eq.'vmr') then + elseif (fms_mpp_lowercase(trim(tr_units)).eq.'vmr') then !flux is in vmr * kg/m2/s. Divide by MW_air - call FMS_XGRID_GET_FROM_XGRID_ (diag_land, 'LND', & + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', & ex_flux_tr(:,tr)*((1.-ex_tr_surf_new(:,isphum))*WTMH2O+ex_tr_surf_new(:,isphum)*WTMAIR) & /(1e-3*WTMAIR*WTMH2O) , & xmap_sfc) - call send_tile_data(id_tr_mol_flux_land(tr), diag_land) + call send_tile_data ( id_tr_mol_flux_land(tr), diag_land) endif endif endif enddo !-------- tracer deposition velocity - do tr=1, n_exch_tr - if(id_tr_con_atm_land(tr) > 0) then - call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) - call send_tile_data(id_tr_con_atm_land(tr), diag_land) + do tr=1,n_exch_tr + if ( id_tr_con_atm_land(tr) > 0 ) then + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_tr_con_atm(:,tr), xmap_sfc) + call send_tile_data (id_tr_con_atm_land(tr), diag_land ) endif - if(id_tr_con_ref_land(tr) > 0) then - call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc) - call send_tile_data(id_tr_con_ref_land(tr), diag_land) + if ( id_tr_con_ref_land(tr) > 0 ) then + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_tr_con_ref(:,tr), xmap_sfc ) + call send_tile_data (id_tr_con_ref_land(tr), diag_land ) endif enddo @@ -3406,50 +3925,46 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou !----------------------------------------------------------------------- !---- accumulate global integral of evaporation (mm/day) ----- - call fms_xgrid_get_from_xgrid(evap_atm, 'ATM', ex_flux_tr(:,isphum), xmap_sfc) - if(id_q_flux > 0) used = fms_diag_send_data(id_q_flux, evap_atm, Time) - if(id_evspsbl > 0) used = fms_diag_send_data(id_evspsbl, evap_atm, Time) - if(id_hfls > 0) used = fms_diag_send_data(id_hfls, HLV*evap_atm, Time) + call fms_xgrid_get_from_xgrid (evap_atm, 'ATM', ex_flux_tr(:,isphum), xmap_sfc) + if( id_q_flux > 0 ) used = fms_diag_send_data ( id_q_flux, evap_atm, Time) + if( id_evspsbl > 0 ) used = fms_diag_send_data ( id_evspsbl, evap_atm, Time) + if( id_hfls > 0 ) used = fms_diag_send_data ( id_hfls, HLV*evap_atm, Time) #ifndef use_AM3_physics - if(id_hfls_g > 0) used = send_global_diag(id_hfls_g, HLV*evap_atm, Time) + if( id_hfls_g > 0 ) used = send_global_diag ( id_hfls_g, HLV*evap_atm, Time) #endif - if(id_q_flux_land > 0) then - call FMS_XGRID_GET_FROM_XGRID_(diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) #ifndef _USE_LEGACY_LAND_ - call send_tile_data(id_q_flux_land, diag_land) + if( id_q_flux_land > 0 ) then + call fms_xgrid_get_from_xgrid_ug (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) + call send_tile_data (id_q_flux_land, diag_land) #else + if( id_q_flux_land > 0 ) then + call fms_xgrid_get_from_xgrid (diag_land, 'LND', ex_flux_tr(:,isphum), xmap_sfc) used = fms_diag_send_tile_averaged_data(id_q_flux_land, diag_land, & Land%tile_size, Time, mask=Land%mask) #endif endif - call fms_sum_diag_integral_field('evap', evap_atm*86400.) - + call fms_sum_diag_integral_field ('evap', evap_atm*86400.) #ifndef use_AM3_physics - if(id_evspsbl_g > 0) used = send_global_diag(id_evspsbl_g, evap_atm, Time) + if (id_evspsbl_g > 0) used = send_global_diag ( id_evspsbl_g, evap_atm, Time ) #endif #ifndef _USE_LEGACY_LAND_ call send_tile_data (id_q_flux_land, diag_land) ! need this to avoid diag issues with tiling changes in update_land_slow call dump_tile_diag_fields(Time) -#endif !} !> COMPUTE STOCK EXCHANGE BETWEEN MODEL COMPONENTS !{ - call FMS_XGRID_GET_FROM_XGRID_(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) - + call fms_xgrid_get_from_xgrid_ug(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) + ! Lnd -> Atm (evap) - call FMS_XGRID_STOCK_MOVE_( & - & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & + call fms_xgrid_stock_move_ug( & + & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & -#ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = data_lnd, & -#else - & stock_data3d = data_lnd, & -#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & @@ -3457,19 +3972,40 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') ! Lnd -> Atm (heat lost through evap) - call FMS_XGRID_STOCK_MOVE_( & + call fms_xgrid_stock_move_ug( & & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & & FROM = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & -#ifndef _USE_LEGACY_LAND_ & stock_ug_data3d = data_lnd * HLV, & + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Lnd->ATm) ') #else + call fms_xgrid_get_from_xgrid(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) + + ! Lnd -> Atm (evap) + call fms_xgrid_stock_move( & + & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & + & FROM = fms_stock_constants_lnd_stock(ISTOCK_WATER), & + & stock_data3d = data_lnd, & + & grid_index=X1_GRID_LND, & + & xmap=xmap_sfc, & + & delta_t=Dt_atm, & + & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & + & radius=Radius, ier=ier, verbose='stock move EVAP (Lnd->ATm) ') + + ! Lnd -> Atm (heat lost through evap) + call fms_xgrid_stock_move( & + & TO = fms_stock_constants_atm_stock(ISTOCK_HEAT), & + & FROM = fms_stock_constants_lnd_stock(ISTOCK_HEAT), & & stock_data3d = data_lnd * HLV, & -#endif & grid_index=X1_GRID_LND, & & xmap=xmap_sfc, & & delta_t=Dt_atm, & & to_side=ISTOCK_SIDE, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Lnd->ATm) ') +#endif call fms_xgrid_get_from_xgrid(data_ice, 'OCN', ex_flux_tr(:,isphum), xmap_sfc) @@ -3495,26 +4031,22 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') !} - + !> END CLOCK FOR PROFILING !{ - !Balaji call fms_mpp_clock_end(fluxAtmUpClock) call fms_mpp_clock_end(cplClock) !} - + end subroutine flux_up_to_atmos - !> Subroutine flux_ex_arrays_dealloc deallocates the model-level ex_* arrays that were !! allocated in sfc_boundary_layer subroutine flux_ex_arrays_dealloc() - implicit none integer :: m,n - !---- deallocate module storage ---- deallocate ( & ex_t_surf , & ex_t_surf_miz, & @@ -3534,14 +4066,16 @@ subroutine flux_ex_arrays_dealloc() ex_tr_surf , & ex_tr_con_ref, & ex_tr_con_atm, & + ex_dfdtr_surf , & ex_dfdtr_atm , & ex_flux_tr , & ex_f_tr_delt_n , & ex_e_tr_n , & + ex_e_t_n , & ex_e_q_n , & - ! values added for LM3 + ! values added for LM3 ex_cd_t , & ex_cd_m , & ex_b_star , & @@ -3562,10 +4096,10 @@ subroutine flux_ex_arrays_dealloc() ! Extra fluxes do n = 1, ex_gas_fields_ice%num_bcs do m = 1, ex_gas_fields_ice%bc(n)%num_fields - deallocate(ex_gas_fields_ice%bc(n)%field(m)%values) - nullify ( ex_gas_fields_ice%bc(n)%field(m)%values) - enddo - enddo + deallocate ( ex_gas_fields_ice%bc(n)%field(m)%values ) + nullify ( ex_gas_fields_ice%bc(n)%field(m)%values ) + enddo + enddo do n = 1, ex_gas_fields_atm%num_bcs do m = 1, ex_gas_fields_atm%bc(n)%num_fields @@ -3573,13 +4107,13 @@ subroutine flux_ex_arrays_dealloc() nullify ( ex_gas_fields_atm%bc(n)%field(m)%values ) enddo enddo - + do n = 1, ex_gas_fluxes%num_bcs do m = 1, ex_gas_fluxes%bc(n)%num_fields deallocate ( ex_gas_fluxes%bc(n)%field(m)%values ) nullify ( ex_gas_fluxes%bc(n)%field(m)%values ) - enddo - enddo + enddo + enddo end subroutine flux_ex_arrays_dealloc @@ -3588,16 +4122,16 @@ end subroutine flux_ex_arrays_dealloc !! This subroutine is called only if the do_flux namelist variable is set to .True. subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) - implicit none - type(FmsTime_type), intent(in) :: Time !< Current time - type(atmos_data_type), intent(inout):: Atm - !< derived data type holding atmosphere boundary data + !> current time + type(FmsTime_type), intent(in) :: Time + !> derived data type holding atmosphere boundary data + type(atmos_data_type), intent(inout):: Atm + !> derived data type holding properties and fluxes passed from atmosphere to ice type(atmos_ice_boundary_type), intent(inout):: Ice_boundary - !< derived data type holding properties and fluxes passed from atmosphere to ice - type(ice_data_type), intent(inout):: Ice - !< derived type holding ice boundary tdata - - integer :: n,m + !> derived type holding ice boundary tdata + type(ice_data_type), intent(inout):: Ice + + integer :: n, m logical :: used #ifndef use_AM3_physics @@ -3611,57 +4145,63 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) !Do the string copies. Atm%fields%bc(n)%flux_type = trim(ex_gas_fluxes%bc(n)%flux_type) Atm%fields%bc(n)%implementation = trim(ex_gas_fluxes%bc(n)%implementation) - if(ex_gas_fields_atm%bc(n)%flux_type .eq. 'air_sea_deposition') then - do m = 1, Atm%fields%bc(n)%num_fields - call fms_xgrid_put_to_xgrid(Atm%fields%bc(n)%field(m)%values, 'ATM', & + if(ex_gas_fields_atm%bc(n)%flux_type .eq. 'air_sea_deposition') then + do m = 1, Atm%fields%bc(n)%num_fields + call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method) enddo endif enddo !} + !> ON THE EXCHANGE GRID, CALCULATE OCEAN EXPLICIT FLUX BY CALLING ATMOS_OCEAN_DEP_FLUXES_CALC !{ call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) !} + !> MAP AIR_SEA_DEPOSITION FLUX FROM THE EXCHANGE GRID TO THE ICE GRID FOLLOWED BY !! CALL DATA_OVERRIDE WHERE DATA WILL BE OVERWRITTEN IF THE FLUX FIELDS !! ARE SPECIFIED IN THE DATA_TABLE. SEND_DATA TO THE DIAG_MANAGER BUFFER !{ do n = 1, Ice_boundary%fluxes%num_bcs - if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then - do m = 1, Ice_boundary%fluxes%bc(n)%num_fields - call fms_xgrid_get_from_xgrid(Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & - ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - - call fms_data_override('ICE', Ice_boundary%fluxes%bc(n)%field(m)%name, & - Ice_boundary%fluxes%bc(n)%field(m)%values, Time) - if(Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then - used = fms_diag_send_data(Ice_boundary%fluxes%bc(n)%field(m)%id_diag, & - Ice_boundary%fluxes%bc(n)%field(m)%values, Time) - endif - enddo - endif - enddo - !} - - !> UPDATE ICE FIELDS THAT ARE LABELED AS AIR_SEA_DEOOSITION FLUXES BY CALLING UPDATE_ICE_ATM_DEPOSITION_FLUX - call update_ice_atm_deposition_flux(Ice_boundary, Ice) + if(Ice_boundary%fluxes%bc(n)%flux_type .eq. 'air_sea_deposition') then + do m = 1, Ice_boundary%fluxes%bc(n)%num_fields + call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & + ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) + + call fms_data_override('ICE', Ice_boundary%fluxes%bc(n)%field(m)%name, & + Ice_boundary%fluxes%bc(n)%field(m)%values, Time) + if ( Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then + used = fms_diag_send_data(Ice_boundary%fluxes%bc(n)%field(m)%id_diag, & + Ice_boundary%fluxes%bc(n)%field(m)%values, Time ) + endif + enddo + endif + enddo + !} + + !> UPDATE ICE FIELDS THAT ARE LABELED AS AIR_SEA_DEOOSITION FLUXES BY CALLING UPDATE_ICE_ATM_DEPOSITION_FLUX + !{ + call update_ice_atm_deposition_flux( Ice_boundary, Ice ) + !} + end subroutine flux_atmos_to_ocean - !> Subroutine put_logical_to_real_sg maps 2D logical mask arrays to real arrays !! where .true. -> 1.0 and .false. -> 0.0. The real array is then mapped !! onto the exchange grid. This subroutine is used internally to convert Land%mask - !! on structured grid for example, when #ifndef _USE_LEGACY_LAND_ is false + !! on structured grid for example, when #ifndef _USE_LEGACY_LAND_ is false subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) - implicit none - logical, intent(in) :: mask(:,:,:) !< land/ice mask - character(len=3), intent(in) :: id !< component id - real, intent(inout) :: ex_mask(:) !< mapped mask on exchange grid + !> land/ice mask + logical, intent(in) :: mask(:,:,:) + !> component id + character(len=3), intent(in) :: id + !> mapped mask on exchange grid + real, intent(inout) :: ex_mask(:) type(FmsXgridXmap_type), intent(inout) :: xmap real, dimension(size(mask,1),size(mask,2),size(mask,3)) :: rmask @@ -3675,8 +4215,11 @@ subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) endwhere !} + !> MAP RMASK TO THE EXCHANGE GRID + !{ call fms_xgrid_put_to_xgrid(rmask, id, ex_mask, xmap) + !} end subroutine put_logical_to_real_sg @@ -3687,10 +4230,12 @@ end subroutine put_logical_to_real_sg !! on unstructured grid (when #ifndef _USE_LEGACY_LAND_ is true) subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) - implicit none - logical, intent(in) :: mask(:,:) !< mask on component grid - character(len=3), intent(in) :: id !< component id - real, intent(inout) :: ex_mask(:) !< mapped mask on exchange grid + !> mask on component grid + logical, intent(in) :: mask(:,:) + !> component id + character(len=3), intent(in) :: id + !> mapped mask on exchange grid + real, intent(inout) :: ex_mask(:) type(FmsXgridXmap_type), intent(inout) :: xmap real, dimension(size(mask,1),size(mask,2)) :: rmask @@ -3704,9 +4249,15 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) endwhere !} - !> MAP RMASK TO THE EXCHANGE GRID - call FMS_XGRID_PUT_TO_XGRID_(rmask, id, ex_mask, xmap) + !> MAP RMASK TO THE EXCHANGE GRID +#ifndef _USE_LEGACY_LAND_ + call fms_xgrid_put_to_xgrid_ug(rmask, id, ex_mask, xmap) +#else + call fms_xgrid_put_to_xgrid (rmask, id, ex_mask, xmap) +#endif + !} + end subroutine put_logical_to_real_ug @@ -3715,27 +4266,30 @@ end subroutine put_logical_to_real_ug !! must be specified in the diag_table in order for the data to be outputted !! to a NetCDF file at the end of the model run. This subroutine is called !! during module initialization in subroutine atm_land_ice_flux_exchange_init - subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) + subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) - implicit none - type(FmsTime_type), intent(in) :: Time !< Time - integer, intent(in) :: atmos_axes(2) !< array size for atmospheric diagnostic fields - integer, intent(in) :: land_axes(:) !< array size for land diagnostic fields - logical, intent(in) :: land_pe !< land pe number + !> curent model time + type(FmsTime_type), intent(in) :: Time + !> array size for atmospheric diagnostic fields + integer, intent(in) :: atmos_axes(2) + !> array size for land diagnostic fields + integer, intent(in) :: land_axes(:) + !> land pe number + logical, intent(in) :: land_pe integer :: iref character(len=6) :: label_zm, label_zh - real, dimension(2) :: & - trange = [100., 400.], & - vrange = [-400., 400.], & - frange = [-0.01, 1.01] + real, dimension(2) :: trange = (/ 100., 400. /), & + vrange = (/ -400., 400. /), & + frange = (/ -0.01, 1.01 /) character(len=32) :: name, units ! name of the tracer - character(len=128) :: longname ! long name of the tracer - integer :: tr ! tracer index - integer :: area_id + character(len=128) :: longname ! long name of the tracer + integer :: tr ! tracer index + integer :: area_id !> CONVERT DIAGNOSTIC LABELS FROM INTEGERS TO STRINGS !{ + !------ labels for diagnostics ------- ! (z_ref_mom, z_ref_heat are namelist variables) iref = int(z_ref_mom+0.5) if ( real(iref) == z_ref_mom ) then @@ -3752,16 +4306,17 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) else write (label_zh,110) z_ref_heat endif - !} - + 100 format (i1,' m',3x) 105 format (i2,' m',2x) 110 format (f4.1,' m') !} - !> CALL FMS_DIAG_REGISTER_DIAG_FIELD + !> CALL FMS_DIAG_REGISTER_DIAG_FIELD + !{ !--------- initialize static diagnostic fields -------------------- + id_land_mask = & fms_diag_register_static_field ( mod_name, 'land_mask', atmos_axes, & 'fractional amount of land', 'none', & @@ -3769,207 +4324,298 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) !--------- initialize diagnostic fields -------------------- - id_ice_mask = fms_diag_register_diag_field(& - mod_name, 'ice_mask', atmos_axes, Time, 'fractional amount of sea ice', 'none', range=frange, & - interp_method = "conserve_order1") + id_ice_mask = & + fms_diag_register_diag_field ( mod_name, 'ice_mask', atmos_axes, Time, & + 'fractional amount of sea ice', 'none', & + range=frange, interp_method = "conserve_order1" ) - id_wind = fms_diag_register_diag_field(& - mod_name, 'wind', atmos_axes, Time, 'wind speed for flux calculations', 'm/s', range=[0.,vrange(2)]) + id_wind = & + fms_diag_register_diag_field ( mod_name, 'wind', atmos_axes, Time, & + 'wind speed for flux calculations', 'm/s', & + range=(/0.,vrange(2)/) ) - id_drag_moist = fms_diag_register_diag_field(& - mod_name, 'drag_moist', atmos_axes, Time, 'drag coeff for moisture', 'none') + id_drag_moist = & + fms_diag_register_diag_field ( mod_name, 'drag_moist', atmos_axes, Time, & + 'drag coeff for moisture', 'none' ) - id_drag_heat = fms_diag_register_diag_field(& - mod_name, 'drag_heat', atmos_axes, Time, 'drag coeff for heat', 'none') + id_drag_heat = & + fms_diag_register_diag_field ( mod_name, 'drag_heat', atmos_axes, Time, & + 'drag coeff for heat', 'none' ) - id_drag_mom = fms_diag_register_diag_field(& - mod_name, 'drag_mom', atmos_axes, Time, 'drag coeff for momentum', 'none') + id_drag_mom = & + fms_diag_register_diag_field ( mod_name, 'drag_mom', atmos_axes, Time, & + 'drag coeff for momentum', 'none' ) - id_rough_moist = fms_diag_register_diag_field(& - mod_name, 'rough_moist', atmos_axes, Time, 'surface roughness for moisture', 'm') + id_rough_moist = & + fms_diag_register_diag_field ( mod_name, 'rough_moist', atmos_axes, Time, & + 'surface roughness for moisture', 'm' ) - id_rough_heat = fms_diag_register_diag_field(& - mod_name, 'rough_heat', atmos_axes, Time, 'surface roughness for heat', 'm') + id_rough_heat = & + fms_diag_register_diag_field ( mod_name, 'rough_heat', atmos_axes, Time, & + 'surface roughness for heat', 'm' ) - id_rough_mom = fms_diag_register_diag_field(& - mod_name, 'rough_mom', atmos_axes, Time, 'surface roughness for momentum', 'm') + id_rough_mom = & + fms_diag_register_diag_field ( mod_name, 'rough_mom', atmos_axes, Time, & + 'surface roughness for momentum', 'm' ) - id_u_star = fms_diag_register_diag_field(& - mod_name, 'u_star', atmos_axes, Time, 'friction velocity', 'm/s') + id_u_star = & + fms_diag_register_diag_field ( mod_name, 'u_star', atmos_axes, Time, & + 'friction velocity', 'm/s' ) - id_b_star = fms_diag_register_diag_field(& - mod_name, 'b_star', atmos_axes, Time, 'buoyancy scale', 'm/s2') + id_b_star = & + fms_diag_register_diag_field ( mod_name, 'b_star', atmos_axes, Time, & + 'buoyancy scale', 'm/s2' ) - id_q_star = fms_diag_register_diag_field(& - mod_name, 'q_star', atmos_axes, Time, 'moisture scale', 'kg water/kg air') + id_q_star = & + fms_diag_register_diag_field ( mod_name, 'q_star', atmos_axes, Time, & + 'moisture scale', 'kg water/kg air' ) - id_thv_atm = fms_diag_register_diag_field(& - mod_name, 'thv_atm', atmos_axes, Time, 'surface air virtual potential temperature', 'K') + id_thv_atm = & + fms_diag_register_diag_field ( mod_name, 'thv_atm', atmos_axes, Time, & + 'surface air virtual potential temperature', 'K') - id_thv_surf = fms_diag_register_diag_field(& - mod_name, 'thv_surf', atmos_axes, Time, 'surface virtual potential temperature', 'K') + id_thv_surf = & + fms_diag_register_diag_field ( mod_name, 'thv_surf', atmos_axes, Time, & + 'surface virtual potential temperature', 'K') - id_u_flux = fms_diag_register_diag_field(& - mod_name, 'tau_x', atmos_axes, Time, 'zonal wind stress', 'pa') + id_u_flux = & + fms_diag_register_diag_field ( mod_name, 'tau_x', atmos_axes, Time, & + 'zonal wind stress', 'pa' ) - id_v_flux = fms_diag_register_diag_field(& - mod_name, 'tau_y', atmos_axes, Time, 'meridional wind stress', 'pa') + id_v_flux = & + fms_diag_register_diag_field ( mod_name, 'tau_y', atmos_axes, Time, & + 'meridional wind stress', 'pa' ) - id_t_ocean = fms_diag_register_diag_field(& - mod_name, 't_ocean', atmos_axes, Time, 'surface temperature from ocean output', 'deg_k', range=trange) + id_t_ocean = & + fms_diag_register_diag_field ( mod_name, 't_ocean', atmos_axes, Time, & + 'surface temperature from ocean output', 'deg_k', & + range=trange ) - id_t_surf = fms_diag_register_diag_field(& - mod_name, 't_surf', atmos_axes, Time, 'surface temperature','deg_k', range=trange) + id_t_surf = & + fms_diag_register_diag_field ( mod_name, 't_surf', atmos_axes, Time, & + 'surface temperature', 'deg_k', & + range=trange ) ! + slm, Mar 25, 2002 -- add diagnositcs for t_ca, q_ca, and q_atm - id_t_ca = fms_diag_register_diag_field(& - mod_name, 't_ca', atmos_axes, Time, 'canopy air temperature', 'deg_k', range=trange) + id_t_ca = & + fms_diag_register_diag_field ( mod_name, 't_ca', atmos_axes, Time, & + 'canopy air temperature', 'deg_k', & + range=trange ) ! - slm, Mar 25, 2002 - id_z_atm = fms_diag_register_diag_field(& - mod_name, 'z_atm', atmos_axes, Time, 'height of btm level', 'm') + id_z_atm = & + fms_diag_register_diag_field ( mod_name, 'z_atm', atmos_axes, Time, & + 'height of btm level', 'm') - id_p_atm = fms_diag_register_diag_field(& - mod_name, 'p_atm', atmos_axes, Time, 'pressure at btm level','pa') + id_p_atm = & + fms_diag_register_diag_field ( mod_name, 'p_atm', atmos_axes, Time, & + 'pressure at btm level', 'pa') ! - bw, Mar 25, 2002 -- added diagnostic slp - id_slp = fms_diag_register_diag_field(& - mod_name, 'slp', atmos_axes, Time, 'sea level pressure', 'pa') - - id_gust = fms_diag_register_diag_field(& - mod_name, 'gust', atmos_axes, Time, 'gust scale', 'm/s') - - id_t_flux = fms_diag_register_diag_field(& - mod_name, 'shflx', atmos_axes, Time, 'sensible heat flux', 'w/m2') - - id_r_flux = fms_diag_register_diag_field(& - mod_name, 'lwflx', atmos_axes, Time, 'net (down-up) longwave flux', 'w/m2') - - id_t_atm = fms_diag_register_diag_field(& - mod_name, 't_atm', atmos_axes, Time, 'temperature at btm level', 'deg_k', range=trange) - - id_u_atm = fms_diag_register_diag_field(& - mod_name, 'u_atm', atmos_axes, Time, 'u wind component at btm level', 'm/s', range=vrange) - - id_v_atm = fms_diag_register_diag_field(& - mod_name, 'v_atm', atmos_axes, Time, 'v wind component at btm level', 'm/s', range=vrange) - - id_t_ref = fms_diag_register_diag_field(& - mod_name, 't_ref', atmos_axes, Time, 'temperature at '//label_zh, 'deg_k', range=trange) - - id_rh_ref = fms_diag_register_diag_field(& - mod_name, 'rh_ref', atmos_axes, Time, 'relative humidity at '//label_zh, 'percent') - - id_rh_ref_cmip = fms_diag_register_diag_field(& - mod_name, 'rh_ref_cmip', atmos_axes, Time, 'relative humidity at '//label_zh, 'percent') - - id_u_ref = fms_diag_register_diag_field(& - mod_name, 'u_ref', atmos_axes, Time, 'zonal wind component at '//label_zm, 'm/s', range=vrange) - - id_v_ref = fms_diag_register_diag_field(& - mod_name, 'v_ref', atmos_axes, Time, 'meridional wind component at '//label_zm, 'm/s', range=vrange) - - id_wind_ref = fms_diag_register_diag_field(& - mod_name, 'wind_ref', atmos_axes, Time, 'absolute value of wind at '//label_zm, 'm/s', range=vrange) - - id_del_h = fms_diag_register_diag_field(& - mod_name, 'del_h', atmos_axes, Time, 'ref height interp factor for heat', 'none') - - id_del_m = fms_diag_register_diag_field(& - mod_name, 'del_m', atmos_axes, Time, 'ref height interp factor for momentum', 'none') - - id_del_q = fms_diag_register_diag_field(& - mod_name, 'del_q', atmos_axes, Time, 'ref height interp factor for moisture','none') - - if(land_pe) then - ! set the default filter (for area and subsampling) for consequent calls to register_tiled_diag_field + id_slp = & + fms_diag_register_diag_field ( mod_name, 'slp', atmos_axes, Time, & + 'sea level pressure', 'pa') + + id_gust = & + fms_diag_register_diag_field ( mod_name, 'gust', atmos_axes, Time, & + 'gust scale', 'm/s') + + id_t_flux = & + fms_diag_register_diag_field ( mod_name, 'shflx', atmos_axes, Time, & + 'sensible heat flux', 'w/m2' ) + + id_r_flux = & + fms_diag_register_diag_field ( mod_name, 'lwflx', atmos_axes, Time, & + 'net (down-up) longwave flux', 'w/m2' ) + + id_t_atm = & + fms_diag_register_diag_field ( mod_name, 't_atm', atmos_axes, Time, & + 'temperature at btm level', 'deg_k', & + range=trange ) + + id_u_atm = & + fms_diag_register_diag_field ( mod_name, 'u_atm', atmos_axes, Time, & + 'u wind component at btm level', 'm/s', & + range=vrange ) + + id_v_atm = & + fms_diag_register_diag_field ( mod_name, 'v_atm', atmos_axes, Time, & + 'v wind component at btm level', 'm/s', & + range=vrange ) + + id_t_ref = & + fms_diag_register_diag_field ( mod_name, 't_ref', atmos_axes, Time, & + 'temperature at '//label_zh, 'deg_k' , & + range=trange ) + + id_rh_ref = & + fms_diag_register_diag_field ( mod_name, 'rh_ref', atmos_axes, Time, & + 'relative humidity at '//label_zh, 'percent' ) + + id_rh_ref_cmip = & + fms_diag_register_diag_field ( mod_name, 'rh_ref_cmip', atmos_axes, Time, & + 'relative humidity at '//label_zh, 'percent' ) + + id_u_ref = & + fms_diag_register_diag_field ( mod_name, 'u_ref', atmos_axes, Time, & + 'zonal wind component at '//label_zm, 'm/s', & + range=vrange ) + + id_v_ref = & + fms_diag_register_diag_field ( mod_name, 'v_ref', atmos_axes, Time, & + 'meridional wind component at '//label_zm, 'm/s', & + range=vrange ) + + id_wind_ref = & + fms_diag_register_diag_field ( mod_name, 'wind_ref', atmos_axes, Time, & + 'absolute value of wind at '//label_zm, 'm/s', & + range=vrange ) + + id_del_h = & + fms_diag_register_diag_field ( mod_name, 'del_h', atmos_axes, Time, & + 'ref height interp factor for heat', 'none' ) + id_del_m = & + fms_diag_register_diag_field ( mod_name, 'del_m', atmos_axes, Time, & + 'ref height interp factor for momentum','none' ) + id_del_q = & + fms_diag_register_diag_field ( mod_name, 'del_q', atmos_axes, Time, & + 'ref height interp factor for moisture','none' ) + + if( land_pe ) then + ! set the default filter (for area and subsampling) for consequent calls to + ! register_tiled_diag_field #ifndef _USE_LEGACY_LAND_ call set_default_diag_filter('land') -#endif - id_t_ref_land = FMS_DIAG_REGISTER_FIELD_(& - 'flux_land', 't_ref', Land_axes, Time, 'temperature at '//trim(label_zh)//' over land', 'deg_k', & - range=trange, missing_value=-100.0) - - id_q_ref_land = FMS_DIAG_REGISTER_FIELD_(& - 'flux_land', 'q_ref', Land_axes, Time, 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & + id_t_ref_land = & + register_tiled_diag_field ( 'flux_land', 't_ref', Land_axes, Time, & + 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & + range=trange, missing_value = -100.0) + id_q_ref_land = & + register_tiled_diag_field ( 'flux_land', 'q_ref', Land_axes, Time, & + 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & missing_value=-1.0) - - id_rh_ref_land= FMS_DIAG_REGISTER_FIELD_(& - 'flux_land', 'rh_ref', Land_axes, Time, 'relative humidity at '//trim(label_zh)//' over land', 'percent', & + id_rh_ref_land= & + register_tiled_diag_field ( 'flux_land', 'rh_ref', Land_axes, Time, & + 'relative humidity at '//trim(label_zh)//' over land', 'percent', & missing_value=-999.0) - - id_u_ref_land = FMS_DIAG_REGISTER_FIELD_(& - 'flux_land', 'u_ref', Land_axes, Time, 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & - range=vrange, missing_value=-999.0) - - id_v_ref_land = FMS_DIAG_REGISTER_FIELD_( & - 'flux_land', 'v_ref', Land_axes, Time, 'meridional wind component at '//trim(label_zm)//' over land', & - 'm/s', range=vrange, missing_value = -999.0) - - id_q_flux_land = FMS_DIAG_REGISTER_FIELD_(& - 'flux_land', 'evap', Land_axes, Time, 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0) - - id_t_flux_land = FMS_DIAG_REGISTER_FIELD_(& - 'flux_land', 'shflx', Land_axes, Time, 'sensible heat flux', 'W/m2', missing_value=-1.0) - - id_tasLut_land = FMS_DIAG_REGISTER_FIELD_(& - 'cmor_land', 'tasLut', Land_axes, Time, & + id_u_ref_land = & + register_tiled_diag_field ( 'flux_land', 'u_ref', Land_axes, Time, & + 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & + range=vrange, missing_value=-999.0 ) + id_v_ref_land = & + register_tiled_diag_field ( 'flux_land', 'v_ref', Land_axes, Time, & + 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & + range=vrange, missing_value = -999.0 ) + id_q_flux_land = & + register_tiled_diag_field( 'flux_land', 'evap', Land_axes, Time, & + 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) + id_t_flux_land = & + register_tiled_diag_field( 'flux_land', 'shflx', Land_axes, Time, & + 'sensible heat flux', 'W/m2', missing_value=-1.0 ) + id_tasLut_land = & + register_tiled_diag_field( 'cmor_land', 'tasLut', Land_axes, Time, & 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & units='K', standard_name='air_temperature', missing_value=-1.0 ) - - id_hussLut_land = FMS_DIAG_REGISTER_FIELD_(& - 'cmor_land', 'hussLut', Land_axes, Time, 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & + id_hussLut_land = & + register_tiled_diag_field( 'cmor_land', 'hussLut', Land_axes, Time, & + 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & standard_name='specific_humidity', missing_value=-1.0 ) - allocate(id_tr_flux_land(n_exch_tr)) allocate(id_tr_mol_flux_land(n_exch_tr)) allocate(id_tr_con_atm_land(n_exch_tr)) allocate(id_tr_con_ref_land(n_exch_tr)) allocate(id_tr_ref_land(n_exch_tr)) -#ifdef _USE_LEGACY_LAND_ - id_tr_con_atm_land(:) = -1 - id_tr_con_ref_land(:) = -1 - id_tr_ref_land(:)= -1 -#endif - do tr = 1, n_exch_tr call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) - id_tr_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_flux', & - Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0) + id_tr_con_atm_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_tot_con_atm', & + Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) + id_tr_con_ref_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_tot_con_ref', & + Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) + id_tr_flux_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_flux', & + Land_axes, Time, 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) if ( fms_mpp_lowercase(trim(name))=='co2') then - id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_mol_flux', & - Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0) + id_tr_mol_flux_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_mol_flux', & + Land_axes,Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) else - id_tr_mol_flux_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_mol_flux', & - Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0) + id_tr_mol_flux_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_mol_flux', & + Land_axes,Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) endif - -#ifndef _USE_LEGACY_LAND_ - id_tr_con_atm_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_tot_con_atm', & - Land_axes, Time, 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) - - id_tr_con_ref_land(tr) = register_diag_field('flux_land', trim(name)//'_tot_con_ref', & - Land_axes, Time, 'vd of '//trim(longname)//' at '//trim(label_zh), 'm/s', missing_value=-1.0 ) - ! we skip sphum because it is already available as flux_land/q_ref - if(tr .ne. isphum) then - id_tr_ref_land(tr) = FMS_DIAG_REGISTER_FIELD_('flux_land', trim(name)//'_ref', & - Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', trim(units),missing_value=-1.0) + if ( tr .ne. isphum ) then + id_tr_ref_land(tr) = register_tiled_diag_field( 'flux_land', trim(name)//'_ref', & + Land_axes, Time, trim(longname)//' at '//trim(label_zh)//' over land', & + trim(units),missing_value=-1.0) else id_tr_ref_land(tr) = -1 end if -#endif enddo +#else + id_t_ref_land = & + fms_diag_register_diag_field ( 'flux_land', 't_ref', Land_axes, Time, & + 'temperature at '//trim(label_zh)//' over land', 'deg_k' , & + range=trange, missing_value = -100.0) + id_q_ref_land = & + fms_diag_register_diag_field ( 'flux_land', 'q_ref', Land_axes, Time, & + 'specific humidity at '//trim(label_zh)//' over land', 'kg/kg', & + missing_value=-1.0) + id_rh_ref_land= & + fms_diag_register_diag_field ( 'flux_land', 'rh_ref', Land_axes, Time, & + 'relative humidity at '//trim(label_zh)//' over land', 'percent', & + missing_value=-999.0) + id_u_ref_land = & + fms_diag_register_diag_field ( 'flux_land', 'u_ref', Land_axes, Time, & + 'zonal wind component at '//trim(label_zm)//' over land', 'm/s', & + range=vrange, missing_value=-999.0 ) + id_v_ref_land = & + fms_diag_register_diag_field ( 'flux_land', 'v_ref', Land_axes, Time, & + 'meridional wind component at '//trim(label_zm)//' over land', 'm/s', & + range=vrange, missing_value = -999.0 ) + id_q_flux_land = & + fms_diag_register_diag_field( 'flux_land', 'evap', Land_axes, Time, & + 'evaporation rate over land', 'kg/m2/s', missing_value=-1.0 ) + id_t_flux_land = & + fms_diag_register_diag_field( 'flux_land', 'shflx', Land_axes, Time, & + 'sensible heat flux', 'W/m2', missing_value=-1.0 ) + id_tasLut_land = & + fms_diag_register_diag_field( 'cmor_land', 'tasLut', Land_axes, Time, & + 'Near-Surface Air Temperature ('//trim(label_zh)//' Above Displacement Height) on Land Use Tile', & + units='K', standard_name='air_temperature', missing_value=-1.0 ) + id_hussLut_land = & + fms_diag_register_diag_field( 'cmor_land', 'hussLut', Land_axes, Time, & + 'Near-Surface Specific Humidity on Land Use Tile', '1.0', & + standard_name='specific_humidity', missing_value=-1.0 ) + allocate(id_tr_flux_land(n_exch_tr)) + allocate(id_tr_mol_flux_land(n_exch_tr)) + allocate(id_tr_con_atm_land(n_exch_tr)); id_tr_con_atm_land(:)=-1 + allocate(id_tr_con_ref_land(n_exch_tr)); id_tr_con_ref_land(:)=-1 + allocate(id_tr_ref_land(n_exch_tr)); id_tr_ref_land(:)=-1 + + do tr = 1, n_exch_tr + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) + id_tr_flux_land(tr) = fms_diag_register_diag_field( 'flux_land', trim(name)//'_flux', Land_axes, Time, & + 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)', missing_value=-1.0 ) + if ( fms_mpp_lowercase(trim(name))=='co2') then + id_tr_mol_flux_land(tr) = fms_diag_register_diag_field( 'flux_land', trim(name)//'_mol_flux', Land_axes, & + Time, 'flux of '//trim(longname), 'mol CO2/(m2 s)', missing_value=-1.0 ) + else + id_tr_mol_flux_land(tr) = fms_diag_register_diag_field( 'flux_land', trim(name)//'_mol_flux', Land_axes, & + Time, 'flux of '//trim(longname), 'mol/(m2 s)', missing_value=-1.0 ) + endif + enddo +#endif endif - id_q_ref = fms_diag_register_diag_field(& - mod_name, 'q_ref', atmos_axes, Time, 'specific humidity at '//trim(label_zh), 'kg/kg', missing_value=-1.0) + id_q_ref = & + fms_diag_register_diag_field ( mod_name, 'q_ref', atmos_axes, Time, & + 'specific humidity at '//trim(label_zh), 'kg/kg', missing_value=-1.0) - id_rough_scale = fms_diag_register_diag_field(& - mod_name, 'rough_scale', atmos_axes, Time, 'topographic scaling factor for momentum drag','1') + id_rough_scale = & + fms_diag_register_diag_field ( mod_name, 'rough_scale', atmos_axes, Time, & + 'topographic scaling factor for momentum drag','1' ) + !----------------------------------------------------------------------- allocate(id_tr_atm(n_exch_tr)) allocate(id_tr_surf(n_exch_tr)) @@ -3981,7 +4627,7 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) allocate(id_tr_ref(n_exch_tr)) do tr = 1, n_exch_tr - call fms_tracer_manager_get_tracer_names(MODEL_ATMOS, tr_table(tr)%atm, name, longname, units) + call fms_tracer_manager_get_tracer_names( MODEL_ATMOS, tr_table(tr)%atm, name, longname, units ) id_tr_con_atm(tr) = fms_diag_register_diag_field( mod_name, trim(name)//'_tot_con_atm', atmos_axes, Time, & 'vd of '//trim(longname), 'm/s', missing_value=-1.0 ) @@ -3990,24 +4636,21 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) id_tr_atm(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_atm', atmos_axes, Time, & trim(longname)//' at btm level', trim(units)) - id_tr_surf(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_surf', atmos_axes, Time, & trim(longname)//' at the surface', trim(units)) - id_tr_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_flux', atmos_axes, Time, & 'flux of '//trim(longname), trim(units)//' kg air/(m2 s)') - if ( tr .ne. isphum ) then id_tr_ref(tr) = fms_diag_register_diag_field (mod_name, trim(name)//'_ref', atmos_axes, Time, & trim(longname)//' at '//trim(label_zh), trim(units),missing_value=-1.0) else id_tr_ref(tr) = -1 end if - !! add dryvmr co2_surf and co2_atm if ( fms_mpp_lowercase(trim(name))=='co2') then ! - slm Mar 25, 2010: moved registration of mol_flux inside 'if' to disable - ! saving incorrect results (mol fluxes for other tracers computed with CO2 molar mass + ! saving incorrect results (mol fluxes for other tracers computed with CO2 molar + ! mass) id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & 'flux of '//trim(longname), 'mol CO2/(m2 s)') id_co2_atm_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_atm_dvmr', atmos_axes, Time, & @@ -4015,11 +4658,11 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) id_co2_surf_dvmr = fms_diag_register_diag_field (mod_name, trim(name)//'_surf_dvmr', atmos_axes, Time, & trim(longname)//' at the surface', 'mol CO2 /mol air') else - !f1p +!f1p id_tr_mol_flux(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux', atmos_axes, Time, & 'flux of '//trim(longname), 'mol/(m2 s)') endif - !f1p +!f1p id_tr_mol_flux0(tr) = fms_diag_register_diag_field(mod_name, trim(name)//'_mol_flux_atm0', atmos_axes, Time, & 'gross flux of '//trim(longname), 'mol/(m2 s)') @@ -4028,14 +4671,14 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) ! 2017/08/08 jgj add diagnostics for co2 data overrides even if co2 is not a tracer ! register data calls not needed here for co2_flux_pcair_atm and o2_flux_pcair_atm as this happens elsewhere id_co2_bot = fms_diag_register_diag_field (mod_name, 'co2_bot', atmos_axes, Time, & - 'co2_bot from data_override', 'ppmv') + 'co2_bot from data_override', 'ppmv') ! id_nh3_flux_atm0 = fms_diag_register_diag_field (mod_name, 'nh3_flux_atm0', atmos_axes, Time, & ! 'nh3 flux out of the ocean assuming not nh3 in the atmosphere', 'mol/m2/s') - id_q_flux = fms_diag_register_diag_field(mod_name, 'evap', atmos_axes, Time, & - 'evaporation rate', 'kg/m2/s') + id_q_flux = fms_diag_register_diag_field( mod_name, 'evap', atmos_axes, Time, & + 'evaporation rate', 'kg/m2/s' ) !-------------------------------------------------------------------- ! retrieve the diag_manager id for the area diagnostic, @@ -4052,244 +4695,309 @@ subroutine diag_field_init(Time, atmos_axes, land_axes, land_pe) ! NOTE: add extra dimension reference level fields? height2m, height10m ! for now we will handle this with an attribute - id_height2m = fms_diag_register_static_field(& - mod_name, 'height2m', [null_axis_id], 'Height', 'm', standard_name = 'height') + id_height2m = & + fms_diag_register_static_field ( mod_name, 'height2m', (/null_axis_id/), & + 'Height', 'm', standard_name = 'height' ) if ( id_height2m > 0 ) then - call fms_diag_field_add_attribute(id_height2m, 'axis', 'Z') - call fms_diag_field_add_attribute(id_height2m, 'positive', 'up') + call fms_diag_field_add_attribute( id_height2m, 'axis', 'Z' ) + call fms_diag_field_add_attribute( id_height2m, 'positive', 'up' ) endif - id_height10m = fms_diag_register_static_field(& - mod_name, 'height10m', [null_axis_id], 'Height', 'm', standard_name = 'height') + id_height10m = & + fms_diag_register_static_field ( mod_name, 'height10m', (/null_axis_id/), & + 'Height', 'm', standard_name = 'height' ) if ( id_height10m > 0 ) then - call fms_diag_field_add_attribute(id_height10m, 'axis', 'Z') - call fms_diag_field_add_attribute(id_height10m, 'positive', 'up') + call fms_diag_field_add_attribute( id_height10m, 'axis', 'Z' ) + call fms_diag_field_add_attribute( id_height10m, 'positive', 'up' ) endif #ifdef use_AM3_physics - id_tas = fms_diag_register_diag_field (& - mod_name, 'tas', atmos_axes, Time, 'Near-Surface Air Temperature', 'K' , & - standard_name = 'air_temperature', area=area_id, missing_value=CMOR_MISSING_VALUE, range=trange) - - if (id_tas > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_tas, 'coordinates', 'height2m') - - id_uas = fms_diag_register_diag_field(& - mod_name, 'uas', atmos_axes, Time, 'Eastward Near-Surface Wind', 'm s-1', & - standard_name = 'eastward_wind', area=area_id, missing_value=CMOR_MISSING_VALUE, range=vrange) - - if(id_uas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_uas, 'coordinates', 'height10m') - - id_vas = fms_diag_register_diag_field(& - mod_name, 'vas', atmos_axes, Time, 'Northward Near-Surface Wind', 'm s-1', & - standard_name = 'northward_wind', area=area_id, missing_value=CMOR_MISSING_VALUE, range=vrange) - - if(id_vas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_vas, 'coordinates', 'height10m') - - id_sfcWind = fms_diag_register_diag_field(mod_name, 'sfcWind', atmos_axes, Time, & - 'Near-Surface Wind Speed', 'm s-1', standard_name = 'wind_speed', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=vrange) - - if(id_sfcWind > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_sfcWind, 'coordinates', 'height10m') - - id_huss = fms_diag_register_diag_field(mod_name, 'huss', atmos_axes, Time, & - 'Near-Surface Specific Humidity', '1.0', standard_name = 'specific_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE) - - if(id_huss > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_huss, 'coordinates', 'height2m') - - id_hurs = fms_diag_register_diag_field(mod_name, 'hurs', atmos_axes, Time, & - 'Near-Surface Relative Humidity', '%', standard_name = 'relative_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE) - - if(id_hurs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_hurs, 'coordinates', 'height2m') - - id_rhs = fms_diag_register_diag_field(mod_name, 'rhs', atmos_axes, Time, & - 'Near-Surface Relative Humidity', '%', standard_name = 'relative_humidity', area=area_id, & - missing_value=CMOR_MISSING_VALUE) - - if(id_rhs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_rhs, 'coordinates', 'height2m') - - id_ts = fms_diag_register_diag_field(mod_name, 'ts', atmos_axes, Time, & - 'Surface Temperature', 'K', standard_name = 'surface_temperature', area=area_id, & - missing_value=CMOR_MISSING_VALUE, range=trange) - - id_psl = fms_diag_register_diag_field(mod_name, 'psl', atmos_axes, Time, & - 'Sea Level Pressure', 'Pa', standard_name = 'air_pressure_at_sea_level', area=area_id, & - missing_value=CMOR_MISSING_VALUE) - - id_tauu = fms_diag_register_diag_field(mod_name, 'tauu', atmos_axes, Time, & - 'Surface Downward Eastward Wind Stress', 'Pa', standard_name = 'surface_downward_eastward_stress', & - area=area_id, missing_value=CMOR_MISSING_VALUE) - - id_tauv = fms_diag_register_diag_field(mod_name, 'tauv', atmos_axes, Time, & - 'Surface Downward Northward Wind Stress', 'Pa', standard_name = 'surface_downward_northward_stress', & - area=area_id, missing_value=CMOR_MISSING_VALUE) - - id_hfss = fms_diag_register_diag_field(mod_name, 'hfss', atmos_axes, Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', standard_name = 'surface_upward_sensible_heat_flux', & - area=area_id, missing_value=CMOR_MISSING_VALUE) - - id_hfls = fms_diag_register_diag_field(mod_name, 'hfls', atmos_axes, Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', standard_name = 'surface_upward_latent_heat_flux', & - area=area_id, missing_value=CMOR_MISSING_VALUE) - - if ( id_hfls > 0 ) call fms_diag_field_add_attribute(id_hfls, 'comment', 'Lv*evap') - - id_evspsbl = fms_diag_register_diag_field(mod_name, 'evspsbl', atmos_axes, Time, & - 'Evaporation', 'kg m-2 s-1', standard_name = 'water_evaporation_flux', area=area_id, & - missing_value=CMOR_MISSING_VALUE) - - id_sftlf = fms_diag_register_static_field(mod_name, 'sftlf', atmos_axes, & - 'Fraction of the Grid Cell Occupied by Land', '1.0', standard_name = 'land_area_fraction', area=area_id, & - interp_method = "conserve_order1") - - id_tslsi = fms_diag_register_diag_field(mod_name, 'tslsi', atmos_axes, Time, & - 'Surface Temperature Where Land or Sea Ice', 'K', standard_name = 'surface_temperature', area=area_id, & - mask_variant=.true., missing_value=CMOR_MISSING_VALUE) - - id_tos = fms_diag_register_diag_field(mod_name, 'tos', atmos_axes, Time, & - 'Sea Surface Temperature', 'K', standard_name = 'sea_surface_temperature', area=area_id, & - mask_variant=.true., missing_value=CMOR_MISSING_VALUE) - - id_sic = fms_diag_register_diag_field(mod_name, 'sic', atmos_axes, Time, & - 'Sea Ice Area Fraction', '1.0', standard_name = 'sea_ice_area_fraction', area=area_id, & - missing_value=CMOR_MISSING_VALUE) - - if ( id_sic > 0 ) & - call fms_diag_field_add_attribute(id_sic, 'comment', 'averaged over the ocean portion of grid box') + id_tas = & + fms_diag_register_diag_field ( mod_name, 'tas', atmos_axes, Time, & + 'Near-Surface Air Temperature', 'K' , & + standard_name = 'air_temperature', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=trange ) + if ( id_tas > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) + + id_uas = & + fms_diag_register_diag_field ( mod_name, 'uas', atmos_axes, Time, & + 'Eastward Near-Surface Wind', 'm s-1', & + standard_name = 'eastward_wind', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=vrange ) + if ( id_uas > 0 .and. id_height10m > 0) & + call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) + + id_vas = & + fms_diag_register_diag_field ( mod_name, 'vas', atmos_axes, Time, & + 'Northward Near-Surface Wind', 'm s-1', & + standard_name = 'northward_wind', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=vrange ) + if ( id_vas > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) + + id_sfcWind = & + fms_diag_register_diag_field ( mod_name, 'sfcWind', atmos_axes, Time, & + 'Near-Surface Wind Speed', 'm s-1', & + standard_name = 'wind_speed', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=vrange ) + if ( id_sfcWind > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) + + id_huss = & + fms_diag_register_diag_field ( mod_name, 'huss', atmos_axes, Time, & + 'Near-Surface Specific Humidity', '1.0', & + standard_name = 'specific_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_huss > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) + + id_hurs = & + fms_diag_register_diag_field ( mod_name, 'hurs', atmos_axes, Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name = 'relative_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_hurs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) + + id_rhs = & + fms_diag_register_diag_field ( mod_name, 'rhs', atmos_axes, Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name = 'relative_humidity', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_rhs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) + + id_ts = & + fms_diag_register_diag_field ( mod_name, 'ts', atmos_axes, Time, & + 'Surface Temperature', 'K', & + standard_name = 'surface_temperature', area=area_id, & + missing_value=CMOR_MISSING_VALUE, range=trange ) + + id_psl = & + fms_diag_register_diag_field ( mod_name, 'psl', atmos_axes, Time, & + 'Sea Level Pressure', 'Pa', & + standard_name = 'air_pressure_at_sea_level', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_tauu = & + fms_diag_register_diag_field ( mod_name, 'tauu', atmos_axes, Time, & + 'Surface Downward Eastward Wind Stress', 'Pa', & + standard_name = 'surface_downward_eastward_stress', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_tauv = & + fms_diag_register_diag_field ( mod_name, 'tauv', atmos_axes, Time, & + 'Surface Downward Northward Wind Stress', 'Pa', & + standard_name = 'surface_downward_northward_stress', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_hfss = & + fms_diag_register_diag_field ( mod_name, 'hfss', atmos_axes, Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', & + standard_name = 'surface_upward_sensible_heat_flux', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_hfls = & + fms_diag_register_diag_field ( mod_name, 'hfls', atmos_axes, Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', & + standard_name = 'surface_upward_latent_heat_flux', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) + + id_evspsbl = & + fms_diag_register_diag_field( mod_name, 'evspsbl', atmos_axes, Time, & + 'Evaporation', 'kg m-2 s-1', & + standard_name = 'water_evaporation_flux', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + + id_sftlf = & + fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & + 'Fraction of the Grid Cell Occupied by Land', '1.0', & + standard_name = 'land_area_fraction', area=area_id, & + interp_method = "conserve_order1" ) + + id_tslsi = & + fms_diag_register_diag_field ( mod_name, 'tslsi', atmos_axes, Time, & + 'Surface Temperature Where Land or Sea Ice', 'K', & + standard_name = 'surface_temperature', area=area_id, & + mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) + + id_tos = & + fms_diag_register_diag_field ( mod_name, 'tos', atmos_axes, Time, & + 'Sea Surface Temperature', 'K', & + standard_name = 'sea_surface_temperature', area=area_id, & + mask_variant=.true., missing_value=CMOR_MISSING_VALUE ) + + id_sic = & + fms_diag_register_diag_field ( mod_name, 'sic', atmos_axes, Time, & + 'Sea Ice Area Fraction', '1.0', & + standard_name = 'sea_ice_area_fraction', area=area_id, & + missing_value=CMOR_MISSING_VALUE ) + if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & + 'averaged over the ocean portion of grid box' ) #else - id_tas = register_cmip_diag_field_2d(mod_name, 'tas', Time, & - 'Near-Surface Air Temperature', 'K' , standard_name='air_temperature') - - if(id_tas > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_tas, 'coordinates', 'height2m') - - id_uas = register_cmip_diag_field_2d(mod_name, 'uas', Time, & - 'Eastward Near-Surface Wind', 'm s-1', standard_name='eastward_wind') - - if(id_uas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_uas, 'coordinates', 'height10m') - - id_vas = register_cmip_diag_field_2d(mod_name, 'vas', Time, & - 'Northward Near-Surface Wind', 'm s-1', standard_name='northward_wind') - - if(id_vas > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_vas, 'coordinates', 'height10m') - - id_sfcWind = register_cmip_diag_field_2d(mod_name, 'sfcWind', Time, & - 'Near-Surface Wind Speed', 'm s-1', standard_name='wind_speed') - - if(id_sfcWind > 0 .and. id_height10m > 0) call fms_diag_field_add_attribute(id_sfcWind, 'coordinates', 'height10m') - - id_huss = register_cmip_diag_field_2d(mod_name, 'huss', Time, & - 'Near-Surface Specific Humidity', '1.0', standard_name='specific_humidity') - - if(id_huss > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_huss, 'coordinates', 'height2m') - - id_hurs = register_cmip_diag_field_2d(mod_name, 'hurs', Time, & - 'Near-Surface Relative Humidity', '%', standard_name='relative_humidity') - - if(id_hurs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_hurs, 'coordinates', 'height2m') - - id_rhs = register_cmip_diag_field_2d(mod_name, 'rhs', Time, & - 'Near-Surface Relative Humidity', '%', standard_name='relative_humidity') - - if (id_rhs > 0 .and. id_height2m > 0) call fms_diag_field_add_attribute(id_rhs, 'coordinates', 'height2m') - - id_ts = register_cmip_diag_field_2d(mod_name, 'ts', Time, & - 'Surface Temperature', 'K', standard_name='surface_temperature') - - id_psl = register_cmip_diag_field_2d(mod_name, 'psl', Time, & - 'Sea Level Pressure', 'Pa', standard_name='air_pressure_at_sea_level') - - id_tauu = register_cmip_diag_field_2d(mod_name, 'tauu', Time, & - 'Surface Downward Eastward Wind Stress', 'Pa', standard_name='surface_downward_eastward_stress') - - id_tauv = register_cmip_diag_field_2d(mod_name, 'tauv', Time, & - 'Surface Downward Northward Wind Stress', 'Pa', standard_name='surface_downward_northward_stress') - - id_hfss = register_cmip_diag_field_2d(mod_name, 'hfss', Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', standard_name='surface_upward_sensible_heat_flux') - - id_hfls = register_cmip_diag_field_2d(mod_name, 'hfls', Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', standard_name='surface_upward_latent_heat_flux') - if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap') - - id_evspsbl = register_cmip_diag_field_2d(mod_name, 'evspsbl', Time, & - 'Evaporation', 'kg m-2 s-1', standard_name='water_evaporation_flux') - - id_sftlf = fms_diag_register_static_field(mod_name, 'sftlf', atmos_axes, & - 'Fraction of the Grid Cell Occupied by Land', '1.0', standard_name='land_area_fraction', & - area=area_id, interp_method='conserve_order1') - - id_tslsi = register_cmip_diag_field_2d(mod_name, 'tslsi', Time, & - 'Surface Temperature Where Land or Sea Ice', 'K', standard_name='surface_temperature', mask_variant=.true.) - + id_tas = register_cmip_diag_field_2d ( mod_name, 'tas', Time, & + 'Near-Surface Air Temperature', 'K' , & + standard_name='air_temperature' ) + if ( id_tas > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute( id_tas, 'coordinates', 'height2m' ) + + id_uas = register_cmip_diag_field_2d ( mod_name, 'uas', Time, & + 'Eastward Near-Surface Wind', 'm s-1', & + standard_name='eastward_wind' ) + if ( id_uas > 0 .and. id_height10m > 0) & + call fms_diag_field_add_attribute( id_uas, 'coordinates', 'height10m' ) + + id_vas = register_cmip_diag_field_2d ( mod_name, 'vas', Time, & + 'Northward Near-Surface Wind', 'm s-1', & + standard_name='northward_wind' ) + if ( id_vas > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_vas, 'coordinates', 'height10m' ) + + id_sfcWind = register_cmip_diag_field_2d ( mod_name, 'sfcWind', Time, & + 'Near-Surface Wind Speed', 'm s-1', & + standard_name='wind_speed' ) + if ( id_sfcWind > 0 .and. id_height10m > 0 ) & + call fms_diag_field_add_attribute( id_sfcWind, 'coordinates', 'height10m' ) + + id_huss = register_cmip_diag_field_2d ( mod_name, 'huss', Time, & + 'Near-Surface Specific Humidity', '1.0', & + standard_name='specific_humidity' ) + if ( id_huss > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_huss, 'coordinates', 'height2m' ) + + id_hurs = register_cmip_diag_field_2d ( mod_name, 'hurs', Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name='relative_humidity' ) + if ( id_hurs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_hurs, 'coordinates', 'height2m' ) + + id_rhs = register_cmip_diag_field_2d ( mod_name, 'rhs', Time, & + 'Near-Surface Relative Humidity', '%', & + standard_name='relative_humidity' ) + if ( id_rhs > 0 .and. id_height2m > 0 ) & + call fms_diag_field_add_attribute( id_rhs, 'coordinates', 'height2m' ) + + id_ts = register_cmip_diag_field_2d ( mod_name, 'ts', Time, & + 'Surface Temperature', 'K', & + standard_name='surface_temperature' ) + + id_psl = register_cmip_diag_field_2d ( mod_name, 'psl', Time, & + 'Sea Level Pressure', 'Pa', & + standard_name='air_pressure_at_sea_level' ) + + id_tauu = register_cmip_diag_field_2d ( mod_name, 'tauu', Time, & + 'Surface Downward Eastward Wind Stress', 'Pa', & + standard_name='surface_downward_eastward_stress' ) + + id_tauv = register_cmip_diag_field_2d ( mod_name, 'tauv', Time, & + 'Surface Downward Northward Wind Stress', 'Pa', & + standard_name='surface_downward_northward_stress' ) + + id_hfss = register_cmip_diag_field_2d ( mod_name, 'hfss', Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', & + standard_name='surface_upward_sensible_heat_flux' ) + + id_hfls = register_cmip_diag_field_2d ( mod_name, 'hfls', Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', & + standard_name='surface_upward_latent_heat_flux' ) + if ( id_hfls > 0 ) call fms_diag_field_add_attribute( id_hfls, 'comment', 'Lv*evap' ) + + id_evspsbl = register_cmip_diag_field_2d ( mod_name, 'evspsbl', Time, & + 'Evaporation', 'kg m-2 s-1', & + standard_name='water_evaporation_flux' ) + + id_sftlf = fms_diag_register_static_field ( mod_name, 'sftlf', atmos_axes, & + 'Fraction of the Grid Cell Occupied by Land', '1.0', & + standard_name='land_area_fraction', area=area_id, & + interp_method='conserve_order1' ) + + id_tslsi = register_cmip_diag_field_2d ( mod_name, 'tslsi', Time, & + 'Surface Temperature Where Land or Sea Ice', 'K', & + standard_name='surface_temperature', & + mask_variant=.true. ) ! tos,sic are ocean,seaIce fields on the atmos grid ! useful for amip-type runs - id_tos = register_cmip_diag_field_2d(mod_name, 'tos', Time, & - 'Sea Surface Temperature', 'K', standard_name='sea_surface_temperature', mask_variant=.true.) - - id_sic = register_cmip_diag_field_2d(mod_name, 'sic', Time, & - 'Sea Ice Area Fraction', '1.0', standard_name='sea_ice_area_fraction' ) + id_tos = register_cmip_diag_field_2d ( mod_name, 'tos', Time, & + 'Sea Surface Temperature', 'K', & + standard_name='sea_surface_temperature', & + mask_variant=.true. ) - if ( id_sic > 0 ) & - call fms_diag_field_add_attribute(id_sic, 'comment', 'averaged over the ocean portion of grid box') + id_sic = register_cmip_diag_field_2d ( mod_name, 'sic', Time, & + 'Sea Ice Area Fraction', '1.0', & + standard_name='sea_ice_area_fraction' ) + if ( id_sic > 0 ) call fms_diag_field_add_attribute( id_sic, 'comment', & + 'averaged over the ocean portion of grid box' ) !----- initialize global integrals for netCDF output ----- - id_evspsbl_g = register_global_diag_field(& - 'evspsbl', Time, 'Evaporation', 'mm d-1', standard_name='water_evaporation_flux') - - id_ts_g = register_global_diag_field(& - 'ts', Time, 'Surface Temperature', 'K', standard_name='surface_temperature') - - id_tas_g = register_global_diag_field(& - 'tas', Time, 'Near-Surface Air Temperature', 'K', standard_name='air_temperature') - - if(id_tas_g > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute(get_global_diag_field_id(id_tas_g), 'coordinates', 'height2m') - - id_tasl_g = register_global_diag_field(& - 'tasl', Time, 'Near-Surface Air Temperature (Land Only)', 'K' , standard_name='air_temperature') - + id_evspsbl_g = register_global_diag_field ( 'evspsbl', Time, & + 'Evaporation', 'mm d-1', & + standard_name='water_evaporation_flux' ) + + id_ts_g = register_global_diag_field ( 'ts', Time, & + 'Surface Temperature', 'K', & + standard_name='surface_temperature' ) + + id_tas_g = register_global_diag_field ( 'tas', Time, & + 'Near-Surface Air Temperature', 'K' , & + standard_name='air_temperature' ) + if ( id_tas_g > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tas_g), 'coordinates', 'height2m' ) + + id_tasl_g = register_global_diag_field ( 'tasl', Time, & + 'Near-Surface Air Temperature (Land Only)', 'K' , & + standard_name='air_temperature' ) #if defined(_USE_LEGACY_LAND_) || defined(use_AM3_physics) if(id_tasl_g>0) then call fms_mpp_error(WARNING, "diag_field_init: field tasl is registered, but macro "// & - "_USE_LEGACY_LAND_ or use_AM3_physics is defined, no data will be written out") + "_USE_LEGACY_LAND_ or use_AM3_physics is defined, no data will be written out") endif #endif - if(id_tasl_g > 0 .and. id_height2m > 0) & - call fms_diag_field_add_attribute(get_global_diag_field_id(id_tasl_g), 'coordinates', 'height2m') - - id_hfss_g = register_global_diag_field('hfss', Time, & - 'Surface Upward Sensible Heat Flux', 'W m-2', standard_name='surface_upward_sensible_heat_flux') + if ( id_tasl_g > 0 .and. id_height2m > 0) & + call fms_diag_field_add_attribute ( get_global_diag_field_id(id_tasl_g), 'coordinates', 'height2m' ) - id_hfls_g = register_global_diag_field('hfls', Time, & - 'Surface Upward Latent Heat Flux', 'W m-2', standard_name='surface_upward_latent_heat_flux') + id_hfss_g = register_global_diag_field ( 'hfss', Time, & + 'Surface Upward Sensible Heat Flux', 'W m-2', & + standard_name='surface_upward_sensible_heat_flux' ) + id_hfls_g = register_global_diag_field ( 'hfls', Time, & + 'Surface Upward Latent Heat Flux', 'W m-2', & + standard_name='surface_upward_latent_heat_flux') if ( id_hfls_g > 0 ) & - call fms_diag_field_add_attribute(get_global_diag_field_id(id_hfls_g), 'comment', 'Lv*evap') + call fms_diag_field_add_attribute( get_global_diag_field_id(id_hfls_g), 'comment', 'Lv*evap' ) - id_rls_g = register_global_diag_field('rls', Time, & - 'Net Longwave Surface Radiation', 'W m-2', standard_name='surface_net_longwave_flux') + id_rls_g = register_global_diag_field ( 'rls', Time, & + 'Net Longwave Surface Radiation', 'W m-2', & + standard_name='surface_net_longwave_flux' ) #endif + !} end subroutine diag_field_init + !> Subroutine divide_by_area divides data on a grid by the grid cell area only for !! cells with non-zero area. This subroutine iscurrently not used. Note, a !! similar subroutine also exists in ice_ocean_flux_exchange_mod subroutine divide_by_area(data, area) - implicit none - real, intent(inout) :: data(:,:) !< data - real, intent(in) :: area(:,:) !< area + !> data to be divided + real, intent(inout) :: data(:,:) + !> area used as denominator + real, intent(in) :: area(:,:) !> CHECK TO ENSURE SHAPE OF DATA IS THE SAME AS SHAPE OF AREA + !! IF SHAPES MISMATCH, RETURN !{ - if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) return + if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) then + ! no op + return + endif !} - + !> DIVIDE DATA BY GRID CELL AREA WHERE AREA /= 0.0 !{ where(area /= 0.0) @@ -4298,54 +5006,50 @@ subroutine divide_by_area(data, area) !} end subroutine divide_by_area + + !> Subroutine send_ice_mask_sic sends the ice mask to diag_manager. !! If the variables ice_mask or sic have been registered with diag_manager, !! this subroutine maps the fractional amount of sea ice !! from the OCN grid to the ATM grid and sends the data to the diag_manager buffer. ! This was called inside flux_ocean_to_ice. Why? - subroutine send_ice_mask_sic(time) + subroutine send_ice_mask_sic(Time) - implicit none - type(fmstime_type), intent(in) :: time !< current time + !> current model time + type(FmsTime_type), intent(in) :: Time real, dimension(nxc_ice, nyc_ice, nk_ice) :: ice_frac - real, dimension(n_xgrid_sfc) :: ex_ice_frac - real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac + real, dimension(n_xgrid_sfc) :: ex_ice_frac + real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac logical :: used - !> IF ID_ICE_MASK > 0 OR ID_SIC > 0 - if(id_ice_mask > 0 .or. id_sic > 0) then + !> IF ID_ICE_MASK > 0 OR ID_SIC > 0 + if ( id_ice_mask > 0 .or. id_sic > 0) then !> INITIALIZE ICE_FRAC !{ - ice_frac = 1. + ice_frac = 1. ice_frac(:,:,1) = 0. - ex_ice_frac = 0. + ex_ice_frac = 0. !} - + !> MAP ICE_MASK FROM THE OCN GRID TO THE EXCHANGE GRID - !{ - call fms_xgrid_put_to_xgrid(ice_frac, 'OCN', ex_ice_frac, xmap_sfc) - !} + call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) !> MAP ICE_MASK FROM THE EXCHANGE GRID TO THE ATM GRID - !{ - call fms_xgrid_get_from_xgrid(diag_atm, 'ATM', ex_ice_frac, xmap_sfc) - !} + call fms_xgrid_get_from_xgrid (diag_atm, 'ATM', ex_ice_frac, xmap_sfc) !> IF ID_ICE_MASK > 0, SEND ICE_MASK TO THE DIAG_MANAGER BUFFER - !{ - if(id_ice_mask > 0) used = fms_diag_send_data(id_ice_mask, diag_atm, Time) - !} + if ( id_ice_mask > 0 ) used = fms_diag_send_data ( id_ice_mask, diag_atm, Time ) !> FOR CMIP, IF ID_SIC > 0, COMPUTE SEA ICE FRACTIONAL AREA FOR ATM GRID CELLS THAT ARE OVER THE OCEAN !! AND NORMALIZE AREA BY THE FRACTION OF ATMOS GRID CELL THAT IS OCEAN !{ - if(id_sic > 0) then + if ( id_sic > 0) then ice_frac = 1. ex_ice_frac = 0. - call fms_xgrid_put_to_xgrid(ice_frac, 'OCN', ex_ice_frac, xmap_sfc) - call fms_xgrid_get_from_xgrid(ocean_frac, 'ATM', ex_ice_frac, xmap_sfc) + call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) + call fms_xgrid_get_from_xgrid (ocean_frac, 'ATM', ex_ice_frac, xmap_sfc) where (ocean_frac > 0.0) diag_atm = min(1., diag_atm/ocean_frac) ! CMIP6 as fraction ocean_frac = 1.0 @@ -4353,36 +5057,30 @@ subroutine send_ice_mask_sic(time) diag_atm = 0.0 ocean_frac = 0.0 endwhere - used = fms_diag_send_data(id_sic, diag_atm, Time, rmask=ocean_frac) + used = fms_diag_send_data ( id_sic, diag_atm, Time, rmask=ocean_frac ) endif endif !} end subroutine send_ice_mask_sic - + !> Subroutine atm_stock_integrate integrates over the total precipitation !! (liquid and frozen) in the atmosphere and multiply the integrated value by !! the timestep dt. This subroutine is called in flux_exchange_mod/flux_check_stocks subroutine atm_stock_integrate(Atm, res) - implicit none - type(atmos_data_type), intent(in) :: Atm !< derived type holding the atmosphere boundary data - real, intent(out) :: res !< integrated value + !> derived type holding the atmosphere boundary data + type(atmos_data_type), intent(in) :: Atm + !> integrated value + real, intent(out) :: res - integer :: ier ! error returned from fms_xgrid_stock_integrate_2d + integer :: ier - !> CALL FMS_XGRID_STOCK_INTEGRATE + !> CALL FMS_XGRID_STOCK_INTEGRATE call fms_xgrid_stock_integrate_2d(Atm%lprec + Atm%fprec, xmap=xmap_sfc, delta_t=Dt_atm, & & radius=Radius, res=res, ier=ier) end subroutine atm_stock_integrate end module atm_land_ice_flux_exchange_mod - -#undef FMS_DATA_OVERRIDE_ -#undef FMS_XGRID_PUT_TO_XGRID_ -#undef FMS_XGRID_STOCK_MOVE_ -#undef FMS_XGRID_SET_FRAC_AREA_ -#undef FMS_XGRID_GET_FROM_XGRID_ -#undef FMS_DIAG_REGISTER_FIELD_ From 21b32bb3b4695b6a225246b002b37524285d0c36 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Thu, 2 Apr 2026 13:22:49 -0400 Subject: [PATCH 30/31] additional changes --- full/atm_land_ice_flux_exchange.F90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index b2708041..f00be0b2 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -1998,12 +1998,14 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !> ON THE EXCHANGE GRID, COMPUTE T_SURF**4 - !! NOTE, TO COMPUTE FLUXES, T_SURF**4 IS SENT TO THE EXCHANGE GRID AND NOT T_SURF DUE TO NONLINEARITY IN - !! THE STEFAN-BOLTZMANN LAW WHERE LOGWAVE_FLUX = STEFAN_BOLTZMANN _CONSTANT * T**4. + !! NOTE, TO COMPUTE LONGWAVE RADIATION FLUXES MORE ACCURATELY, T_SURF**4 IS + !! PUT ON THE EXCHANGE GRID RATHER THAN T_SURF IN ORDER TO ACCOUNT FOR THE NONLINEARITY IN + !! THE STEFAN-BOLTZMANN LAW WHERE LONGWAVE_FLUX = STEFAN_BOLTZMANN _CONSTANT * T**4. !! ON THE EXCHANGE GRID, AS QUANTITIES ARE REMAPPED, FIELDS ARE AREA-WEIGHTED (AVERAGED) !! SUCH THAT OUTPUT_TEMPERATURE = SUM(INPUT_TEMPERATURE * (XGRID_AREA)/(INPUT_GRID_AREA)) !! WHERE THE SUM IS OVER ALL XGRID CELLS THAT OVERLAP WITH THE OUTPUT CELL. !! BECAUSE OF THIS WEIGHTING, THE COMPUTED FLUX WOULD DIFFER FROM USING VS **4 + !! (WHERE <> IS USED TO DENOTE AVERAGING) !{ !$OMP parallel do default(none) shared(my_nblocks,block_start,block_end,ex_avail, & !$OMP ex_drag_q,ex_wind,ex_cd_q,ex_t_surf4,ex_t_surf ) & From 80d224830e7324e5421e6432299640fe58354290 Mon Sep 17 00:00:00 2001 From: mlee03 Date: Thu, 2 Apr 2026 13:25:51 -0400 Subject: [PATCH 31/31] trailing white sspace --- full/atm_land_ice_flux_exchange.F90 | 346 ++++++++++++++-------------- 1 file changed, 173 insertions(+), 173 deletions(-) diff --git a/full/atm_land_ice_flux_exchange.F90 b/full/atm_land_ice_flux_exchange.F90 index f00be0b2..3433d9d2 100644 --- a/full/atm_land_ice_flux_exchange.F90 +++ b/full/atm_land_ice_flux_exchange.F90 @@ -30,7 +30,7 @@ module atm_land_ice_flux_exchange_mod ! MOM6/SIS2 use ice_model_mod, only: & ice_data_type, & ! derived type holding ice model data - land_ice_boundary_type, & ! derived type for flux exchange between land and sea ice + land_ice_boundary_type, & ! derived type for flux exchange between land and sea ice ocean_ice_boundary_type ! derived type for flux exchange between ocean and sea ice use ice_model_mod, only: & atmos_ice_boundary_type, ! derived type for flux exchange between atmosphere and sea ice @@ -70,7 +70,7 @@ module atm_land_ice_flux_exchange_mod use atmos_tracer_driver_mod, only: & atmos_tracer_has_surf_setl_flux, & ! function returns True if tracer sedimentation flux > 0 at bottom of atm get_atmos_tracer_surf_setl_flux ! subroutine to retrieve tracer sedimentation flux at bottom of atm - use atmos_tracer_driver_mod, only: atmos_tracer_driver_gather_data_down + use atmos_tracer_driver_mod, only: atmos_tracer_driver_gather_data_down use atmos_cmip_diag_mod, only: & register_cmip_diag_field_2d ! function to register CMIP diagnostic data use atmos_global_diag_mod, only: & @@ -125,8 +125,8 @@ module atm_land_ice_flux_exchange_mod flux_ex_arrays_dealloc,& atm_stock_integrate, & send_ice_mask_sic - - !> coupler version number that is set automatically during compile time + + !> coupler version number that is set automatically during compile time character(len=128) :: version = '$Id$' !> coupler tag that is set automatically during compile time @@ -143,7 +143,7 @@ module atm_land_ice_flux_exchange_mod integer :: & !> diag_manager register field id for 'drag coefficient for moisture' - id_drag_moist, & + id_drag_moist, & !> diag_manager register field id for 'drag coefficient for heat' id_drag_heat, & !> diag_manager register field id for 'drag coefficient for momentum' @@ -273,7 +273,7 @@ module atm_land_ice_flux_exchange_mod integer, allocatable :: & !> array of diag_manager register field ids for 'gross flux of tracer concentration over land in [mol/m2*s]' - id_tr_mol_flux0(:) + id_tr_mol_flux0(:) integer, allocatable :: & !> array of diag_manager register field ids for 'flux of tracer concentration over land in [kg/m2*s]' @@ -290,14 +290,14 @@ module atm_land_ice_flux_exchange_mod !> array of diag_manager register field ids for 'deposition velocity at lowest atmospheric level (atm)'. !! Used only when _USE_LEGACY_LAND_ macro is set at compile time id_tr_con_atm(:), & - !> array of diag_manager register field ids for 'deposition velocity at reference height (atm)' + !> array of diag_manager register field ids for 'deposition velocity at reference height (atm)' id_tr_con_ref(:) ! id's for cmip specific fields integer :: & !> diag_manager register field id for 'near-surface air temperature' (cmip) id_tas, & - !> diag_manager register field id for 'eastward near-surface wind' (cmip) + !> diag_manager register field id for 'eastward near-surface wind' (cmip) id_uas, & !> diag_manager register field id for 'northward near-surface wind' (cmip) id_vas, & @@ -365,7 +365,7 @@ module atm_land_ice_flux_exchange_mod real, parameter :: d622 = rdgas/rvgas !> 1.0-d622 real, parameter :: d378 = 1.0-d622 - !> d378/d622 + !> d378/d622 real, parameter :: d608 = d378/d622 !> freezing point of water at 1 atm [K] real, parameter :: tfreeze = 273.15 @@ -373,7 +373,7 @@ module atm_land_ice_flux_exchange_mod real, allocatable, dimension(:,:) :: frac_precip !> Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) - real :: z_ref_heat = 2. + real :: z_ref_heat = 2. !> Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) real :: z_ref_mom = 10. @@ -382,7 +382,7 @@ module atm_land_ice_flux_exchange_mod !> OpenMP number of thread. Do loops on the exchange grid are parallelized into noblocks integer :: nblocks = 1 - + !> If true, convert liquid precip to snow when t_ref < tfreeze !! Used for atm override experiments where liquid and frozen precip are combined logical :: partition_fprec_from_lprec = .FALSE. @@ -404,7 +404,7 @@ module atm_land_ice_flux_exchange_mod !! Note, T canopy is only differet from t_surf over vegetated land ex_t_surf, & !> no documentation - ex_t_surf_miz, & + ex_t_surf_miz, & !> near-surface (canopy) air temperature on exchange grid [K] ex_t_ca, & !> surface pressure on exchange grid on the exchange grid @@ -452,7 +452,7 @@ module atm_land_ice_flux_exchange_mod ex_albedo_nir_dif_fix, & !> q drag coefficient on the exchange grid ex_drag_q, & - !> drag coefficient for heat on the exchange grid + !> drag coefficient for heat on the exchange grid ex_cd_t, & !> drag coefficient for momentum on the exchange grid ex_cd_m, & @@ -467,7 +467,7 @@ module atm_land_ice_flux_exchange_mod !> deposition velocity at lowest atmospheric level on the exchange grid ex_con_atm - + #ifdef SCM real, allocatable, dimension(:) :: & ex_dhdt_surf_forland, & @@ -477,7 +477,7 @@ module atm_land_ice_flux_exchange_mod real, allocatable, dimension(:,:) :: & !> surface temperature for radiation calc on exchange grid [K] - ex_tr_surf, & + ex_tr_surf, & !> tracer fluxes on the exchange grid ex_flux_tr, & !> d(tracer flux)/d(surf tracer) on the exchange grid @@ -487,19 +487,19 @@ module atm_land_ice_flux_exchange_mod !> coefficient in implicit scheme on the exchange grid ex_e_tr_n, & !> coefficient in implicit scheme on the exchange grid - ex_f_tr_delt_n + ex_f_tr_delt_n real, allocatable, dimension(:,:) :: & !> deposition velocity at reference height on the exchange grid - ex_tr_con_ref, & + ex_tr_con_ref, & !> deposition velocity at atmospheric height on the exchange grid - ex_tr_con_atm - + ex_tr_con_atm + logical, allocatable, dimension(:) :: & !> true where exchange grid cell is over ocean and/or seaice - ex_avail,& + ex_avail,& !> true where exchange grid cell is over land - ex_land + ex_land real, allocatable, dimension(:) :: & !> no documentation ex_e_t_n, & @@ -507,33 +507,33 @@ module atm_land_ice_flux_exchange_mod ex_f_t_delt_n !> number of prognostic tracers in the atmos model - integer :: n_atm_tr + integer :: n_atm_tr !> number of prognostic tracers in the atmos model - integer :: n_atm_tr_tot + integer :: n_atm_tr_tot !> number of prognostic tracers in the land model integer :: n_lnd_tr !> number of prognostic tracers in the land model - integer :: n_lnd_tr_tot + integer :: n_lnd_tr_tot !> number of tracers exchanged between models integer :: n_exch_tr !> number of gex fields exchanged between land and atmosphere - integer :: n_gex_atm2lnd + integer :: n_gex_atm2lnd !> number of gex fields exchanged between atmosphere and land - integer :: n_gex_lnd2atm + integer :: n_gex_lnd2atm !> derived type to hold the index of the tracer in atm, ice, land models type :: tracer_ind_type - integer :: atm, ice, lnd + integer :: atm, ice, lnd end type tracer_ind_type !> table of tracers passed through flux exchange - type(tracer_ind_type), allocatable :: tr_table(:) + type(tracer_ind_type), allocatable :: tr_table(:) !> derived type to hold index of the tracer on the exchange grid, ice, and land models type :: tracer_exch_ind_type integer :: exch = 0 integer :: ice = 0 - integer :: lnd = 0 + integer :: lnd = 0 end type tracer_exch_ind_type !> map atm tracers to exchange, ice and land variables @@ -547,13 +547,13 @@ module atm_land_ice_flux_exchange_mod integer :: inh3 = NO_TRACER !> atm gas fields, Used as place holder for atmospheric fields - type(FmsCoupler1dBC_type), pointer :: ex_gas_fields_atm=>NULL() + type(FmsCoupler1dBC_type), pointer :: ex_gas_fields_atm=>NULL() - !> ice gas fields. Used as place holder for ice fields + !> ice gas fields. Used as place holder for ice fields type(FmsCoupler1dBC_type), pointer :: ex_gas_fields_ice=>NULL() !> gas flux fields. Used as place holder for intermediate calculations such as piston velocities - type(FmsCoupler1dBC_type), pointer :: ex_gas_fluxes=>NULL() + type(FmsCoupler1dBC_type), pointer :: ex_gas_fluxes=>NULL() interface put_logical_to_real module procedure put_logical_to_real_sg @@ -565,7 +565,7 @@ module atm_land_ice_flux_exchange_mod ni_atm, & !> number of y gridpoints in the atm compute domain nj_atm - + integer, parameter :: & !> flag to set boundary_type%xtype when grids are physically different and data between model components !! needs to be exchanged via the exchange grid @@ -575,7 +575,7 @@ module atm_land_ice_flux_exchange_mod !> flag to set boundary_type%xtype when grids and domaisn are identical and data can be !! copied directly beteween components DIRECT=3 - + integer :: & !> FMS clock id for profiling general processes cplClock, & @@ -587,21 +587,21 @@ module atm_land_ice_flux_exchange_mod regenClock, & !> FMS clock for profiling flux up to atmosphere fluxAtmUpClock - + integer :: & !> exchange grid index for xgrid_stock_move. Set to value of 1 X1_GRID_ATM, & !> exchange grid index for xgrid_stock_move. Set to value of 2 - X1_GRID_ICE, & + X1_GRID_ICE, & !> exchange grid index for xgrid_stock_move. Set to value of 3 - X1_GRID_LND + X1_GRID_LND real :: & !> atmospheric timestep [s] Dt_atm, & !> coupled timestep [s] Dt_cpl - + integer :: & !> number of x gridpoints in ice compute domain nxc_ice=0, & @@ -609,7 +609,7 @@ module atm_land_ice_flux_exchange_mod nyc_ice=0, & !> number of vertical levels in ice nk_ice=0 - + integer :: & !> number of x gridpoints in land compute domain nxc_lnd=0, & @@ -627,14 +627,14 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound partition_fprec_from_lprec_in, scale_precip_2d_in, nblocks_in, cplClock_in, ex_gas_fields_atm_in, & ex_gas_fields_ice_in, ex_gas_fluxes_in) - !> current model time + !> current model time type(FmsTime_type), intent(in) :: Time !> derived data type holding atmosphere boundary data type(atmos_data_type), intent(inout) :: Atm !> derived data type holding land boundary data type(land_data_type), intent(in) :: Land !>derived data type holding ice boundary data - type(ice_data_type), intent(inout) :: Ice + type(ice_data_type), intent(inout) :: Ice !> derived type holding properties and fluxes passed from atmosphere to ice type(atmos_ice_boundary_type), intent(inout) :: atmos_ice_boundary !> derived type holding properties and fluxes passed from exchange grid to atmosphere, land, and ice @@ -662,7 +662,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound !> used to set cplClock in the module. !! The clock is used to measure processes mainly used for development and debugging integer, intent(in) :: cplClock_in - + type(FmsCoupler1dBC_type), intent(in), target :: & !> used to set ex_gas_fields_atm in the module. !! Contains atm surface variables used for computing atm-ocean gas fluxes and flux-regulating parameters @@ -672,7 +672,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound ex_gas_fields_ice_in, & !> used to set ex_gas_fluxes in the module that is used to exchange gas/tracer fluxes between atm and ocean ex_gas_fluxes_in - + character(len=48), parameter :: module_name = 'atm_land_ice_flux_exchange_mod' character(len=64), parameter :: sub_name = 'atm_land_ice_flux_init' character(len=256), parameter :: note_header = '==>Note from '//trim(module_name)//'('//trim(sub_name)//'):' @@ -681,7 +681,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound i, & ! temporary index do loop n ! temporary index for counting integer :: & - outunit, & ! returned value from fms_mpp_stdout() + outunit, & ! returned value from fms_mpp_stdout() logunit ! returned value from fms_mpp_stdlog() integer :: & is, & ! starting x-index on compute domain @@ -709,7 +709,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound ex_gas_fields_ice => ex_gas_fields_ice_in ex_gas_fluxes => ex_gas_fluxes_in !} - + !> GET FILE UNIT FOR STDOUT AND STDLOG FOR INTERNAL LOGGING PURPOSES !{ @@ -722,7 +722,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate(block_start(nblocks), block_end(nblocks)) !} - + !> FROM THE TRACER TABLE, GET THE TOTAL NUMBER TRACERS, !! TOTAL NUMBER OF SPECIFIC HUMIDITY TRACER,AND !! TOTAL NUMBER PROGNOSTIC TRACERS IN ATMOSPHERE AND LAND MODELS @@ -731,7 +731,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_tracer_manager_get_number_tracers (MODEL_LAND, num_tracers=n_lnd_tr_tot, num_prog=n_lnd_tr) !} - + !> CONSTRUCT THE TRACER TABLE (TR_TABLE): !! FOR EACH TRACER, RECORD THE TRACER_INDEX IN THE ATM MODEL, ICE MODEL, AND LAND MODEL !! SKIP ALL ATMOS TRACERS THAT DO NOT HAVE CORRESPONDING SURFACE TRACERS @@ -754,7 +754,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound n_exch_tr = n - 1 !} - + !> GET THE TOTAL NUMBER OF GENERIC EXCHANGE FIELDS BETWEEN ATMOSPHERE AND LAND !{ !generic exchange @@ -792,7 +792,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound enddo !} - + !> GET THE TRACER INDEX OF SPECIFIC HUMIDITY !{ ! +fix-me-slm+ specific humidity may not be present if we are running with @@ -825,7 +825,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound 'tracer "co2" not present in the atmosphere', NOTE ) endif !} - + !> INITIALIZE FRAC_PRECIP IF SCALE_PRECIP_2D IS TRUE !{ call fms_mpp_domains_get_compute_domain(Atm%domain, is, ie, js, je) @@ -836,7 +836,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif !} - + !> SET UP THE EXCHANGE GRID AND SET X1_GRID_ATM = 1, X1_GRID_ICE = 2, AND X1_GRID_LAND = 3 !! SETS XMAP_SFC(1)%GRIDS FOR ATM, XMAP_SFC(2)%GRIDS FOR ICE, XMAP_SFC(3)%GRIDS FOR LAND !{ @@ -858,13 +858,13 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound if (n_xgrid_sfc.eq.1) write (*,'(a,i6,6x,a)') 'PE = ', fms_mpp_pe(), 'Surface exchange size equals one.' !} - + !> INITIALIZE SURFACE_FLUX MODULE !{ call surface_flux_init() !} - + !> INITIALLIZE FMS DIAG_INTEGRAL FIELDS FOR EVAP, T_SURF, T_REF GLOBAL INTEGRAL QUANTITIES !{ !! call diag_integral_field_init ('prec', 'f6.3') @@ -887,7 +887,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound ni_atm = size(Atm%lon_bnd,1)-1 ! to dimension "diag_atm" nj_atm = size(Atm%lon_bnd,2)-1 ! in flux_ocean_to_ice !} - + !> ALLOCATE ATMOS_ICE_BOUNDARY AND SET FIELDS EQUAL TO ZERO !{ @@ -942,7 +942,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_coupler_type_copy(ex_gas_fluxes, atmos_ice_boundary%fluxes, is, ie, js, je, kd, & mod_name, Ice%axes, Time, suffix = '_atm_ice') - + !--- Ice%ocean_fields and Ice%ocean_fluxes_top will not be passed to ocean, so these two !--- coupler_type_copy calls are moved from ice_ocean_flux_init to here. if (.not.fms_coupler_type_initialized(Ice%ocean_fields)) & @@ -951,7 +951,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_coupler_type_set_diags(Ice%ocean_fields, 'ice_flux', Ice%axes, Time) !} - + !> ALLOCATE LAND_ICE_ATMOS_BOUNDARY AND SET FIELDS EQUAL TO ZERO EXCEPT FOR !! T_OCEAN WHICH IS SET TO 200 K, T_REF TO 273 K, AND ROUGHNESS LENGTHS TO 0.01 m !{ @@ -979,7 +979,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound allocate( land_ice_atmos_boundary%q_star(is:ie,js:je) ) #ifndef use_AM3_physics allocate( land_ice_atmos_boundary%shflx(is:ie,js:je) ) - allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je) ) + allocate( land_ice_atmos_boundary%lhflx(is:ie,js:je) ) #endif allocate( land_ice_atmos_boundary%wind(is:ie,js:je) ) allocate( land_ice_atmos_boundary%thv_atm(is:ie,js:je) ) @@ -1024,8 +1024,8 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound land_ice_atmos_boundary%rough_heat=0.01 land_ice_atmos_boundary%frac_open_sea=0.0 !} - - + + !> COPY EX_GAS_FIELDS_ATM TO ATM%FIELDS !{ ! The first call is no longer necessary, the fluxes will be passed by the land module @@ -1033,7 +1033,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound call fms_coupler_type_copy(ex_gas_fields_atm, Atm%fields, is, ie, js, je, & mod_name, Atm%axes(1:2), Time, suffix = '_atm') !} - + !> GET THE SIZE OF ICE COMPUTE DOMAIN !{ if( Ice%pe) then @@ -1042,7 +1042,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif !} - + !> GET THE SIZE OF LAND COMPUTE DOMAIN !{ if( Land%pe) then @@ -1050,7 +1050,7 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound endif !} - + !> DECLARE CLOCKS FOR PROFILING !{ sfcClock = fms_mpp_clock_id( 'SFC boundary layer', flags=fms_clock_flag_default, grain=CLOCK_SUBCOMPONENT ) @@ -1059,14 +1059,14 @@ subroutine atm_land_ice_flux_exchange_init(Time, Atm, Land, Ice, atmos_ice_bound fluxAtmUpClock = fms_mpp_clock_id( 'Flux UP to atm', flags=fms_clock_flag_default, grain=CLOCK_ROUTINE ) !} - + !> SET DO_INIT = .FALSE. IN ORDER TO AVOID RE-INITIALIZATION THE MODULE !! IF THIS SUBROUTINE IS CALLED AGAIN !{ do_init = .false. !} - + end subroutine atm_land_ice_flux_exchange_init !> Subroutine sfc_boundary_layer computes the following fluxes and exchanges the fluxes between the model components: @@ -1090,9 +1090,9 @@ end subroutine atm_land_ice_flux_exchange_init subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundary ) !> timestep - real, intent(in) :: dt + real, intent(in) :: dt !> current model time - type(FmsTime_type), intent(in) :: Time + type(FmsTime_type), intent(in) :: Time !> derived type holding atmosphere boundary data type(atmos_data_type), intent(inout) :: Atm !> derived type holding land boundary data @@ -1158,10 +1158,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar real, dimension(size(Land%t_ca, 1),size(Land%t_ca,2), size(Land%t_ca,3)) :: & diag_land ! temporary array to hold data #endif - + real, dimension(size(Ice%t_surf,1),size(Ice%t_surf,2),size(Ice%t_surf,3)) :: & sea ! temporary array to hold data - + real, dimension(size(Ice%albedo,1),size(Ice%albedo,2),size(Ice%albedo,3)) :: & tmp_open_sea ! temporary array to hold data @@ -1172,7 +1172,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar integer :: tr, n, m ! tracer indices integer :: is, ie, isc, iec, jsc, jec ! domain indices integer :: i, l, j, n_gex ! do loop indices - + real, dimension(n_xgrid_sfc,n_gex_lnd2atm) :: ex_gex_lnd2atm ! holds generic, non-tracer fields on exchange grid !> CHECK MODULE INITIALIZATION @@ -1183,7 +1183,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar end if !} - + !> INITIALIZE CLOCKS FOR PROFILING !{ ! [2] @@ -1192,7 +1192,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_mpp_clock_begin(sfcClock) !} - + !> ALLOCATE ARRAY FOR EXCHANGE FIELDS. THE ARRAYS ARE DEALLOCATED IN FLUX_UP_TO_ATMOS !{ ! [2] allocate storage for variables that are also used in flux_up_to_atmos @@ -1250,7 +1250,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_dedq_surf_forland(n_xgrid_sfc) ) #endif !} - + !> ALLOCATE EX_GAS_FIELDS_ICE ARRAYS FOR OCEAN_ICE_BOUNDARY EXCHANGE FIELDS !{ @@ -1267,7 +1267,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo !} - + !> ALLOCATE EX_GAS_FIELDS_ATM ARRAYS FOR ATMOSPHERE EXCHANGE FIELDS !{ do n = 1, ex_gas_fields_atm%num_bcs @@ -1294,12 +1294,12 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo !} - + ! Call the atmosphere tracer driver to gather the data needed for extra gas tracers ! For ocean only model ! call atmos_get_fields_for_flux(Atm) - + !> ON THE EXCHANGE GRID, SET INITIAL VALUES FOR ALBEDO, DRAG COEFFICIENTS, AND OPEN WATER MASK !{ ! [3] initialize some values on exchange grid: this is actually a safeguard @@ -1336,7 +1336,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo !} - + !> OVERRIDE SUBSET OF ATM FIELDS. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ ! data_override stuff moved from coupler_main @@ -1350,7 +1350,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_data_override ('ATM', 'gust', Atm%gust, Time) !} - + !> CONVERT CO2 TRACER UNITS TO WET_MMR UNITS ! jgj: 2008/07/18 ! FV atm advects tracers in moist mass mixing ratio: kg co2 /(kg air + kg water) @@ -1413,11 +1413,11 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar if (.not. atm%fields%bc(n)%field(fms_coupler_ind_psurf)%override) then atm%fields%bc(n)%field(fms_coupler_ind_psurf)%values = Atm%p_surf endif - endif + endif enddo !} - + !> OVERRIDE SUBSET OF ICE AND LAND FIELD. DATA WILL BE OVERWRITTEN ONLY IF THE FIELD IS SPECIFIED IN DATA_TABLE !{ call fms_data_override ('ICE', 't_surf', Ice%t_surf, Time) @@ -1467,7 +1467,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar #endif !} - + !> MAP ATM FIELDS ONTO THE EXCHANGE GRID !{ ! [4] put all the qantities we need onto exchange grid @@ -1502,7 +1502,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_xgrid_put_to_xgrid (Atm%gust, 'ATM', ex_gust, xmap_sfc, remap_method=remap_method, complete=.true.) !} - + ! slm, Mar 20 2002: changed order in whith the data transferred from ice and land ! grids, to fill t_ca first with t_surf over ocean and then with t_ca from ! land, where it is different from t_surf. It is mostly to simplify @@ -1517,7 +1517,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_tr_surf = ex_tr_atm !} - + !> MAP ICE FIELDS ONTO THE EXCHANGE GRID !{ ! [4.2] put ice quantities onto exchange grid @@ -1546,7 +1546,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo enddo !} - + !> ON THE EXCHANGE GRID, GENERATE DYNAMIC WET MASK ARRAY WITH VALUE OF 1.O FOR OPEN WATER !{ @@ -1563,7 +1563,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_seawater = 0.0 call fms_xgrid_put_to_xgrid (sea, 'OCN', ex_seawater, xmap_sfc) !} - + !Question: Why is the above ex_seawater a dynamic mask array? ! From its construction it looks like a static array of 1s and 0s ! @@ -1592,12 +1592,12 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! enddo !enddo - + !> ON THE EXCHANGE GRID, INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE !{ ex_t_ca = ex_t_surf ! used to define values over the ocean !} - + !> ON THE EXCHANGE GRID, INITIALIZE CANOPY TEMPERATURE TO BE THE SURFACE TEMPERATURE !{ @@ -1605,9 +1605,9 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_xgrid_some(xmap_sfc, ex_land, 'LND') !} - + !> MAP LAND EXCHANGE FIELDS ONTO THE EXCHANGE GRID - !{ + !{ #ifndef _USE_LEGACY_LAND_ #ifdef use_AM3_physics @@ -1684,7 +1684,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ex_land_frac = 0.0 call put_logical_to_real (Land%mask, 'LND', ex_land_frac, xmap_sfc) !} - + #ifdef SCM if (do_specified_land) then @@ -1778,7 +1778,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar ! call mpp_clock_end(fluxClock) - + !> CALL MONIN_OBUKHOV_MO_PROFILE IN FMS !! ON THE EXCHANGE GRID, COMPUTE ZONAL AND MERIDIONAL WINDS AT THE BOUNDARY LAYER AND AT THE REFERENCE HEIGHTS !{ @@ -1811,8 +1811,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar endif enddo !} - - + + !> ON THE EXCHANGE GRID, CALCULATE ATMOSPHERIC CONDUCTANCE !{ do i=is,ie @@ -1820,7 +1820,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar end do !} - + !> ON THE EXCHANGE GRID, COMPUTE DERIVATIVES OF TRACER FLUXES !{ ! fill derivatives for all tracers @@ -1841,7 +1841,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo enddo !} - + ! Combine explicit ocean flux and implicit land flux of extra flux fields. @@ -1849,8 +1849,8 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !> ON THE EXCHANGE GRID, COMPUTE EXPLICIT FLUXES BETWEEN ATM AND OCEAN !{ call atmos_ocean_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater, ex_t_surf) - - do n = 1, ex_gas_fluxes%num_bcs + + do n = 1, ex_gas_fluxes%num_bcs if (ex_gas_fluxes%bc(n)%atm_tr_index .gt. 0) then m = tr_table_map(ex_gas_fluxes%bc(n)%atm_tr_index)%exch if (id_tr_mol_flux0(m) .gt. 0) then @@ -1903,10 +1903,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar endif enddo endif - enddo + enddo enddo !} - + !> OVERRIDE LAND AND ICE TRACER FLUXES. DATA WILL BE OVERWRITTEN ONLY IF FIELD IS SPECIFIED IN DATA_TABLE !{ @@ -1986,7 +1986,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar if (used) call fms_xgrid_put_to_xgrid ( sea, 'OCN', ex_dhdt_atm, xmap_sfc ) #endif !} - + ! NB: names of the override fields are constructed using tracer name and certain ! prefixes / suffixes. For example, for the tracer named "sphum" (specific humidity) they will be: @@ -2003,7 +2003,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !! THE STEFAN-BOLTZMANN LAW WHERE LONGWAVE_FLUX = STEFAN_BOLTZMANN _CONSTANT * T**4. !! ON THE EXCHANGE GRID, AS QUANTITIES ARE REMAPPED, FIELDS ARE AREA-WEIGHTED (AVERAGED) !! SUCH THAT OUTPUT_TEMPERATURE = SUM(INPUT_TEMPERATURE * (XGRID_AREA)/(INPUT_GRID_AREA)) - !! WHERE THE SUM IS OVER ALL XGRID CELLS THAT OVERLAP WITH THE OUTPUT CELL. + !! WHERE THE SUM IS OVER ALL XGRID CELLS THAT OVERLAP WITH THE OUTPUT CELL. !! BECAUSE OF THIS WEIGHTING, THE COMPUTED FLUX WOULD DIFFER FROM USING VS **4 !! (WHERE <> IS USED TO DENOTE AVERAGING) !{ @@ -2088,7 +2088,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo !} - + !> DATA OVERRIDE ATMOSPHERIC QUANTITIES. !! DATA_OVERRIDE WILL ONLY OVERWRITE IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ @@ -2116,7 +2116,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar call fms_data_override('ATM', 'rough_mom', Land_Ice_Atmos_Boundary%rough_mom, Time) !} - + !> ON THE EXCHANGE GRID, INITIALIZE ARRAYS FOR FIXING THE ALBEDO ! !! STILL NEEDED ???? @@ -2173,7 +2173,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar enddo enddo !} - + #ifdef SCM if (do_specified_albedo .and. do_specified_land) then @@ -2187,7 +2187,7 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar !======================================================================= ! [7] diagnostics section - + !> SAVE STATIC FIELDS. THE STATIC FIELDS WILL BE SAVED ONLY THE FIRST TIME THIS SUBROUTINE IS CALLED !! IF FIRST_STATIC = .TRUE. !{ @@ -2209,10 +2209,10 @@ subroutine sfc_boundary_layer ( dt, Time, Atm, Land, Ice, Land_Ice_Atmos_Boundar endif !} - + !> MAP ATMOSPHERIC DATA FROM THE EXCHANGE GRID TO THE ATM GRID AND SEND DATA TO DIAG_MANAGER BUFFER. !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN THE DIAG_TABLE - !{ + !{ !------- Atm fields ----------- do n = 1, Atm%fields%num_bcs do m = 1, Atm%fields%bc(n)%num_fields @@ -2641,7 +2641,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun !> current model time type(FmsTime_type), intent(in) :: Time !> derived data type holding atmosphere boundary data - type(atmos_data_type), intent(inout) :: Atm + type(atmos_data_type), intent(inout) :: Atm !> derived data type holding land boundary data type(land_data_type), intent(in) :: Land !> derived data type holding ice boundary dat @@ -2683,7 +2683,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun ! derivative of setl_dtr from the lowest atmosphere layer on the atm grid real :: dsetl_dtr(size(Atm%tr_bot,1),size(Atm%tr_bot,2)) - + ! temporary arrays real, dimension(n_xgrid_sfc) :: ex_gamma, ex_dtmass, ex_delta_t, ex_delta_u, ex_delta_v, ex_dflux_t @@ -2716,7 +2716,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun ov = .FALSE. !} - + !> OVERRIDE ATM SHORTWAVE AND LONGWAVE DIRECT AND DOWNWARD DIFFUSIVE FLUXES !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE XARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ @@ -2751,7 +2751,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun endif !} - + !> PARTITION PRECIPTATION TO LIQUID PRECIPITATION AND FROZEN PRECIPITATION IF PARTITION_FPREC_FROM_LPREC = .TRUE. !! PARTIION_FPREC_FROM_LPREC IS SET AS PART OF MODULE INITIALIZATION CALL IN ATM_LAND_ICE_FLUX_EXCHANGE !{ @@ -2783,7 +2783,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_data_override ('ATM', 'dflux_'//trim(tr_name), Atm%Surf_Diff%dflux_tr(:,:,tr), Time) enddo !} - + !> MAP ATMOSPHERE QUANTITIES ONTO THE EXCHANGE GRID !{ @@ -2821,7 +2821,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun ! ccc = conservation_check(Atm%lprec, 'ATM', xmap_sfc) ! if (fms_mpp_pe()== fms_mpp_root_pe()) print *,'LPREC', ccc - + !!$ if(do_area_weighted_flux) then !!$ call put_to_xgrid (Atm%lprec * AREA_ATM_MODEL, 'ATM', ex_lprec, xmap_sfc) !!$ call put_to_xgrid (Atm%fprec * AREA_ATM_MODEL, 'ATM', ex_fprec, xmap_sfc) @@ -2839,7 +2839,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_xgrid_put_to_xgrid (Atm%flux_lw, 'ATM', ex_flux_lwd, xmap_sfc, remap_method=remap_method, complete=.false.) !} - + !> ON THE EXCHANGE GRID, UPDATE U AND V STRESS !{ ! MOD changed the following two lines to put Atmos%surf_diff%delta_u and v @@ -2864,7 +2864,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun enddo enddo !} - + !> ON THE EXCHANGE GRID, FIX SHORTWAVE RADIATION FLUX OF VISIBLE LIGHT TO TAKE INTO ACCOUNT FOR ALBEDO VARIATION !{ @@ -2913,7 +2913,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun deallocate ( ex_albedo_vis_dif_fix ) deallocate ( ex_albedo_nir_dif_fix ) !} - + !> ON THE EXCHANGE GRID, ADJUST FLUXES FOR IMPLICIT DEPENDENCE !{ @@ -2998,9 +2998,9 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun enddo endif enddo - enddo + enddo !} - + !> MAP FLUXES FROM THE EXCHANGE GRID TO THE LAND GRID AND OVERRIDE FIELDS !! WITH DATA_OVERRIDE WHERE DATA WILL BE OVERWRITTEN IF THE FIELD IS SPECIFIED IN DATA_TABLE @@ -3179,7 +3179,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun enddo !} - + !> OVERRIDE LAND FLUXES. NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE !! ARRAY IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ @@ -3224,7 +3224,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun #endif enddo !} - + !> MAP ICE FIELDS FROM THE EXCHANGE GRID TO THE ICE GRID !{ @@ -3330,7 +3330,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun call fms_coupler_type_data_override('ICE', Ice_boundary%fluxes, Time) call fms_coupler_type_send_data(Ice_boundary%fluxes, Time) !} - + !> COMPUTE STOCK CHANGES BETWEEN COMPONENTS !{ @@ -3406,7 +3406,7 @@ subroutine flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boun & radius=Radius, ier=ier, verbose='stock move HEAT (Atm->Ice) ') !} - + deallocate ( ex_flux_u, ex_flux_v, ex_dtaudu_atm, ex_dtaudv_atm) @@ -3440,12 +3440,12 @@ end subroutine flux_down_from_atmos subroutine generate_sfc_xgrid( Land, Ice ) !> derived data type to specify land boundary data - type(land_data_type), intent(in) :: Land + type(land_data_type), intent(in) :: Land !> derived data type to specify ice boundary dat - type(ice_data_type), intent(in) :: Ice + type(ice_data_type), intent(in) :: Ice ! compute domain indices - integer :: isc, iec, jsc, jec + integer :: isc, iec, jsc, jec !> INITIALIZE CLOCK FOR PROFILING @@ -3453,13 +3453,13 @@ subroutine generate_sfc_xgrid( Land, Ice ) call fms_mpp_clock_begin(cplClock) call fms_mpp_clock_begin(regenClock) !} - + !> GET ICE COMPUTE DOMAIN INDICES !{ call fms_mpp_domains_get_compute_domain(Ice%Domain, isc, iec, jsc, jec) !} - + !> UPDATE FRACTIONAL AREAS OF THE EXCHANGE GRID THAT ARE ICE AND LAND !{ @@ -3484,14 +3484,14 @@ subroutine generate_sfc_xgrid( Land, Ice ) block_end(1) = n_xgrid_sfc endif !} - + !> END CLOCK FOR PROFILING !{ call fms_mpp_clock_end(regenClock) call fms_mpp_clock_end(cplClock) !} - + end subroutine generate_sfc_xgrid !> Subroutine flux_up_to_atmos corrects the fluxes to take into account @@ -3509,9 +3509,9 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou !> derived data type holding land boundary data type(land_data_type), intent(inout) :: Land !> derived data type holding ice boundary data - type(ice_data_type), intent(inout) :: Ice + type(ice_data_type), intent(inout) :: Ice !> derived data type holding properties and fluxes passed from exchange grid to the atmosphere, land and ice - type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary + type(land_ice_atmos_boundary_type), intent(inout) :: Land_Ice_Atmos_Boundary !> derived data type holding properties and fluxes passed from atmosphere to land type(atmos_land_boundary_type), intent(inout) :: Land_boundary !> derived data type holding properties and fluxes passed from atmosphere to ice @@ -3530,14 +3530,14 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou real, dimension(n_xgrid_sfc,n_exch_tr) :: & ! updated tracer values at the surface on exchange grid - ex_tr_surf_new, & + ex_tr_surf_new, & ! tendency of tracers at the surface on exchange grid - ex_dt_tr_surf, & + ex_dt_tr_surf, & ! array on exchange grid ex_delta_tr_n ! added for co2_surf diagnostic, where co2_surf_dvmr is the updated CO2 tracer values at the surface (dry vmr) - real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr + real, dimension(n_xgrid_sfc) :: ex_co2_surf_dvmr real, dimension(size(Land_Ice_Atmos_Boundary%dt_t,1),size(Land_Ice_Atmos_Boundary%dt_t,2)) :: & diag_atm, & @@ -3567,7 +3567,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call fms_mpp_clock_begin(fluxAtmUpClock) !} - + !> OVERRIDE ICE%T_SURF, LAND%T_CA, LAND%T_SURF AND LAND SURFACE TRACERS !! NOTE, DATA_OVERRIDE WILL ONLY OVERWRITE DATA IF THE FIELD IS SPECIFIED IN THE DATA_TABLE !{ @@ -3590,7 +3590,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou enddo !} - + !> INITIALIZE EX_T_SURF_NEW = 200.0 !{ ex_t_surf_new = 200.0 @@ -3610,12 +3610,12 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou #endif !} - + ! call escomp(ex_t_ca_new, ex_q_surf_new) ! ex_q_surf_new = d622*ex_q_surf_new/(ex_p_surf-d378*ex_q_surf_new) ! call put_to_xgrid (Land%q_ca, 'LND', ex_q_surf_new, xmap_sfc) - + #ifdef SCM if (do_specified_flux .and. do_specified_land) then ex_t_surf_new = ex_t_surf @@ -3623,7 +3623,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif #endif - + !> ON THE EXCHANGE GRID, COMPUTE CHANGES IN SURFACE TEMPERATURE AND RADIATIVE TEMPERATURE !{ do l = 1, my_nblocks @@ -3645,8 +3645,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou enddo end if !} - - + + !> ON THE EXCHANGE GRID, !! UPDATE FLUXES AND ATMOSPHERIC INCREMENTS FOR IMPLICIT DEPENDENCE ON SURFACE TEMPERATURE !{ @@ -3676,11 +3676,11 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou endif enddo !} - + ! get all tracers available from ocean here - + !> ON THE EXCHANGE GRID, UPDATE TRACER TENDENCIES IN THE ATMOSPHERE !{ ! update tracer tendencies in the atmosphere @@ -3705,7 +3705,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou ex_flux_tr(i,isphum) = ex_flux_tr(i,isphum) + ex_dt_t_surf(i) * ex_dedt_surf(i) endif enddo - enddo + enddo do tr=1,n_exch_tr ! get updated tracer tendency on the atmospheic grid @@ -3726,7 +3726,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou enddo enddo !} - + !> MAP DT_T, SHFLX, and LHFLX FIELDS IN LAND_ICE_ATMOS_BOUNDARY FROM THE EXCHANGE GRID TO THE ATMOSPERE GRID !{ @@ -3736,7 +3736,7 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou call fms_xgrid_get_from_xgrid (Land_Ice_Atmos_Boundary%lhflx,'ATM', ex_flux_tr(:,isphum), xmap_sfc)!miz #endif !} - + !> MAP DATA FROM THE EXCHANGE GRID TO OCN/ATM/LND GRID AND SEND DATA TO THE DIAG_MANAGER BUFFER. !! NOTE, DATA WILL ONLY BE OUTPUTTED IF VARIABLE SPECIFICATION IS FOUND IN DIAG_TABLE.YAML @@ -3960,8 +3960,8 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou !> COMPUTE STOCK EXCHANGE BETWEEN MODEL COMPONENTS !{ - call fms_xgrid_get_from_xgrid_ug(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) - + call fms_xgrid_get_from_xgrid_ug(data_lnd, 'LND', ex_flux_tr(:,isphum), xmap_sfc) + ! Lnd -> Atm (evap) call fms_xgrid_stock_move_ug( & & TO = fms_stock_constants_atm_stock(ISTOCK_WATER), & @@ -4033,14 +4033,14 @@ subroutine flux_up_to_atmos ( Time, Land, Ice, Land_Ice_Atmos_Boundary, Land_bou & to_side=ISTOCK_TOP, from_side=ISTOCK_TOP, & & radius=Radius, ier=ier, verbose='stock move EVAP*HLV (Ice->ATm) ') !} - + !> END CLOCK FOR PROFILING !{ call fms_mpp_clock_end(fluxAtmUpClock) call fms_mpp_clock_end(cplClock) !} - + end subroutine flux_up_to_atmos !> Subroutine flux_ex_arrays_dealloc deallocates the model-level ex_* arrays that were @@ -4100,8 +4100,8 @@ subroutine flux_ex_arrays_dealloc() do m = 1, ex_gas_fields_ice%bc(n)%num_fields deallocate ( ex_gas_fields_ice%bc(n)%field(m)%values ) nullify ( ex_gas_fields_ice%bc(n)%field(m)%values ) - enddo - enddo + enddo + enddo do n = 1, ex_gas_fields_atm%num_bcs do m = 1, ex_gas_fields_atm%bc(n)%num_fields @@ -4109,13 +4109,13 @@ subroutine flux_ex_arrays_dealloc() nullify ( ex_gas_fields_atm%bc(n)%field(m)%values ) enddo enddo - + do n = 1, ex_gas_fluxes%num_bcs do m = 1, ex_gas_fluxes%bc(n)%num_fields deallocate ( ex_gas_fluxes%bc(n)%field(m)%values ) nullify ( ex_gas_fluxes%bc(n)%field(m)%values ) - enddo - enddo + enddo + enddo end subroutine flux_ex_arrays_dealloc @@ -4132,7 +4132,7 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) type(atmos_ice_boundary_type), intent(inout):: Ice_boundary !> derived type holding ice boundary tdata type(ice_data_type), intent(inout):: Ice - + integer :: n, m logical :: used @@ -4148,7 +4148,7 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) Atm%fields%bc(n)%flux_type = trim(ex_gas_fluxes%bc(n)%flux_type) Atm%fields%bc(n)%implementation = trim(ex_gas_fluxes%bc(n)%implementation) if(ex_gas_fields_atm%bc(n)%flux_type .eq. 'air_sea_deposition') then - do m = 1, Atm%fields%bc(n)%num_fields + do m = 1, Atm%fields%bc(n)%num_fields call fms_xgrid_put_to_xgrid (Atm%fields%bc(n)%field(m)%values, 'ATM', & ex_gas_fields_atm%bc(n)%field(m)%values, xmap_sfc, remap_method=remap_method) enddo @@ -4156,7 +4156,7 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) enddo !} - + !> ON THE EXCHANGE GRID, CALCULATE OCEAN EXPLICIT FLUX BY CALLING ATMOS_OCEAN_DEP_FLUXES_CALC !{ call atmos_ocean_dep_fluxes_calc(ex_gas_fields_atm, ex_gas_fields_ice, ex_gas_fluxes, ex_seawater) @@ -4172,30 +4172,30 @@ subroutine flux_atmos_to_ocean(Time, Atm, Ice_boundary, Ice) do m = 1, Ice_boundary%fluxes%bc(n)%num_fields call fms_xgrid_get_from_xgrid (Ice_boundary%fluxes%bc(n)%field(m)%values, 'OCN', & ex_gas_fluxes%bc(n)%field(m)%values, xmap_sfc) - + call fms_data_override('ICE', Ice_boundary%fluxes%bc(n)%field(m)%name, & Ice_boundary%fluxes%bc(n)%field(m)%values, Time) if ( Ice_boundary%fluxes%bc(n)%field(m)%id_diag > 0 ) then used = fms_diag_send_data(Ice_boundary%fluxes%bc(n)%field(m)%id_diag, & Ice_boundary%fluxes%bc(n)%field(m)%values, Time ) endif - enddo + enddo endif enddo !} - + !> UPDATE ICE FIELDS THAT ARE LABELED AS AIR_SEA_DEOOSITION FLUXES BY CALLING UPDATE_ICE_ATM_DEPOSITION_FLUX !{ call update_ice_atm_deposition_flux( Ice_boundary, Ice ) !} - + end subroutine flux_atmos_to_ocean !> Subroutine put_logical_to_real_sg maps 2D logical mask arrays to real arrays !! where .true. -> 1.0 and .false. -> 0.0. The real array is then mapped !! onto the exchange grid. This subroutine is used internally to convert Land%mask - !! on structured grid for example, when #ifndef _USE_LEGACY_LAND_ is false + !! on structured grid for example, when #ifndef _USE_LEGACY_LAND_ is false subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) !> land/ice mask @@ -4217,7 +4217,7 @@ subroutine put_logical_to_real_sg (mask, id, ex_mask, xmap) endwhere !} - + !> MAP RMASK TO THE EXCHANGE GRID !{ call fms_xgrid_put_to_xgrid(rmask, id, ex_mask, xmap) @@ -4237,7 +4237,7 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) !> component id character(len=3), intent(in) :: id !> mapped mask on exchange grid - real, intent(inout) :: ex_mask(:) + real, intent(inout) :: ex_mask(:) type(FmsXgridXmap_type), intent(inout) :: xmap real, dimension(size(mask,1),size(mask,2)) :: rmask @@ -4259,7 +4259,7 @@ subroutine put_logical_to_real_ug (mask, id, ex_mask, xmap) call fms_xgrid_put_to_xgrid (rmask, id, ex_mask, xmap) #endif !} - + end subroutine put_logical_to_real_ug @@ -4308,7 +4308,7 @@ subroutine diag_field_init ( Time, atmos_axes, land_axes, land_pe ) else write (label_zh,110) z_ref_heat endif - + 100 format (i1,' m',3x) 105 format (i2,' m',2x) 110 format (f4.1,' m') @@ -4992,14 +4992,14 @@ subroutine divide_by_area(data, area) real, intent(in) :: area(:,:) !> CHECK TO ENSURE SHAPE OF DATA IS THE SAME AS SHAPE OF AREA - !! IF SHAPES MISMATCH, RETURN + !! IF SHAPES MISMATCH, RETURN !{ if(size(data, dim=1) /= size(area, dim=1) .or. size(data, dim=2) /= size(area, dim=2)) then ! no op return endif !} - + !> DIVIDE DATA BY GRID CELL AREA WHERE AREA /= 0.0 !{ where(area /= 0.0) @@ -5009,7 +5009,7 @@ subroutine divide_by_area(data, area) end subroutine divide_by_area - + !> Subroutine send_ice_mask_sic sends the ice mask to diag_manager. !! If the variables ice_mask or sic have been registered with diag_manager, !! this subroutine maps the fractional amount of sea ice @@ -5025,7 +5025,7 @@ subroutine send_ice_mask_sic(Time) real, dimension(ni_atm, nj_atm) :: diag_atm, ocean_frac logical :: used - !> IF ID_ICE_MASK > 0 OR ID_SIC > 0 + !> IF ID_ICE_MASK > 0 OR ID_SIC > 0 if ( id_ice_mask > 0 .or. id_sic > 0) then !> INITIALIZE ICE_FRAC @@ -5034,7 +5034,7 @@ subroutine send_ice_mask_sic(Time) ice_frac(:,:,1) = 0. ex_ice_frac = 0. !} - + !> MAP ICE_MASK FROM THE OCN GRID TO THE EXCHANGE GRID call fms_xgrid_put_to_xgrid (ice_frac, 'OCN', ex_ice_frac, xmap_sfc) @@ -5066,7 +5066,7 @@ subroutine send_ice_mask_sic(Time) end subroutine send_ice_mask_sic - + !> Subroutine atm_stock_integrate integrates over the total precipitation !! (liquid and frozen) in the atmosphere and multiply the integrated value by !! the timestep dt. This subroutine is called in flux_exchange_mod/flux_check_stocks @@ -5079,7 +5079,7 @@ subroutine atm_stock_integrate(Atm, res) integer :: ier - !> CALL FMS_XGRID_STOCK_INTEGRATE + !> CALL FMS_XGRID_STOCK_INTEGRATE call fms_xgrid_stock_integrate_2d(Atm%lprec + Atm%fprec, xmap=xmap_sfc, delta_t=Dt_atm, & & radius=Radius, res=res, ier=ier)